下面,介绍一下,该软件如何打开demo工程。
在终端,输入 dvt, 就会启动dvt软件。
打开软件后,在左上角工程目录,会自动出现2个文件夹。其中DVT-Examples,里面是软件提供的demo工程,可以使用这些demo,来熟悉工具的使用。
展开,选择systemverilog下的uvm-1.2_ubus工程。
此时,在工程目录,就会出现该工程,并且自动打开README.txt,然后开始对代码进行build。此处的build,是对工程中的源代码,进行语法分析,以及建立依赖关系,和EDA工具的compile不一样。
build结果出现error
Error: UNDEFINED_OPERATION: Operator '?' is undefined for argument types 'logic', 'string' at line 960 in
/tools/…../base/uvm_root.svh[compile index 60]
查看报错原因,是因为uvm_root.svh代码有错误,可是这个是UVM的官方代码了,是不应该会报错的。这个问题,稍后来解决。
展开.dvt文件夹,下面有一个default.build文件。这个文件很重要,该文件,向工具指示了需要build哪些文件。
-uvm: 工具需要build UVM 的源代码。
如果环境变量,$UVM_HOME有指定,那么build这个环境变量指定的UVM库。
如果环境变量,$UVM_HOME没有指定,那么build $DVT_UVM_HOME这个环境变量指定的UVM库。
examples/ubus_tb_top.sv: build 当前目录下examples文件夹下的ubus_tb_top.sv文件
+incdir+sv: 将当前目录下sv文件夹,加入到include的搜索目录,当代码中有`include时,会include的搜索目录中搜索。
+incdir+examples: 将当前目录下examples文件夹,加入到include的搜索目录
刚刚build出现的error,就是因为这个-uvm选项出现问题。DVT工具自己有一套内部的verilog,systemverilog解析器,而这个解析器,可能相比VCS,IRUN,版本会比较低些,有些sv的语法支持不太好,因此build UVM库,就不要build VCS或者IRUN下的UVM库,而是应该build DVT下的UVM库。
将-uvm,改成以下,直接build DVT下的UVM库。注意,要使用绝对路径。
工程右键,选择Project->Rebuild,对工程进行build。
build成功,console打印build过程中的信息。
查看源文件,会发现源文件,语法高亮了。
DVT是实时检查语法的,每隔一定时间,或者是每当我们保存源文件,会对文件修改的地方进行检查。如果发现错误,就会提示错误。
比如以下有一个error,定义了不存在的类型,aaa。这些DVT工具,都会提示error信息。我们根据这些error信息,就可以提前知道代码哪里写得有问题,就可以直接进行修改,就不用等之后代码在EDA工具上,编译的时候,才能发现问题。