TLM通信(1.0)

TLM中常见操作

以下都以A为“发起者”,B为“接收方”阐述

1.put

        A将Transaction发送给B

2.get

        A向B索取一个Transaction

3.transport

        A向B发送一个Transaction,向B索取一个Transaction

put、get和transport都有阻塞和非阻塞之分。

UVM中的端口

注意是UVM中的端口,实际上在TLM中没有定义IMP

1.port

        通信发起方具有的端口称为port

2.export

        通信的接收方具有端口称为export

3.imp

        与port和export进行通信的被动承担者

IMP定义时的两个参数(T,IMP)

        前者指的传输的数据类型,后者指的是实现这个接口的一个component

详解:A.A_port.put(T)实际上调用的是B.B_export.put(T),而B.B_export.put(T)调用的是B.B_imp.put(T),所以实现接口的操作最终需要B这个component中写入的put实现。

三种端口的优先级顺序:port>export>import,只有优先级高的端口才能主动连接到优先级低的,但是只有IMP才能作为连接关系的终点。

UVM中的通信方式

1.analysis端口

        UVM中有两个特殊的端口,analysis_portanalysis_export。

与常见端口的区别

1.一个analysis_port(analysis_export)可以连接多个IMP,类似于广播;

2.analysis_port和analysis_export没有阻塞和非阻塞之分;

3.对于put系列端口,有put、try_put、can_put等操作,对于广播只有write操作。

2.uvm_analysis_imp_decl

        同一个component中有多个analysis_imp时,避免其write函数重名。

使用宏定义声明后缀

3.fifo通信

        fifo的本质是一块缓存加两个imp

FIFO中有两个IMP,但关键字命名为export,是为了掩饰在TLM中不存在的IMP

1.分类

        uvm_tlm_analysis_fifo

        uvm_tlm_fifo

前者有一个analysis_export和自带write函数,后者没有。

2.put_ap和get_ap

除了12个IMP(tlm_fifo)之外,fifo中还有2个port

        当put_export连接到一个put_port时,会自动调用fifo内的put将Transaction传递到fifo缓存并通过put_ap使用write函数发送出去。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值