芯片设计小经验——如何抢一拍

本文探讨了在芯片设计中,如何通过在握手成功时立即更新数据缓冲区,避免数据断流,从而提高系统性能。通过分析Master与Slave之间的交互,提出在握手成功当拍使用寄存器D端更新值的策略,有效地‘抢一拍’,提升了数据传输的吞吐量,但同时也指出这种做法需考虑D端逻辑的时序负担,需根据具体场景灵活运用。
摘要由CSDN通过智能技术生成

前端设计中的一个设计小细节
先来看一个简单的场景

在这里插入图片描述
如上图所示,Master和Slave之间进行数据传递,有一个简单的握手。Master的输出口有一级缓存用来缓存数据。m_s_vld和s_m_rdy同时有效时,Master的DATA BUF数据被读走,同时VLD BUF更新为无效。我们重点关注缓存BUF的更新条件。

当VLD BUF为无效的时候更新,此时DATA BUF为空。DATA BUF和VLD BUF的更新逻辑分别如下:
在这里插入图片描述

如上图所示,在握手完成的时候清空缓存BUF,当缓存有空间并且m_vld有效的时候可以写入。这样的做法从功能上来讲没有问题,但是在某些场景下性能并不是最优。假设master足够快,m_vld连续多拍有效,并且Slave的接受能力强,可以连续接受多个数据,时序图如下:

在这里插入图片描述
可以看到在上图中,第3拍的时候m_s_vld出现了数据断流,但是此时m_vld还是有效的,即有效的master端数据无法及时传递出去。如果slave端也可以连续接收多个数据,握手次数多,则会出现多个bubble(第5拍,第7拍,第9拍

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值