Hi, I run into an error below while trying to run ...
# caravel
e
Hi, I run into an error below while trying to run iverilog simulation, /caravel_user_project/caravel/verilog/rtl/caravel_netlists.v41 Include file libs.ref/sky130_fd_io/verilog/sky130_ef_io.v not found is it due to wrong versioning of pdk? I installed openlane and built pdks via openlane repository
1
when i run
make pdk-nonnative
in /caravel_user_project output is like below,
Copy code
.
.
.
Starting to write libraries/sky130_fd_sc_hvl/latest/timing/sky130_fd_sc_hvl__ss_n40C_1v65_ccsnoise.lib (ccsnoise from basic, ccsnoise)
Overwriting comp_attribute,voltage_map with [['VPWR', 1.65], ['LOWHVPWR', 1.65], ['LVPWR', 1.65], ['VGND', 0.0], ['VNB', 0.0], ['VPB', 1.65]] (existing value of {'VGND': 0.0, 'VNB': 0.0} )
   Finish writing libraries/sky130_fd_sc_hvl/latest/timing/sky130_fd_sc_hvl__ss_n40C_1v65_ccsnoise.lib

Starting to write libraries/sky130_fd_sc_hvl/latest/timing/sky130_fd_sc_hvl__ss_n40C_1v65_lv1v60_ccsnoise.lib (ccsnoise from basic, ccsnoise)
Overwriting comp_attribute,voltage_map with [['VPWR', 1.65], ['LOWHVPWR', 1.65], ['LVPWR', 1.6], ['VGND', 0.0], ['VNB', 0.0], ['VPB', 1.65]] (existing value of {'VGND': 0.0, 'VNB': 0.0} )
   Finish writing libraries/sky130_fd_sc_hvl/latest/timing/sky130_fd_sc_hvl__ss_n40C_1v65_lv1v60_ccsnoise.lib

make[2]: Leaving directory '/home/emin/tech/asic/OpenLane/pdks/skywater-pdk'
make[1]: Leaving directory '/home/emin/tech/asic/caravel_user_project'
export CARAVEL_ROOT=/home/emin/tech/asic/caravel_user_project/caravel && make -f /home/emin/tech/asic/caravel_user_project/caravel/Makefile open_pdks
make[1]: Entering directory '/home/emin/tech/asic/caravel_user_project'
cd /home/emin/tech/asic/OpenLane/pdks/open_pdks && \
	git checkout master && git pull && \
	git checkout -qf 89f6ff4d9359a1ef9717b839e3e59dfdf33aaea6
