<@U016EM8L91B> Trying to add a cell that contains only subcut (automatically generated) and then fla...
m
@Tim Edwards Trying to add a cell that contains only subcut (automatically generated) and then flatten that cell with these commands.
ML_F3_TOP_mixed_subcut
is the name of the cell that contains only subcut and I want to place that in
ML_F3_TOP_mixed
and then flatten it.
Copy code
load ML_F3_TOP_mixed_subcut
load ML_F3_TOP_mixed
box values 0 0 0 0
getcell ML_F3_TOP_mixed_subcut
puts stdout [cellname children ML_F3_TOP_mixed]
flatten -doinplace ML_F3_TOP_mixed_subcut
puts stdout [cellname children ML_F3_TOP_mixed]
This is the output
Copy code
Cell ML_F3_TOP_mixed's children are:
    ML_F3_TOP_mixed_subcut
    ML_F3_TOP_analog
    ML_F3_TOP_digital

No cell use ML_F3_TOP_mixed_subcut found in edit cell.
Cell ML_F3_TOP_mixed's children are:
    ML_F3_TOP_mixed_subcut
    ML_F3_TOP_analog
    ML_F3_TOP_digital
Isn’t the edit cell supposed to be the last cell loaded? In this case,
ML_F3_TOP_mixed
. Do I need to save the cell once to generate the
use
line?
t
flatten -doinplace
is looking for a cell use, not a cell. You need to do
flatten -doinplace ML_F3_TOP_mixed_subcut_0
.
👍 1
m
Before looking into your suggestion, I’m getting results I don’t understand from
Copy code
load ML_F3_TOP_mixed
        puts stdout [cellname self]
        box values 0 0 0 0
        getcell ML_F3_TOP_mixed_subcut
        puts stdout [cellname children ML_F3_TOP_mixed]
        load ML_F3_TOP_mixed 
        puts stdout [cellname self]
This is what is output
Copy code
Cell ML_F3_TOP_mixed is currently loaded.

Cell ML_F3_TOP_mixed's children are:
    ML_F3_TOP_mixed_subcut
    ML_F3_TOP_analog
    ML_F3_TOP_digital

Cell ML_F3_TOP_mixed_subcut is currently loaded.
I would expect the second
cellname self
to return
ML_F3_TOP_mixed
which was loaded immediately before the command.
t
I think
cellname self
is preferring a selected cell (not sure if that was the intended behavior, but it's apparently the implemented behavior). Doing a "load" does not invalidate or remove any selection in another cell, so the subcut cell is still selected from doing
getcell
even after the following
load
. The best thing to do is just to follow
load
with
select top cell
.
👍 1
m
Looks like flattening the subcut inside the cell isn’t working. Currently creating at exactly the boundary (view bbox). Going to try making it just a bit bigger and/or adding it to the parent hierarchy.
@Tim Edwards finally found the issue. When reading the top gds, I set
gds flatten
. So when I later read the single cell with only subcut, it was flattened out of existence. Then when I tried to load that cell, it created a new cell.
👍 1