FPGA中同步FIFO与异步FIFO的设计思路与Verilog代码实现

发布时间:2024-12-14 16:22

迭代和快速实验是创新设计中的重要步骤 #生活技巧# #创意技巧# #设计思维与创新#

最新推荐文章于 2024-10-20 13:47:52 发布

InspireHH 于 2020-07-14 16:08:47 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

一、同步FIFO的实现

网上看了很多同步FIFO的实现代码,大多都比较长,这里提供一种简易的实现方式,非常适合在考试答题中使用。同步FIFO表示,读数据与写数据共用同一个时钟。

module SYN_FIFO(input Clk,input Rst_n,input [7:0] Wdata,input Writ_en,input Read_en,output Writ_full,output Read_emphty ,output reg [7:0] Rdata ); reg [8:0]Raddr; //低八位为地址位,MSB为标志位 reg [8:0]Waddr;//低八位为地址位,MSB为标志位 reg [7:0] memery[0:255]; //位宽为8,深度为 256 //Raddr always@(posedge Clk or negedge Rst_n)if(!Rst_n)Raddr <= 'd0;else if(Read_en && !Read_emphty) //当Read_en使能,读空标志位不为1,读地址位 +1Raddr <= Raddr + 1'b1; //Waddr always@(posedge Clk or negedge Rst_n)//当Writ_en使能,写满标志位不为1,写地址位 +1if(!Rst_n)Waddr <= 'd0;else if(Writ_en && !Writ_full)Waddr <= Waddr + 1'b1; //Wdata always@(posedge Clk or negedge Rst_n)

123456789101112131415161718192021222324252627282930

网址:FPGA中同步FIFO与异步FIFO的设计思路与Verilog代码实现 https://www.yuejiaxmz.com/news/view/474429

相关内容

智能交通灯控制系统:基于FPGA的实践指南
异构计算=未来?一文带你秒懂3大主流异构
揭秘养生食品新趋势:健康零食的选择与影响
实用厨房储物思路与设计
基于单片机的厨房安全监测系统的设计与实现
中华美学精神的发展与现代设计
基于单片机的智能鞋柜的设计与实现
跑步健身AI计划:轻松实现定制跑步路线与训练,提高效率的新神器!
设计一个程序,有一个虚拟存储区和内存工作区,实现下述三种算法中的任意两种,计算访问命中率(命中率=1
基于java的网吧管理系统答辩PPT.pptx资源

随便看看