首先我们需要知道通信的双方都是要有通信接口的,另外需要商议好的通信方式, UVM 也是这样做的,其定义了三种通信接口和三种通信方式,不同的通信接口对应不同的通信方式。
UVM 定义了组件之间的三种通信类型,分别为 PUT、 GET、 TRANSPORT。PUT 是组件 A 将一个 transaction 交给组件 B, GET 是组件 A 向组件 B 请求一个transaction, TRANSPORT 是组件 A 将一个 transaction 交给组件 B,然后向组件 B 请求一个 transaction。
对应于该三类通信机制,又有两种不同的类型,阻塞和非阻塞。阻塞 PUT 表示在没有将该 transaction 交给 B 之前,将一直停在这里,非阻塞 PUT 表示将 transaction 交给 B 之前就返回了,不再等待 B 接收完成。
除过上面的三个端口之外,UVM 还定义了两种常用的端口:analysis port 和analysis export。他们不同于其他端口的地方在于 analysis 端口支持一对多的通信,即一个 analysis 可以连接多个 IMP。另外 analysis 端口只有一个 write 操作,该操作实现广播的意思。此外 analysis 没有阻塞非阻塞的概念,其本身就是广播操作,不存在阻塞和非阻塞。
作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/_hJ-X4TtmQdM_TQKU6-qvg
微信公众号:
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