完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 jinyi7016 于 2016-10-15 16:29 编辑 FIFO(First Input First Output),即先进先出队列。在超市购物之后会提着我们满满的购物车来到收银台排在结账队伍的最后,眼睁睁地看着前面的客户一个个离开。这就是一种先进先出机制,先排队的客户先行结账离开。 FIFO队列不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。 FIFO队列具有处理简单,开销小的优点。但FIFO不区分报文类型,采用尽力而为的转发模式,使对时间敏感的实时应用(如VoIP)的延迟得不到保证,关键业务的带宽也不能得到保证。 FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集,另一端是计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。 新建工程,这里可以看到,工程建立时,已经配置好了仿真工具与语言了。这样后面再仿真的时候就不再用去修改了。 还记得PLL、RAM、ROM IP核是怎么建的么,都是同一个菜单栏。 Tools--> MegaWizard Plug-In Manager 打开后,找到FIFOIP核,命名为FIFO。 点击 “Next”,有如下界面。 设置FIFO的大小为32words. 转到SCFIFO Options界面。 使用默认配置,使用full、empty、usedw[]三个信号。 点击“Finish”,选中FIFO_inst.v,再“Finish” 新建一个Verilog HDL文件,在顶层模块中实例化我们的FIFO IP核。
与RAM不同的是,FIFO的读写是不需要地址的,因为它是先进先出的,地址是没有意义的。 对比FIFO与RAM的程序,也只是去掉了地址线。 代码中,同样有一个always模块的时序电路充当计数器的角色。 其他的always就是产生写入的,生成读写使能信号,例化FIFO IP核。 这个FIFO IP核同样不能在开发板上看到直观的现象,只能靠仿真了。 |
|
相关推荐
|
|
1367 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1046 浏览 0 评论
2442 浏览 1 评论
2146 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2408 浏览 0 评论
1898 浏览 50 评论
6018 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 02:32 , Processed in 0.643050 second(s), Total 63, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号