Hello 大家好!
wujian100_open開源已經有好一段時間了。
這裡筆者分享一下第一次跑通wujian100_open仿真過程中遇到的一些坑。
1. 關于小夥伴們遇到的一個坑,大概就是擷取源代碼。
因為wujian100_open的源代碼是放在github上面的,如果從gitbub上下載下傳其實比較慢的。
不過好在壓縮包不算大,隻有1.54M。還算可以接受。
這裡放一個連結:
https://codeload.github.com/T-head-Semi/wujian100_open/zip/master複制連結,使用浏覽器下載下傳即可。(當然,迅雷下載下傳也可以。)
2. 第二個坑,是腳本的配置。
比如說,你可能已經遇到了這個錯誤:
/bin/riscv64-unknown-elf-gcc: Command not found
can't make: *** [crt0.o] Error 127
can't make at ../tools/run_case line 209.
[IC@IC workdir]$ echo $TOOL_PATH
../../riscv_toolchain
[IC@IC workdir]$ ls ../../riscv_toolchain/bin/
明明設定好了環境變量,用ls也看得到,但是就是make報錯。
具體原因說起來比較複雜,這裡有個簡單粗暴的結局辦法。
這裡我提供解決辦法是,把環境變量改成絕對路徑,比如:
[IC@IC workdir]$ echo $TOOL_PATH
/data/project/riscv_toolchain
3. 第三個坑,是libstdc++.so.5
如果你安裝的是最近更新的Ubuntu18.04,那麼你可能會遇到這個問題。
這個檔案是Srec2vmem需要用的一個庫。
(目測是srec_cat/srec_cmp/srec_info,應該可以用srec_cat替代。有興趣的小夥伴可以試試,這個是可以找到源碼,自己編譯的。)
好吧,一些其他的系統也可能有這個問題。
這裡我直接放一個可以用的檔案,把這個檔案放到/usr/lib下面就可以了。
連結:https://pan.baidu.com/s/17eqHzcn0ruDjmBAIMCSvaA
提取碼:am9w
4. 第四個坑是工具與核心。
筆者這裡使用的是vcs2014,很多小夥伴都會試着去找一些工具的資源,但是我要說的是,如果你用了很新的系統,就不要用很舊的工具。
但是很新的工具,估計你是找不到的。比如Ubuntu18.04安裝vcs2016,工具會直接告訴你不支援5.x核心。
5. 第五個坑是iverilog的坑。
如果你使用的是iverilog的話,Ubuntu預設的iverilog是比較舊的iverilog。
會報一些語句工具不支援,這個解決方法是使用新版iverilog(10.x版本)。
關于如何更換新版iverilog,請自行百度。
6. 接下來應該就比較順暢了。
如果還有問題的話,那應該是就是如何看波形了。以及如何下載下傳wujian100到FPGA開發闆了。
7. 檢視波形使用dve工具。
指令行輸入dve & 指令,回車–>File–>Open Database–> 選擇test.vcd --> open

8. 還有一個不算坑的坑
那就是回歸測試的時候,隻能看到TEST PASS,看不到log,波形也會被覆寫。
可以修改run_case腳本。
if($s_vcs) {
!system("vcs +v2k -Mupdate -sverilog $mnt_sim $dump_sim +nospecify +notimingchecks -timescale=1ns/100ps $top_mod $wujian100_open_PATH/workdir/$had_v $vcs_incdir $g_vlib_path $PLItab -l sim.log ") or die "can't run VCS";}
加上 -l sim.log 參數,就能儲存下log了。
如果要儲存下log和vcd波形的話。
需要修改run_case, 如:
!system("cp run_case.report ../regress/regress_result/$case_make\.report") or die "can't copy";(原腳本内容,可在腳本中找到)
!system("cp sim.log ../regress/regress_result/$case_make\.log") or die "can't copy";
!system("cp test.vcd ../regress/regress_result/$case_make\.vcd") or die "can't copy";
好了,那麼本文就寫到這裡了,下一篇會寫一寫下載下傳到fpga過程中遇到的坑。
原文作者:lizechen
點選檢視原文