Is there a way to paint `nsdm` by itself ? For c...
# magic
t
Is there a way to paint
nsdm
by itself ? For context I'm trying to design a ROM compiler and when doing the bitcell, they obviously need to correctly "fit" in a array. But of course magic doesn't necessarely realize when writing the gds for that cell that right next to it will be another one and so the
nsdm
should be connected (to avoid having a thin gap between them. So I would have liked to just manually paint
nsdm
all over it
t
There's a way to do that! It only works for certain layers because it has to be set up properly in the
cifoutput
rules. But here's how you do it: 1. Place the cursor box where you want the NSDM layer to go 2. Run the command
property MASKHINTS_NSDM [box values]
That's all! But be aware that the property cannot be selected or moved around; you can only change the placement of the NSDM by removing and recreating the property. You can specify multiple boxes by stringing together multiple sets of four coordinates. This works for the implant layers NSDM, PSDM, LVTN, HVTP, HVNTM, HVI, and NPC; and for the identifier layers COREID, STDCELL, ESDID, NPNID, and PNPID.
It is also possible to read GDS in such a way as to preserve exact geometry of the implant layers by automatically creating the MASKHINTS properties when reading the GDS, using
gds maskhints on
. This is still considered experimental.
Finally, although you cannot see the NSDM layer in the layout, you can see where it is by doing
cif see NSDM
. That will show you the combination of NSDM automatically generated by magic's cifoutput rules, plus any NSDM generated by mask hints.
t
@Tim Edwards Ah awesome, thanks, I think that'll be enough for my purposes. Technically I might end up exporting the diffusion and the poly in two different cells (because the poly has to always be present, but the diffusion presence/absence encodes the data bit) so magic won't "see" the overlap, but if I set NSDM and LVTN manually using the above it won't matter for the actual GDS export I think.
m
@tnt It won’t matter for the actual GDS, but in order to run LVS (now required for precheck) on the final GDS, remember to flatglob the separate diffusion and poly cells in the
lvs_config.json
files so that magic will recognize the gates.
t
@Mitch Bailey Ok, tx, I'll try to remember that when the time comes 😅