当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]FPGA设计的高速FIFO电路技术

本文主要介绍高速FIFO电路在数据采集系统中的应用,相关电路主要有高速A/D转换器、FPGA、SDRAM存储器等。图1为本方案的结构框图。在大容量高速采集系统项目的开发过程中,FPGA作为可编程逻辑器件,设计灵活、可操作性强,是高速数字电路设计的核心器件。由于FPGA内嵌存储器的容量有限,通常不能够满足实际设计电路的需求,需要外接SRAM、SDRAM、磁盘阵列等大容量存储设备。

A/D输出的数据流速度快,经过FPGA降速后,位数宽,速度仍然很高,不能直接存储到外部存储器。在设计时,要经过FIFO缓存,然后才能存储到外部存储器。本设计的FIFO容量小、功能强,充分利用了FPGA内部FIFO电路的特点,结合实际电路,优化了整个电路模型的设计。

  异步FIFO生成

  FIFO占用的内存资源为FPGA内嵌的block RAM,由Xilinx公司提供的ISE开发平台自动生成。读写时钟有通用时钟和独立时钟可选,我们采用独立时钟,rd_clk和wr_clk独立,为了保证在高速采集时数据不丢失,rd_clk频率不低于wr_clk。FIFO读模式采用标准FIFO,每次启动采集时都要对FIFO进行复位,为异步复位,初始化内部指针和输出寄存器。在FIFO生成过程中,我们启用almost_full 和almost_empty选项,以及prog_full 和prog_empty选项,prog_full和prog_empty要进行参数设置,具体设置参数如图2所示。

  FIFO接口信号定义

  根据FIFO的生成过程,在图3中给出了读写时钟域的信号定义,所有的在写时钟域的输入信号都必须经过写时钟同步,所有的在读时钟域的输入信号都要经过读时钟同步。信号经过时钟同步后,可以确保在读写过程中不会出现亚稳态,导致读写操作出现错误。

下面对读写时钟域定义信号给予说明:

  rst:复位信号,高有效,异步复位,每次启动采集都要首先对FIFO进行复位;

  wr_clk:写时钟;

  wr_en:与写时钟同步;

  din:输入数据总线;

  rd_clk:读时钟;

  dout:输出数据总线;

  full:FIFO全满标志;[!--empirenews.page--]

  empty:FIFO全空标志;

  almost_full:高有效,如果为高电平,在写一个数据FIFO将全满;

  almost_empty:高有效,如果为高电平,在读一个数据FIFO将全空;

  prog_full:可编程满标志,根据需要,可以设定FIFO内部有多少数据,该标志信号有效;

  prog_empty:可编程空标志,根据需要,可以设定FIFO内部有多少数据,该标志信号有效;

  wr_data_count:说明FIFO内部已经写了多少数据;

  rd_data_count:说明FIFO内部有多少数据可以读。

  FIFO控制电路设计

  实际电路设计不考虑读写时钟的频率和相位的异同,读写时钟域的电路基于同步电路设计的理念来进行设计,在设计过程中,满足读时钟频率不低于写时钟频率即可。在图4中给出了FIFO控制电路的流程图,下面将对低速传输和高速传输进行详细介绍。

  低速采集数据传输过程

  在图5给出了低速采集时传输周期时序仿真时序图,在低速采集时,写时钟频率小于读时钟,每次触发长度为FIFO长度的一半。采集结束即剩余数据传输的长度不到FIFO的一半。根据prog_full的设置,在prog_full有效,同时采集门控信号有效时启动触发请求,由于prog_full为写时钟域信号,必须要经过rd_clk同步,源代码如下:

 process(rd_clk,acq_start_rst)
  begin
     if acq_start_rst=’1’then
         prog_full_dly<=’0’;
                prog_full_dly1<=’0’;
   elsif rd_clk’event and rd_clk=’1’
   then
           if acq_gate= ’1’ then 
                 prog_full_dly<=prog_full;
                 prog_full_dly1<=prog_
                 full_dly;
else
   prog_full_dly<=’0’;
   prog_full_dly1<=’0’; 
 end if;
end if;
end process;

  当FIFO半满时触发读请求有效,acq_frame_l为低电平,启动采集数据传输请求,地址和数据同时有效,sdram控制器给出应答信号acq_trdy_l,长度由FIFO读写控制电路决定,触发一次的长度为32,即FIFO半满的长度,传输完毕,给出传输结束标志信号acq_blast,一次传输周期结束。采集门控信号结束后,FIFO剩余数据长度不足32,这时候启动门控结束传递进程,触发结束标志由almost_empty决定,当alomost_empty有效时,停止触发。

高速采集数据传输过程

  在高速采集时,读时钟频率等于写时钟频率,当启动触发传输时,触发传输长度为门控信号长度,直到将FIFO内部数据传输完毕,触发结束标志由almost_empty决定,当alomost_empty有效时,停止触发传输,触发传输过程如图6所示。

  结语

  采用高速异步FIFO作为数据采集缓存,应用范围十分广泛。特别是在高速数据采集系统中,在外接存储器时,采集数据首先要经过缓存才能存入外部存储器,采用FPGA自生成FIFO就能够满足要求。本方案充分利用FIFO的特点,通过控制电路优化设计,解决了读写时钟的异同问题,提高了电路的工作效率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