FPGA数字跑表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程专业
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 语言设计程序
⑶在Quartus U软件或其他EDA软件上完成设计和仿真
(4)根据实验装置上的CPLD/FPGA芯片,在适配时选择相应的芯片,将设计生成配置文件或JEDEC文件,然后将配置文件或JEDEC文件下载到实验装置上运行,操作实验装置上设定的功能幵关,验证设计功能。
2各模块设计及电路图
2.1设计项目简介
主控模块分别连接6个数码管显示模块和分频模块,分频模块给主控模块的计数器提供时钟源,主控模块在按键的控制下,在其中计数器的作用下输出给数码管显示装置,实现跑表功能。
振荡器
分频器►计
数
器
2.2分块设计代码
(1)分频模块: module fenpin(CLK,CLK2); // 输入50MHz 输出分频到1Hz in put 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;
else if(!pause) begin if(msl==9) begin msl<=0; if(msh==9) begin msh<=0; cn1<=1; end else
msh<=msh+1;
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;
else if(sl==9) begin sl<=0; if(sh==5) begin sh<=0; cn2<=1; end else sh<=sh+1; end else
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:D0UT二'bOOOOIIO; 15:DOUT二'bOOOIIIO;