您的位置:首页 > 其它

异步FIFO的配置与使用注意事项

2016-01-03 18:07 253 查看
网上有好多资料只是讲述FIFO的时序,但是对于使用者来说,没有深入理解其时序的必要性,我们只需要正确使用就好了,因为FIFO并不需要我们自己写,我们可以用其自带的IP核。

首先是配置FIFO模块,步骤如下:工具栏Tools选项,选择MegaWizard Plug-In Manager选项,然后会出现如下对话框:



然后next,



图中的第4步是要选定目录并让你自己给这个将要配置的IP核起一个名字,一般情况下,只需要在后面输入名字就好,不需要改变目录



图中1选中则是配置同步FIFO;

图中2选中则是配置异步FIFO;

图中3是用来配置你需要写入和读出FIFO的数据的位宽;

图中4是用来配置你将要配置的FIFO的存储容量,即深度;

注:同步FIFO与异步FIFO的不同点就是:同步FIFO读和写都是一个时钟,异步FIFO读和写都有自己的时钟,且时钟的频率和相位都可以不同



直接next



图中1是读FIFO端的满标志;

图中2是读FIFO端的空标志;

图中3是读FIFO端的FIFO中数据量的标志;

图中4是写FIFO端的满标志;

图中5是写FIFO端的空标志;

图中6是写FIFO端的FIFO中数据量的标志;

注:之所以要分为对FIFO端和写FIFO端,是因为此FIFO为异步FIFO,读和写的时钟不同,而这些信息的获取都需要以时钟为基准。
然后一般情况下就可以一直next,直到



可以选中红色标记的选项,在实例化的时候可以直接拷贝里面的代码进行实例化

然后finish

配置完成,然后实例化

点击打开文件选项选择刚配置FIFO的名字相同的文件

复制文件的

module FIFO (
data,
rdclk,
rdreq,
wrclk,
wrreq,
q,
rdempty,
wrfull);
部分就可以实例化了;;

需要注意的问题是:

1、读时钟和写时钟必须一直存在,不可间断性的提供,否则会造成FIFO无法正常工作

2、读FIFO时钟要和读数据的赋值端的时钟是一个时钟

3、写FIFO的时钟要和将要写的数据的时钟是一个时钟

4、注意满标志和空标志的使用,禁止在FIFO满的情况下写FIFO,禁止在空的时候读FIFO,否则会出现错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: