前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UVM(十一)之各种port续

UVM(十一)之各种port续

作者头像
瓜大三哥
发布2018-02-26 15:07:21
1.5K0
发布2018-02-26 15:07:21
举报
文章被收录于专栏:瓜大三哥瓜大三哥

UVM(十一)之各种port续

UVM中各种port的链接:按照控制流的优先级排序,UVM中三种port为:PORT,EXPORT,IMP。这三种port之间并不是互相之间都可以连接的。

1. 使用connect建立连接关系

如图所示,四个端口,我们要在A和B之间通信,在C和D之间通信,为了实现这个目标,必须要在A和B之间,C和D之间建立一种连接关系,否则的话,A如何知道是与B通信而不是C或者D呢?

UVM中使用connect函数建立连接关系。如A要和B通信(A是发起者),那么可以这么写:

A.connect(B);

但是不能写B.connect(A)。因为在通信的过程中,A是发起者,A是被动承担者。这种通信时的主次顺序也适用于连接时,只有发起者才能调用connect函数,而被动承担者则作为connect的参数。

2. port与IMP的链接

在UVM三种端口按照控制流优先级排列中,PORT是最高优先级,IMP是最低优先级。理所当然的,一个PORT可以调用connect函数并把IMP作为端口调用时的参数。假设有三个component A,B和C,其中C是A和B的parent,现在要把A中的PORT和B中的IMP链接起来,如下图:

在A中有如下定义:

其中A_port在实例化的时候比较奇怪,第一个参数是名字,而第二个参数则是一个uvm_component类型的parent变量。

B中的定义如下:

由于A中采用了blocking put的PORT,所以在B中IMP相应的类型是uvm_blocking_put_imp。同时,这个IMP有两个参数,第一个参数是要将传输的transaction,第二个参数前面说过,就是实现接口的uvm_component。在这里就是B_imp所在的uvm_component B。IM的new函数与PORT的相似,第一个参数是名字,第二个参数是一个uvm_component变量,一般填写this即可。

3. EXPORT与IMP连接

PORT可以与IMP相连接,统一的EXPORT也可以与IMP相连接,其连接方法与PORT和IMP的连接完全一样。

4. PORT和EXPORT连接

有了PORT和IMP的连接,EXPORT和IMP的连接,我们自然也期待着PORT和EXPORT能够相连接。因为在TLM中,PORT和EXPORT相连接是贯穿始终的。

一定要使用IMP来终结连接关系。PORT和EXPORT都不能作为连接关系的终点。

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

本文分享自 瓜大三哥 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UVM(十一)之各种port续
    • 1. 使用connect建立连接关系
      • 2. port与IMP的链接
        • 3. EXPORT与IMP连接
          • 4. PORT和EXPORT连接
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档