Rocket之環境搭建
阿新 • • 發佈:2018-11-06
目錄
準備工作
- Ubuntu 16.04
- vivado 16.02
- zedboard
- 路由器和網線
- SD卡和讀卡器
- java 1.8
- 瞭解scala和chisel,優勢:
- 面向物件
- 函數語言程式設計
- 型別引數化
- 型別推斷
總體架構
生成verilog程式碼
執行命令
// 安裝所需依賴 sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev libusb-1.0-0-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev device-tree-compiler pkg-config libexpat-dev git clone https://github.com/ucb-bar/fpga-zynq cd ./fpga-zynq/zedboard make init-submodules make rocket # sbt的bug的解決辦法如下
sbt bug
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: edu.berkeley.cs#chisel3_2.11;3.2-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
download,之後解壓,執行以下操作
cp -r cache/* ~/.ivy2/cache
生成bit流
安裝vivado 2016.02
安裝時要選擇SDK,使用vivado建議用root賬戶
執行命令
make project
source /opt/Xilinx/Vivado/2016.2/settings64.sh
vivado zedboard_rocketchip_ZynqFPGAConfig.xpr
# 之後進入GUI,點選Generate Bitstream
準備SD卡檔案
SD檔案內容
- boot.bin
- FSBL.elf . The FSBL will hand-off to u-boot once the processing system is setup
- rocketchip_wrapper.bit
- u-boot.elf.
- uImage(ARM Linux).
- uramdisk.image.gz(ARM RAMDisk).
- devicetree.dtb.
格式化SD卡
- 使用ubuntu的Disks工具(GUI)
- 一個FAT32分割槽
建立檔案並拷貝到SD卡上(讀卡器)
建立檔案參考here
執行make boot.bin之前需要source /opt/Xilinx/SDK/2016.2/settings64.sh
RISCV工具鏈
使用fpga-zynq/rocket-chip/下的工具鏈
執行命令
安裝所需軟體參考here
cd ./fpga-zynq/rocket-chip/riscv-tools
git submodule update --init --recursive
# 安裝目錄,會包含可執行檔案,靜態和動態連結庫
# export RISCV=/path/to/install/riscv/toolchain
export RISCV=/home/qihao/Desktop/lab/riscv
export PATH=$PATH:$RISCV/bin
export MAKEFLAGS="$MAKEFLAGS -j8"
./build.sh
# 測試工具鏈
./regression.sh
連線zedboad
硬體
- zedborad連線電源
- 主機和zedboad使用網線連線在一個路由器上
- 使用USB-microUSB線將zedboard與PC相連,連線zedboard的USB-UART介面
- 將SD卡插入zedboard上
軟體
使用minicom
- 配置minicom,如下:
- 執行
sudo minicom
,輸入reset
,重置zedboard - 登入
- minicom,使用者名稱和密碼都是root
- ssh,
ssh [email protected]
,密碼是root
測試
工具介紹
- spike, the ISA simulator。
- riscv-fesvr, 一種“前端”伺服器,它在主機目標介面(HTIF)上為主機和目標處理器之間提供服務。
- riscv-pk, 一個代理核心,一個支援RISC-V ELF二進位制輕量級的執行環境。
riscv-fesvr和pk
cd zedboard
make fesvr-zynq
scp ../common/build/fesvr-zynq [email protected]:/home/root/
scp ../common/build/libfesvr.so [email protected]:/usr/local/lib
scp $RISCV/riscv64-unknown-elf/bin/pk [email protected]:/home/root/
可執行檔案
#include<stdio.h>
int main() {
printf("Hello qihao\n");
return 0;
}
riscv64-unknown-elf-gcc qihao.c -o qihao
scp ./qihao [email protected]:/home/root/
執行