名称: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
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模块仿真图


数码管显示模块仿真图





















