Specman - Monitor不会识别它应该提供的事件

时间:2018-01-03 10:05:19

标签: monitor verification specman

根据Cadence的通用验证方法(UVM)e用户指南:

监视器识别的事件取决于实际协议。通常,对于监视器的基本数据项 提供item_started和item_ended事件(例如,packet_started和packet_ended)。监视器收集 来自信号的项目数据,并创建一个current_item,其中包含完整的项目数据,准备好时使用 item_ended事件发生。除原始数据外,监控器还应收集相关的时序信息,如 交易的持续时间。

我尝试通过以下方式在我的座席中执行以下操作:

connect_ports() is also {
      uart_monitor.uart_frame_s_started.connect(tx_scb.uart_frame_s_add);
      uart_monitor.uart_frame_s_ended.connect(tx_scb.uart_frame_s_match);
};

我收到以下错误:错误:' uart_monitor' (' uart_tx_monitor_u')没有' uart_frame_S_started'字段....错误:' uart_monitor' (' uart_tx_monitor_u')没有' uart_frame_S_ended'字段

但是当我通过以下方式在监视器中声明事件时:

event uart_frame_s_started;
event uart_frame_s_ended;

没有错误。 如果应该由监视器提供这些事件,我为什么要声明这些事件?

1 个答案:

答案 0 :(得分:0)

你正在使用uvm记分牌吗?如果是这样,它的端口(添加和匹配)是TLM端口。意思是 - 他们希望将数据项写入其中。 但是你连接到他们的事件端口。

有一些奇怪的东西 - 在你的代码中,事件名称有较低的',但是在错误中 - 当你打印它时 - 有资本S.是uart_frame_s_started还是uart_frame_S_started?