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

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

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6524|回复: 15

[求助] Synopsys DMA疑问

[复制链接]
发表于 2020-6-10 12:10:42 | 显示全部楼层 |阅读模式

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

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

x
大家好,最近开始使用coreConsultant生成的Synopsys DMA,在配置界面时,发现channel最多可以配置为8个,但是handshaking interface的数量最多可以配16个,也就是说一个channel对应两个handshaking interface。
           问题1:一个channel对应两个handshaking interface,用一个行不行?
           个人理解:一个channel配置好之后,必然会有一个source和一个destination与之对应,所以两个handshaking interface是source端和destination端的,对么
           问题2:两个握手接口和DMAC之间的关系?都是外设向DMAC发送req么?
           个人理解:从databook的图上看,是外设发送req给DMAC,source和destination都是如此么?如果source端的数据取完了,destination一直不发送req给DMAC,DMAC会不会卡死?
    问题3:里面常常提到flow controller,个人理解是流控制器,当DMAC作为流控制器或外设作为流控器,握手接口方向还是从外设到DMAC么?
            


发表于 2020-6-10 12:49:22 | 显示全部楼层
第一个问题:应该是8 write channel和8 read channel,和handshake是对应的。
 楼主| 发表于 2020-6-10 13:51:33 | 显示全部楼层


xuxh1986 发表于 2020-6-10 12:49
第一个问题:应该是8 write channel和8 read channel,和handshake是对应的。


只有8个通道,并且通道的传输方向是单向的,都是从source到destination

发表于 2020-6-15 15:10:36 | 显示全部楼层
看看附件图
2020-06-15_150955.jpg
 楼主| 发表于 2020-6-15 15:58:00 | 显示全部楼层


估计是和你的版本不同(我这边DMAC的版本是2.18b),我这边只有一个“Number of DMA channels”的设置选项,并没有write channel和read channel的设置

发表于 2022-3-11 14:56:30 | 显示全部楼层
楼主,我现在也有这样的问题,后两个问题解决了吗
发表于 2022-3-18 14:00:10 | 显示全部楼层
问题1,通道是否使用handshake,以及source和destination使用哪个handshake,是可以通过软件配置的。比如,mem到mem的搬移,可以不用handshake,mem到外设的搬移,用1个handshake,外设到外设的搬移,用两个handshake。
问题2,handshake是外设对dma的请求。如果来自source,那就是请求dma读,如果来自destination,那就是请求dma写。如果配置了使用handshake,但没有对应的req产生,dma确实会一直等待。
问题3,流控本质是由谁来判断是否完成搬移。当dma作为流控时,可以软件配置搬移的数据数量,那么当完成指定数量的搬移后,dma会自动停止搬移。如果不知道要搬移的数据数量,则可以设置为外设流控,由外设决定是否完成搬移,并产生last信号给dma,dma接收到后停止搬移。
 楼主| 发表于 2022-3-18 15:11:37 | 显示全部楼层


不会吧不会吧 发表于 2022-3-11 14:56
楼主,我现在也有这样的问题,后两个问题解决了吗


后面没有用这个IP了,嫌弃面积太大
 楼主| 发表于 2022-3-18 15:15:11 | 显示全部楼层


coolbear2021 发表于 2022-3-18 14:00
问题1,通道是否使用handshake,以及source和destination使用哪个handshake,是可以通过软件配置的。比如, ...


谢谢你的回复,当时不太明白,后面自己设计了一个DMA,基本上这些就都明白了。
关于REQ和ACK的握手,这点无关通道,本质上应该是这样,我接收了你的REQ,你收到了ACK后才能把REQ拉下去。那些暂时还没有响应的REQ,应该一直拉高
流控这点,可能我更习惯DMAC自己做流控,但是流控本质上也只是一个判断传输是否完成的逻辑,所以说外设做流控,或者说DMAC做流控,并不会改变数据搬移的过程
发表于 2022-3-24 14:13:18 | 显示全部楼层


mysoul 发表于 2022-3-18 15:11
后面没有用这个IP了,嫌弃面积太大


楼主你好呀,我最近也在做这个IP相关的工作。你说的这个IP面积会很大,那它的面积是和通道数成正比增加的吗?比如增加一个通道就要增加很多面积?你自己写的DMA和这个IP相比面积能节省多少呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-4-19 19:57 , Processed in 0.027090 second(s), 8 queries , Gzip On, MemCached On.

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