基于FPGA高速FIFO电路设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA高速FIFO电路设计

基于FPGA高速FIFO电路设计   前言      在大容量高速采集系统项目的开发过程中,FPGA作为可编程逻辑器件,设计灵活、可操作性强,是高速数字电路设计的核心器件。由于FPGA内嵌存储器的容量有限,通常不能够满足实际设计电路的需求,需要外接SRAM、SDRAM、磁盘阵列等大容量存储设备。本文主要介绍高速FIFO电路在数据采集系统中的应用,相关电路主要有高速A/D转换器、FPGA、sDgAMZF储器等。图l为本方案的结构框图。A/D输出的数据流速度快,经过FPGA降速后,位数宽,速度仍然很高,不能直接存储到外部存储器。在设计时,要经过FIFO缓存,然后才能存储到外部存储器。本设计的FIFO容量小、功能强,充分利用了FPGA内部FIFO电路的特点,结合实际电略,优化了整个电路模型的设计。         异步IlFO生成      FIFO占用的内存资源为FpGA内嵌的block RAM,由Xilinx公司提供的IsE开发平台自动生成。读写时钟有通用时钟和独立时钟可选,我们采用独立肘钟,rd dk和wr clk独立,为了保证在高速采集时数据不丢失,rdclk频率不低于wr dk。FIFO读模式采用标准FIFO,每次启动采集时都要对FIFo进行复位,为异步复位,初始化内部指针和输出寄存器。在FIFO生成过程中,我们启用almost full和almost empty选项,以及Frog_full和prog_empty选项,prog_full和prog_empty要进行参数设置,具体设置参数如图2所示。         FIFO接口信号定义      根据FIFO的生成过程,在图3中给出了读写时钟域的信号定义,所有的在写时钟域的输入信号都必须经过写时钟同步,所有的在读时钟域的输入信号都要经过读时钟同步。信号经过时钟同步后,可以确保在读写过程中不会出现亚稳态,导致读写操作出现错误。      下面对读写时钟域定义信号给予说明:   rst:复位信号,高有效,异步复位,每次启动采集都要首先对FIFO进行复位;   wr dk:写时钟:   wr en:与写时钟同步:   din;输入数据总线:   rd clk:读时钟:   dout:输出数据总线:   full:FIFO全满标志:   empty:FIFO全空标志:   almost full:高有效,如果为高电平,在写一个数据FIFO将全满;   almost empty:高有效,如果为高电平,在读一个数据FIFO将全空:   prog full:可编程满标志,根据需要,可以设定FIFO内部有多少数据,该标志信号有效:   prog empty:可编程空标志、根据需要,可以设定FIFO内部有多少数据,该标志信号有效;   wr_data_count:说明FIFO内部已经写了多少数据:   rd_data_count:说明FIFO内部有多少数据可以读。      FIF0控制电路设计      实际电路设计不考虑读写时钟的频率和相位的异同,读写时钟域的电路基于同步电路设计的理念来进行设计,在设计过程中,满足读时钟频率不低于写时钟频率即可。在图4中给出了FIFO控制电路的流程图,下面将对低速传输和高速传输进行详细介绍。   低速采集数据传输过程   在图s给出了低速采集时传输周期时序仿真时序图,在低速采集时,写时钟频率小于读时钟,每次触发长度为FIFO长度的一半。采集结束即剩余数据传输的长度不到FIFO的一半。根据prog_full的设置,在Frog_full有效,同时采集门控信号有效时启动触发请求,由于prog_full为写时钟域信号,必须要经过rd_clk同步。   当FIFO半满时触发读请求有效。acq frame 1为低电平,启动采集数据传输请求,地址和数据同时有效,sdram控制器给出应答信号acq trdvl,长度由FIFO读写控制电路决定,触发一次的长度为32,即FIFO半满的长度,传输完毕,给出传输结束标志信号acq blast,一次传输周期结束。采集门控信号结束后,FIFO剩余数据长度不足32,这时候启动门控结束传递进程,触发结束标志由almostempty决定,当alomost_empty有效时、停止触发。      高速采集数据传输过程      在高速采集时,读时钟频率等于写时钟频率,当启动触发传输时,触发传输长度为门控信号长度,直到将FIFO内部数据传输完毕,触发结束标志由almost empty决定、当alomost_empty有效时,停止触发传输,触发传输过程如图6所示。      结语      采用高速异步FIFO作为数据采集缓存、应用范围十分广泛。特别是在高

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档