当前位置:文档之家› FPGA数字跑表

FPGA数字跑表

电子信息工程专业
FPGA与ASIC设计实践教程
设计报告
班级:电子信息工程1303班
学号:201315110
姓名: 田佳鑫
日期:2015年11月4日
指导老师:何英昊
目录
1系统总体方案及硬件设计 (3)
1.1设计内容 (3)
1.2 设计要求 (3)
1.3 实现要求 (3)
2各模块设计及电路图 (3)
2.1设计项目简介 (3)
2.2分块设计代码 (4)
2.3总体框图设计 (7)
2.4管脚锁定图 (8)
3课程设计体会 (8)
1系统总体方案及硬件设计
1.1 设计内容
数字跑表电路
1.2设计要求
(1)跑表的计时范围为0.01—59min59.99s。

(2)具有异步清零、启动。

计时和暂停功能。

(3)输入时钟频率为100Hz。

(4)要求数字跑表的输出能够直接驱动共阴极7段数码管。

1.3 实现要求
(1)分析功能要求,划分功能模块。

(2)编写各模块的Verilog HDL语言设计程序。

(3)在QuartusⅡ软件或其他EDA软件上完成设计和仿真。

(4)根据实验装置上的CPLD/FPGA芯片,在适配时选择相应的芯片,将设计生成配置文件或JEDEC文件,然后将配置文件或JEDEC文件下载到实验装置上运行,操作实验装置上设定的功能开关,验证设计功能。

2各模块设计及电路图
2.1 设计项目简介
主控模块分别连接6个数码管显示模块和分频模块,分频模块给主控模块的计数器提供时钟源,主控模块在按键的控制下,在其中计数器的作用下输出给数码管显示装置,实现跑表功能。

振荡器
控制按键分频器计




2.2分块设计代码
(1)分频模块:
module fenpin(CLK,CLK2); //输入50MHz,输出分频到1Hz input CLK;
output CLK2;
reg CLK2;
reg[31:0] counter2;
parameter N2=5000000;
always@(posedge CLK)
begin
if(counter2==250000)
begin
counter2<=0;
CLK2<=~CLK2;
end
else
counter2<=counter2+1;
end
endmodule
(2)控制模块:
module sz(clk,clr,pause,msh,msl,sh,sl,mh,ml);
inputclk,clr;
input pause;
output[3:0]msh,msl,sh,sl,mh,ml;
reg[3:0]msh,msl,sh,sl,mh,ml;
reg cn1,cn2;
always@(posedgeclk or posedgeclr)
begin
if(clr)
begin
{msh,msl}<=8'h00;
cn1<=0;
end
else
if(!pause)
begin
if(msl==9)
begin
msl<=0;
if(msh==9)
begin
msh<=0;
cn1<=1;
end
else
msh<=msh+1;
end
else
begin
msl<=msl+1;
cn1<=0;
end
end
end
always@(posedge cn1 or posedgeclr) begin
if(clr)
begin
{sh,sl}<=8'h00;
cn2<=0;
end
else
if(sl==9)
begin
sl<=0;
if(sh==5)
begin
sh<=0;
cn2<=1;
end
else
sh<=sh+1;
end
else
begin
sl<=sl+1;
cn2<=0;
end
end
always@(posedge cn2 or posedgeclr) begin
if(clr)
begin
{mh,ml}<=8'h00;
end
else
if(ml==9)
begin
ml<=0;
if(mh==5)
mh<=0;
else
mh<=mh+1;
end
else
ml<=ml+1;
end
endmodule
(3)显示模块:
module XS7D(DIN,DOUT);
input [3:0]DIN;
output [6:0]DOUT;
reg [6:0]DOUT;
always @(DIN)
begin
case(DIN)
0:DOUT='b1000000;
1:DOUT='b1111001;
2:DOUT='b0100100;
3:DOUT='b0110000;
4:DOUT='b0011001;
5:DOUT='b0010010;
6:DOUT='b0000010;
7:DOUT='b1111000;
8:DOUT='b0000000;
9:DOUT='b0010000;
10:DOUT='b0001000;
11:DOUT='b0000011;
12:DOUT='b1000110;
13:DOUT='b0100001;
14:DOUT='b0000110;
15:DOUT='b0001110; endcase
end
endmodule
2.3总体框图设计
2.4管脚锁定图
三、课程设计体会
FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

通过学习制作数字跑表,我对于可编程逻辑器件有了更加深刻地体会。

这次实验设计,我的分频模块和显示模块都令我特别头疼,但是在认真的学习过后,我认识到了一些错误和漏洞,我正确的改正了由于分频过快导致的秒表不准。

改正之后,我的数码管却无法显示数字,通过我认真的研究,我发现数码管共阴极和数码管共阳极的概念混淆,改正之后,我的数字跑表正常的工作了。

总体来说这次实验对于我的提升很大,我在课程设计动手实践方面有进步了不少。

相关主题