| |
由于cpu的验证比较特殊,先研究一下资料,重点是CPU的验证和一般验证什么区别,咱么保证验证的完整性。 --done 2020-06-02
看了一些资料,总结下来主要两条:1)传统的各种功能,代码覆盖率还是要的。2)其它的就要看运气,随机。
研究google dv环境。--done
自己以前做过一段验证。但是基于UVM的做的不多。因为现在随机的部分大家都在用UVM。通过google dv先学习一下。捡一下以前验证的知识。
google 的DV 环境实际上是产生随机的各种汇编代码。
由于收集到的RISCV0的仿真基于各种的仿真环境,先统一到自己熟悉的工具,重现仿真结果。 --done
本来是用fusesoc跑通了一些仿真。由于工作忙,荒废了一段时间。今天不小心更新了ibex的database。结果仿真跑不通了,说fusesoc的版本需要更新,搞了半天,网络太慢,一直没搞定。其实开源的东西不是不好,关键是太乱,没有统一的标准。有去研究这些环境,以及各种版本兼容的机会,还不如拿代码来,自己搞一个。所以下一步就是搭建自己的仿真环境。
搭建自己的SOC的仿真环境。 --done
本来打算用UVM搭建,后来实现过程中想了一下,觉得实在是没有必要。对CPU的验证和测试,还是直接用C或汇编,编译成二进制。仿真结果进行离线或在线的比较。如果以后实在需要,可以参照google_dv用UVM产生随机指令代码。再灌入当前的验证环境中。关键我的目标是实现一个SOC, 对IP level的东西,实在没有必要刻意去用某些知识。简单够用就好。
脚本用python, 环境的配置参照yaml的格式。