Design/display two die in "one" flow #1351
Replies: 2 comments
-
I think your best bet is to save the pin locations to some sort of file or script and then use that file to set the pin locations in both the top and bottom dies. Note that there is some work ongoing to make OpenROAD more 3D-capable, but no firm targets on that yet. |
Beta Was this translation helpful? Give feedback.
-
There is no way to unload the design in the current OR. You are better off structuring this as multiple runs. Note that we recently added [-write_pin_placement file_name] to place_pins so it is easy to save their locations for replay (see https://github.com/The-OpenROAD-Project/OpenROAD/tree/master/src/ppl#place-all-pins) As we get more 3d support in the tool this will become easier. |
Beta Was this translation helpful? Give feedback.
-
Hello,
This question is kind of a follow up to #1235. I want to implement a flow allowing for 3D face-to-face IO bonding.
I work mostly in the gui, using TCL commands and already have something working using a .DEF file, and "splitting" the flow between the bottom and top die (where a full restart is needed in between them, but the IO pin position is obtained using the .def file).
In know now that there is a way to obtain the pin position using the DB interface, but from my understanding I can get them only if a design has already been loaded/designed previously. I tried to just (in a very dumb fashion) brute force my way into designing a top die by just running a full RTL-to-GDS flow on top of the "bottom die" design, to see what woud happen.
It caused OpenROAD to, unsurprisingly, crash when using the global placement command with that log :
My guess is that it is due to the fact that a previous design is already placed and OpenROAD doesn't expect to be asked to place something again on top of it since it is highly illegal.
I then started to search for a way to clear/clean/flush the bottom die design (except obviously for the IO pins), but unsuccessfully since the clean command is for the Makefile and just deletes intermediates design files and thus would not be useful for me. I also tried using
ord::clear
, but it again crashed the app (so I guess it is not as simple as "clear the database").The flow that I have in mind would be :
I would like for those steps to be executed without intermediate reset/intervention like I have right now, in a way that respects the "no-human-in-loop" philosophy of OpenROAD.
So my questions are :
Beta Was this translation helpful? Give feedback.
All reactions