最近想总结一下看过的代码,如有错误,欢迎指正。我们从top文件开始看起。
top module里总是有dut的例化以及dut和env的连接. 这点跟simulation验证平台一样。
formal的pkg.sv文件包着所有的有关enum和type的定义也可以被其他文件以import pkg::*的方式使用,simulation的验证平台是包了所有的验证平台下的文件以及引用的文件,使用方式相同。
formal的env里,有clock,reset的处理以及做的假设(assume),interface的例化。agent和scoreboard的例化(做补充检查)。自己写的做逻辑判断的cover property,assert property, assume property。
设计数据流动的文件, master agent来驱动数据流到interface,slave agent来监控interface的数据流。agent是经过vip例化出来的。
parameter确定好后被放在define文件里。
编辑japergold 适用的tcl文件,里面有一些常规命令还有自己添加的assume假设(assert和 cover应该也可以)。
最后由makefile来确定整个验证平台怎么跑。确定好工作路径之后,首先vcs编译pass。其次启动jaspergold运行命令。
jg -fpv *.tcl
这是一个仅用sv搭建的环境,还没见过uvm的formal验证环境,有机会补充一下。