I'm trying to harden user_project_wrapper to inclu...
# openlane
m
I'm trying to harden user_project_wrapper to include my module and 2 previously hardened macros. config is here: https://github.com/mattvenn/multi-project-harness/tree/matt-openlane-config/openlane/user_project_wrapper
t
That's because it's probably not. The default
interactive.tcl
(and really the whole stuff in
user_project_wrapper
) is setup only to wire things, and not to synthesize any logic.
m
t
The way I see it, you have 2 options : • Come up with a custom
interactive.tcl
scripts that combines the normal flow ( from openlane's
flow.tcl
) add adds the custom steps needed to be a top level module for the caravel: • Put all your custom muxing logic into another macro which has exposed external ports to connect to 'upstream' and to each of your subprojects independently, harden that separately like you hardened the subprojects and then in the
user_project_wrapper
you only have wiring.
m
how about this 3rd option: harden the muxing logic as well as all the blackboxed macros into one big macro
then wire that into user_project_wrapper
I don't want to do #1 because it feels like a world of pain.
t
Sure that works too, I thought you wanted to keep the subproject separate.
m
well they will still be separated pre-hardened macros
but I guess swimming in a sea of decap
I was trying to avoid #2 because it involves a lot of hacking on verilog that I had hoped was finished
but maybe it's the best option
t
Oh, you want to keep them as macro inside ... huh, yeah it's possible too but beware of power grid.
the user project wrapper layer will not "see" the grid/pads from your inside macro and so won't connect to them.
you can probably do something similar to what I did to power the SRAMs: • Have the inside macro not use
met5
at all and export their
met4
straps as power pads in the LEF • Have your muxing macro generate
met5
straps over the whole thing and create proper vias to the exposed `met4`straps from the subblocks • Have those
met5
straps match the top level pitch of 180, expose them all as pads and have the LEF a bit and then align it properly in the wrapper to match the top level power grid.
m
dang, now #2 sounds easier