Hey everyone, are there instructions somewhere for...
# caravel
d
Hey everyone, are there instructions somewhere for how to generate a whole-chip GDS? (Instead of just user project area) I am mainly interested in generating an image of the whole chip with my project visible. If there was a way to download the GDS from a tapeout job on the Efabless Galaxy Desktop that would work too...
m
Maybe
make ship
for caravel or
make truck
for caravan. Taped out chips are at
<https://foss-eda-tools.googlesource.com/third_party/shuttle/>
d
I tried
make truck
, in the caravel repo, the script just says
Failure to read entire subtree of the cell.
And then caravan.gds is not written. I can't find any indication which cell is causing the problem. Before running, I manually replaced the original mag/user_analog_project_wrapper.mag with my own. Is that how I am supposed to insert my design?
n
If you just want the full-chip image, you can open the gds file on efabless portal after run the tapeout job
t
@User: The message itself
Failure to read entire subtree. . .
comes from magic, on a "def write" command, when there are cells in the layout that it cannot find. That could be due to references inside of
analog_user_project_wrapper.mag
.
make ship
is supposed to be done in the user project directory, with
caravel
as a subdirectory. It should pick up the user project wrapper from its existing location in the user project repository; you should not need to move it.
d
So is this the instructions? 1. Start in project directory. 2. run
make install CARAVEL_LITE=0
to install caravel. 3. run
make truck
to build analog project. I tried, but it just writes an apparently empty gds file at
gds/caravan.gds
@User, so ultimately, I did get this to work. However, I kind of had to hack the
truck
target in the Caravel Makefile. Seems like some of the file paths were wrong. I am not sure in what context they would be correct.
Could this be an actual issue? or is my environment wrong?
My process is: (start from project directory)
Copy code
export CARAVEL_ROOT=`pwd`/caravel
export MCW_ROOT=`pwd`/caravel/mgmt_core_wrapper
make install CARAVEL_LITE=0
make install_mcw
# (apply the hack to __truck target in ./caravel/Makefile)
make truck
# Success!
t
There is a part of the process when done for the final chip assembly that first copies those files from the caravel repository to the user project repository. These files are modified when setting user defaults for the GPIO and setting the user ID. There is a "make user ID" script and a "set user defaults" script that are supposed to be run that do the copying. I would guess that something has been done in "make ship" to ensure that those copies have been made even when you aren't running those scripts. It does sound like something that should be raised in the issue tracker.
d
Yes! I added
make set_user_id
and
make gpio_defaults
and then everything worked without edits. Maybe those targets should be dependences for ship and truck.
t
Yes, that should be raised as an issue because it should not be the case that when a user runs "make ship" or "make truck", the process fails.
d
Okay! Created issue 54 in Caravel