欢迎来到天天文库
浏览记录
ID:41505050
大小:2.12 MB
页数:8页
时间:2019-08-26
《简单的FIFO仿真以及程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、写了一个简单的同步FIFO的源程序以及Testbench仿真程序。主要参考了特权同学Xilinxfifo的仿真。有图有真相,抛砖引玉。下面是程序:modulefifo(clk,rst,//fifo_wrdb,//dinfifo_rddb,//doutfifo_full,fifo_empty);inputclk;inputrst;//input[7:0]fifo_wrdb;outputfifo_full;outputfifo_empty;//regfifo_rdrdy;//fifo读数据有效信号output[7:0]fif
2、o_rddb;//fifo读数据总线/*************************************************///wire[7:0]fifo_wrdb_r;//assignfifo_wrdb_r=fifo_wrdb;//定时产生32个FIFO数据写入和读出操作reg[7:0]fifo_wrdb;//FIFO写入数据regfifo_wren;//FIFO写使能信号regfifo_rden;//FIFO读使能信号reg[9:0]cnt;always@(posedgeclkornegedgerst)
3、if(!rst)cnt<=10'd0;elsecnt<=cnt+1'b1;always@(posedgeclkornegedgerst)if(!rst)beginfifo_wren<=1'b0;fifo_rden<=1'b0;fifo_wrdb<=8'd0;endelseif((cnt>10'd0)&&(cnt<10'd33))begin//连续32个FIFO数据写入fifo_wren<=1'b1;fifo_rden<=1'b0;fifo_wrdb<=cnt[7:0];endelseif((cnt>10'd100)&&(
4、cnt<10'd133))begin//连续32个FIFO数据读出fifo_wren<=1'b0;fifo_rden<=1'b1;fifo_wrdb<=8'd0;endelsebeginfifo_wren<=1'b0;fifo_rden<=1'b0;fifo_wrdb<=8'd0;end/**********************************************************///FIFO读数据有效标志位//always@(posedgeclkornegedgerst)//if(rst)fif
5、o_rdrdy<=1'b0;//elsefifo_rdrdy<=fifo_rden;/************************************************************/fifo_controllerfifo_controller_ck(.clk(clk),//inputclk.rst(rst),//inputrst.din(fifo_wrdb),//input[7:0]din.wr_en(fifo_wren),//inputwr_en.rd_en(fifo_rden),//inpu
6、trd_en.dout(fifo_rddb),//output[7:0]dout.full(fifo_full),//outputfull.empty(fifo_empty)//outputempty);endmodule下面是仿真程序:modulefifo_text;//Inputsregclk;regrst;//Outputswire[7:0]fifo_rddb;wirefifo_full;wirefifo_empty;//InstantiatetheUnitUnderTest(UUT)fifouut(.clk(cl
7、k),.rst(rst),.fifo_rddb(fifo_rddb),.fifo_full(fifo_full),.fifo_empty(fifo_empty));initialbegin//InitializeInputsclk=1'b0;rst=1'b0;//fifo_wrdb=1;//Wait100nsforglobalresettofinish#100;rst=1'b1;//clk=1'b1;#1_00;//Addstimulushereendalwaysbegin#10clk=~clk;endendmodule
此文档下载收益归作者所有