仿真错误集合
1 UVM仿真
1.1 imp声明时两个参数
Error-[MRRE] Member reference resolution error
/home/IC/uvm/uvm-1.1d/src/tlm1/uvm_analysis_port.svh, 114
Member operator “.” cannot be used on object of type int.
Expression: m_imp
Source info: m_imp.write
解决:在uvm_analysis_imp ,uvm_blocking_put_imp等IMP中,声明IMP时候有两个类型参数,
1 |
|
上面的错是因为少了第二个参数。
1.2 main_phase下声明对象与super.main_phase顺序
Back to file ‘top_tb.sv’.
Error-[SE] Syntax error
Following verilog source has syntax error :
“top_tb.sv”, 102: token is ‘t’
trans t;
1 |
|
出错原因是tr的定义写在了super.main_phase(phase)之后,上面代码是正确的写法。
其他的phase类型,所以,没事不要写super.*_phase(phase)
1.3
Back to file ‘top_tb.sv’.
Error-[SE] Syntax error
Following verilog source has syntax error :
“top_tb.sv”, 38: token is ‘d’
edata d=new();
2. 语法错误
2.1 SV中task中的变量在其他语句之前定义
SsystemVerilog中,task function中可以定义变量,但这些变量需要在其他语句之前定义,包括$display语句。
2.2 接口定义的时候加()
如果接口没有参数列表,那么在top中声明接口的时候也要加上括号()
1 |
|
3. 仿真脚本
3.1 类在package中include,
类在package中用`include进去,在vcs选项中的文件是top.sv模块,接口模块文件,package文件。
3.2 用run文件和Makefile文件启动VCS的不同
用run文件启动,在run文件中引用变量可以直接写成 $UVM_HOME
但是在Makefile文件中,设置变量: cov_opt = line+tgl+fsm+cond 。使用变量要加花括号{}:${cov_opt}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!