搭建只有uvm_driver.sv的验证平台
1. 步骤
1.1 创建目录结构
1.2 编写Makefile
1.3 编写dut.f
1.4 编写tb.f
1.5 编写filelist
1.6 编写rtl
1.7 编写harness.sv
1.8 编写ip_link.sv
1.9 编写my_driver.sv
1.10 运行结果
输入命令:
结果:打印调用了10次
2. 问题
(1)Source file cannot be opened source file “harness.sv” cannot be opended for reading due to “No such file or directory”
原因:在还没有搭建起一个完整的uvm平台之前,makefile文件里的vcs指令并没有用到+UVM+TESTNAME这个命令,而是直接用的vcs harness.sv这种最原始的命令对文件进行编译和运行,尽管在tb.f里指定了incdir harness.sv的路径在../th下,但是incdir只是针对include文件在搜索时的一个搜索范围,对于vcs命令不起作用,所以当在sim下执行vcs harness.sv命令时,它会在当前sim目录下去找harness.sv文件,很明显harness.sv不在sim目录下,而是在th下,所以它找不到就会报错。
解决方法:解决方法是利用makefile的vpath命令准确写出harness.sv的具体路径,同时tb.f里就不要再写harness.sv的路径了,否则两边会有冲突。
(2)makefile中export的作用
一开始DUT_PATH这个变量并没有用export,会发现出现下面的错:
说明DUT_PATH这个变量并没有传递给dut.f,当makefile中调用其他文件,且其他文件需要用到makefile里定义的变量时,就需要export进行修饰。改成下面之后就不会报错了: