UVM bug日记

来源:互联网 发布:四川广电网络新都点 编辑:程序博客网 时间:2024/06/05 16:41

bug代码1—-new 函数的定义

function new(string name,uvm_component parent)super.new(name,parent);  `uvm_info("TRACE",$sformatf("%m"),UVM_HIGH) end function

1,3行少引号,endfunction 要标明函数名
正确代码:

  function new(string name, uvm_component parent);super.new(name, parent);`uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);  endfunction: new

另外注意 end function :new 也是不对,冒号位置不对,end 和function之间不能有空格

bug代码2—-参数的定义

rand [3:0] da;          错rand bit [3:0]  da;          对

bug代码3—-类定义

   class driver extends uvm_driver       错   class driver extends uvm_driver #(packet);      对

bug代码4—-sequence拼写错误

typedef uvm_squencer #(packet) packet_squencer;  错typedef uvm_sequencer #(packet) packet_squencer;  对

bug代码5—-create拼写错误

i_agent=input_agent::type_id::creat("i_agent",this);i_agent=input_agent::type_id::create("i_agent",this); 对

bug代码5—-约束应用==

  constraint da_3 { da = 3; }  constraint da_3 { da ==3; }      对

约束中只能使用包含 表达式,而不能包含赋值。所以用==这种关系运算符,而不用=赋值,详见SV绿皮书P139

0 0
原创粉丝点击