关于宏`uvm_info和$display的区别

1、$display

 $display可以直接打印一条文本信息,并在每一次$display执行后会自动换行,比如:

`timescale 1ns/1ns
module test_tb();
 
initial begin
	$display("I am display1");
	$display("I am display2");
end
endmodule 

打印结果:

I am display1

I am display2

2、`uvm_info

        `uvm_info的功能与$display语句的功能相似,但比display更加灵活,以下是`uvm_info的格式:

`uvm_info("A","I am uvm_info",UVM_LOW)

`uvm_info有以下三种格式:

  • `uvm_info("TRACE",$sformatf("%m"),UVM_HIGH)
  • `uvm_info("TRACE",$sformatf("port_id value of %0d",port_id),UVM_HIGH)
  • `uvm_info("TRACE",{"\n",req.sprint()},UVM_HIGH)

        第一个参数是字符串,用于把打印的信息归类。第二个参数也是字符串,是具体需要打印的信息,第三个参数则是冗余级别。冗余级别为UVM_LOW,表示信息非常关键,冗余级别为UVM_HIGH,表示信息可有可无,UVM_MEDIUM介于这两者之间。