<@U016EM8L91B> was there any updates to the Magic ...
# magic
w
@Tim Edwards was there any updates to the Magic DRC checking since I taped out? They layout of my waffle fets is no longer DRC clean. It looks like only the cells next to the termination of the metal runners where they go from an angle to horizontal are being flagged. So possibly there was some regression in the fix for the distance checking for angles?
I am actually quite confused. Manually checking some of the violations it seems like the distances are greater than the rule that is a claimed violation
Even for rectangular regions
pmos_waffle_10.mag
I am on Magic 8.3 revision 315 - Compiled on Mon 27 Jun 2022 060526 PM PDT, I guess I will try updating and see if anything changes
Oh wait, thats the latest release
Also getting some DRC errors between edges of the waffle fet in the whole grid.
Unless the clearance rules are Manhattan distance instead of euclidean distance?
h
Did you turn on DRC(full) the last time and this time? DRC(full) gives more errors than DRC(fast).
w
Yes. This is a geometry that has been taped out and produced a working design. It went through full DRC check in Magic, the backend checks run by efabless and any checks the foundary does.
The first time around this geometry chased out a number of magic DRC errors. I think something is broken again
At the very least its pretty clear that the drc explanation is not matching whats going on. For example, this is tagged as
Copy code
Metal1 > 3um spacing to unrelated m1 < 0.28um (met1.3b)
If I delete the little extra M1 box on the left that specific DRC error goes away. The X and Y distances of the box between the two corners are both less than 0.28um but the total distance is greater than 0.28um
Similarly this is flagged as
Copy code
Diffusion contact spacing < 0.17um (licon.2)
mcon.spacing < 0.19um (mcon.2)
when the diagonal distance is much larger
Followup to the first example, its now DRC clean. For at least some subset of the rules it seems to be treating the X distance and Y distance as the spacing
I can pretty easily replicate this with just big blobs of M1
Unless I am misunderstanding the clearance rules and its not euclidean distance but is instead some weird measurement of the minimum of the X and the Y dimensions of the box drawn between the closest points. But that did not seem to be the case previously
v
@Weston Braun which PDK used? is
sky130A
or
sky130B
w
SKY130A
the drc rule deck should be the same.
t
@Weston Braun: Did you run magic using the
.magicrc
startup script? Because
drc euclidean on
is a command run from the script, but not if you just loaded the technology on the command line with the
-T
switch (the default of
off
keeps backwards compatibility but I think it might not be such a good idea to be backwards compatible in this case. It would make more sense overall for the setting to be declared within the tech file, not as a command).
w
ooh, no I have not. I think something changed in the install procedure between when I set up the PDK for my first tapeout and now. I thought that the the whole point of the .***rc files is that they are automatically run at startup
what do I need to do so that magic is launched with the script? And what repo contains the most up to date version of the file?
t
You either run magic with the switch
-rcfile <path_to_rcfile>
or else you put a copy of the .magicrc file (or a symbolic link to it) in the directory where you launch magic. If you use
-rcfile
and the startup script loads the tech file, then you do not need to use
-T
. The startup script does not change often and hasn't changed in ages, so don't worry about the repo where it comes from, although of course the most recent will be from the most recent push of
open_pdks
.
w
That works! Thanks a lot. Something definitely changed in the PDK setup. Just to double check, euclidean distance is the correct setting to use for SKY130?
Also, sorry to bother you about this, but is there any documentation on the metal density rules / how to run the metal density rules on a partial design? That was done on the back end when I taped out and I want to make sure my waffle fets will pass any metal density rule checks before I package them up as an independent repo and publish it