How are people planning to implement their designs...
# caravel
d
How are people planning to implement their designs into caravel? * Are you directly adding sources to user_project_wrapper.config, keeping the DIE_AREA + pins etc. the same as required (I think this recommended in the videos) * Are you doing something similar to user_proj_example, making the GDS/LEF out of that, then adding your top level verilog as a blackbox treating? I don't have a design that needs the entire user project area and doing the former has an extremely long runtime. I've not tried much with the latter approach yet but if there is a runtime benefit that would be great
There was some chat about this further up, want to see what has / has not worked for people
typo: "adding your top level verilog as a blackbox, treating the user_proj_example as a wrapper for the existing design and nothing else"?
t
Yeah, I'll do it exactly like user_proj_example with the top level wrapper.
Too much area (1) takes forever and (2) actually comes up with worse placement / routing ...
d
yes it does seem to make it much, much worse.. https://github.com/efabless/openlane/blob/develop/doc/hardening_macros.md#power-grid-pdn It looks like every component except the top level would be a macro (which is caravel, which we shouldn't be concerend with?) but the config.tcl examples don't use
DESIGN_IS_CORE = 0
, such as DFFRAM and mgmt_core, what part am I missing here?
w
I am also planning to put
my_soc
as the blackbox in the wrapper. The caravel should then just be placing and routing between them.
t
@drr No, don't pay attention to that. you want to synthesize your top level normally and have it generate all the power grid. The wrapper will really just take care of routing to the pins.
d
@tnt is the config.tcl you have in both the wrapper and wrapped module pretty much the same as the default caravel ones, except for the die area on your user project?
t
huh no, the one for my project is significantly different
custom PDN, macro placement, routing options, ...
t
No, that's for an internal macro.
The top level isn't published anywhere, I didn't go through the whole process ..
but it's "similar" but doesn't have the DESIGN_IS_CORE
d
right
I'm having another go with this config at the moment: https://github.com/dan-rodrigues/caravel/blob/6fd902358921942133a721f9cfa3a80fa0ec457e/openlane/vdp_lite_user_proj/config.tcl with the intent that this will be placed into user_project_wrapper once the gds/lef are ready
extra
GLB_RT_MAX_DIODE_INS_ITERS
iterations seems to help but doesn't get rid of all violations with the default strategy