Previous HEAD position was 1320776 Corrected the custom decap 12 cell. . . again (was missing a shape on local interconnect).
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
make[1]: Leaving directory '/home/emin/tech/asic/caravel_user_project'
docker run --rm -v /home/emin/tech/asic/OpenLane/pdks:/home/emin/tech/asic/OpenLane/pdks -v /home/emin/tech/asic/caravel_user_project/caravel:/home/emin/tech/asic/caravel_user_project/caravel -e CARAVEL_ROOT=/home/emin/tech/asic/caravel_user_project/caravel -e PDK_ROOT=/home/emin/tech/asic/OpenLane/pdks -u 1000:1000 efabless/openlane:current sh -c "cd /home/emin/tech/asic/caravel_user_project/caravel; make build-pdk; make gen-sources"
Unable to find image 'efabless/openlane:current' locally
docker: Error response from daemon: manifest for efabless/openlane:current not found: manifest unknown: manifest unknown.
See 'docker run --help'.
make: *** [Makefile:121: pdk-nonnative] Error 125
Can someone point me out where the problem resides?
Copy code
docker images --all
REPOSITORY          TAG                   IMAGE ID            CREATED             SIZE
efabless/openlane   2021.12.25_01.36.09   a47e9b3835e4        2 days ago          1.11GB
efabless/openlane   2021.12.02_13.26.15   b911a5bbbcaa        3 weeks ago         1.27GB
hello-world         latest                feb5d9fea6a5        3 months ago        13.3kB
efabless/dv_setup   latest                17d9828dab9e        12 months ago       10.8GB
I recloned OpenLane and run
make pull-openlane
, then run
make pdk-nonnative
in /caravel_user_project with corrected pointers to OpenLane. Output remains the same
I changed efabless/openlane:current to what
docker images -all
showed the latest. Successfully ran the docker image and another error showed up. Please see below,
Copy code
docker run --rm -v /home/emin/tech/OpenLane/pdks:/home/emin/tech/OpenLane/pdks -v /home/emin/tech/asic/caravel_user_project/caravel:/home/emin/tech/asic/caravel_user_project/caravel -e CARAVEL_ROOT=/home/emin/tech/asic/caravel_user_project/caravel -e PDK_ROOT=/home/emin/tech/OpenLane/pdks -u 1000:1000 efabless/openlane:2021.12.25_01.36.09 sh -c "cd /home/emin/tech/asic/caravel_user_project/caravel; make build-pdk; make gen-sources"
find: './gds': No such file or directory
[ -d /home/emin/tech/OpenLane/pdks/sky130A ] && \
	(echo "Warning: A sky130A build already exists under /home/emin/tech/OpenLane/pdks. It will be deleted first!" && \
	sleep 5 && \
	rm -rf /home/emin/tech/OpenLane/pdks/sky130A) || \
	true
cd /home/emin/tech/OpenLane/pdks/open_pdks && \
	./configure --enable-sky130-pdk=/home/emin/tech/OpenLane/pdks/skywater-pdk/libraries --with-sky130-local-path=/home/emin/tech/OpenLane/pdks --enable-sram-sky130=no    && \
	cd sky130 && \
	make veryclean && \
	make && \
	make SHARED_PDKS_PATH=/home/emin/tech/OpenLane/pdks install && \
	make clean
