in actuality this folder seems to be located at /h...
# analog-design
j
in actuality this folder seems to be located at /home/johnsimons/pdk/sky130A/libs.ref/sky130_fd_io/verilog
t
This is a difference in the
EF_STYLE
setting in open_pdks. This variable only exists because of the structure of the PDKs used at Efabless before the SkyWater PDK, and the variable is there to support backwards compatibility with Efabless. There is no reason for anyone outside of Efabless to set this variable (probably it should not be allowed to be set at all for the SkyWater process).
j
As you may have seen in the other thread I figured out it was getting auto-set by one of the Makefiles in the caravel directories based on the PDK_ROOT referring to it's default $HOME/.volare/ as far as I could tell. Just FYI, as I did not set it myself which would make it user error. If you want I can post an issue report of it
@Tim Edwards @Marwan Abbas @jeffdi apologies for the tag but you have pushed the last commits and it seems something broke/needs updating. I have spent another few hours trying to get caravel_user_project_analog to work on a clean Ubuntu 22.04 install but it really seems that the instructions or Makefiles have gone out of date. I have a working setup with the digital version of the template. I have followed the instructions on https://github.com/efabless/caravel_user_project_analog/blob/main/docs/source/index.rst but running
make verify-mprj_por
gives me the same error as before. Perhaps one of you can run through 1. git clone https://github.com/efabless/caravel_user_project_analog.git 2. cd caravel_user_project_analog 3. make install 4. export PDK_ROOT=$(pwd)/dependencies/pdks # same as digital for ease but can be whatever 5. make pdk-with-volare 6. make simenv 7. export CARAVEL_ROOT=$(pwd)/caravel 8. export SIM=RTL 9. make verify-mprj_por # this errors on the error as before where it will set $EF_STYLE 10. make verify # this also errors out on trying to run a gcc located in /ef/ 11. make update_caravel # not necessary to get working for the testbenches but is also broken #9-#11 all error out because of outdated(?) path references that come from nested Makefiles that are hard to follow and untangle. I'd really appreciate the eyes of someone who knows how it should actually work
I can also make a GitHub issue with the same info if that is easier
Furthermore setting PDK_ROOT=$PDK_ROOT)/sky130B seemed to make some things work but this should not be necessary for one and second it will then be unable to find the management soc wrapper even though the paths seem correct. All of this works fine in the digital template
Okay comparing the two templates I see that https://github.com/efabless/caravel_user_project_analog/blob/main/Makefile#L63 needs -e PDK=$(PDK) as per https://github.com/efabless/caravel_user_project/blob/main/Makefile#L90 in order to find the PDK properly
This moves the goal post however as it still errors on the management soc wrapper
One would have hoped that also copying over https://github.com/efabless/caravel_user_project/blob/main/Makefile#L91-L92 would solve that issue but alas
Copy code
johnsimons@ubuntu-ic:~/projects/caravel_user_project_analog$ make verify-mprj_por
docker run -v /home/johnsimons/projects/caravel_user_project_analog:/home/johnsimons/projects/caravel_user_project_analog -v /home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks:/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks \
                -v /home/johnsimons/projects/caravel_user_project_analog/caravel:/home/johnsimons/projects/caravel_user_project_analog/caravel \
                -e TARGET_PATH=/home/johnsimons/projects/caravel_user_project_analog -e PDK_ROOT=/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks \
                -e CARAVEL_ROOT=/home/johnsimons/projects/caravel_user_project_analog/caravel \
	-e PDK=sky130B \
                -u : efabless/dv_setup:latest \
                sh -c "cd /home/johnsimons/projects/caravel_user_project_analog/verilog/dv/mprj_por && export SIM=RTL && make"
