搜索
bottom↓
回复: 16

请问zynq自定义IP中断持续脉冲长度是多少个时钟周期

[复制链接]

出0入0汤圆

发表于 2018-12-5 22:47:16 | 显示全部楼层 |阅读模式
先介绍一下我的情况

1,我需要自定义IP 在FIFO收到1600个数据后产生一个中断送给PS 通知PS通过DMA收取数据 。

     这个中断的脉冲需要持续多长呢。

2,ADC采集数据后降速率,如何才能生成与降低后的速率同相的时钟呢。FIR本身不提供时钟输出。






本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2018-12-5 22:50:22 | 显示全部楼层
最后一张DMA-TLAST的图片与这个贴子无关,但是我删除不了

出0入22汤圆

发表于 2018-12-5 23:01:45 来自手机 | 显示全部楼层
理论上不是脉冲持续的吗?软件进去中断后,写寄存器清除中断?

出0入0汤圆

发表于 2018-12-6 08:16:37 | 显示全部楼层
边沿中断1CLK;电平中断持续。看你怎么选择了。

出0入0汤圆

 楼主| 发表于 2018-12-6 08:37:36 | 显示全部楼层
dr2001 发表于 2018-12-6 08:16
边沿中断1CLK;电平中断持续。看你怎么选择了。

谢谢。其实最好的方法还是自己做实验确定,只是跑一次时间太长了。有点浪费

如果1CLK边沿触发的话PS那边自然是没有问题,PL这边因为我取的是FIFO的可编程满信号,从实验来看高电平会持续300个PL CLK 250M  ,PS那边是667M

这样会不会造成PS不断重复触发呢。因为我觉得这个电平持续时间太长了,PS那边中断里就只给一个信号量,处理完了高电平信号还在,应该会重复触发,而我又没有在电路上做中断清除处理。(写0或者写1清除FIFO的可编程满信号的高电平状态,直到下一个上升沿到来)

如果做边沿触发,那么FIFO的可编程满信号是不是自己要处理一下,保证每个上升沿输出成1CLK信号。

还有FIR降速后的时钟问题。我的想法是跟据给定的抽取率,做为分频依据,然后计数分频后输出做为异步FIFO的输入时钟,这样可行吗。还有没有更好的方法。

VIVADO编一次20多分钟,一天下来只能确定一两问题或者不确定的点,实在是折腾。

望指点 谢谢。

出0入0汤圆

 楼主| 发表于 2018-12-6 08:38:01 | 显示全部楼层
本帖最后由 gongcsf 于 2018-12-6 08:42 编辑
zxq6 发表于 2018-12-5 23:01
理论上不是脉冲持续的吗?软件进去中断后,写寄存器清除中断?


谢谢。与单片机有些不一样。清中断要自己处理

中断不用自己处理,可以设置上升沿触发,我弄错了。

出0入0汤圆

 楼主| 发表于 2018-12-6 08:41:19 | 显示全部楼层
看到了,中断可以用上升沿触发,不用自己处理了。

现在只有FIR输出后时钟的问题了。

出0入0汤圆

发表于 2018-12-6 08:47:09 | 显示全部楼层
既然用了dma的中断,为何还要用fifo的full呢?

dma发现fifo有数据就启动S2MM通道,向指定地址送数据,数据完成后,产生中断告知PS

楼主的应用场合不是这样的吗?

出0入0汤圆

 楼主| 发表于 2018-12-6 08:54:43 | 显示全部楼层
qjs412_avr 发表于 2018-12-6 08:47
既然用了dma的中断,为何还要用fifo的full呢?

dma发现fifo有数据就启动S2MM通道,向指定地址送数据,数据 ...

我的数据是ADC产生的,一直不断,速率可变。

而AXI DMA 必须要求TLAST信号,那个DMA接收 计数器似乎只是一个摆设 ,没有接到TLAST信号DMA绝对不会生产接收完成中断。

而接收计数寄存器的值可以大于实际需要接收的数量,似乎一切以TLAST信号为准(流)

所以我只能用FIFO缓存,用计数来产生TLAST信号。

我看过其它BRAM的方法。接收数据后好像还要搬运一次才能进DDR ,所以我选择了 AIXS 流

出0入0汤圆

发表于 2018-12-6 09:07:55 | 显示全部楼层
gongcsf 发表于 2018-12-6 08:54
我的数据是ADC产生的,一直不断,速率可变。

而AXI DMA 必须要求TLAST信号,那个DMA接收 计数器似乎只 ...

是的,中断的产生不仅依靠tlast,这个还要看dma的工作模式,simple or SG

