1. 程式人生 > >Rocket之環境搭建

Rocket之環境搭建

目錄

準備工作

  • 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卡檔案

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/

執行

spike測試
rocketchip 測試

參考