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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2699|回复: 1

[求助] 关于AHB读写分离的问题

[复制链接]
发表于 2019-9-26 17:05:01 | 显示全部楼层 |阅读模式

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

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

x
最近在研究Arm AHB-DMA的内容,发现标准AHB(注意是AHB,不是AHB-DMA)协议信号里面有一组Hresp、Hsize、Haddr等信号,另外还有一个Hwrite,它为高或低分别表示读或者写。我的理解是既然读写共一根线就是读写不会同时发生;然而在opencores上看到了一个IP(AHB-DMA32)的代码,没有AHB的Hwrite信号,但是有两组控制信号(wHresp、wHsize、wHaddr等一组和rHresp、rHsize、rHaddr等一组),从介绍看来是读写是可以同时发生的;
问题是:
     AHB读写或者说AHB-DMA读写是否是类似的,读写间是否要分离?是否必须分离?
    我理解的AHB协议是AHB进行数据传输操作的时候,待操作(读/写)数据是提前放入缓存的(FIFO),所以AHB操作是CPU给出FIFO的端口地址和读取模式,又给出外设地址以便写入或者读出,然后进行DMA操作,也就是说读了一个数据就同时写了一个数据。
    从别人的IP看,感觉又不是上面那么回事,是AHB 读 和写分开,在读写之间有通道缓存(temp_fifo),读写不是一起进行的,相当于先读一块数据到通道缓存,通道缓存的数据再写到目的地址,也就是说写数据和读数据没有直接联系。
    上面的两种理解看似都不违背AHB协议,想请教大家,上面两种理解哪种正确还是都正确(都是AHB协议?),还是这两种不同是因为后者是带有DMA控制器的缘故?
发表于 2020-10-13 16:32:24 | 显示全部楼层
AHB是通讯协议,而AHB-DMA是模块,你把两个东西混在一起?
1.AHB通讯协议里规定了,单总线的写与读访问不能同时进行。所以,Master要么写,要么读,通过HWRITE区分。
2.AHB-DMA是别人开发的模块,是单总线读写分时,还是双总线读写分离,这取决于设计规格的要求。如果规格对DMA的访问效率没有要求,你做成单总线先读后写也可以,这样的话Burst访问,效率就会很差,必须Burst读取所有数据填满RFIFO后,才能BURST写到目标。但如果是读写分离的双总线结构,那么RFIFO内只要有数据,写总线就可以将FIFO的数据写出去。这跟AHB总线协议没关系,只跟你的设计需求有关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 16:42 , Processed in 0.013208 second(s), 6 queries , Gzip On, Redis On.

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