Hi <@U018LA3KZCJ> <@U017X0NM2E7>. I've found mysel...
# openlane
e
Hi @Matt Liberty @Mitch Bailey. I've found myself in a catch-22 situation with the ports. If I fill the entire port box with Metal 2 right to the edge, Openlane won't get past Step 10 - Global Routing - due to congestion. Even just one port filled this way causes a failure - as can be seen by the GUI image
m
Not exactly sure what’s causing the problem. Is the lef file automatically created by openlane? Can you open the lef file in klayout and look at the layers? Are the ports on the cell boundary? are there obstruction layers for higher metal over the ports?
e
The pictures I posted are from a layout (TOP_mixed) which is mostly hand drawn in Magic, and the lef generated with
lef write -hide
. This lef won't get through Openlane when the ports on the lower edge are full of M2 paint. When I leave a little gap, Openlane does build user_project_wrapper and generate a lef - but this won't go through pre-check. (I've attached both here because Klayout won't open them, but I'm probably doing something wrong as I haven't tried to open lef with Klayout before)
Its very strange because all of the other ports in the drawing have paint right up to the edge, and the router seems to have no problems with those..
m
@Ellen Wood Do you get an error about
merged.lef
when trying to open with klayout? You can open
~/.klayout/tech/SKY130/SKY130.lyt
and delete the
merged.lef
line. After that I was able to open the
TOP_mixed.lef
file. The first thing I noticed was that there were many small obstructions. This is unexpected because you created the lef with
lef write -hide
. Upon closer examination, I saw that the
OUTLINE
layer was missing over most of the design. You probably want to change that to cover everything up to (and possibly including) the pins. The specs for lef say that obs and pins can overlap and that the pin takes priority. I don’t know if that’s true for openroad, or what happens if the pins extend beyond the obstruction by a small amount as in your design. My suggestion is to edit the cell bounding box (magic
FIXED_BBOX
property) to just cover all the pins. You might need to extend some pins to the boundary, because pins override obs only on the same layer. If you have internal metal2 pins covered by metal3 obs, there’s no way to connect.
e
I've removed the
merged.lef
line but its still giving me the
merged.lef
error, will look into it more closely shortly (not very familiar with Klayout). I've looked again at the .mag file and it does seem that the outline for TOP_mixed is a lot smaller than it should be
image.png
I'll try editing the FIXED_BBOX line in the .mag
m
This would be better posted as an issue with a test case as its very hard to make out these fine details from images
Also the LEF abstract looks far too detailed (its hardly abstracted)
e
Your advice fixed the problem @Mitch Bailey thank you. I was able to open the LEF in Klayout and move the FIXED_BBOX around so the boundry was correct - first problem. Second problem with the ports was that Magic thought the entire length of those M2 wires heading south was a port. This is why the LEF looked so strange. The reason it thought this was because the box of paint I'd used for a port was the same width as the wires. Just making the boxes for the ports a bit bigger than the wires solved that problem!
👍 1