/opt/riscv32i/bin/riscv32-unknown-elf-gcc -I /home/johnsimons/projects/caravel_user_project_analog/caravel -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,/home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel/sections.lds,--strip-debug -ffreestanding -nostdlib -o mprj_por.elf /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel/start.s mprj_por.c
/opt/riscv32i/bin/riscv32-unknown-elf-objcopy -O verilog mprj_por.elf mprj_por.hex 
# to fix flash base address
sed -i 's/@10000000/@00000000/g' mprj_por.hex
iverilog -DFUNCTIONAL -DSIM -I /home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B \
-I /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel -I /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/rtl \
-I ../    -I ../../../verilog/rtl \
mprj_por_tb.v -o mprj_por.vvp 
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11378: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11378: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11379: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11379: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11380: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11380: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11381: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11381: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11382: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11382: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/rtl/caravan_netlists.v:92: Include file mgmt_core_wrapper.v not found
vvp mprj_por.vvp
and unfortunately with those env vars added the same result still:
Copy code
ohnsimons@ubuntu-ic:~/projects/caravel_user_project_analog$ sudo killall vvp
[sudo] password for johnsimons: 
johnsimons@ubuntu-ic:~/projects/caravel_user_project_analog$ rm mprj_por.elf mprj_por.vvp

johnsimons@ubuntu-ic:~/projects/caravel_user_project_analog$ make verify-mprj_por
docker run -v /home/johnsimons/projects/caravel_user_project_analog:/home/johnsimons/projects/caravel_user_project_analog -v /home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks:/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks \
                -v /home/johnsimons/projects/caravel_user_project_analog/caravel:/home/johnsimons/projects/caravel_user_project_analog/caravel \
                -e TARGET_PATH=/home/johnsimons/projects/caravel_user_project_analog -e PDK_ROOT=/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks \
                -e CARAVEL_ROOT=/home/johnsimons/projects/caravel_user_project_analog/caravel \
	-e PDK=sky130B \
	-e CORE_VERILOG_PATH=/home/johnsimons/projects/caravel_user_project_analog/mgmt_core_wrapper/verilog \
	-e MCW_ROOT=/home/johnsimons/projects/caravel_user_project_analog/mgmt_core_wrapper \
                -u : efabless/dv_setup:latest \
                sh -c "cd /home/johnsimons/projects/caravel_user_project_analog/verilog/dv/mprj_por && export SIM=RTL && make"
/opt/riscv32i/bin/riscv32-unknown-elf-gcc -I /home/johnsimons/projects/caravel_user_project_analog/caravel -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,/home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel/sections.lds,--strip-debug -ffreestanding -nostdlib -o mprj_por.elf /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel/start.s mprj_por.c
/opt/riscv32i/bin/riscv32-unknown-elf-objcopy -O verilog mprj_por.elf mprj_por.hex 
# to fix flash base address
sed -i 's/@10000000/@00000000/g' mprj_por.hex
iverilog -DFUNCTIONAL -DSIM -I /home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B \
-I /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/dv/caravel -I /home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/rtl \
-I ../    -I ../../../verilog/rtl \
mprj_por_tb.v -o mprj_por.vvp 
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11378: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11378: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11379: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11379: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11380: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11380: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11381: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11381: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11382: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/dependencies/pdks/sky130B/libs.ref/sky130_fd_io/verilog/sky130_fd_io.v:11382: warning: choosing typ expression.
/home/johnsimons/projects/caravel_user_project_analog/caravel/verilog/rtl/caravan_netlists.v:92: Include file mgmt_core_wrapper.v not found
vvp mprj_por.vvp
and yes mgmt_core_wrapper/* exists. I installed it. To me it seems like it should be added as an -I in the $(VERIFY_COMMAND), perhaps?
Modifying the iverilog call to add the path to mcw also just moves the problem forward to more missing dependencies (DFFRAM, mgmt_core).
make openlane
is also broken, it deletes itself and then complains about the folder not existing. I am starting to get pretty frustrated with this template as it seems hopelessly broken.
Copy code
/home/johnsimons/projects/caravel_user_project_analog/caravel/mgmt_core_wrapper/verilog/rtl/mgmt_core_wrapper.v:145: error: Unknown module type: mgmt_core
/home/johnsimons/projects/caravel_user_project_analog/caravel/mgmt_core_wrapper/verilog/rtl/mgmt_core_wrapper.v:243: error: Unknown module type: DFFRAM
513 error(s) during elaboration.
*** These modules were missing:
        DFFRAM referenced 1 times.
        mgmt_core referenced 1 times.
***