本文主要是介绍uvm_user_guide_1.2 -- ch2 TLM 通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2. uvm_user_guide_1.2 -- TLM 通信
- 2.1 TLM-1的实现
- 2.1.1 Basics
- 2.1.1.1 Transactions
- 2.1.1.2 Transaction级通信
- 2.1.1.3 基本TLM通信
- 2.1.1.4 进程间的通信
- 2.1.1.5 Blocking 与 Nonblocking
- 2.1.1.6 连接 transaction 级组件
- 2.1.1.7 点到点的连接
- 2.1.1.8 Port/Export 匹配
- 2.1.2 封装和层次
- 2.1.2.1 层次性连接
- 2.1.2.2 连接类型
- 2.1.3 Analysis 通信
- 2.1.3.1 Analysis Ports
- 2.1.3.2 Analysis Exports
2.1 TLM-1的实现
2.1.1 Basics
2.1.1.1 Transactions
在UVM中,transaction是包含了两个组件之间传递的信息的类对象。例如,一个传输总线协议信息的transaction以如下方式建模:
class simple_trans extends uvm_sequence_item;rand data_t data;rand addr_t addr;rand enum {WRITE, READ} kind;constraint c1 { addr < 16'h2000; }...
endclass
transaction对象包含变量、约束以及其他需要对transaction进行操作的域和方法。此外,上面的transaction可以被扩展到包含更多信息的transaction,也可以定义包含多个其他transaction的更高级别的transaction。
2.1.1.2 Transaction级通信
Transaction级的接口定义了一系列使用transaction对象作为参数的方法。一个TLM port 在特定的连接中定义了这些方法,TLM export 提供了这些方法的实现。将 port 连接到 export 后,在 port 中可以调用该方法进行执行。
2.1.1.3 基本TLM通信
最基本的transaction级操作允许一个组件将transaction put 到另一个组件。
producer的方块表示一个 port,consumer的圆圈表示一个 export。producer产生transaction然后通过其 <
这篇关于uvm_user_guide_1.2 -- ch2 TLM 通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!