<@U02UAUGSQ22>: That shouldn't be necessary, thou...
# caravel
t
@User: That shouldn't be necessary, though. There are no straps in the wrapper, just the rings. The user project should be able to use any pitch it wants for the M4 and M5 power straps.
h
Hi @Tim Edwards, I am not quite sure what you mean. I am following the description regarding the PDN here: https://openlane-docs.readthedocs.io/en/rtd-develop/doc/advanced_power_grid_control.html This is how
user_project_wrapper
looks like (just showing M4 and M5, full view and zoom in of there my macro is placed). You can see the H/V grid in M4 and M5, plus the “extra” M4 V-strips which are put there when the macro is hardened. This also fits the PDN generating code in `pdn_cfg.tcl`:
Copy code
if { $::env(DESIGN_IS_CORE) == 1 } {
    # Used if the design is the core of the chip
    define_pdn_grid -name stdcell_grid -starts_with POWER -voltage_domain CORE -pins [subst {$::env(FP_PDN_LOWER_LAYER) $::env(FP_PDN_UPPER_LAYER)}]
    add_pdn_stripe -grid stdcell_grid -layer $::env(FP_PDN_LOWER_LAYER) -width $::env(FP_PDN_VWIDTH) -pitch $::env(FP_PDN_VPITCH) -offset $::env(FP_PDN_VOFFSET) -starts_with POWER
    add_pdn_stripe -grid stdcell_grid -layer $::env(FP_PDN_UPPER_LAYER) -width $::env(FP_PDN_HWIDTH) -pitch $::env(FP_PDN_HPITCH) -offset $::env(FP_PDN_HOFFSET) -starts_with POWER
    add_pdn_connect -grid stdcell_grid -layers [subst {$::env(FP_PDN_LOWER_LAYER) $::env(FP_PDN_UPPER_LAYER)}]
} else {
    # Used if the design is a macro in the core
    define_pdn_grid -name stdcell_grid -starts_with POWER -voltage_domain CORE -pins $::env(FP_PDN_LOWER_LAYER)
    add_pdn_stripe -grid stdcell_grid -layer $::env(FP_PDN_LOWER_LAYER) -width $::env(FP_PDN_VWIDTH) -pitch $::env(FP_PDN_VPITCH) -offset $::env(FP_PDN_VOFFSET) -starts_with POWER
}
Screenshot 2022-01-24 at 09.00.28.png,Screenshot 2022-01-24 at 09.00.03.png
t
@Harald Pretl: This is wrong. The project should be placed in a layout
user_project_wrapper_empty
which has no pre-existing straps. The straps are generated and placed by openlane. @Manar Abdelatty: What happened to the empty project wrapper???
@jeffdi, @mshalan: Do you have any idea what happened to
user_project_wrapper_empty
and why the openlane build of the user project wrapper now drops the user project in a wrapper pre-arranged grid of power straps that prevents the user from having any custom pitch of the power straps?
h
Sorry for the confusion, I think I expressed myself not clearly enough: What I sent above was the result after hardening the user project in the wrapper. I have not checked how the
user_project_wrapper_empty
looks like. The hardening of the user project in OpenLane adds the M4-V straps to the user project, and the following hardening of the project wrapper adds the M5-H and the M4-V straps, having now M4-V straps of both steps. This is what causes issues when the two sets of M4-V straps are not properly aligned.
t
@Harald Pretl: No, I understand what your issue is. But something is broken with the system, because that's not how it is supposed to work. There should be a completely empty wrapper with no straps in it. The user project is dropped into it, and there should be no conflicts like what you're seeing. That layout was called
user_project_wrapper_empty
and it appears that it no longer exists in any repository, or at least I can't find it. I think the openlane developers may have replaced the
_empty
wrapper layer with the "standard" one but failed to use the right layout for it.
h
Got. I wait for guidance how to resolve this correctly. 🙂
t
Possibly Manar is not available now. @Marwan Abbas: Can you please take a look at this?
h
I just had a look in GitHub,
caravel_user_project
. Here in the
user_project_wrapper.gds
the vertical power straps are nicely cut out around the user macro.
t
The problem is being looked into.
h
So it looks like it depends on the versions used. I am using these, could you please propose a better/newer config?
@Tim Edwards @Marwan Abbas Could you look into this? Do you have a proposal which versions of Caravel/user_project_wrapper/OpenLane/open_pdks to use for MPW-5?
m
@Harald Pretl Hello, sorry for the late reply. versions tested: OpenLane tag:
2021.09.19_20.25.16
Caravel tag:
mpw-4b
Caravel-lite tag:
mpw-3
caravel_user_project tag:
mpw-3
open_pdks:
6c05bc48dc88784f9d98b89d6791cdfd91526676
h
this works, but only as long as one does NOT set
CARAVEL_LITE=0
… then there is an issue in Git which I can’t resolve.
m
@Harald Pretl I can't replicate your issue, what commands are you using?
h
@Marwan Abbas I use this:
Copy code
export STD_CELL_LIBRARY=sky130_fd_sc_hd
export CARAVEL_ENV_ROOT="$HOME/test/caravel_env"
export PDK_ROOT="$CARAVEL_ENV_ROOT/pdk"
export OPENLANE_ROOT="$CARAVEL_ENV_ROOT/openlane"
export CARAVEL_ROOT="$CARAVEL_ENV_ROOT/caravel_user_project/caravel"
export PRECHECK_ROOT="$CARAVEL_ENV_ROOT/precheck"
export CARAVEL_LITE=0
export CARAVEL_USER_PROJECT_COMMIT=mpw-3
export CARAVEL_COMMIT=mpw-4b
export OPEN_PDKS_COMMIT=6c05bc48dc88784f9d98b89d6791cdfd91526676
export OPENLANE_TAG=2021.09.19_20.25.16
with this:
Copy code
git clone <https://github.com/efabless/caravel_user_project.git>
cd caravel_user_project || exit
git checkout $CARAVEL_USER_PROJECT_COMMIT
make install
cd caravel || exit
git checkout $CARAVEL_COMMIT
cd ..
make pdk
make openlane
make precheck
and the error is this:
Copy code
HEAD is now at fc583ec Auto updated submodule references
Installing caravel as a submodule..
Submodule 'caravel-lite' (<https://github.com/efabless/caravel-lite>) registered for path 'caravel'
Cloning into '/home/harald/test/caravel_env/caravel_user_project/caravel'...
Submodule path 'caravel': checked out '0f16ba8eaae841a6f122fc0d5837005d3312fd2b'
error: pathspec 'master' did not match any file(s) known to git
make: *** [Makefile:80: install] Error 1
@User @User I just saw that you created an
mpw-5
tag in
caravel_user_project
(I was triggered to check, because the
make run-precheck
now fails on the
mpw-3
tag due to a parameter change in
mpw_precheck.py
). Should everyone move to this MPW-5 caravel? If yes, could you please post (again) a full set like this (see earlier in this thread)? OpenLane tag: 
2021.09.19_20.25.16
Caravel tag: 
mpw-4b
Caravel-lite tag: 
mpw-3
caravel_user_project tag: 
mpw-3
open_pdks: 
6c05bc48dc88784f9d98b89d6791cdfd91526676