首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
FPGA设计的高速FIFO电路技术
来源:本站整理  作者:佚名  2010-06-20 10:55:58



  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的特点,通过控制电路优化设计,解决了读写时钟的异同问题,提高了电路的工作效率。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:182,023.40000 毫秒