在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15264|回复: 13

[求助] 关于AXI总线VALID和READY信号间的关系

[复制链接]
发表于 2012-10-8 22:30:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
刚刚在看AXI协议的资料 看到这样一句话It is important that during a write transaction, a master must not wait for AWREADY to be
asserted before driving WVALID. This could cause a deadlock condition if the slave is
conversely waiting for WVALID before asserting AWREADY.

这应该说的是AWREADY信号不能在WVALID之前就拉高,因为如果AREADY在等WVALID的话会造成死循环
看着这句话想了半天 也想不出为什么会这样 或者是我的英语水平有限把意思理解错了 有哪位大神懂的望指教一下

发表于 2012-10-9 12:16:19 | 显示全部楼层
理解反了吧,是WVALID信号不能通过AWREADY信号产生,否则会产生一个combinational loop.
 楼主| 发表于 2012-10-12 19:06:47 | 显示全部楼层
回复 2# majia123qwe


   好像是我理解有误 我再琢磨琢磨  再问你一个问题 我今天去面试 问了一个问题 AHB的数据传输速度提高的瓶颈在哪 如果要提高AHB的数据传输速度 可以在哪些方面进行改进
发表于 2012-10-12 21:31:46 | 显示全部楼层
AHB的critical path是在hready,因为hready往往都是贯穿 输入hready, haddr, htrans,hwrite以及slave端逻辑的信号。要单方面提高速度,那么可以通过插入hready的stall cycle,从而截断 输入hready, haddr, htrans,hwrite,使hready只需要考虑slave端逻辑的timing。

如果还要提高速度,那么可以合理分配地址段,减少haddr的判断位数,或者定义slave只写、只读,不考虑htrans等等极限的提高。
 楼主| 发表于 2012-10-12 22:30:35 | 显示全部楼层
太感谢了 学习了 以后有问题问您哈
发表于 2012-11-7 11:28:12 | 显示全部楼层
slave可以wait valid assertion产生ready,如果master在wait ready assertion产生valid,那么这样就会形成死锁。所以master不应该wait ready而产生valid
发表于 2013-8-28 16:56:30 | 显示全部楼层
各位,我也有一个关于AXI写事务握手的问题,就是这个握手并没有规定,究竟先地址通道握手还是先数据通道握手,要是数据通道先握手了,这时都还没有地址,数据应该写往哪儿呢?
发表于 2013-8-28 19:18:19 | 显示全部楼层




   各通道是独立的。数据通道握手成功就把数据暂存下来,地址通道握手成功就把地址等控制信号存下来,然后两个通道之间根据ID来匹配,然后.......
发表于 2013-8-28 19:25:01 | 显示全部楼层


理解反了吧,是WVALID信号不能通过AWREADY信号产生,否则会产生一个combinational loop.
majia123qwe 发表于 2012-10-9 12:16




   这个不是组合环的问题。打个比方:卖家说先付款后发货,卖家说先发货后付款,这样永远也达不成交易。类比下........
发表于 2013-8-29 10:42:35 | 显示全部楼层
回复 7# hello20072827

最好找个已有的例子来研究,看看人家如何实现。比如SYNOPSYS的IP CORE,与AXI与关的接口,对方是master,这边slave来配合,是先出地址和awvalid, 随后出wvalid,可以在看到二者都拉高后将awready拉高得到地址,过一个时钟再将wready拉高得到写数据。

以前想过种可能,就是万一AXI mster那边出来乱了怎么办?比如先出数据,再出对应的地址如何办?或者要是awid与wid出来的不一致怎么办?设计了比较复杂的配合方式,比如awid是4bit的话,做了个双口RAM,按awid将地址储存起来,数据也可以按类似方式以wid为地址储存起来,还设个flag,如果awid与wid都有内容了,则将之取出来配对,官操作完成,同时将flag置低放下一个相同的awid/wid进来。而此时有其它的wid的话,不受影响。


后来发现这样做意义不大,如果是很复杂的应用,比如AXI仲裁器,可能有这个需要,如果就是很简单的一个master与slave对接,即便有不同的awid发送,也不会复杂,直接使用就好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-21 11:27 , Processed in 0.020425 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表