2. Setting up Environment

EE194 Students: Please use the guide in the sp24 tapeout wiki for research server setup

Clone Chipyard Lab

Clone the lab chipyard repo here with the following commands. The lab is located on a branch of the open-source Chipyard repo.

cd /tools/C/<your username>
git clone https://github.com/ucb-bar/chipyard.git chipyard-lab1
cd chipyard-lab1
git checkout ee194-sp24-lab1

Note: If preferred, you may also clone your repo through the ssh url. Be sure to set up ssh keys on your github account first.

Set the repository path as an environment variable

export chipyard=/tools/C/<your username>/chipyard-lab1

Note:

From now on, we will be referring to the repository path as $chipyard . If you do not wish to set up this environment variable, you will need to replace $chipyard with your directory path, something like /tools/C/<your username>/chipyard-lab1

Run the following command to execute the Chipyard setup script. This command may take a while (~1 hour) to run.

$chipyard/build-setup.sh riscv-tools -s 6 -s 7 -s 8 -s 9 -s 10 --force

The script will create the conda environment, as well as initialize and checkout all of the necessary git submodules. This script should be run only once per repo setup. In cases where the Chipyard environment has not been changed, you can skip running this script by copying the env.sh file that this script creates between repos.

git submodules allow you to keep other Git repositories as subdirectories of another Git repository. For example, the above script initiates the rocket-chip submodule which is it's own Git repository that you can look at here. If you look at the .gitmodules file at $chipyard, you can see

[submodule "rocket-chip"]
  path = generators/rocket-chip
  url = https://github.com/chipsalliance/rocket-chip.git

which defines this behavior. Read more about git submodules here.

If you need to only initialize the submodules, run

./scripts/init-submodules-no-riscv-tools.sh

This command should be run every time you pull new code into your repo.

Finally, run

source env.sh

An env.sh file should exist in the top-level repository ($chipyard). This file sets up necessary environment variables such as PATH for the current Chipyard repository. This is required by future Chipyard steps such as the make system to function correctly.

Over the course of the semester, we will find ourselves working with different Chipyards, such as one for this lab, and one for the SoCs we build this semester.

You should source the env.sh file in the Chipyard repository you wish to work in by running the above command every time you open a new terminal or start a new work session.

Next Step

page3. Chipyard Repo Tour

Last updated