通用FIFO设计深度8宽度64,verilog仿真,源码和视频

名称:通用FIFO设计深度8宽度64,verilog仿真

软件:Quartus

语言:verilog

本代码为FIFO通用代码,其他深度和位宽可简单修改以下参数得到

reg [63:0] ram [7:0];//RAM。深度8,宽度64

代码功能:

使用verilog编写FIFO

要求

FIFO为先入先出队列

FIFO深度为8,数据宽度为64

FIFO具有clk,rst_n(异步复位),wr_en,rd_en,data_in[63:0], data_out[63:0], empty, full信号

写数据下拍生效,读数据当拍生效

空满信号下拍生效

用verilog编写简单Testbench对实验1的FIFO进行验证,随机生成读写信号(满足空满要求),写数据等,通过看波形以及打印判断读数据正确性

演示视频:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=207

FPGA代码资源下载网:hdlcode.com

代码下载:

FIFO设计深度8宽度64,verilog仿真(代码在文末付费下载)软件:Quartus语言:verilog代码功能:使用verilog编写FIFO要求FIFO为先入先出队列FIFO深度为8,数据宽度为64FIFO具有clk,rst_n(异步复位),wr_en,rd_en,data_in[63:0], data_out[63:0], empty, full信号写数据下拍生效,读数据当拍生效空名称:FIFO设计深度8宽度64,verilog仿真(代码在文末付费下载)软件:Quartus语言:verilog代码功能:使用verilog编写FIFO要求FIFO为先入先出队列FIFO深度为8,数据宽度为64FIFO具有clk,rst_n(异步复位),wr_en,rd_en,data_in[63:0], data_out[63:0], empty, full信号写数据下拍生效,读数据当拍生效空icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=207

部分代码展示

//FIFO深度为8,数据宽度为64
module a_fifo
(
input clk,//时钟
input rst_n,//复位
input [63:0] data_in,//fifo写数据
input wr_en,//写使能
input rd_en,//读使能
output [63:0] data_out,//读数据
output empty,//空信号
output full//满信号
);
reg [63:0] ram [7:0];//RAM。深度8,宽度64
reg [3:0] count=4'd0;
reg [3:0] rp=4'd0;
reg [3:0] wp=4'd0;
integer i;
always@(posedge clk or negedge rst_n)
if(!rst_n)begin//复位
wp<=4'd0;
rp<=4'd0;
count<=4'd0;
for(i=0;i<8;i=i+1)
ram[i]<=64'b0;//清零
end
else
case({rd_en,wr_en})
2'b00:count<=count;
2'b01://单写FIFO
if(~full)begin//未满
ram[wp]<=data_in;//存入fifo
if(wp>=4'd7)
wp<=4'd0;//写地址循环累加
else
wp<=wp+4'd1;
count<=count+4'd1;
rp<=rp;
end
2'b10://单读FIFO
if(~empty)begin//未空
if(rp>=4'd7)
rp<=4'd0;//读地址循环累加
else
rp<=rp+4'd1;
count<=count-4'd1;
end
2'b11://同时读写FIFO
if(empty)begin//FIFO为空,只能写
ram[wp]<=data_in;
if(wp>=4'd7)
wp<=4'd0;

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. Testebnch

5. 仿真图

仿真图依次仿真了如下功能:

具体功能1/2/3对应如下:

1.写FIFO 4次,再读4次,FIFO读空

2.写FIFO 5次,然后同时读写5次,最后读5次,FIFO读空

3.连续写FIFO 8次,FIFO写满

打印信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值