EDA数字秒表的设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“eda数字秒表的设计”。
设 计 报 告——数字秒表的设计
EDA 一 设计目的1.根据设计要求,完成对数字秒表的设计。
2.进一步加强对QuartusⅡ的应用和对Verilog HDL语言的使用。
二 设计内容和要求
1.计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用KHz。
2.计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。
3.设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。
三 系统设计方案
自顶向下的设计自顶向下的设计方法是数字系统设计中最常用的设计方法.也是基于芯片的系统设计的主要方法。
自顶向下的设计方法利用功能分割手段将设计由上到下 进行层次话和模块化,及分层次、分模块进行设计和仿真。功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。如此分割,逐步的将系统细化,将功能逐步的具体化,模块化。高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。四 模块设计 1.分频模块
将输入1KHZ的系统时钟经过十分频分为100HZ的单位时钟。编程原理跟计数器原理相似。
2.定时模块
采用2个60进制、1个100进制的BCD码全加器作为定时器,分为分,秒,百分秒,输入时钟信号为分频器输出信号100HZ时钟,外界两个拨码开关作为清零按钮和暂停按钮。
3.位选发生器:
根据显示的数据位和人眼暂留效应,设计显示分为分、秒、百分秒位,每位需要2个数码管进行显示,因此变化频率至少为300HZ,为了方便则采用1KHZ,循环码则从000循环到101。
4.多路选择器
根据位选信号,输出对应位显示的数据。
5.译码器
将多路选择器输出端的数据对应的转换为七段二进制数,送给显示器。
五 顶层原理图
以上所描述的模块的程序编写均在同一工程下,由程序生成的元件也在该工程下,所以可以在该工程下再建一原理图作为顶层,将所需要的元件按照要求进行连线,加入输入输出处端口并改名。包层原理图,并将原理图置为顶层文件。
由于我们的程序是写在一起的,所以本设计的整体原理图如图1所示:
qweclkINPUTVCCclkrstkey2instout_wei[7..0]out_duan[7..0]OUTPUTout_wei[7..0]rstINPUTVCCOUTPUTout_duan[7..0]key2INPUTVCC图1.实验原理图
六 系统仿真与引脚分配
本实验结果的仿真图与引脚分配如下图2
引脚分配
实验原理图
图2.实验结果仿真图与引脚分配
七 器件编程与硬件下载
1.在Quartus软件中为顶层文件选择好芯片类型,选择引脚后进行编译。
2.将实验箱端口与计算机相应端口连接,检测试验箱是否可以使用,经检测无误后,关闭试验箱,将主芯片标号对应顶层文件相应引脚标号连线到相应器件处。即输入时钟信号端接试验箱时钟发生电路CLK输出端(用50MHz信号),启动新号段与归零信号端分别接两个拨码开关,输出端count[2..0]分别接3/8译码器的SEL2—SEL0端,输出a,b,c,d,e,f,g,h端接显示译码器的相应输入端,连接好线后打开试验箱电源,将设计好的程序下载到试验箱的芯片上即可测试功能。八 总结及心得
1.总结
通过这次课程设计让我对EDA这门课有了更深刻的了解,对设计过程中困难重重现总结如: 在程序编写时,先要在心中规划一个大概流程,然后编写,经过与其他同学多次合作修改最终编译而成,在如何编写程序方面收获颇多;
在往开发板上导程序的时候,虽然出现了几次错误,但是只要有耐心,就能获得成功。2.心得体会
这次EDA课程设计,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当程序编写调试成功时,心里特别的开心。但在编写时,有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的数字秒表还是比较成功的,在设计中遇到了很多问题,最后在同学的帮助下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学再次表示忠心的感谢!九 设计程序如下:
module qwe(clk,out_wei,out_duan,rst,key2);//key2==27pin input rst;input clk;input key2;output [7:0]out_wei;output [7:0]out_duan;reg [7:0]out_wei=8'b00000000;reg [7:0]out_duan=8'b00000011;//a b c d e f g dp reg [4:0]count;reg [3:0]count1;reg [14:0]count2;reg [7:0]sec_l=8'b00000011;reg [7:0]sec_h=8'b00000011;reg [7:0]fen_l=8'b00000011;reg [7:0]fen_h=8'b00000011;reg [7:0]msec_l=8'b00000011;reg [7:0]msec_h=8'b00000011;reg [3:0]s_1=0;reg [3:0]s_2=0;reg [3:0]s_3=0;reg [3:0]s_4=0;reg [3:0]s_5=0;reg [3:0]s_6=0;reg clk_out;reg pause;//信号
always@(posedge clk)begin if(count2==25000)
count2
clk_out
:begin
end
3:begin
end
6:begin
//zero at first //fenpin begin //one of thousand secend 25000
//scan
out_wei
out_duan
//out_wei
//out_wei
out_wei
//out_wei
end
9:begin
out_wei
out_duan
//out_wei
//out_duan
//out_wei
//out_duan
end
12:begin
out_wei
out_duan
//out_wei
//out_duan
//out_wei
//out_duan
end
15:begin
out_wei
out_duan
//out_wei
//out_duan
//out_wei
//out_duan
end
18:count
always@(negedge key2)begin
pause
always@(posedge clk_out or negedge rst)begin //minite secend if(!rst)begin
s_1
s_2
s_3
s_4
s_5
s_6
count1
if(s_6==9)begin
s_6
if(s_5==9)begin
s_5
if(s_1==9)begin
s_1
if(s_2==5)begin
s_2
if(s_3==9)begin
s_3
if(s_4==5)
s_4
else s_4
end else s_3
end else s_2
end else s_1
end else s_5
end else s_6
end
else if(pause==1)begin
count1
end end //这下面全部是扫描显示用的。
always@(s_1 or s_2 or s_3 or s_4 or s_5 or s_6)begin
case(s_1)
0:sec_l=8'b11000000;
1:sec_l=8'b11111001;
2:sec_l=8'b10100100;
3:sec_l=8'b10110000;
4:sec_l=8'b10011001;
5:sec_l=8'b10010010;
6:sec_l=8'b10000010;
7:sec_l=8'b11111000;
8:sec_l=8'b10000000;
9:sec_l=8'b10010000;
default:sec_l=1'bx;
endcase
case(s_2)
0:sec_h=8'b11000000;
1:sec_h=8'b11111001;
2:sec_h=8'b10100100;
3:sec_h=8'b10110000;
4:sec_h=8'b10011001;
5:sec_h=8'b10010010;
6:sec_h=8'b10000010;
default:sec_h=1'bx;
endcase
case(s_3)
0:fen_l=8'b11000000;
1:fen_l=8'b11111001;
2:fen_l=8'b10100100;
3:fen_l=8'b10110000;
4:fen_l=8'b10011001;
5:fen_l=8'b01001001;
6:fen_l=8'b10010010;
7:fen_l=8'b10000010;
8:fen_l=8'b10000000;
9:fen_l=8'b10010000;
default:fen_l=1'bx;
endcase
case(s_4)
0:fen_h=8'b11000000;
1:fen_h=8'b11111001;
2:fen_h=8'b10100100;
3:fen_h=8'b10110000;
4:fen_h=8'b10011001;
5:fen_h=8'b01001001;
6:fen_h=8'b10010010;
default:fen_h=1'bx;
endcase
case(s_6)
0:msec_l=8'b11000000;
1:msec_l=8'b11111001;
2:msec_l=8'b10100100;
3:msec_l=8'b10110000;
4:msec_l=8'b10011001;
5:msec_l=8'b10011001;
6:msec_l=8'b10010010;
7:msec_l=8'b10000010;
8:msec_l=8'b10000000;
9:msec_l=8'b10010000;
default:msec_l=1'bx;
endcase
case(s_5)
0:msec_h=8'b11000000;
1:msec_h=8'b11111001;
2:msec_h=8'b10100100;
3:msec_h=8'b10110000;
4:msec_h=8'b10011001;
5:msec_h=8'b10011001;
6:msec_h=8'b10010010;
7:msec_h=8'b10000010;
8:msec_h=8'b10000000;
9:msec_h=8'b10010000;
default:msec_h=1'bx;
endcase end endmodule
大规模集成电路秒表设计专题实习报告一、实习题目:大规模集成电路秒表设计二、模块名称:计数器,控制逻辑,译码器,数据选择器三、实习目的:对quartusII软件的使用,同时增强对Verilog......
Hefei UniversityEDA课程综述论文题目: EDA课程综述专 业: 09通信(2)班姓 名: 唐吉祥学 号: 0905072035 指导老师: 查长军前言随着基于PLD的EDA技术的发展和应用领域的扩大和深......
EDA课程设计报告一·设计任务使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。二·设计要求除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。a......
EDA课程设计报告书题目: 数字跑表姓名: 班级: 学号: 成绩:一、设计题目及要求 设计题目:数字跑表要求:1 具有暂停,启动功能。2 具有重新开始功能。3 用六个数码管分别显示百分秒,秒和......
课 程 设 计 说 明 书题目: 闹钟学院(系): 年级专业: 学 号: 学生姓名: 指导教师: 教师职称:共 16 页第 1 页目 录第1章 摘要……………………………………………………………………......