configure: WARNING: unrecognized options: --with-sky130-local-path
checking for a Python interpreter with version >= 3.4... python3
checking for python3... /usr/bin/python3
checking for python3 version... 3.6
checking for python3 platform... linux
checking for python3 script directory... ${prefix}/lib/python3.6/site-packages
checking for python3 extension module directory... ${exec_prefix}/lib64/python3.6/site-packages
checking python3 module: distutils... yes
checking for a sed that does not truncate output... /usr/bin/sed
configure: Found technology directories: sky130
Checking technology sky130...
configure: Checking specified path for 'sky130' at /home/emin/tech/OpenLane/pdks/skywater-pdk
checking for /home/emin/tech/OpenLane/pdks/skywater-pdk... yes
configure: 'sky130' source path found at /home/emin/tech/OpenLane/pdks/skywater-pdk
configure: Link targets set to none
configure: Found tools: klayout magic netgen irsim openlane qflow xschem
checking for magic... /build//bin/magic
checking for patch... /usr/bin/patch
configure: Package 'sky130_ml_xx_hd' will be installed automatically during make.
configure: Package 'xschem_sky130' will be installed automatically during make.
configure: Disabling package 'sky130_sram_macros'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IndexError: list index out of range
configure: Package 'sky130_osu_t12' will not be installed.
configure: Package 'sky130_osu_t15' will not be installed.
configure: Package 'sky130_osu_t18' will not be installed.
configure: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow xschem
configure: creating ./config.status
config.status: creating ../sky130/Makefile
config.status: creating ../Makefile
Build configured successfully
configure: WARNING: unrecognized options: --with-sky130-local-path
make[1]: Entering directory `/home/emin/tech/OpenLane/pdks/open_pdks/sky130'
set -f ; ../common/foundry_install.py -std_format -target /home/emin/tech/OpenLane/pdks/open_pdks/sky130/sky130A -clean
Done removing staging area.
rm -f sky130A_make.log
rm -f sky130A_install.log
# Legacy name
rm -f sky130A_migrate.log
make[1]: Leaving directory `/home/emin/tech/OpenLane/pdks/open_pdks/sky130'
make[1]: Entering directory `/home/emin/tech/OpenLane/pdks/open_pdks/sky130'
if test "x/home/emin/tech/OpenLane/pdks/skywater-pdk" != "x" ; then \
	if test -d "/home/emin/tech/OpenLane/pdks/skywater-pdk" ; then \
		echo "Using existing installation of SkyWater PDK from /home/emin/tech/OpenLane/pdks/skywater-pdk" ; \
	else \
		echo "Downloading SkyWater PDK from <https://github.com/google/skywater-pdk>" ; \
		custom/scripts/pdk_download.sh <https://github.com/google/skywater-pdk> /home/emin/tech/OpenLane/pdks/skywater-pdk ; \
	fi ; \
fi
Using existing installation of SkyWater PDK from /home/emin/tech/OpenLane/pdks/skywater-pdk
if test "x../sources/sky130_ml_xx_hd" != "x" ; then \
	if test -d "../sources/sky130_ml_xx_hd" ; then \
		echo "Using existing installation of alphanumeric library from ../sources/sky130_ml_xx_hd" ; \
	else \
		echo "Downloading alphanumeric library from <https://github.com/PaulSchulz/sky130_pschulz_xx_hd>" ; \
		../scripts/download.sh <https://github.com/PaulSchulz/sky130_pschulz_xx_hd> ../sources/sky130_ml_xx_hd ; \
	fi ; \
fi
Downloading alphanumeric library from <https://github.com/PaulSchulz/sky130_pschulz_xx_hd>
Cloning <https://github.com/PaulSchulz/sky130_pschulz_xx_hd> to ../sources/sky130_ml_xx_hd
Cloning into '../sources/sky130_ml_xx_hd'...
git: 'remote-https' is not a git command. See 'git --help'.
make[1]: *** [alpha-repo] Error 128
make[1]: Leaving directory `/home/emin/tech/OpenLane/pdks/open_pdks/sky130'
make: *** [build-pdk] Error 2
find: './gds': No such file or directory
make: *** No rule to make target `/home/emin/tech/OpenLane/pdks/sky130A', needed by `gen-sources'.  Stop.
m
Hey @User, thanks for reporting this. For one, it looks like `caravel`'s
Makefile
(using
--with-sky130-local-path
) is not in sync with the `open_pdks`'s
configure
script (expecting
--prefix
as of August) . I'll log an issue. This may only show up if the pdk is installed in a non-default location. @User @User @User Absolutely, no guarantees, but you could try changing
with-sky130-local-path
to
prefix
in
/home/emin/tech/asic/caravel_user_project/caravel/Makefile
.
e
not tried yet but open_pdks sits under OpenLane/pdks is it non-default?
what about error on efabless/openlane:current? Am I missing the correct installation?
m
@User Sorry about any confusion. How about not running
make pdk-nonnative
in
caravel_user_project
? This is what works for me: (not exactly, but I think it's close)
Copy code
1. clone openlane
2. cd OpenLane
3. make pull-openlane
4. make pdk
5. export OPENLANE_ROOT=$PWD 
6. cd <some_directory>/caravel_user_project
7. export CARAVEL_ROOT=$PWD
e
I think it should be $PWD/caravel at the end. But i did the same at first. When I wanted to run simulations, iverilog complained on missing verilog file on sky130. Please see the very first comment for that one. Then I thought there is wrong versionning of the pdk due to building pdk inside OpenLane folder instead of user project
@User Thanks but still not working
I tried to make pdk few times and finally missing sky130 files appeared. I don't know what did change really
I was on master branch. Maybe they've updated something
m
Same issues I am also facing
e
I think better we wait for repositories to develop since caravel is in a transition stage so putting all the things together results in a conflicted state i guess
m
Then how others made it for mpw-4?!?!