UVM中的打印信息

本文详细介绍了UVM中信息严重性(UVM_INFO、UVM_WARNING、UVM_ERROR、UVM_FATAL)的使用,包括uvm_fatal导致的仿真停止机制,错误计数决定仿真结束,以及如何通过+UVM_VERBOSITY设置打印等级。还展示了UVM_INFO的实例,如打印时间、路径和消息内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重载打印信息严重性

可重用性是UVM的超级特性。

1. UVM默认有四种信息严重性UVM_INFO、UVM_WARNING、UVM_ERROR、UVM_FATAL,对应的宏分别为:uvm_info、uvm_warning、uvm_error、uvm_fatal。

2. 当uvm_fatal出现时,表示出现致命错误,仿真会立刻停止;

当uvm_error达到一定数量时,仿真会结束,达到10个error就停止仿真;

打印退出机制:

+UVM_MAX_QUIT_COUNT = 10

3 打印等级

UVM_NONE  UVM_LOW  UVM_MEDIUM   UVM_FULL   UVM_DEBUG (highest level)

使用 +UVM_VERBOSITY=UVM_MEDIUM  进行配置,MEDIUM以下的级别都会打印出来。

4. uvm_info

UVM_INFO my_driver.sv
(20
)@48500000
:drv[my_driver]data is drived

line1:出现了UVM_INFO关键字,表明这是一个uvm_info宏打印的结果。

my_driver.sv(20)   :此条打印信息来自my_driver.sv,且原始的uvm_info打印语句在my_driver.sv中的行号为20。

48500000:此条信息的打印时间。

drv:driver在UVM树中的路径索引。

[my_driver]:调用uvm_info宏时传递的第一个参数为my_driver。

data is drived:表明宏最终打印出的信息。

类的实例化就是想通过new()来通知SV的仿真器:请创建一个A的实例。

UVM (Universal Verification Methodology) 中,交易(Transaction)的信息通常通过UVM的日志系统来记录和跟踪。UVM提供了一个层次化的日志框架,允许你在各个层次(如环境、模块、任务等)上设置不同的日志级别,以便控制信息的详细程度。 如果你想要打印交易的相关信息,可以在`uvm_sequence_base`或具体的交易类`uvm_transaction`中实现以下步骤: 1. **声明观察者**: 首先,在交易类中声明一个观察者接口,比如`uvm_printer`,用于接收并处理打印操作。 ```c++ class my_transaction extends uvm_sequence_item; typedef uvm_printer#(my_transaction) printer_type; ``` 2. **添加打印机到交易**: 在构造函数或适当的时机,创建并关联一个`printer_type`实例到交易实例上。 ```c++ my_transaction dut_tx(this); dut_tx.printer = new printer_type(dut_tx); ``` 3. **触发打印**: 当需要打印交易信息时,调用观察者的`print()`方法,并传递相关信息,如交易状态、数据等。 ```c++ void do_something() { // ... printer.print("Transaction info:", this.get_name(), "status:", get_status()); // ... } ``` 4. **配置日志级别**: 可以在`run_phase()`或其他适当阶段调整全局日志级别,确保交易信息会被记录。 ```c++ virtual void run_phase(uvm_phase phase) { super.run_phase(phase); uvm_config_db#(uvm_component) db = uvm_config_db::get(); db.set(null_id, "", "uvm_root", "log_severity", UVM_INFO String); // 其他配置... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值