Ang Li
03/11/2022, 5:59 AMtile_clb
) is hardened and replicated in a larger design (top
, which will be instantiated in user_project_wrapper
). The larger design also contains logic.
At this moment, we can get tile_clb
DRC- and LVS-clean with openlane. Routing of tile_clb
uses up to met2, except for 5 met4 tracks for PDN (auto-generated with the openlane flow, no hack in config.tcl
). However, LEF LVS fails on top
with a bunch of instance and net mismatches. The macros are manually placed in top
, and we've been careful to avoid met4 PDN overlaps. Enough space is left between macros to make sure all met1 rails are connected to at least one met4 POWER and one met4 GROUND.
We've tried:
- Connecting the PDN pins in RTL (guarded with USE_POWER_PINS
)
- Set FP_PDN_ENABLE_MACROS_GRID
to 1 in top
, and set FP_PDN_MACROS
to the list of all macros
We haven't tried FP_PDN_MACRO_HOOKS
, because slack history suggests that it is unnecessary if we have only one power domain and the pins are named vccd1
and vssd1
.
OpenLane log shows that the number of instances match, but the number of nets mismatch (off by 2x number of hard macros). It seems that this is related to PDN, but after checking results/lvs/top.lvs.lef.log
, a variety of instances are actually not matched.
Any insights? We'd be happy to share any logs if anyone offers help. Great thanks in advance!Mitch Bailey
03/11/2022, 6:38 AMMitch Bailey
03/11/2022, 7:53 AMgds/user_project_wrapper.gds
matches verilog/gl/user_project_wrapper.v
from your repo. I see no top
blocks. I'm on e8d85b8681b98f3ef613591326f13b72a9f197f5 (HEAD -> prga-mpw-5b
.Dinesh A
03/11/2022, 9:06 AMGeorgios T
03/11/2022, 1:44 PMprga
submodule which will be integrated with the wrapper as a next step.Ang Li
03/11/2022, 2:31 PMtop
which is under openlane/prga
at the moment. unfortunately no gds is generated for top yetAng Li
03/11/2022, 2:37 PMtop
and see if that's the reasonMitch Bailey
03/11/2022, 2:38 PMAng Li
03/11/2022, 2:39 PMruns
folder?Ang Li
03/11/2022, 2:39 PMmake prga
can reproduce the problem, but synthesis takes some serious time.Ang Li
03/11/2022, 2:44 PMMitch Bailey
03/11/2022, 2:56 PMMitch Bailey
03/11/2022, 2:57 PMAng Li
03/11/2022, 2:58 PMtop.lvs.powered.v
under runs/results/lvs
, and top.gds
,top.lef
, top.lef.mag
, top.lef.spice
, top.mag
and top.spice
under runs/results/magic
. I'll share these files. @User is not working with us πAng Li
03/11/2022, 3:02 PMAng Li
03/11/2022, 3:07 PMAng Li
03/11/2022, 3:28 PMMitch Bailey
03/11/2022, 4:42 PMtile_clb
also.Ang Li
03/11/2022, 4:43 PMAng Li
03/11/2022, 4:45 PMcaravel/spi/lvs
, but it's not added into the config.tcl
of top
, so I don't know if top
is reading itAng Li
03/11/2022, 4:46 PMMitch Bailey
03/11/2022, 4:52 PMtile_clb
Net: i_tile_x3y3/vssd1 |(no matching net)
tile_clb/vssd1 = 1 |
|
Net: i_tile_x3y3/vccd1 |(no matching net)
tile_clb/vccd1 = 1 |
|
I'll look at the gds.Ang Li
03/11/2022, 4:58 PMAng Li
03/11/2022, 4:58 PMMitch Bailey
03/11/2022, 4:59 PMtile_clb
are not connected to caravel power.Ang Li
03/11/2022, 4:59 PMMitch Bailey
03/11/2022, 5:02 PMAng Li
03/11/2022, 5:05 PMAng Li
03/11/2022, 5:06 PMAng Li
03/11/2022, 5:08 PMFP_PDN_ENABLE_MACRO_GRID
and FP_PDN_MACROS
do?Mitch Bailey
03/11/2022, 5:13 PMtile_clb.spice
file above is extracted from the layout. The other tile_clb
verilog files appear to be rtl. Do you have gl verilog? That's what's needed for LVS.Ang Li
03/11/2022, 5:13 PMAng Li
03/11/2022, 5:13 PMDinesh A
03/11/2022, 5:32 PMMitch Bailey
03/11/2022, 5:38 PMtop
is the cell name.Ang Li
03/11/2022, 5:38 PMmake prga
or make user_project_wrapper
? we haven't started working on the wrapper yetMitch Bailey
03/11/2022, 5:41 PMAng Li
03/11/2022, 5:43 PMMitch Bailey
03/11/2022, 5:44 PMAng Li
03/11/2022, 5:45 PMtop
, or I should customize pdn generation within tile_clb
?Ang Li
03/11/2022, 5:46 PMtile_clb
routes up to met2, my hunch is that doing so at top
is easier?Mitch Bailey
03/11/2022, 6:12 PMtile_clb
. Connect those, and you should be good to go.Ang Li
03/11/2022, 6:26 PMAng Li
03/12/2022, 4:36 PMtile_clb
PDN to using met2/met3, and connect met3 to the met4 PDN in top
. LVS can pass now. There are some hold violations that I need to look into, but they should be unrelated to the PDN. Thanks for your help!