我在我的项目中使用e(specman)。
我为uart构建了验证环境。
我有一个类似于any_sequence_item
uart_frame_s.
我想在uart中为tx添加记分板。
我在uart_tx_agent
:
uart_monitor: uart_tx_monitor_u is instance;
记分板的定义:
unit uart_tx_scoreboard_u like uvm_scoreboard{
scbd_port frame_add : add uart_frame_s;
scbd_port frame_match : match uart_frame_s;
};
我尝试连接:
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_scb(记分板)是uart_tx_agent中的实例
监视器中TLM端口的定义:
uart_frame_s_started : out iterface_port of tlm_analysis of uart_frame_s is instance;
uart_frame_s_ended : out iterface_port of tlm_analysis of uart_frame_s is instance;
我收到以下错误: 错误:' uart_monitor' (' uart_tx_monitor_u')没有' uart_frame_S_started'字段.... 错误:' uart_monitor' (' uart_tx_monitor_u')没有' uart_frame_S_ended'字段
答案 0 :(得分:0)
根据您在上面提供的信息,我可以得出以下结论:
1.e记分板带有预定义的TLM实现端口,您需要将监视器TLM输出端口连接到。您似乎没有在监视器中定义TLM端口。请求在连接到记分板时需要定义那些TLM端口(在记分板文档中有这样的示例)。 我的建议是,一旦你从公交车上收集完帧后,发出一个事件通知一个帧已经完成(我猜你可以称之为#34; uart_frame_s_endded"),然后在那个事件发出时,通过Monitor的TLM输出端口将收集的帧发送到记分板以进行添加/匹配。 (我想'添加'适合UART tx)。
只是一个FYI:
这有助于