位置:51电子网 » 技术资料 » EDA/PLD

基于FPGA内部的FIFO设计

发布时间:2008/9/16 0:00:00 访问次数:2244

  在fpga设计中,内部的fifo设计是 个不可或缺的内容,其设计的质师会直接影响fpga的逻辑容量和时序。在xilinx中的某些高端器件是内置的fifo控制器,在coregen中可以直接产生这的硬fifo控制器, 强烈建议能够使用硬的hfo控制器的场合,直接的好处足节省逻辑资源和提高逻辑速度,对于绝大部分的hfo设计,推荐使用xili coregm产生。这样可以保证功能正确,对于需要定制fifo控制器的场合请小心。

  下面将结合coregn来说明如何设计一个fifo

  产生fifo时应使用coregen的fifo generator,打开后显示如图1所示的对话框。

  图1 fifo cenerator对话框

  注意其中选项的意义在左边的(read/wfik 0ock donmm)中选择同步fifo或异步fifo,即囱写时钟是否是同-个。

  在( memory type)中选择是使用内部的块ram或分布式ram,或者移位寄存器或者内置的fifo(目前virtex ̄4和virtex-5的器件有内置fifo)。选择时根据具体应用决定,一般来说,当需要的ram较小时选择分布式ram;当使用有内置fifo的器件时优选内置fifo;较大的ram且没有内置fifo的器件时选择块ram。

  (supported features)列的第1个功能是对不对称的位宽的支持,指fifo的读/写位宽可以不一致;第2个功能是first-word fall-through,当需要看见fifo内的第1个数,而又不想进行读操作时使用,一般用做需要根据fifo内数据决定是否需要对fifo进行操作的场合;第3个功能是说是否使用内部的内置fifo控制器,当选择内置fifo的应用时会有这个功能;第4个是eco的支持,指内置的error correcti。n checking的功能,目前只有virtex-5的块ram和内置fifo有此功能。

  单击【下一步】按钮进入(fifo generator)对话框2,如图2所示。

  图2 (fifo generator)对话框2

  在其中设置详细的属性,从上往下一是是否标准fifo,还是需要支持first-wordfall-through:二是对于内置fifo的应用,还需要设置读/写时钟的频率;三是设置读/写位宽和深度;四是是否需要内置的eco;五是是否要使用块ram或fifo内的寄存器。注意选择了使用内部寄存器,下面显示的read latency会增加。通常块ram或者fifo是输入寄存,锁存器输出,所以不选使用内部寄存器。read latency是一个时钟周期,选择时会是两个时钟周期。在设计时需要根据时钟频率和时序要求决定是否选这个选项,不选的话,ram会有一个较大的tco。当然也可以不选择这个选项而多增加一级寄存器在代码中,这样处理的优点是可以抵消一些线延时;缺点是无法使用ram内置的寄存器,从而浪费了资源。

  单击【下一步】按钮将出现如图3所示的对话框3。

  从上往下一是是否需要几乎空满标志;二是是否需要产生读/写响应信号;三是是否需要产生读/写错误标志;四是是否需要产生复位及复位是同步的还是异步的;五是复位时满标志的值。上面的读/写错误就是overflow和underflow,是指当fifo满时仍在写,空时仍在读的标志,可以用来监控fifo是否出现了错误操作。ram的复位指复位ram的输入\输出寄存器,而不会复位ram内部的内容。

  图3 fifo generator 对话框

  单击【下一步】按钮打开如图4所示的对话框4。

  图4 fifo generator对话框4

  在其中可以设置fifo的空满标志的阈值。

  单击【下一步】按钮打开如图5所示的对话框5。

  在其中可以设置将fifo内部的数据的个数通过接口开放给用户逻辑可见。

  单击【下一步】按钮打开对话框如图6所示的对话框6,可以看到所有的设置,并仔细检查设置是否正确。

  单击(finish)按钮,会产生.v的原文件和.edn或。ngc的网表。综合和仿真可以用。ⅴ的源文件,布局布线时需要将.edn的文件放在mlcro search path的目录或工程目录中。另外,还会产生.xco的文件,这是产生的∏fo时的配置文件,下次可以在coregen中import这个文件产生一个和这次配置相同的fifo。

  如本节所示,在coregen中产生fifo是一个较简单的操作,推荐能用coregen时尽量使用。手动定制fifo不属于本节的内容,在此不讲述。

  图5 fifo generator对话框5

