When building Caravel, according to the Caravel us...
# caravel
d
When building Caravel, according to the Caravel user project guides, it appears that as part of the make process it will try to build the PDK. However I already have the PDK installed in my environment, since I installed open_pdks before doing my design. My question is, will this pre-existing PDK break the Caravel installation or, worse, will the Caravel installation break my PDK setup? Since the PDK setup takes a very long time, and since I already have the PDK installed, can I do the Caravel installation skipping the PDK install part, and if so, how do I do this? The reason I ask is because it says in this guide --> https://github.com/efabless/caravel_user_project/blob/main/docs/source/quickstart.rst that when I run "make setup" that will try to install the pdk as part of that command.
👍 1
m
I think that's a question for @User
k
The short answer is yes.
make setup
is equivalent to this:
Copy code
make install
make install_mcw
make pdk
make openlane
So with the correct exports, you can run the above sequence without
make pdk
. And make sure not to execute
make pdk
because it will always delete
PDK_ROOT
and start over. Generally, doing this won't be an issue, but we can't guarantee the your pdk will break compatibility with openlane and other parts like simulation. It is rare but it can happen especially the bigger the difference in the pdk versions
d
I currently have the PDK installed at
/usr/local/share/pdk/
and I see the Makefile when it comes to the target "make pdk" it deletes PDK_ROOT and then tries to install open_pdks with --enable-sram-sky130 ... But I don't think I installed open_pdks with that --enable-sram switch... Do you recommend that I just do the full
make setup
and allow "make pdk" to delete my PDK and install it anew, because otherwise my existing PDK installation will have missing SRAM things that are needed to build Caravel?
k
Lack of sram will break simulations otherwise you can harden your project without sram if you want. I have a question. You keep saying "build caravel". What do you exactly mean by that?
d
I mean the process that (in my present understanding) consists of forking and cloning Caravel repo, then uncompressing some files (gds'es etc) with "make uncompress", and essentially installing copies of all relevant Caravel files on my local environment, in order to then be able to put my analog IP (VCO) into the user project area and ultimately integrate my VCO IP into Caravel for MPW5 tapeout. I may be using the wrong terminology for some things, as it's the 1st time I go through this process.
o
@User you don't need
caravel
itself to be contained in your project package submitted.
d
you mean I would only need
caravel_user_project
or
caravel_user_project_analog
? I have been reading this guide for
caravel_user_project
--> https://github.com/efabless/caravel_user_project_analog/blob/main/docs/source/index.rst and this one for
caravel_user_project_analog
--> https://github.com/efabless/caravel_user_project_analog/blob/main/docs/source/index.rst
o
yes and any customized files in your design.