ic验证笔记-20天挑战day15

1. TLM通信

系统原型一般是通过硬件功能描述文档来模拟硬件行为,而行为要求不同于RTL模型。系统原型可以提供一个准确到硬件比特级别,按照地址段落访问,不依赖于时钟周期的模型。

芯片验证实在RTL模型初步简历后,通过验证语言和方法学例如SV/UVM来构建验证平台。

组件之间的通讯基于TLM,而在driver与硬件接口之间需要将TLM抽象事务降解到基于时钟的信号级别。

系统原型阶段和芯片验证阶段均使用TLM通信方式。前者是为了更快的实现硬件原型之间的数据通信,后者是为了更快的实现组件之间的数据通信。

TLM作为一种提高数据传输抽象级的标准存在的。

提高系统模型的仿真性能,需要考虑两个方面:

一个是建模自身的运算优化,另外一个是模型之间的通信优化

前者需要依靠开发者的经验还有性能分析工具来逐步优化模型

后者则可以通过将通信频率降低,内容体积增大的方式,来减少由不同进程剑同步带来的资源损耗

TLM通信需要两个通信的对象,谁发起通信请求,谁就属于initiator,谁作为发起通信的响应方,谁就属于target。通信发起方并不代表transaction的流向起点,即不一定数据是从initiator流向target,也可能是从target流向了initiator

按照transaction的流向,将对象分为producer和consumer,数据从哪里产生,就属于producer,数据流向哪里,就属于consumer。

用户需要在target端定义TLM的通信方法,put()发送transaction,get()获取transaction

TLM通信步骤分为:

分辨出initiator和target,producer和consumer

在target中实现tlm通信方法

在两个对象中创建tlm端口

在更高层次中将两个对象的端口进行对接

从数据流向来看,传输方向分为单项(undirection)和双向(bidirection)

单向传输:由initiator发起request transaction

双向传输:由initiator发起request transaction ,传送至target,而target在消化了request transaction后,会发起response transaction,继而返回给了initiator

端口的按照类型划分为三种:

port:经常作为initiator的发起端,initiator凭借port才可以访问target的TLM通信方法

export:作为initiator和target中间层次的端口 (extern 延伸)

imp:只能作为target接收request的末端,它无法作为中间层次的端口,所以imp的连接无法再次延伸(终点

 UNIDIR单向端口 BIDIR双向端口

uvm_UNDIR_port #(trans_t)

uvm_UNDIR_export #(trans_t)

uvm_UNDIR_imp #(trans_t, imp_parent_t)

uvm_BIDIR_port #(req_trans_t, rsp_trans_t)

uvm_BIDIR_export #(req_trans_t, rsp_trans_t)

uvm_BIDIR_imp #(req_trans_t, rsp_trans_t, imp_parent_t)

class request extends uvm_transaction;

        byte cmd;

        int addr;

        int req;

endclass 

class response extends uvm_transaction;

        byte cmd;

        int addr;

        int rsp;

        int status;

endclass

class comp1 extends uvm_agent;

        uvm_blocking_get_port #(request) bg_port;

        `uvm_component_utils(comp1)

        ...

endclass

class comp2 extends uvm_agent;

        uvm_blockin
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值