fifo generator对话框

  在fpga设计中,内部的fifo设计是 个不可或缺的内容,其设计的质师会直接影响fpga的逻辑容量和时序。在xilinx中的某些高端器件是内置的fifo控制器,在coregen中可以直接产生这的硬fifo控制器, 强烈建议能够使用硬的hfo控制器的场合,直接的好处足节省逻辑资源和提高逻辑速度,对于绝大部分的hfo设计,推荐使用xili coregm产生。这样可以保证功能正确,对于需要定制fifo控制器的场合请小心。

  下面将结合coregn来说明如何设计一个fifo

  产生fifo时应使用coregen的fifo generator,打开后显示如图1所示的对话框。

  图1 fifo cenerator对话框

  注意其中选项的意义在左边的(read/wfik 0ock donmm)中选择同步fifo或异步fifo,即囱写时钟是否是同-个。

  在( memory type)中选择是使用内部的块ram或分布式ram,或者移位寄存器或者内置的fifo(目前virtex ̄4和virtex-5的器件有内置fifo)。选择时根据具体应用决定,一般来说,当需要的ram较小时选择分布式ram;当使用有内置fifo的器件时优选内置fifo;较大的ram且没有内置fifo的器件时选择块ram。

  (supported features)列的第1个功能是对不对称的位宽的支持,指fifo的读/写位宽可以不一致;第2个功能是first-word fall-through,当需要看见fifo内的第1个数,而又不想进行读操作时使用,一般用做需要根据fifo内数据决定是否需要对fifo进行操作的场合;第3个功能是说是否使用内部的内置fifo控制器,当选择内置fifo的应用时会有这个功能;第4个是eco的支持,指内置的error correcti。n checking的功能,目前只有virtex-5的块ram和内置fifo有此功能。

  单击【下一步】按钮进入(fifo generator)对话框2,如图2所示。

  图2 (fifo generator)对话框2

  在其中设置详细的属性,从上往下一是是否标准fifo,还是需要支持first-wordfall-through:二是对于内置fifo的应用,还需要设置读/写时钟的频率;三是设置读/写位宽和深度;四是是否需要内置的eco;五是是否要使用块ram或fifo内的寄存器。注意选择了使用内部寄存器,下面显示的read latency会增加。通常块ram或者fifo是输入寄存,锁存器输出,所以不选使用内部寄存器。read latency是一个时钟周期,选择时会是两个时钟周期。在设计时需要根据时钟频率和时序要求决定是否选这个选项,不选的话,ram会有一个较大的tco。当然也可以不选择这个选项而多增加一级寄存器在代码中,这样处理的优点是可以抵消一些线延时;缺点是无法使用ram内置的寄存器,从而浪费了资源。

  单击【下一步】按钮将出现如图3所示的对话框3。

  从上往下一是是否需要几乎空满标志;二是是否需要产生读/写响应信号;三是是否需要产生读/写错误标志;四是是否需要产生复位及复位是同步的还是异步的;五是复位时满标志的值。上面的读/写错误就是overflow和underflow,是指当fifo满时仍在写,空时仍在读的标志,可以用来监控fifo是否出现了错误操作。ram的复位指复位ram的输入\输出寄存器,而不会复位ram内部的内容。

  图3 fifo generator 对话框

  单击【下一步】按钮打开如图4所示的对话框4。

  图4 fifo generator对话框4

  在其中可以设置fifo的空满标志的阈值。

  单击【下一步】按钮打开如图5所示的对话框5。

  在其中可以设置将fifo内部的数据的个数通过接口开放给用户逻辑可见。

  单击【下一步】按钮打开对话框如图6所示的对话框6,可以看到所有的设置,并仔细检查设置是否正确。

  单击(finish)按钮,会产生.v的原文件和.edn或。ngc的网表。综合和仿真可以用。ⅴ的源文件,布局布线时需要将.edn的文件放在mlcro search path的目录或工程目录中。另外,还会产生.xco的文件,这是产生的∏fo时的配置文件,下次可以在coregen中import这个文件产生一个和这次配置相同的fifo。

  如本节所示,在coregen中产生fifo是一个较简单的操作,推荐能用coregen时尽量使用。手动定制fifo不属于本节的内容,在此不讲述。

  图5 fifo generator对话框5

fifo generator对话框

-->
相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!