Quartus II LPM使用指南
FIFO篇
BY WG
http://www.cnblogs.com/wg2011/目录
说明
本文档根据 ALTERA 《SCFIFO and DCFIFO Megafunctions》一问整理而来。
笔者使用Quartus II 的版本及PC机操作系统版本为11.1 sp2 WIN7 32位。
本文档仅供学习、讨论使用,请勿用于商业用途。在使用该文档过程中有任何疑问请至笔者博客进行交流探讨。
文档版本 V1.0
笔者将随时可能对本教程中的内容进行更改,恕不事先通知。
摘要
ALTERA在LPM库中提供了参数可配置的单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO)。FIFO主要应用在需要数据缓冲且数据符合先进先出规律的同步或异步场合。LPM中的FIFO包含以下几种:
1.SCFIFO:单时钟FIFO;
2.DCFIFO:双时钟FIFO,数据输入和输出的宽度相同;
3.DCFIFO_MIXED_WIDTHS:双时钟FIFO,输入输出数据位宽可以不同。
在本文中,如无特殊说明,DCFIFO通指上述两种双时钟FIFO。
第一章 FIFO配置全攻略
1.1如何配置自己需要的FIFO
配置FIFO的方法有两种,一种是通过QUARTUS II 中TOOLS下的MegaWizard Plug-In Manager 中选择FIFO参数编辑器来搭建自己需要的FIFO,这是自动生成FIFO的方法,另外如果你是大师级选手(对LPM-FIFO参数十分熟悉)还可以通过手动编写HDL来实现需要的FIFO。在此笔者建议大家,尤其是初学者使用自动方式来配置需要的FIFO,配置界面简洁明了十分容易上手。
1.2输入输出端口
下图中是SCFIFO和DCFIFO的框图,其中,SCFIFO中读写双方信号与时钟clock同步,DCFIFO读写双方信号分别与读写时钟同步。
表一中列出FIFO中各个IO的详细描述: