uvm_tlm通信篇总结
UVM通信篇之一:TLM通信概论
- TLM通信需要两个通信的对象,这两个对象分别称之为initiator object和target object。
- 谁首先发起通信的要求,谁就属于initiator,而谁作为发起通信的响应方,谁就属于target
- 按照transaction的流向,我们又可以将两个对象分为producer和consumer。区分它们的方法是,数据从哪里产生,它就属于producer,而数据流向了哪里,它就属于consumer。
- 在target中实现TLM通信方法。
port:经常作为initiator的发起端,也凭借port,initiator才可以访问target中实现的TLM通信方法。
export:作为initiator和target中间层次的端口。
imp:只能是作为target接收request的末端,它无法作为中间层次的端口,所以imp的连接无法再次延伸。
首先来看看下面的例子中,关于TLM端口的类型、层次和对应的连接。可以从对应的连接关系中初步得出TLM端口连接的一般做法:
在initiator端中例化port,在中间层次例化export,而在target端例化imp。
多个port可以连接到同一个export或者imp;但是单个port或者export无法连接多个imp。这可以抽象为多个initiator可以对同一个target发起request,但是同一个initiator无法连接多个target。
port应为request起点,imp应为request终点,而中间可以穿越多个层次。基于单元组件的自闭性考虑,建议在这些穿越的中间层次中声明export,继而通过一级一级的连接实现数据最终的通路。
port可以连接port、export或者imp;export可以连接export或者imp;imp只能作为数据传送的终点,无法扩展连接。
UVM通信篇之二:单向、双向及多向通信(上)
UVM通信篇之四:通信管道应用
put_export:用户可以通过该端口调用put()、try_put()、can_put()。
put_ap:调用了put方法写入的数据同时也会通过该端口的write()函数送出。
get_peek_export:用户可以通过该端口调用get()、try_get()、can_get()、peek()、try_peek()、can_peek()。
get_ap:调用了get和peek方法读出的数据也会通过该端口的write()函数送出。
在使用过程中,我们将以用户将uvm_tlm_fifo的功能类比于mailbox,而不同的地方在于uvm_tlm_fifo提供了各种端口供用户使用
Analysis Port
利用软件的设计模式之一观察者模式(observer pattern)来实现这一要求。observer pattern的核心在于用户需要记住,第一,这是从一个initiator端到多个target端的方式;第二,analysis port采取的是"push"模式,即从initiator端调用多个target端的write()函数来实现循环式的更新。
Analysis TLM FIFO
由于analysis端口的提出实现了一端到多端的传输,而一个新的数据缓存组件类uvm_tlm_analysis_fifo为用户们提供了可以搭配uvm_analysis_port的端口uvm_analysis_imp和write()函数。
UVM通信篇之六:同步通信元件(上)
uvm_event,uvm_event_pool和uvm_event_callback
uvm_tlm通信篇总结相关推荐
- jsp给前端注入值失败_基于 qiankun 的微前端最佳实践(图文并茂) 应用间通信篇...
引言 大家好~ 本文是基于 qiankun 的微前端最佳实践系列文章之 应用间通信篇,本文将分享在 qiankun 中如何进行应用间通信. 在开始介绍 qiankun 的应用通信之前,我们需要先了解微 ...
- 物联网通信篇 NBIOT_01
NBiOT_01物联网通信篇 从今天开始懒博主开始更新了,目前先更新 物联网 通信方面 目前我所测试的通信模组有以下几种型号: NB 4G 5G 今天先来说下怎么用 使用移动 M5311模组 的MQT ...
- 树莓派4B学习笔记——IO通信篇(UART)
文章目录 UART简介 树莓派使用UART与串口屏通信 串口屏简介 硬件连接 配置串口接口 树莓派打开UART接口 树莓派安装串口调试助手 编程实现 wiringSerial.h Serial简介 C ...
- Autosar BSW开发必知的“术语”+“缩写”概念-1-诊断通信篇
如何使用该博文? ==>您可以将该篇博文当做"字典",遇到疑惑的Autosar"关键字",使用组合键Ctrl+F,快速查找该关键字. 推荐Autosar培 ...
- Android 开发:通信篇-TCP客户端
这节教给大家用Android写一个TCP客户端程序 官方文档 Socket - Android SDK | Android Developers 页面 编写连接程序 1.获取控件 EditText e ...
- ReactNative与iOS通信原理解析-通信篇
文章首发个人博客: ReactNative与iOS通信原理解析-通信篇 导语:其实原本是想编写一篇 react-native (下文简称 rn) 在 iOS 中如何实现 jsbridge 的文章 ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10256379.html],谢谢! 只要是面试高级工程师岗位,Android跨进程通信就是最受面 ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇...
前言 原文:https://www.cnblogs.com/andy-songwei/p/10256379.html 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一. ...
- Hybrid框架之交互通信篇
前言 虽然有些应用在使用React Native或Weex开发,但综合来看,业内还是以混合开发模式为主,从我们自家的App来看,H5业务所占比重越来越高,目前大概占到35%左右,因此一套好的Hybri ...
最新文章
- Linux中如何使用Htop监控工具?【网络安全】
- warning: implicit declaration of function ‘sleep’(添加头文件: #include <unistd.h>)
- dhcp是哪一层的协议_OSI各个分层分别负责哪些功能?有哪些主要协议?涉及到哪些设备?...
- linux shell 博客,【博客侠】Linux Shell脚本系列:开始上手(1)
- m1笔记本android开发,Apple M1设备开发Android小tips
- java filter 调用链_JavaWeb开发Servlet过滤器链执行顺序详解
- 给大家发一个DDOS防御包算法公式
- 腾讯会议开放API接口,为企业打造专属的“腾讯会议”
- postgresql表空间迁移
- 微信小程序demo、开发工具下载地址
- 二本软件工程学生的考研逆袭之路
- Dual Thrust 策略
- Activity焦点
- 两台 计算机如何建立共享,怎么建立两个电脑的共享
- 北京联通光猫WO-36(HG220GS-U)改为桥接模式
- [bzoj3939_Usaco2015 Feb]Cow Hopscotch(线段树维护DP)
- 京东后台模板导入SKU报格式错误
- 十年老程序员开始新事业
- 教育直播APP开发,在线教育系统开发(功能)
- Pythom爬虫之图虫小姐姐图片的爬取:
热门文章
- 7.3 Java(农夫果园【4】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)
- 为什么出价策略会进入学习期,周期是多久。
- Jenkins-springcloud项目打包并上传docker仓库
- 【Pyhton 实战】---- 批量【端午节】海报下载
- 手机通讯录java首字母排序,Android联系人按拼音排序以及按汉字首字母或全拼搜索...
- 学生管理系统(web版)
- 2010 27寸 imac 升级固态_新iMac拆解证实 自行加装SSD难如登天
- Python全栈工程师(30:html)
- 闲着没事,自己做贪吃蛇耍耍?
- Java常用类——Java教案(六)