|  | # Local Installation (Linux) | 
|  |  | 
|  | Instructions to install the dv setup locally (dockerless install). | 
|  |  | 
|  | ## You will need to fullfil these dependecies: | 
|  |  | 
|  | * Icarus Verilog (10.2+) | 
|  | * RV32I Toolchain | 
|  |  | 
|  | Using apt, you can install Icarus Verilog: | 
|  |  | 
|  | ```bash | 
|  | sudo apt-get install iverilog | 
|  | ``` | 
|  |  | 
|  | Next, you will need to build the RV32I toolchain. Firstly, export the installation path for the RV32I toolchain, | 
|  |  | 
|  | ```bash | 
|  | export GCC_PATH=<gcc-installation-path> | 
|  | ``` | 
|  |  | 
|  | Then, run the following: | 
|  |  | 
|  | ```bash | 
|  | # packages needed: | 
|  | sudo apt-get install autoconf automake autotools-dev curl libmpc-dev \ | 
|  | libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo \ | 
|  | gperf libtool patchutils bc zlib1g-dev git libexpat1-dev | 
|  |  | 
|  | sudo mkdir $GCC_PATH | 
|  | sudo chown $USER $GCC_PATH | 
|  |  | 
|  | git clone https://github.com/riscv/riscv-gnu-toolchain riscv-gnu-toolchain-rv32i | 
|  | cd riscv-gnu-toolchain-rv32i | 
|  | git checkout 411d134 | 
|  | git submodule update --init --recursive | 
|  |  | 
|  | mkdir build; cd build | 
|  | ../configure --with-arch=rv32i --prefix=$GCC_PATH | 
|  | make -j$(nproc) | 
|  | ``` | 
|  |  | 
|  | # Running Simulation | 
|  |  | 
|  | You will need to export these environment variables: | 
|  |  | 
|  | ```bash | 
|  | export GCC_PATH=<gcc-installation-path> | 
|  | export PDK_PATH=<pdk-location/sky130A> | 
|  | ``` | 
|  |  | 
|  | To run any simulation, you need to be on the top level or caravel_user_project. | 
|  |  | 
|  | To run RTL simulation for one of the DV tests, | 
|  |  | 
|  | ```bash | 
|  | SIM=RTL make verify-<dv-test> | 
|  | ``` | 
|  |  | 
|  | To run gate level simulation for one of the DV tests, | 
|  |  | 
|  | ```bash | 
|  | SIM=GL make verify-<dv-test> | 
|  | ``` | 
|  |  |