Hi, all How can i get the GDSII file of caravel, i...
# caravel
e
Hi, all How can i get the GDSII file of caravel, i mean my user_project_wrapper + management_wrapper?, i try with make ship but it didn't work.
m
@Emilio Baungarten sky130? gf180? The caravel lite repo is installed by default for sky130. 1.
export CARAVEL_LITE=0
2.
make install
Should update the delete and reinstall the full caravel repo at
CARAVEL_ROOT
. The 2 steps before
make ship
are 1.
env USER_ID=00000000 make set_user_id
where
00000000
is an 8 digit hexadecimal number. This will program the internal id and also set the metal lettering on the final chip. If you want to test reading the id, I suggest a number other than
00000000
. 2.
make gpio_defaults
this will use the information in
verilog/rtl/user_defines.v
to set the power up configuration for each gpio. If these complete, then you can run
make ship
. (This is for the digital version. Use
make truck
for the analog version). You may want to run
make compress
after that because the previous steps uncompressed several large files.
e
Hi David, Thanks for your answer, I followed your instructions and I got the following message when I used make ship
m
Is
Caravel_HLS
a clone of
caravel_user_project
? What are
PDK_ROOT
and
PDK
set to? Can you post the full output and not just the last screen?
e
Yes Caravel_HLS is a clone of caravel_user_project with the full version installed. PDK_ROOT and PDK are set to: declare -x PDK="sky130A" declare -x PDK_ROOT="/media/baungarten/CentOS7/LASCAS_2024/Caravel_HLS/caravel/dependencies/pdks" I Attach the output after the make ship command.
m
make install
deletes the caravel directory, so your pdk got deleted also. I recommend setting
export PDK_ROOT=/media/baungarten/CentOS7/LASCAS_2024/Caravel_HLS/dependencies/pdks
and then
make pdk-with-volare
e
I get the following error:
Failure to read entire subtree of the cell.
I/O error in writing file /media/baungarten/CentOS7/LASCAS_2024/CAravel_HLS/gds/caravel.gds.
File may be incompletely written.
make[2]: Leaving directory '/media/baungarten/CentOS7/LASCAS_2024/CAravel_HLS'
Make ship completed.
The terminal shows:
I tried with the user_example, and downloading the caravel_user_project. The commands that i use were:
$ git clone <https://github.com/efabless/caravel_user_project.git> CAravel_HLS
cd CAravel_HLS/
$ export CARAVEL_LITE=0
$ export PDK=sky130A
$ make setup
$ make install
$ env USER_ID=0000000F make set_user_id
$ export PDK_ROOT=/media/baungarten/CentOS7/LASCAS_2024/Caravel_HLS
$ make pdk-with-volare
$ make gpio_defaults
$ make ship
m
@Emilio Baungarten Let’s rearrange the order. You should probably set
PDK_ROOT
before anything. This may get deleted, give it it’s own directory.
Copy code
$ git clone <https://github.com/efabless/caravel_user_project.git> Caravel_HLS
$ export PDK_ROOT=$PWD/Caravel_HLS/dependencies/pdks  
$ export PDK=sky130A
$ export CARAVEL_LITE=0
$ cd Caravel_HLS/
$ make setup
$ env USER_ID=0000000F make set_user_id 
$ make gpio_defaults  
$ ulimit -n 2024
$ make ship
Note that is will create a caravel chip based on default data. Is your design data available anywhere?
e
Hi David, Sorry for this series of troubles. I followed your instructions this is my history: 1997 git clone https://github.com/efabless/caravel_user_project.git Caravel_HLS 1998 export PDK_ROOT=$PWD/Caravel_HLS/dependencies/pdks 1999 export PDK=sky130A 2000 export CARAVEL_LITE=0 2001 cd Caravel_HLS/ 2002 make setup 2003 env USER_ID=0000000F make set_user_id 2004 make gpio_defaults 2005 ulimit -n 2024 2006 make ship 2007 history But at the end of the flow i get a similar result:
m
Ahh. That may be the development version. Sorry. How about this
Copy code
git clone -b mpw-9e <https://github.com/efabless/caravel_user_project.git> Caravel_HLS
e
The same problem 😅
Sorry if it takes me a while to reply but downloading Caravel, and setting everything up takes time.
m
Looks like the
Terminal_output
is missing the beginning of the output. Is there a
signoff/build/make_ship.out
file? Can you share it?
e
Here is the file.
Sorry i didn´t know about that file I just copied the terminal log as much as I can
m
Looks like you’ll should update to
magic
Copy code
Error:  Magic version 8.3.411 is required by this techfile, but this version of magic is 8.3.348.
Can you list the contents of
Caravel_HLS/mag
? Maybe the standard cells have been mistakenly duplicated there. Is
CARAVEL_ROOT
set to anything? (
echo $CARAVEL_ROOT
)
e
list of Caravel_HLS/mag: caravan_core.mag user_id_programming.mag caravel_core.mag user_id_prog_zero.mag gpio_defaults_block_0403.mag user_id_textblock.mag gpio_defaults_block_0801.mag user_project_wrapper.mag gpio_defaults_block_1803.mag user_proj_example.mag mag2gds_caravel.tcl echo $CARAVEL_ROOT shows nothing. and how can i update magic?, i use "sudo apt-get install magic" but says that i get the newest version of magic "magic is already the newest version (8.2.157+ds.1-1)"
m
how about the contents of
caravel/mag
? let’s worry about updating magic later.
e
advSeal_6um_gen.mag caravel.mag empty_macro.mag open_source.mag buff_flash_clkrst.mag caravel_motto.mag gpio_defaults_block.mag primitives caravan_core.mag caravel_openframe.mag gpio_logic_high.mag seal_ring_corner_abstract.mag caravan-eco-antenna.mag chip_io_alt.mag hexdigits simple_por.mag caravan_logo.mag chip_io_gpio_connects_horiz.mag housekeeping_alt.mag spare_logic_block.mag caravan.mag chip_io_gpio_connects.mag housekeeping.mag user_analog_project_wrapper.mag caravan_motto.mag chip_io.mag .magicrc user_id_programming.mag caravan_power_routing.mag chip_io_openframe.mag manual_power_connections.mag user_id_textblock.mag caravan_power_routing_orig.mag constant_block.mag mgmt_protect_hv.mag user_project_wrapper.mag caravan_signal_routing.mag copyright_block_a.mag mprj2_logic_high.mag xres_buf.mag caravel_clocking.mag copyright_block.mag mprj_io_buffer.mag caravel_core.mag copyright_block_of.mag mprj_logic_high.mag caravel_logo.mag empty_macro_1.mag openframe_project_wrapper.mag
m
looks good. Actually, this may be a magic version problem. In some other directory
Copy code
which magic
to find where magic is installed. Do you have write permission on this directory? If the file is
/usr/local/bin/magic
and you have write permission, then the install directory below will be
/usr/local
. If you don’t have write permission the user
$HOME/local
as the install directory.
Copy code
git clone 
cd magic
./configure --prefix=<install_directory>
make
make install
If you used
$HOME/local
as your install directory, you’ll need to modify your
PATH
.
Copy code
export PATH=$HOME/local/bin:$PATH
e
I followed your instructions and yes the problem was magic version, the
make ship
works, and now i will try with my design. Thanks for your support and my apology for this large post.
👍 1