<@U016EM8L91B> any suggestions on the above? woul...
# ieee-sscs-dc-22
j
@Tim Edwards any suggestions on the above? would blockage around some portion of the dense areas work?
s
@Jorge Marin This is what I found. From your project on the platform -> Workspace -> open galaxy. Then you open klayout in the desktop and open the oasis file and the xml of the check you failed from the output folder, like in the prechecks. I also fail met4 and fom density. I believe I can change fom density but met4 I don't know about fill. There is a lot of it and the fillblock layer doesn't seem to work in magic with a simple
paint fillblock
as I have seen recommended in a different channel.
m
@Jorge Marin Let’s start with an understanding of the problem. As Jeff stated
your met 3 & 4 density is too high. the clear area requirement is 0.40 and you have 0.37 and 0.33 respectively.
I believe this is one density value calculated over the entire design and consists of the actual metal and the fill patterns.
fom density (diff+tap) is also an issue. the check is tiled at 700x700um. your highest is 0.62 and the limit is 0.57 .
This density is calculated in 700umx700um tiles separately. Jeff is suggesting that you add a fill blockage layer to prevent the creation of fill squares, thus lowering your density.
j
hello @StefanCK and @Mitch Bailey, thanks for your feedback what should we exactly do for the fom density rule?
m
These are just guesses. met3 blockage is 70/10 and met4 blockage is 71/10. I couldn’t find a fom blockage layer, but maybe fom dummy 22/23 would work. If you’re using magic, check the cifout rules in the techfile to see what layers you need to paint. The script that creates the fill is at
caravel/scripts/generate_fill.py
, I think, but I’m not sure what it’s doing. You could try adding blockages and see if that increases your clear area.
h
What you can do is to make holes or slots into large metal areas to reduce the density. In some technologies this is done automatically during fill, here it is likely not. This holes/slots will cost some maximum current density, but it should not be too severe, I guess.
I think there is a
magic script
to calculate the density, but I am not sure. @Tim Edwards?
j
@Harald Pretl thanks for the advice sorry for the dummy question, but why is there a maximum metal density limit? I think I understand the minimum density (CMP?), but not the maximum
h
BTW, in a lot of technologies the metal and front-end densities are checked in terms of fill, and there is a lower and upper limit. If too low, you need to add stuff, if too high you remove stuff. Here, in SKY130, there is a clear area requirement, so you need to think in reverse :-)
Both is related to CMP, there is a certain process window where the polish runs smooth. Too much or too little metal can be an issue.
b
Maximum is for CMP; metal is softer than the dielectric.
j
ok, I see, thanks
t
@Jorge Marin, @jeffdi, @Weston Braun: The solution for Weston was to add fill block in a ring around the power transistor to offset the amount of metal and diffusion inside the transistor areas. To paint these layers you need to use
tech unlock *
in magic. Then put the types
obsactive
in a ring around the transistors to offset the FOM density. Since top metal was not flagged as an issue, then put
fillblock4
in a ring around the transistors (blocks metals 1 to 4; this will reduce metal 1 and 2, which are not flagged as an error, but I do not expect it will reduce them enough to cause a low density error). I would guess that a ring of maybe 100 microns around the transistors should be sufficient for the FOM error, and maybe 200 microns for the metal. @Harald Pretl, @Jorge Marin: The script
check_density.py
in
$PDK_ROOT/sky130A/libs.tech/magic/
will run density checks on a GDS file. Note that the script will be checking density before fill generation. There's also a
generate_fill.py
script, but it was designed for the tapeout process and I'm not sure whether it can be used on anything other than the caravel top level.
👍 2
s
Appreciate the quick reply! I have been searching how to use these layers in magic for hours. Was just about ready to manually add rectangles in the .mag file with
<< fillblock >>
or
<< cfom.fill>>
and see what happens.
j
Hello @Tim Edwards, thanks for your reply. Just to be sure about what we are doing: do you mean a ring of obsactive layer of 100um width around the transistors, as in the image attached (the obsactive layer is the white dashed area)? From what I understand, this would avoid fillers around the devices which could increase the density which is already high inside the devices, is this right? cc @Alfonso Cortés
t
Yes, all that is correct.
j
thanks! dumb question: why not just a square?
t
The fillblock is defined on the same plane as some other layers, so it will force a DRC error in magic if you draw it over the whole layout.
👍 1
j
hello @Tim Edwards, we are checking the m3, m4 and fom errors in klayout within opengalaxy we realized that the 700x700 tile check is applied to the fom DRC, while m3/m4 density errors seem to consider the full chip. Is this right? if so, does it mean we can tackle critical areas anywhere on the chip to solve this issue? cc @Alfonso Cortés
t
@Jorge Marin: Yes, you can in principle make up the metal density in any part of the chip.
👍 1
j
@Leonardo Gomes fyi
@Tim Edwards thanks for the reply another question: are antenna DRCs checked anywhere during the tapeout, or we need to do them manually for analog designs?
t
There will be no check inside the user area for antenna violations, so you will need to run those checks yourself if it's an analog design. Magic has an
antennacheck
command to do that, and there are klayout decks for running antenna checks. Both of them should give the same results as commercial tools.
👍 1
a
@Mario Romero fyi