<@U016EM8L91B> <@U017X0NM2E7> <@U016HSAA3RQ> any t...
# shuttle-precheck
m
@Tim Edwards @Mitch Bailey @jeffdi any thoughts on this: https://github.com/efabless/mpw_precheck/issues/141
m
I'm not an expert on this, but I believe what the is saying is the clear density has to be at least 40%. Which means the pattern density has to be less than 60%. The error indicates a high density of m4. Do you see that in the layout? Can you reduce the m4 usage? I don't think fill effects this because (I assume) fill is only added at low density areas (although this may be a windowing problem).
m
I am leaning towards the windowing issue. We don't have a particular large m4 usage
t
Only FOM (diffusion density) is windowed. I'm inclined to think that this might be a klayout error. Try running magic's density check. In theory, magic's and klayout's checks should give the same result. It's a bit hard to debug density checks because you get a result that flags the entire chip area. But you can do some sanity checks like dropping a large metal 4 square on top of the chip and making sure that klayout reports that the density problem got worse proportionally to the amount of metal 4 you added.
m
We tried the latter and klayout reports it gotworse actually
m
That is correct. The more metal you add, the smaller the percentage of clear pattern.
t
Magic reports that metal4 density (metal density, not clear area) within the user project itself is 6.9%.
Copy code
% cif cover MET4
Cell Area = 10329984000000 CIF units^2
Layer Bounding Area = 9888485739600 CIF units^2
Layer Total Area = 713447009075 CIF units^2
Coverage in cell = 6.9%
This might require getting @jeffdi to manually override the precheck, while an issue is raised to root out and fix the problem, which (given the existing evidence) I conclude is either an error in klayout or in the density check definition.
m
@Tim Edwards thanks. Can you show me and @Jianwei Jia how to run this locally
Our other tapeouts had much more dense bare pads.. so not sure why this is failing
t
Because of an obscure bug, I expect. To run what I did above, I just read the GDS of the user project into magic, selected the whole top level cell, and typed the command "cif cover MET4". There is a script installed with open_pdks under `sky130B/libs.tech/magic/check_density.py`; you can just run it giving the GDS file as argument. Results will be different than the full Caravel chip. Also you will get lots of metal-under-density errors because the script is intended to be run on a layout after fill generation. When I run it, I get all metal layers under density, which is what I would expect from visual inspection of the layout. So, still all evidence points to this as being a klayout or klayout density rule description error.