TLM 2.0 peg_with_get类的使用

本文探讨TLM 2.0中peg_with_get类在Target行为模拟中的应用,特别是在描述存储器响应延迟和end_resp_delay概念。peg_with_get类用于模拟Target在收到读请求后的响应过程,包括数据在总线上的停留时间和可能的传输阻塞情况。通过代码分析,展示了如何使用该类进行传输过程,并解释了如何处理因end_resp_delay导致的进程阻塞,以及如何通过peq_with_get::get_next_transaction()方法避免错过传输任务。
摘要由CSDN通过智能技术生成

TLM 2.0 peg_with_get类的使用

一次TLM事务级传输模型主要有三个组成部分:Initiator,Interconnect component,Target。本文关注点在于对Target的行为的描述。以硬件系统中的挂载在总线上的存储器为例。当存储器收到来自总线的读数据请求时,一般会有一个响应时间read_delay,在等待这个响应延时之后,数据才会出现在总线上等待被取走,然后存储开始送出下一个数据(如果有连续的读请求的话)。那么存储器送到总线上的数据什么时候会被取走呢?这个得由请求者来决定,可以将这段时间定义为end_resp_delay,end_resp_delay的时间长短不定,以周期数衡量的话,它可以为零或者非零。如果end_read_delay为零的话,存储器会在当前数据被送到总线之后的下一个周期将下一个数据送到总线;如果end_resp_delay非零的话,当前数据会在总线上多停留end_resp_delay个周期,这样就会阻塞下一个数据的送出end_resp_delay个周期直到当前数据被取走。
peg_with_get类可以模拟出上面所描述的情景,下面通过代码分析

void DeviceProxy::begin_response_thread()  
{
     
    wait(mResponsePEQ.get_event())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值