标签:function TLM1.0 Component Port Imp UVM Interface port TLM
UVM TLM1.0 Interface归纳总结
--- 图解UVM TLM1.0 Interface
Transaction-Level Modeling (TLM) 用户模块之间的通信. 是实现基于事务的方法的概念,这些方法可用于模块之间的通信。
The UVM库提供了事务级接口、端口、导出、imp端口和分析端口。所有这些TLM元素都需要用来发送事务、接收事务以及从一个组件到另一个组件的传输。每个人都扮演着自己独特的角色。
- TLM Interfaces由发送和接收事务的方法组成
- 所有不同类型的TLM端口都像管道一样用于组件之间的连接
UVM TLM库提供了:
- TLM1 – TLM1端口提供阻塞和非阻塞的按值传递事务级接口
- TLM2 – The TLM2 sockets 提供具有定义良好的完成语义的阻塞和非阻塞事务级接口
- Sequencer Port – A push or pull port, with well-defined completion semantics.
- Analysis – The analysis interface is used to perform non-blocking broadcasts of transactions to connected components
一、UVM TLM Interface Summary
Type | Communication |
Blocking | Port -> Imp Port |
Port -> Imp Port Blocking Port Behaviour | |
NonBlocking | Port -> Imp Port NonBlocking |
Port -> Imp Port can_put method NonBlocking | |
Blocking | Port -> Export -> Imp_port |
Port -> Port -> Imp_port | |
Port -> Port -> Export -> Imp_port | |
Port -> Port -> Export -> Export -> Imp_port | |
Get Port -> imp_port | |
TLM FIFO | TLM FIFO |
TLM FIFO NonBlocking | |
TLM Analysis Port Analysis Imp Port and Analysis FIFO | TLM Analysis Port Analysis Imp port |
TLM Analysis Port with multi analysis imp port | |
TLM Analysis Port Multi Subscribers Analysis imp port | |
TLM Analysis Port Multi Subscribers with multi Analysis imp port | |
TLM Analysis FIFO |
二、图解UVM TLM1.0通信过程
2.1、Blocking TLM Port and Blocking Imp Port
- 在Component B中写一个put task,其原型为:virtual task put(T t)
2.2、Nonblocking TLM port and Imp Port
- 在Component B中写一个function,其原型为:virtual function bit try_put(T t)
2.3、Nonblocking can_put method
- 在Component B中写一个function,其原型为:virtual function bit can_put(T t)
2.4、Connecting TLM Port export imp port
- 在Component B中写一个put task,其原型为:virtual task put(T t)
2.5、Connecting TLM Port Port Imp port
- 在Component B中写一个put task,其原型为:virtual task put(T t)
2.6、Connecting TLM Port Port Export Imp port
- 在Component B中写一个put task,其原型为:virtual task put(T t)
2.7、Connecting TLM Port Port Export Export Imp port
- 在Component B_aa(传输终点imp所在的Component)中写一个put task,其原型为:virtual task put(T t)
2.8、Connecting TLM Get port imp port
- 在Component B中写一个get task,其原型为:virtual task get(T t)
2.9、Nonblocking TLM port and Imp Port
- 在Component B中写一个try_get function,其原型为:virtual function bit try_get(T t)
2.10、Nonblocking can_get method
- 在Component B中写一个can_get function,其原型为:virtual function bit can_get(T t)
2.11、TLM FIFO
2.12、TLM FIFO with NonBlocking ports
- 在Component B中写一个try_get function,其原型为:virtual function bit try_get(T t)
2.13、Connecting Analysis port and Analysis imp port
- 在Component B中写一个write function,其原型为:virtual function write(T t)
2.14、Connecting multiple ports to a single analysis port
- 在Component B中写一个write function,其原型为:virtual function write(T t)
- 通过`uvm_analysis_imp_decl()扩展为多个write function
2.16、Multi Subscribers with a single port
- 在Component B中写一个write function,其原型为:virtual function write(T t)
- 在Component C中写一个write function,其原型为:virtual function write(T t)
2.17、Multi Subscribers with Multiports
2.18、TLM Analysis FIFO
- 在Component B中写一个get function,其原型为:virtual function get(T t)
标签:function,TLM1.0,Component,Port,Imp,UVM,Interface,port,TLM 来源: https://blog.csdn.net/gsjthxy/article/details/105495550
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。