博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVM_TLM
阅读量:5235 次
发布时间:2019-06-14

本文共 1942 字,大约阅读时间需要 6 分钟。

1、UVM_TLM 1.0

TLM通信中的术语:

  1、put操作:发起者发送数据至目标。

  2、get操作:发起者从目标获取数据。

  3、transport操作:一次put操作 + 一次get操作,A向B发起一个req,B返回给A应答rsp。

  4、peek操作:发起者从目标获取数据(同get一样)。但是目标中的数据还存在(与get的区别)。

  5、port、export:发起者的端口为port,目标的端口为export,port/export体现的是控制流。

2、port与export:

1、port、export、transport的类型:

  有blocking和nonblocking之分;

  有put、get、peek之分;

 blocking:用于阻塞端口,在事件等待的情况下用。

 nonblocking:用于非阻塞端口,数据传输。

2、port、export、imp连接及使用:

--------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------

 

总结:port-export-imp的使用时,端口类型固定,端口数目为1对1.

3、analysis_port的使用:

analysis_port(analysis_export)可以连接多个analysis_imp,以广播的形式。

总结:analysis_port一般用在数据包分发到不同的component的情况,如driver中通过ap的方式把pkt发送至ref_model,和scb。

4、tlm_fifo的使用:

uvm_tlm_fifo是uvm_component类型的,它里面内置了多个端口。

 

agentscoreboard之间添加一个uvm_analysis_fifoFIFO的本质是一块缓存加两个IMP

monitorFIFO连接关系中,monitor中依然是analysis_portFIFO中是uvm_analysis_imp,数据流和控制流的方向相同。
scoreboardFIFO的连接关系中,scoreboard中使用blocking_get_port端口,FIFO中使用的是一个get端口的IMP 。
使用fifo的好处是可以通过for循环进行多个端口的连接。使用fifo的多个端口通信例子如下:

---------------------------------------------------------------------------------------------------------------

//uvm_blocking_get_port就是图b 中scoreboard的get_port端。

---------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------

 

// 高亮第一部分为mdl通过fifo将16个exp_port采集的ref_model参考数据连接到scb的代码;

// 高亮第二部分为o_agt通过fifo将act_port采集的dut输出数据连接到scb的代码;

//注意FIFO中的analysis_exportblocking_get_export虽然名字中有关键字export,但是其类型却是IMP 。

---------------------------------------------------------------------------------------------------------------

 

转载于:https://www.cnblogs.com/littleMa/p/5789803.html

你可能感兴趣的文章
疯狂JAVA16课之对象与内存控制
查看>>
django ORM创建数据库方法
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
口胡:[HNOI2011]数学作业
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
android中fragment的使用及与activity之间的通信
查看>>
jquery的contains方法
查看>>
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
转:基于用户投票的排名算法系列
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>