1. 前言
官方提供了
隔壁的幾個文章已經總結了開發環境的配置流程,無需贅述 我再說說他們沒提到的
1.1 有關License的環境變量
請各位指向正确的license,具體可以在 tools/setup.csh 中改動,也可以自行在 terminal 裡手動添加。
- bash/zsh
export VCS_HOME=/home/xxxx/vcs/vcs/P-2019.06-1/
export PATH=$PATH:/home/xxxx/vcs/vcs/P-2019.06-1/bin/
export PATH=$PATH:/home/xxxx/scl/scl/2018.06-SP1/linux64/bin/
export LM_LICENSE_FILE=xxxx
export SNPSLMD_LICENSE_FILE=xxxx
- csh
setenv VCS_HOME /home/xxxx/vcs/vcs/P-2019.06-1/
setenv LM_LICENSE_FILE xxxx
setenv SNPSLMD_LICENSE_FILE xxxx
setenv RISCV /home/xxxx/rocket-tools/
setenv LM_LICENSE_FILE xxxx
setenv SNPSLMD_LICENSE_FILE xxxx
1.2 遇到的問題
1.2.1 riscv64-unknown-elf-gcc 無法識别 選項 ‘-mabi=ilp32e’

應該是我的riscv-tools 工具鍊設定有問題,請大家自行下載下傳官方工具
解壓的時候需要注意,把解壓後的檔案放置在 riscv-tools 下,以便腳本能夠找到 risc-tools/bin/
1.2.2 注意vcs的位置,我目前的機器是linux64的,需要修改setup.csh第14行
2. VCS仿真
2.1 流程
請參照官方文檔
2.2 timer_test.c 仿真結果
運作
../tools/run_case -sim_tool vcs ../case/timer/timer_test.c
會得到 timer_test.c 的結果
我們看一眼 timer_test.c 的源碼
看一來是配置了Timer 1d的寄存器,然後等待觸發中斷,清中斷标志位,最後退出。
Hello Friend!
timer test successfully
就是代碼的輸出了。
2.3 我們看看其他的仿真/測試
測個gpio玩吧,
看看波形,這裡我們用的是verdi,請自行導入 vcd 檔案。
對照c的源碼,
能看到是在将GPIO輸出 0xa5a5a5a5,也就是 ob10100101101001011010010110100101。 我們來見檢查一下
果然是這樣,嗯,看起來是對的。
3. FPGA bitstream 編譯
先占坑,後面慢慢填,
沒有 synplify license 啊,窮。
4. 工程結構
我們來翻翻具體的設計。
官方文檔提到的:
項目目錄結構
|–Project //開源項目工作目錄
|–riscv_toolchain //工具鍊安裝目錄,使用者需要将工具鍊按照在該目錄下。工具鍊可以在下載下傳頁面下載下傳
|–wujian100_open //wujian100_open平台項目工程目錄。wujian100_open 平台代碼可以通過github下載下傳擷取
|–case //仿真使用的測試case
|–doc //wujian100_open平台的使用者手冊
|–fpga //FPGA制作相關腳本
|–lib //仿真編譯使用的腳本及庫檔案
|–regress //回歸測試的結果
|–sdk //軟體開發套件
|–soc //SoC RTL源碼
|–tb //test bench和monitor檔案
|–tools //仿真腳本和環境變量設定檔案
|–workdir //執行仿真的工作目錄
|–LICENSE
|–README.md
4.1 一些檔案
4.1.1 頂層檔案
https://github.com/T-head-Semi/wujian100_open/blob/master/soc/wujian100_open_top.v4.1.2 aou_top
https://github.com/T-head-Semi/wujian100_open/blob/master/soc/aou_top.v下面接了 pmu_dummy_top (peripheral management unit) ,gpio0_sec_top 和 RTC
4.1.3 感興趣的部分來了 core_top
https://github.com/T-head-Semi/wujian100_open/blob/master/soc/core_top.v https://raw.githubusercontent.com/T-head-Semi/wujian100_open/master/soc/E902_20191018.v想來 剔除注釋和合并代碼的腳本寫的挺不錯的,1MB的檔案。 後續再仔細分析一下
未完待續
附錄
幾處typo, 這裡的指令應該是 sudo apt-get install / sudo yum install
原文作者:YangWang
點選檢視原文