名称:FIFO设计16*8,数据显示在数码管
软件:Quartus
语言:Verilog
代码功能:
使用verilog语言设计一个16*8的FIFO,深度16,宽度为8。可对FIFO进行写和读,并将FIFO读出的数据显示到数码管。
演示视频:FIFO设计16*8,verilog,数据显示在数码管_Verilog/VHDL资源下载
FPGA代码资源下载网:hdlcode.com
代码下载:
FIFO设计16*8,verilog,数据显示在数码管_Verilog/VHDL资源下载名称:FIFO设计16*8,数据显示在数码管(代码在文末付费下载)软件:Quartus语言:Verilog代码功能:使用verilog语言设计一个16*8的FIFO,深度16,宽度为8。可对FIFO进行写和读,并将FIFO读出的数据显示到数码管。演示视频:FPGA代码资源下载网:hdlcode.com部分代码展示//fifo 168fifomodule fifo_top(input clk,inphttp://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=204
部分代码展示
//fifo 16×8fifo module fifo_top ( input clk, input rst, input [7:0] din,//fifo写数据 input wr_en,//写使能 input rd_en,//读使能 output empty,//空信号 output full,//满信号 output [7:0] bit_select,//数码管位选,高电平选通 output [7:0] seg_select//数码管段选,低电平点亮 ); wire [7:0] dout;//读数据 //fifo模块 a_fifo i_a_fifo ( . clk(clk), . rst(rst), . din(din),//fifo写数据 . wr_en(wr_en),//写使能 . rd_en(rd_en),//读使能 . dout(dout),//读数据 . empty(empty),//空信号 . full(full)//满信号 ); //数码管显示模块 display i_display( . clk(clk), . din(din),//fifo写数据 . dout(dout),//读数据 . bit_select(bit_select),//数码管位选,高电平选中 . seg_select(seg_select)//数码管段选 ); endmodule //fifo 16×8fifo module a_fifo ( input clk, input rst, input [7:0] din,//fifo写数据 input wr_en,//写使能 input rd_en,//读使能 output reg [7:0] dout,//读数据 output empty,//空信号 output full//满信号 ); reg [7:0] ram [15:0];//RAM。深度16,宽度8 reg [6:0] count=7'd0; reg [6:0] rp=7'd0; reg [6:0] wp=7'd0; integer i; always@(posedge clk) if(rst)begin//复位 wp<=7'd0; rp<=7'd0; dout<=8'd0; count<=7'd0; for(i=0;i<16;i=i+1) ram[i]<=8'b00000000;//清零 end else case({rd_en,wr_en}) 2'b00:count<=count; 2'b01://单写FIFO if(~full)begin//未满 ram[wp]<=din;//存入fifo if(wp>=7'd15) wp<=7'd0;//写地址循环累加 else wp<=wp+7'd1; count<=count+7'd1; rp<=rp; end 2'b10://单读FIFO if(~empty)begin//未空 dout<=ram[rp];//读fifo
设计文档:
设计文档.doc
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
Fifo模块仿真图
数码管显示模块仿真图