欢迎来到天天文库
浏览记录
ID:51949963
大小:2.12 MB
页数:8页
时间:2020-03-20
《简单的FIFO仿真以及程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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[
2、7:0]fifo_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@(posedgecl
3、kornegedgerst)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];endel
4、seif((cnt>10'd100)&&(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@(posedge
5、clkornegedgerst)//if(rst)fifo_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),/
6、/inputwr_en.rd_en(fifo_rden),//inputrd_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;//Insta
7、ntiatetheUnitUnderTest(UUT)fifouut(.clk(clk),.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;//Adds
8、timulushereendalwaysbegin#10clk=~clk;endendmodule
此文档下载收益归作者所有