基于FPGA内部的FIFO设计
扫描二维码
随时随地手机看文章
在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
图6 Fifo Generator对话框6
参考文献:
[1].Throughdatasheethttp://www.dzsc.com/datasheet/Through_1177452.html.
[2].ECOdatasheethttp://www.dzsc.com/datasheet/ECO_2043505.html.
[3].Virtex-5datasheethttp://www.dzsc.com/datasheet/Virtex-5_1706996.html.
来源:ks991次