I have some simple metal-only cells in an array in...
# magic
a
I have some simple metal-only cells in an array in GDS that aren't extracted by magic, but are seen by the consistency precheck, causing a consistency failure. When I run
flatten -doinplace <name>
it simply deletes the array. How do I flatten the cells or convince magic to extract them to spice despite containing no devices?
t
Unfortunately, the consistency check is poorly conceived and poorly executed. There should never be any expectation that the cell hierarchy matches exactly between layout and schematic (or verilog) netlist. You might be able to work around the problem by declaring the cell to be abstract by creating a property called "LEFview" with value "true". That should cause the cell to extract as a black-box while not affecting the GDS---but you will want to confirm that (also it will make LVS and simulation more complicated because you will need to include a definition for the black-box subcircuit). But also: Are you saying that "flatten -doinplace" deleted the array? I implemented that function recently and I might not have implemented any behavior specifically relating to arrays, in which case that would be an error (and one that is probably easy to fix, as the flatten procedure just needs to loop over the array values).
a
I am doing it all backwards, to be fair (extracting spice from GDS just to pass the checks, since this "design" is mostly for imaging/chemical analysis)
I'll try to get you a MWE
Haven't reproduced the crash or total delete yet, but here's an example of
flatten -doinplace <cell>
flattening only the original (non-arrayed) cell. Open magic and run
Copy code
grid 100
snap grid
getcell pad
box 0 0 20 20
array 4 4
flatten -doinplace pad_0
This results in one instance of
pad
properly flattened into the edit cell, but not arrayed.