在simple模式下,的确是以tlast这个信号为准,例如FPGA需要发送1600Bytes ,而PS设定DMA的接收长度>=1600Bytres

只要FPGA发送结束,DMA就会产生中断

不知道您的ADC采样速率是不是很高,这样就要求PS的实时性要很高

可不可以这样,dma判断fifo的数据是否>=1600Bytes,符合条件,然后启动DMA-->写入DDR完成,产生中断

这样就要求,dma发送数据的速率要大于adc的采样速率,这样才能保证数据不丢

fifo的深度设置最好大于1600Bytes

出0入0汤圆

 楼主| 发表于 2018-12-6 09:18:52 | 显示全部楼层
本帖最后由 gongcsf 于 2018-12-6 09:56 编辑

dma sg 模式比较复杂,还没时间去弄。

dma 在普通模式下不能跟据接收数量产生接收完成中断,而是给tlast就生成接收完成中断 (没实际确定,只确定了无tlast信号,DMA无论接收多少都不会产生正确的中断)

ADC采样125M,32位i/q 降速10-1M 送TCP发送缓冲,网络是1000M的,一个包是<65535?(我不确定,因为还没做到那一部分) 65535/32 =2048  所以我DMA一次最多接收2K

出0入0汤圆

发表于 2018-12-6 10:01:09 | 显示全部楼层
gongcsf 发表于 2018-12-6 09:18
dma sg 模式比较复杂,还没时间去弄。

dma 在普通模式下不能跟据接收数量产生接收完成中断,而是给tlast就 ...

S2MM这个方向上的tlast信号是由自定义IP FIFO产生的,在这个IP中会判断传输数据是否完成输出tlast

根据你的描述,大概可以知道的是FIFO与DMA之间没有产生tlast信号,dma会认为接下来还有数据,所以不会产生中断信号,由此可以判断s2mm_introut是根据tlast输出的

我查了下dma的vhdl代码,发现封装的比较深,没有查到

只需要在fifo中计数给出tlast即可使dma产生中断

ps对dma的接收长度设定不是产生中断的依据,猜测应该是给dma内部建立fifo深度用的

并且官方手册上说,这个设定值一定要大于实际传输长度,否则会产生不可预知的后果

出0入0汤圆

 楼主| 发表于 2018-12-6 10:21:12 | 显示全部楼层
qjs412_avr 发表于 2018-12-6 10:01
S2MM这个方向上的tlast信号是由自定义IP FIFO产生的,在这个IP中会判断传输数据是否完成输出tlast

根据 ...

计数产生TLAST信号并DMA接收送DDR。已经完成。现在是用一个IP读取FIFO数据数量while(nb>1600)来触发DMA单次传输。
我想通过可编程满信号做为中断信号。在中断中发送信号量来启动DMA单次传输。中断设置成上升沿触发。这个应该也没什么问题了。

ADC数据经过FIR抽取后速率降低。
现在要把FIR的数据输入FIFO 。确发现没有与FIR
同步的时钟。是否应该采取根据抽取率计数的方式来生成与FIR输出数率一样的时钟。还有没有别的方法。谢谢
DMA 需要TLAST这个问题困扰了我好几天。已经解决。如果早些得到你的指点就不用熬夜伤身体了

出0入0汤圆

发表于 2018-12-6 10:43:55 | 显示全部楼层
gongcsf 发表于 2018-12-6 10:21
计数产生TLAST信号并DMA接收送DDR。已经完成。现在是用一个IP读取FIFO数据数量while(nb>1600)来触发DMA单 ...

我也刚学zynq不久(以前是干单片机ARM之类的),只是前段时间一直在弄axi_dma,所以略知一二

关于FIR时钟问题,我不是很懂,FIFO不是可以干跨时钟域数据传输吗?

不知我的理解是否正确,FIFO的写入时钟和FIR的时钟相同,读取时钟和读取IP时钟相同

希望有其他同行能够帮到你

出0入0汤圆

 楼主| 发表于 2018-12-7 23:56:59 | 显示全部楼层
本帖最后由 gongcsf 于 2018-12-7 23:58 编辑

一直以为直接把FIFO满信号作为中断输入就可以了,

原来还有玄机啊,接口必须设置成中断类型才行,网上资料不多,当日记一样记录吧








谁便找个自定义IP加一个中断类型的接口转一下就可以了

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2018-12-9 11:50:15 来自手机 | 显示全部楼层
FIFO满了才触发中断不会丢失数据吗?

出0入0汤圆

 楼主| 发表于 2018-12-9 13:42:14 | 显示全部楼层
sunny_82 发表于 2018-12-9 11:50
FIFO满了才触发中断不会丢失数据吗?

可编程空满。4K深度,我设的2K
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 21:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表