-
Notifications
You must be signed in to change notification settings - Fork 264
Closed
Description
The following script throws in internal error with the file from testdata/lvs/vexriscv.oas.gz
("Internal error: ../../../src/db/db/dbDeepRegion.cc:834 v.size () == size_t (1) was not true in Region::snap"):
ly = RBA::CellView::active.layout
dss = RBA::DeepShapeStore::new
ly.layer_indexes.each do |li|
puts ly.get_info(li)
r = RBA::Region::new(ly.top_cell.begin_shapes_rec(li), dss)
r.merged_semantics = false
r.snap(19, 19)
# challenge: modifies the backannotation cellmap:
ly.clear_layer(li)
r.insert_into(ly, ly.top_cell.cell_index, li)
end
The reason is obviously a variant cell consistency issue after writing back the layers into the original layout.
The following script version works (producing a new layout):
# WORKS!
ly = RBA::CellView::active.layout
dss = RBA::DeepShapeStore::new
RBA::MainWindow::instance.create_layout(1)
lyout = RBA::CellView::active.layout
lyout.create_cell("TOP")
ly.layer_indexes.each do |li|
puts ly.get_info(li)
r = RBA::Region::new(ly.top_cell.begin_shapes_rec(li), dss)
r.merged_semantics = false
r.snap(19, 19)
liout = lyout.layer(ly.get_info(li))
r.insert_into(lyout, lyout.top_cell.cell_index, liout)
end
RBA::LayoutView::current.add_missing_layers
while this creates an ultimate challenge because it combines clip and snap variants:
ly = RBA::CellView::active.layout
dss = RBA::DeepShapeStore::new
region = RBA::DBox::new(121, 177, 819, 915)
ly.layer_indexes.each do |li|
puts ly.get_info(li)
r = RBA::Region::new(ly.top_cell.begin_shapes_rec_touching(li, region), dss)
r.merged_semantics = false
r.snap(19, 19)
# challenge: modifies the backannotation cellmap with clip variants!
ly.clear_layer(li)
r.insert_into(ly, ly.top_cell.cell_index, li)
end
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels