xilinx fifo核使用时注意的问题

本文讲述了在FPGA项目中使用Xilinx FIFO核进行数据缓存和同步时遇到的问题。最初的设计尝试通过逻辑控制将32bit FIFO数据分4次传输到8bit USB接口,但出现数据遗漏。最终解决方案是在32bit FIFO和8bit USB接口之间增加一个转换FIFO,实现了稳定的数据传输。重点讨论了FIFO IP的复位问题,强调Xilinx FIFO需要高电平复位,而低电平复位会导致错误,需要额外添加非门来解决。
摘要由CSDN通过智能技术生成

          最近一个月在使用fifo做一个数据的缓存和不同数据域的同步,用FPGA驱动AD的spi接口,系统中有8片AD,每片AD由两个独立的并行AD通道组成,采样率1Msps,量化位数16bit,每次采集的数据为256bit,xilinx fifo的输入输出最大数据宽度比例为1:8或者8:1,意思就是256bit输入时,输出要大于等于32bit。采集的数据经由fifo缓存以后,通过usb发送给电脑。选用的usb芯片是FTDI公司的ft232h (具体介绍在另外日志上说明)的USB接口芯片,它的数据接口是8位宽度的双向数据总线。由于fifo的32bit输出和usb接口芯片的8bit数据总线之间存在差异,为了解决这个差异,笔者最先考虑到的是通过逻辑来控制对fifo的读,将读取的数据分4次传入usb接口芯片,这种方案尝试了近两周的时间,总是会出现不同程度数据的遗漏,基本上隔几个周期会漏掉一个字节或者两个字节的数据,这里最容易想到的就是逻辑控制上有问题,debug了近一周的时间,没有取得成功。

          最后在fifo的32bit数据输出和8bit usb接口芯片之间再次加入了一个fifo,相当于这个fifo是用于将32bit数据转换成8bit数据输出的。最后的数据传送方式是: 256bit->fifo1->32bit->fifo2->8bit->usb;通过这种方式,数据可以稳定无误的传输。

          本文提及到了两个fifo,所以说说在使用fifo的过程中遇到的那些问题,不过这些问题都是由于没有仔细看ug(user guaid)导致的。

          一、IP的复位问题:

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值