一个AMBA协议相关组合逻辑回环的问题

本文介绍了在设计一个单master控制两个slave的小系统时遇到的组合逻辑回环问题。该问题源于BUSMATRIX组件中hreadyout和htrans之间的组合路径。为了解决master在访问不同slave时数据phase和地址phase重合导致的问题,尝试使用hreadyout控制HTRANSM,但产生了巨大的组合回环路径。解决方案是通过在特定时机保存trans和haddrs信息,避免在不恰当的时间发送BM2的trans,同时需要增加寄存器和选择逻辑。最初的简单设计会导致总线被拉死,因为CPU和BM2的传输同步出现问题,造成无效传输占用BM2的slave口。
摘要由CSDN通过智能技术生成

最近要设计一个单master控制两个slave的小系统,如下图所示。
在这里插入图片描述小系统框图
结果在综合和nlint的时候报出了组合逻辑回环的问题。
后来检查了一下代码,发现组合回环路径如下:
在这里插入图片描述组合回环路径
在BUSMATRIX(图中的BM1和BM2)中和返回给其master的hreadyout和其收到的htrans是组合关系。其组合路径就是图中的1和4。为了避开这种组合路径我之前设计不敢直接用返回的hreadyoutm,耍了个小聪明,使用了另一个端口的hreadyout,结果就出现了如上图的巨大组合回环路径。
之所以使用hreadyout来组合控制HTRANSM是为了解决以下场景:
Master访问BM1然后马上切换去访问BM2。访问BM1的数据phase和访问BM2的地址phase就重合了。为了在重合的时候将BM2的trans发送到BM2,就需要用BM1的ready来组合控制(在BM1的数据phase还未完成时,时不能将BM2的trans发下去

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值