名称: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,inp
http://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
elsecase({rd_en,wr_en})2'b00:count<=count;2'b01://单写FIFOif(~full)begin//未满ram[wp]<=din;//存入fifoif(wp>=7'd15)wp<=7'd0;//写地址循环累加elsewp<=wp+7'd1;count<=count+7'd1;rp<=rp;end2'b10://单读FIFOif(~empty)begin//未空dout<=ram[rp];//读fifo
设计文档:
设计文档.doc
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图
整体仿真图


![]()



Fifo模块仿真图


数码管显示模块仿真图


