# Lab3:srv32 environment build ###### tags: `RISC-V` `2022 Computer Architecture` ## install srv32 1. srv32 ```linux= $ git clone https://github.com/sysprog21/srv32 ``` 2. 相關套件 ```linux= $ sudo apt install gtkwave # a fully featured GTK+ based wave viewer $ sudo apt install lcov # a graphical front-end for GCC's coverage testing tool ``` ## install Verilator 1. install ```linux= $ cd $HOME $ git clone https://github.com/verilator/verilator $ cd verilator $ git checkout stable $ export VERILATOR_ROOT=`pwd` $ git pull $ git tag $ autoconf $ ./configure $ make ``` 2. set environment variables ```linux= $ cd $HOME $ export VERILATOR_ROOT=$HOME/verilator $ export PATH=$VERILATOR_ROOT/bin:$PATH ``` 3. verify ```linux= $ verilator --version Verilator 5.002 2022-10-29 rev v5.002-29-gdb39d70c7 ``` ## install node.js and npm before installing xpack. 1. node.js & npm ```linux= $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - $ sudo apt-get install gcc g++ make $ sudo apt-get update && sudo apt-get install yarn $ sudo apt install nodejs $ sudo apt install build-essential ``` 2. 其他相關套件 ```linux= $ sudo apt install build-essential ccache ``` 3. 設定環境變數 ```linux= $ export CROSS_COMPILE=riscv-none-elf- ``` 4. xpm ```linux= #install: $ sudo npm install --global xpm@latest #verify: $ which xpm $ xpm --version ``` 5. xpack toolchain ```linux= #進入srv32 $ cd srv32 install: $ xpm init #only at first use $ xpm install @xpack-dev-tools/riscv-none-elf-gcc@latest $ ls -l xpacks/.bin #檢查是否產生riscv工具 #補充 #intsall globaly: $ xpm install --global @xpack-dev-tools/riscv-none-elf-gcc@latest #uninstall: $ cd my-project $ xpm uninstall @xpack-dev-tools/riscv-none-elf-gcc #uninstall globaly: $ xpm uninstall --global @xpack-dev-tools/riscv-none-elf-gcc ``` 6. 切換link終點 ```linux= $ cd xpacks/xpack-dev-tools-riscv-none-elf-gcc/.content/bin ``` 6. define an environment variable in advance ```linux= $ export CROSS_COMPILE=riscv-none-elf- ``` 7. 使用pwd找到絕對地址,回到srv32底下設置path ```linux= $ pwd /home/...... /home/reyjeff95036/srv32/xpacks/xpack-dev-tools-riscv-none-elf-gcc/.content/bin #回到srv32 $ export PATH=$PATH:/home/...... ``` 8. 使用make all,預期看到以下輸出 ```linux= $ make all ``` ![](https://i.imgur.com/4r0UsBm.jpg) ## install gtkwave ```Linux= $ sudo apt-get install gtkwave ``` 要在srv32/sim 裡面開啟`$ gtkwave wave.fst` ## referance 1.[建置範例](https://hackmd.io/@eecheng/B1fEgnQwF)