2861|3

69

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

炼狱传奇-FIFO之战 [复制链接]

FIFO是First Input First Output的缩写,先进先出队列,这是一种传统的按序执行方法,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
接下来我们学习如何在Quartus中使用FIFOIP核,我们常用的FIFO为双时钟的异步FIFO,在这里为了较为简单,方便大家理解,虽然我们使用的是异步FIFO,但两个时钟端口使用的确是同一个时钟。
首先,新建一个工程
然后建立起顶层文件
接下来我们需要调出FIFO,点击TOOLS->
点击NEXT
在Memory Compiler中选择FIFO,设置文件名称为my_fifo
点击NEXT
设置存储空间为1024*8
点击选中第二个选项
点击NEXT
点击NEXT
点击选中full和empty,如下图所示
点击NEXT
点击NEXT
点击NEXT

点击NEXT
点击Finish,配置结束。由于FIFO是一种存储器,所以我们可以建立两个FIFO控制器,一个写控制器负责把数据写入到FIFO,另一个读控制器负责把数据从FIFO中读出来,仿真验证读写是否正确
FIFO写控制器具体代码如下:
FIFO读控制器具体代码如下:
接下来我们需要通过顶层文件,实例化所有模块,具体代码如下
最后我们编写测试代码如下:
在软件中设置tb为测试文件之后,查看仿真波形
如上图可以看出,当写请求信号线为高电平的时候,有数据写入,输出端q保持初始值状态。当数据写入完毕以后,FIFO满标志信号线会置为高电平,同时读控制器开始读出数据,q端有数据输出。写入数据和读出数据完全一致,说明数据读写正确。


此帖出自FPGA/CPLD论坛

最新回复

仿真结果图就是这样,后面的全为0   详情 回复 发表于 2016-4-2 16:46
点赞 关注
 

回复
举报

2

帖子

1

TA的资源

一粒金砂(初级)

沙发
 
本帖最后由 LyleLance 于 2016-4-2 16:47 编辑

不知道梦翼师兄还在不在论坛,小弟有一事相问,为什么我做出来的仿真没有波形输出?图在下方,这是为什么呢?求解答
此帖出自FPGA/CPLD论坛
 
 

回复

2

帖子

1

TA的资源

一粒金砂(初级)

板凳
 
仿真结果图就是这样,后面的全为0

%OBM)ESCG$W1([{[C6Y41MS.png (19.14 KB, 下载次数: 0)

仿真结果图

仿真结果图
此帖出自FPGA/CPLD论坛

点评

波形图给的不详细,最好拉出所有模块,进行分组以后查看。如果是层次化设计,最好是首先查看RTL视图,确定模块间连接是否正确,尤其要注意各端口位宽是否一致  详情 回复 发表于 2016-4-2 20:44
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

4
 
LyleLance 发表于 2016-4-2 16:46
仿真结果图就是这样,后面的全为0

波形图给的不详细,最好拉出所有模块,进行分组以后查看。如果是层次化设计,最好是首先查看RTL视图,确定模块间连接是否正确,尤其要注意各端口位宽是否一致
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表