OpenLane icon indicating copy to clipboard operation
OpenLane copied to clipboard

Remove terrible placement configuration variables or output a warning

Open armleo opened this issue 3 years ago • 9 comments

Prompt

In Skywater's Slack you can see people are constantly having issues with the routing. The routing just crashes or errors out. Most of the time reasons for this have nothing to do with the designs themselves. Bonus, the errors are very cryptic and hard to debug. For example:

image

This might seem like a one-off case, but literally, almost everybody who worked on designs using OpenLane encountered this issue, including me.

Proposal

All problem is caused by a couple of placement variables: PL_BASIC_PLACEMENT PL_SKIP_INITIAL_PLACEMENT PL_RANDOM_GLB_PLACEMENT PL_RANDOM_INITIAL_PLACEMENT. My suggestion would be to at least output a warning at the end of the flow if these variables are set, it would be even better if they are removed altogether. There is no reason to have them in the OpenLane anyway.

These configurations create more problems than they solve, therefore the best course of action would be to remove them entirely.

armleo avatar Jul 03 '22 15:07 armleo

I upvote this!

maliberty avatar Jul 14 '22 18:07 maliberty

They are sometimes needed for small designs though. For tiny tapeout we had 160 designs, and 20 of them needed PL_BASIC_PLACEMENT set or they would fail to route.

mattvenn avatar Dec 05 '22 13:12 mattvenn

Doesnt disabling timing based routing help? Or some other options like increased die-to-core distance?

armleo avatar Dec 05 '22 13:12 armleo

They are sometimes needed for small designs though. For tiny tapeout we had 160 designs, and 20 of them needed PL_BASIC_PLACEMENT set or they would fail to route.

@mattvenn I would like to fix any such cases so that this can be removed. Please file issues as needed

maliberty avatar Dec 05 '22 16:12 maliberty

https://github.com/TinyTapeout/tt02-test-invert https://github.com/argunda/tt02-TinyPFD https://github.com/13arn/tt02_counter_steamdeck https://github.com/NYIT-CNS/cns001-tt02-submission1 https://github.com/shaos/tt02-submission-shaos https://github.com/mole99/tt02-1bit-alu https://github.com/jglim/tt02-bcd-7seg https://github.com/mmolteni-secpat/tinytapeout02_chi3shares https://github.com/aiunderstand/tt02-4bit-tristate-loadable-counter https://github.com/ctag/tt02-submission-ctag https://github.com/AsmaMohsin1507/tt02-channel-coding https://github.com/ternary-info/tt02-submission-shaos3 https://github.com/saicharan0112/tt02-submission-template https://github.com/theFestest/tt02-4x4-ram https://github.com/jeanthom/tinytapout-lock https://github.com/cmu-stuco-98154/f22-tt02-qilins https://github.com/prabaldutta/tt02-adi-demo https://github.com/TinyTapeout/tt02-test-7seg

mattvenn avatar Dec 05 '22 17:12 mattvenn

Is that enough, or you want me to make a new issue that references all these designs?

mattvenn avatar Dec 05 '22 17:12 mattvenn

@mattvenn it would be helpful if you could pick one of these and open an issue with a standalone test case. Once we resolve that we can see how many remain problematic.

maliberty avatar Dec 05 '22 19:12 maliberty

opened here: https://github.com/The-OpenROAD-Project/OpenLane/issues/1559

mattvenn avatar Dec 08 '22 18:12 mattvenn

Where are the GH issues for "In Skywater's Slack you can see people are constantly having issues with the routing."?

maliberty avatar Jun 23 '23 23:06 maliberty