前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈谈UVM中事务级建模(TLM)的Analysis Ports 和Exports

谈谈UVM中事务级建模(TLM)的Analysis Ports 和Exports

作者头像
AsicWonder
发布2020-07-02 10:44:29
1.1K0
发布2020-07-02 10:44:29
举报

前面描述的TLM port都要求在仿真开始之前与一个export正确地连接。如果port未连接,则会从UVM输出一条错误消息,提示你完成连接。

当我们构建monitor等组件时,需要一个可以不连接或者连接到多个组件的port。这是因为monitor通常是整个验证环境中的passive components,被动地收集数据事务并将其传递给其他组件而不直接影响激励的生成。

UVM中的‍Analysis ports与常规TLM port类似,但是可以不连接或者连接到任意数量的analysis exports

从callbacks的角度来看,analysis exports实质上是可以设置不同数量端口连接的callbacks。Analysis ports具有以事务作为参数的函数write()。每个Analysis ports都有一个被连接的analysis exports列表,当调用Analysis ports的write方法时,就会调用所有analysis exports各自定义的write方法。

write方法是一种函数,因此可以确保Analysis ports写操作不会发生阻塞,并且由于write方法是void函数,在完成写操作后不会返回任何状态。总体效果上,从包含Analysis ports的组件角度来看无需关心任何analysis exports的状态。

//Monitor with an Analysis Port

代码语言:javascript
复制
class packet_monitor extends uvm_component;
 uvm_analysis_port #(simple_packet)analysis_port;
 function new(string name, uvm_componentparent);
  analysis_port = new("analysis_port",this);
 endfunction
 virtual task run();
  simple_packet p = new();
  ..// reassemble packet here from lower level protocol
  analysis_port.write(p); // write the collectedpacket to the analysis port
 endtask
 endclass

//Component with an Analysis Export

代码语言:javascript
复制
 class packet_checker extends uvm_component;
 uvm_analysis_imp#(simple_packet, packet_checker) analysis_export;
 function new(string name, uvm_component parent);
 analysis_export= new("analysis_export", this);
 endfunction
 function void write (simple_packet p);
 // checkthe packet here
 endfunction
 endclass

有时,正在通过Analysis Port传递的事务不能被Analysis Export组件立即处理,可能需要将它们存储一段时间才能使用。例如,scoreboard需要将来自DUT输出的实际数据包(actual)与来自reference model的预期数据包(expected)进行比较。在这种情况下,由于来自DUT输出的实际数据包具有延迟,因此需要存储来自reference model的预期数据包。

uvm_tlm_fifo似乎是解决此类问题的好方法,存储数据包直到需要为止。但是,uvm_tlm_fifo没有analysis export,因此无法将其直接连接到monitor的analysis port。UVM中的uvm_tlm_analysis_fifo可以满足此需求, uvm_tlm_analysis_fifo具有analysis export,因此可以将其直接连接到monitor的analysis port。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字芯片实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档