Hey all, is there somewhere I can find more inform...
# shuttle-precheck
d
Hey all, is there somewhere I can find more information about the FEOL drc rules? Currently I am seeing violations of rule psd.2 in my design. This appears to be about the spacing of a layer "psdm". As far as I can tell, this layer does not appear in magic. How can I manipulate this layer in my design? In case it helps, here are some captures from klayout and from the same location in magic.
m
The psdm layer is generated automatically in magic at cifout. Here are the rules from the tech file.
Copy code
#----------------------------------------------------------------
# PSDM, NSDM (PPLUS, NPLUS implants)
#----------------------------------------------------------------

 templayer basePSDM pdiffres,mvpdiffres
        grow    15
        or      xhrpoly,uhrpoly,xpc
        grow    110
        bloat-or allpactivetap * 125 allnactivenontap 0
        bloat-or allpactivenontap * 125 allnactivetap 0

 templayer baseNSDM ndiffres,mvndiffres
        grow    125
        bloat-or allnactivetap * 125 allpactivenontap 0
        bloat-or allnactivenontap * 125 allpactivetap 0

 templayer extendPSDM  basePSDM
        bridge  380 380
        and-not baseNSDM

 layer PSDM basePSDM,extendPSDM
        grow    185
        shrink  185
        close   265000
        mask-hints PSDM
        calma   94 20

 templayer extendNSDM  baseNSDM
        bridge  380 380
        and-not basePSDM

 layer NSDM baseNSDM,extendNSDM
        grow    185
        shrink  185
        close   265000
        mask-hints NSDM
        calma   93 44
You may have found a corner case of spacing between cells that isn't covered. @User What do you think?
t
Honestly, it looks like a round-off error. There is a bridge of PSDM between the p-diffusion regions, and the whole point of the bridge is to satisfy the DRC spacing rules by bridging across gaps. I will probably want a repeatable test case so I can track down the source of the round-off error. There is a way to work around this by setting a property called 'MASKHINTS_PSDM' with a value "llx lly urx ury" giving the coordinates of a rectangle (in magic's internal database units) that covers the gap caused by the round-off error. It's not something that I would normally recommend, but it will get the project to pass DRC.
d
Thanks for looking! That makes sense. In the example above, the issue appears where a standard cell (on the left) is adjacent to a custom cell (on the right.) I've attached the gds for my project in case that helps you isolate a repeatable test case. For now, I have some wiggle room in the custom cell so I might be able to move these FETs away from the cell boundary.
m
I don't know if this is the reason, but there is an out-of-hiearchy diff.
d
Yes there is. I added that to try and fix the error. 😆 It is safe to remove and if you do, the psdm error should change slightly.
Just an update, after shifting those large arrays of pfets around, I WAS able to avoid the last FEOL violations.
👍 1
t
Abutting custom cells to standard cells does tend to produce artifacts like that, because magic doesn't see the actual contents of the standard cell, but works from its own view and its own idea of how it would write out the cell contents using its own rules. At one time recently I was working on a procedure in magic to figure out what is the difference between the GDS it reads and what it would then write back out, and save that information. I had not gotten that working, and then got sidetracked by other things. The bottom line is that standard cells are made with certain implant layers stretching the full width of the cell to maintain continuity across an entire digital layout, and any cell that abuts the standard cells needs to handle the same layers in the same way. Which is problematic for magic, since most of those layers don't even show up in magic.
d
Okay. In the future, I will try and leave gaps where possible around my custom cells.