Hummingbirdv2 E203 仿真排坑之路

參照官方文檔中Quick Start 4.1 “How to run simulation”部分,中途遇到很多坑,特來記錄一番。

1.環(huán)境設(shè)置

1.1 強(qiáng)烈建議用 ubuntu 18.04,安裝時(shí)要點(diǎn)“下載更新”

我的是vmware 15.5pro虛擬機(jī)。這里有兩個(gè)坑:

  • 第一次用20.04,最后在運(yùn)行make run_test SIM=iverilog的時(shí)候,老是出現(xiàn)lxt2 support disabled since zlib not available的錯(cuò)誤。
  • 第二次用18.04,但安裝的時(shí)候沒有選擇下載更新的選項(xiàng),之后下一步安裝依賴的時(shí),老是需要卸載原來包,裝新包。而且git也下載不了,出現(xiàn)Failed to connect to github.com port 443: Connection refused的錯(cuò)誤

1.2 軟件依賴

sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev git

這里又有一個(gè)坑:

  • 復(fù)制的時(shí)候千萬要注意,官網(wǎng)復(fù)制時(shí)是兩行,導(dǎo)致gawk后面的軟件沒有裝上,也可能是導(dǎo)致lxt2 support disabled since zlib not available的原因。

2.下載e203_hbirdv2 project

git clone https://github.com/riscv-mcu/e203_hbirdv2.git
# or
git clone https://gitee.com/riscv-mcu/e203_hbirdv2.git

3.編譯riscv指令

<your_e203_dir>/riscv-tools/riscv-tests/isa 目錄下有riscv的匯編測試指令,需要編譯成二進(jìn)制文件,這樣才能在仿真時(shí)讀入rom,判斷功能是否正確。

3.1編譯工具

編譯需要用riscv的GNU工具,可以在官網(wǎng)下載: RISC-V GNU, Centos/Ubuntux86-64

下載下來的文件是nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2,和官方寫的rv_linux_bare_9.21_centos64.tgz.bz2的不同。

cp nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2 ~/
cd ~/
tar -xjvf nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
cd <your_e203_dir>/
mkdir -p ./riscv-tools/prebuilt_tools/prefix/bin

cd ./riscv-tools/prebuilt_tools/prefix/bin/
# 建立riscv gcc的鏈接
ln -s ~/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2/gcc/bin/* .

3.2 編譯

cd <your_e203_dir>/riscv-tools/riscv-tests/isa

source regen.sh

4 跑仿真

這里僅以iverilg為例

4.1 iverilog 安裝

這里有個(gè)大坑:

  • 不能直接用sudo 安裝,因?yàn)檫@樣安裝的版本是10,我們需要版本12。這個(gè)地方卡了我最長時(shí)間!
git clone https://github.com/steveicarus/iverilog.git
# 安裝依賴
sudo apt-get install autoconf gperf flex bison build-essential
# 安裝
cd iverilog
sh autoconf.sh
./configure
make
sudo make install

安裝波形查看工具:

sudo apt-get install gtkwave

4.2 綜合網(wǎng)表

cd <your_e203_dir>/vsim
make clean
make install
make compile SIM=iverilog

4.3 跑仿真

4.3.1單個(gè)測試

make run_test SIM=iverilog

保證iverilog的版本是12,否則會(huì)一直卡住,運(yùn)行不出結(jié)果。大概1min之后,會(huì)出現(xiàn)大大的“PASS”字樣。
這里還有可能的一個(gè)bug是“bash”的問題

# 查看shell類型,需要將dash改成bash
ls -l /bin/sh
sudo dpkg-reconfigure dash
#選擇 no

4.3.2波形查看

make wave SIM=iverilog

4.3.3回歸測試

make regress_run SIM=iverilog

這會(huì)持續(xù)比較久,每個(gè)樣例需要1~3min。

4.3.4查看回歸結(jié)果

make regress_collect

5.小結(jié)

按照指南運(yùn)行時(shí),需要弄清楚它的基本邏輯,系統(tǒng)和軟件的版本確實(shí)非常折磨人,如果有docker就能方便很多?;仡櫼幌逻@個(gè)過程,最大的坑是ubunbu18.04的版本和iverilog 12的版本。

之后還要裝vivado和軟硬件調(diào)試工具,開發(fā)起來還真是麻煩。

原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容