quarter ii 4位数码管显示实验Word文档下载推荐.docx
《quarter ii 4位数码管显示实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《quarter ii 4位数码管显示实验Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
实验步骤
1、首先,制作1位数码管显示电路,用verilong语言写。
moduleseg7(clk,rst_n,data,seg,sel);
inputclk;
inputrst_n;
input[3:
0]data;
outputreg[7:
0]seg;
outputreg[2:
0]sel;
always@(posedgeclkornegedgerst_n)
begin
if(!
rst_n)
begin
sel<
=0;
end
else
always@(*)
seg=8'
b1111_1111;
case(data)
0:
b1100_0000;
1:
b1111_1001;
2:
b1010_0100;
3:
b1011_0000;
4:
b1001_1001;
5:
b1001_0010;
6:
seg=8'
b1000_0010;
7:
b1111_1000;
8:
b1000_0000;
9:
b1001_0000;
10:
b1000_1000;
11:
b1000_0011;
12:
b1100_0110;
13:
b1010_0001;
14:
b1000_0110;
15:
b1000_1110;
default:
endcase
endmodule
测试模块
`timescale1ns/1ps
moduleseg7_tb;
regclk;
reg[3:
0]data;
regrst_n;
wire[7:
wire[2:
initial
clk=1;
rst_n=0;
data=10;
#200.1
rst_n=1;
end
always#10clk=~clk;
seg7seg7(
.clk(clk),
.rst_n(rst_n),
.data(data),
.seg(seg),
.sel(sel)
);
Endmodule
2、例化元件
3、4位数码管的设计
Frep模块
modulefreq(
clk,
rst_n,
clk_1k
);
inputclk;
inputrst_n;
outputregclk_1k;
reg[19:
0]count;
always@(posedgeclkornegedgerst_n)
begin
if(!
begin
clk_1k<
=1;
count<
=0;
end
else
begin
if(count<
24999)
count<
=count+1;
else
begin
count<
clk_1k<
=~clk_1k;
end
end
end
endmodule
Seg7模块
moduleSEG7(
data,
seg,
sel
input[15:
outputreg[7:
outputreg[2:
reg[3:
0]data_temp;
reg[2:
0]state;
if(!
begin
sel<
data_temp<
state<
else
case(state)
0:
sel<
=data[15:
12];
state<
1:
sel<
data_temp<
=data[11:
8];
state<
=2;
end
2:
=data[7:
4];
=3;
3:
=4;
data_temp<
=data[3:
0];
default:
state<
endcase
end
end
seg=8'
end
else
case(data_temp)
0:
seg=8'
endcase
end
endmodule
Top模块
moduletop(
rst_n,
data,
seg,
sel
);
inputclk;
inputrst_n;
input[15:
output[7:
output[2:
wireclk_1k;
freqfreq(
.clk(clk),
.rst_n(rst_n),
.clk_1k(clk_1k)
);
SEG7SEG7(
.clk(clk_1k),
.rst_n(rst_n),
.data(data),
.seg(seg),
.sel(sel)
);
endmodule
moduletop_vlg_tst();
//constants
//generalpurposeregisters
regeachvec;
//testvectorinputregisters
reg[15:
//wires
//assignstatements(ifany)
toptop(
//portmap-connectionbetweenmasterportsandsignals/registers
.rst_n(rst_n),
begin
data=15h123456;
#200.1
always#10clk=~clk;
endmodule
4、4位数码管的例化
实验内容
设计一个4位数码管显示电路:
要求在QuartusII软件平台上用verilog语言设计出一个4位数码管显示电路,并通过编译及仿真检查设计结果。
实验数据
一位数码管的仿真图像
4位数码管的仿真
实验总结
由于初次用到modelsim仿真软件,在使用过程中出现了很多问题,有的问老师和师兄,还有一部分只能通过网络上进行查询,所以花费的时间就很多,做起来难度很大,但是通过这次的学习我也学到了很多东西,多动手多动脑才能更好的学习。
指导教师意见
签名:
年月日