wujian100_open采坑指南。

简介: 我是如何跑通wujian100_open仿真的。

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

image.png
image.png

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
点击查看原文

相关文章
|
传感器 监控 物联网
玄铁RISC-V处理器入门与实战-RISC-V 玄铁系列开发板实践-基于玄铁C906处理器的D1 Dock Pro开发实践(下)
玄铁RISC-V处理器入门与实战-RISC-V 玄铁系列开发板实践-基于玄铁C906处理器的D1 Dock Pro开发实践
1042 0
|
Ubuntu Linux Shell
Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100
上个月,在第六届互联网大会上,阿里的平头哥,对,就是那个人狠话不多的公司!他们宣布开源了 wujian100 这个芯片设计平台。搭载基于 RISC-V 架构的玄铁 902 处理器。
Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100
|
SpringCloudAlibaba Dubbo Java
【五】SpringCloud Alibaba之整合Dubbo(实现远程调用)
【五】SpringCloud Alibaba之整合Dubbo(实现远程调用)
667 0
|
机器学习/深度学习 运维 自然语言处理
当深度学习遇上故障根因分析:运维人的绝佳拍档
当深度学习遇上故障根因分析:运维人的绝佳拍档
595 17
|
数据采集 测试技术
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB
995 2
|
芯片 异构计算 算法
芯片验证 | Formal验证技术总结
芯片验证 | Formal验证技术总结
1267 0
芯片验证 | Formal验证技术总结
|
存储 异构计算
FPGA入门(4):时序逻辑(一)
FPGA入门(4):时序逻辑
558 0
【亲测】cgi-bin/user/info获取用户信息接口部分用户unionId获取不到?
【亲测】cgi-bin/user/info获取用户信息接口部分用户unionId获取不到?
725 0
|
数据采集 监控 安全
java数字工厂MES系统全套源码Java+idea+springboot专业为企业提供智能制造MES解决方案
"MES" 指的是制造执行系统(Manufacturing Execution System)。MES在制造业中扮演着至关重要的角色,它是位于企业资源计划(ERP)系统和车间控制系统之间的系统,用于实时收集、管理、分析和报告与制造过程相关的数据。
525 0
|
存储 安全 前端开发
玄铁RISC-V处理器入门与实战-无剑平台-无剑100开源SoC平台
玄铁RISC-V处理器入门与实战-无剑平台
1381 1

热门文章

最新文章