FIFO_IP核 仿真,quartus ii (内置)

年轻人,多睡觉!工作业余之际,复习下曾经学过的。害怕忘记,于是记录下来,也有一段记忆。若有错误,欢迎指正。
altera 板子测试
程序设计
1.首先是一个计数器cnt计数到64。
2.然后在cnt取0-31时,开始写入数据,写入的数据都等于cnt。
3.开始在cnt取32-63时,开始读出数据。

module fifo_test(
clk,
rst_n,
wren,
rden,
wrdata,
rddata,
full_sig,
empty_sig
);
input clk;
input rst_n;
output reg wren;
output reg rden;
output reg [5:0] rddata;
output [5:0] wrdata;//使用wire型,这是自带fifo 的要求
output full_sig;
output empty_sig;


//counter
reg [5:0] cnt;
always@(posedge clk or negedge rst_n)
	if(!rst_n)
		cnt<=0;
	else if(cnt==6'd63)
		cnt<=0;
	else
		cnt<=cnt+1'b1;

// enable write
always@(posedge clk or negedge rst_n)
	if(!rst_n)
		wren<=0;
	else if(cnt>=0&&cnt<=6'd31)
		wren<=1'b1;
	else
		wren<=0;


//enable read
always@(posedge clk or negedge rst_n)
	if(!rst_n)
		rden<=0;
	else if(cnt>=6'd32&&cnt<=6'd63)
		rden<=1'b1;
	else
		rden<=0;

//write the data to the fifo

always@(posedge clk or negegdge rst_n)
	if(rst_n)
		wrdata<=0;
	else if(wren)
		wrdata<=cnt;
	else
		wrdata<=wrdata;

 //在quartus 里面调用fifo,自动生成,可以根据需要自己修改
 fifo fifo_inst(
.clock(clk),
.data(wrdata),
.rdreq(rden),
.wrreq(wren),
.empty(empty_sig),
.full(full_sig),
.q(rddata)
);
endmodule

最后是仿真文件


    `timescale 1ns/1ps
 module fifo_test_vlg_tst();
 reg clk;
 reg rst_n;
 wire empty_sig;
 wire full_sig;
 wire [5:0] rddata;
 wire [5:0] wrdata;
 wire rden;
 wire wren; 

fifo_test i1(
.clk(clk),
.empty_sig(empty_sig),
.full_sig(full_sig),
.rddata(rddata),
.rden(rden),
.rst_n(rst_n),
.wrdata(wrdata),
.wren(wren)
);

 initial
	 begin
 		 clk=0;
		 rst_n=0;
		 #200
		 rst_n=1;
 	end
always
	begin
		#5 clk=~clk;
	end
	endmodule

最后利用modesim,可以看到波形
在这里插入图片描述上图开始写的时候。
可以看出cnt是循环计数到63。
empty_sig表示fifo空 开始写的时候,由高拉低。同时wren开始拉高,开始存入wrdata数据0-31。
在这里插入图片描述
上图是写的时候。
可以看出在cnt=32时候,
在full_sig 由低拉高,说明fifo已经写满了。
同时rden从低到高。开始读取数据,rddata依次出来的数字,都是之前fifo存入的数字。

由此可见,fifo 先进先出作用。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值