It looks like you're new here. If you want to get involved, click one of these buttons!
Hi Matthias,
I wrote a ruby script to merge two database with a 0_TOP cell, and it works fine to output a gds file, however it failed to output a oasis file.
newtop = layout.add_cell("0_TOP")
(0..(layout.cells-1)).each do |ci|
if layout.cell_name(ci) == "test1_abc_TOP"
layout.cell(newtop).insert(RBA::CellInstArray.new(ci, RBA::Trans.new(RBA::Point.new(0, 0)), RBA::Point::new(2000, 0), RBA::Point::new(0, 2000), 0, 0) )
end
end
(0..(layout.cells-1)).each do |ci|
if layout.cell_name(ci) == "test2_abc_TOP"
layout.cell(newtop).insert(RBA::CellInstArray.new(ci, RBA::Trans.new(RBA::Point.new(0, 20000)), RBA::Point::new(2000, 0), RBA::Point::new(0, 2000), 0, 0) )
end
end
layout.write("output.oas")
If I modify the CellInstArray section from
layout.cell(newtop).insert(RBA::CellInstArray.new(ci, RBA::Trans.new(RBA::Point.new(0, 0)), RBA::Point::new(2000, 0), RBA::Point::new(0, 2000), 0, 0) )
to
layout.cell(newtop).insert(RBA::CellInstArray.new(ci, RBA::Trans.new(RBA::Point.new(0, 0)) ) )
It works fine to output oasis file, is it a bug or I made any mistake about that ?
Thanks for your kindly help~
chhung
Comments
Hi chhung,
Arrays with dimensions 0x0 are illegal for OASIS (see the last two arguments to CellInstArray). For GDS2 they can be produced, although their interpretation is implementation-dependent.
I'd not use 0x0 arrays. If you want to create a single-instance array, use the second form. Only use the first form if you really want to create an array and make sure the dimensions are 1 at least.
Matthias