数字钟说明书.docx

上传人:b****3 文档编号:5347301 上传时间:2022-12-15 格式:DOCX 页数:18 大小:472.26KB
下载 相关 举报
数字钟说明书.docx_第1页
第1页 / 共18页
数字钟说明书.docx_第2页
第2页 / 共18页
数字钟说明书.docx_第3页
第3页 / 共18页
数字钟说明书.docx_第4页
第4页 / 共18页
数字钟说明书.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数字钟说明书.docx

《数字钟说明书.docx》由会员分享,可在线阅读,更多相关《数字钟说明书.docx(18页珍藏版)》请在冰豆网上搜索。

数字钟说明书.docx

数字钟说明书

引言

电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。

随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,因此在许多电子设备中被广泛使用。

随着电子设计自动化(EDA)的发展,电子系统的设计技术和设计工具发生了深刻的变化。

利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。

VerilogHDL语言是目前主流的硬件描述语言之一,它具有很强的电路描述和建模能力,且有与具体硬件电路无关和与设计平台无关的特性,在语言易读性和层次化结构设计方面表现出强大的生命力和应用潜力。

设计要求:

(1)根据任务要求确定电路各功能模块;

(2)写出设计程序;

(3)给出时序仿真结果;

(4)最后要有设计总结;

1EDA技术介绍

EDA(电子线路设计自动化)是以计算机为工作平台、以硬件描述语(HDL)为设计语言、以可编程器件(CPLD/FPGA)为实验载体、以ASIC/SOC 芯片为目标器件、进行必要的元件建模和系统仿真的电子产品自动化设计过程。

EDA源于计算机辅助设计,计算机辅助制造、计算机辅助测试和计算机辅助工程。

利用EDA 工具,电子设计师从概念、算法、协议开始设计电子系统,从电路设计,性能分析直到PCB版图生成的全过程均可在计算机上自动完成。

EDA 代表了当今电子设计技术的最新发展方向,其基本特征是设计人员以计算机为工具,按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,利用先进的开发工具自动完成逻辑编译、化简、分割、综合、优化、布局布线、仿真及特定目标芯片的适配编译和编程下载,这被称为数字逻辑电路的高层次设计方法。

作为现代电子系统设计的主导技术,EDA具有几个明显特征。

(1)用软件设计的方法来设计硬件 

硬件系统的转换是由有关的开发软件自动完成的,设计输入可以是原理图或VerilogHDL 语言,通过软件设计方式的测试,实现对特定功能硬件电路的设计,而硬件设计的修改工作也如同修改软件程序一样快捷方便, 设计的整个过程几乎不涉及任何硬件,可操作性、产品互换性强。

 

(2)基于芯片的设计方法 

EDA 设计方法又称为基于芯片的设计方法,集成化程度更高,可实现片上系统集成,进行更加复杂的电路芯片化设计和专用集成电路设计,使产品体积小、功耗低、可靠性高;可在系统编程或现场编程,使器件编程、重构、修改简单便利,可实现在线升级;可进行各种仿真,开发周期短,设计成本低,设计灵活性高。

(3)自动化程度高 

EDA 技术根据设计输入文件,将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成,自动生成目标系统,使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果,设计自动化程度高,减轻了设计人员的工作量,开发效率高。

(4)自动进行产品直面设计 

EDA 技术根据设计输入文件(HDL 或电路原理图),自动地进行逻辑编译、化简、综合、仿真、优化、布局、布线、适配以及下载编程以生成目标系统,即将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成。

2VerilogHDL语言介绍

Verilog是由Gateway设计自动化公司的工程师于1983年末创立的。

当时Gateway设计自动化公司还叫做自动集成设计系统(AutomatedIntegratedDesignSystems),1985年公司将名字改成了前者。

该公司的菲尔·莫比(PhilMoorby)完成了Verilog的主要设计工作。

1990年,Gateway设计自动化被Cadence公司收购。

1990年代初,开放Verilog国际(OpenVerilogInternational,OVI)组织(即现在的Accellera)成立,Verilog面向公有领域开放。

1992年,该组织寻求将Verilog纳入电气电子工程师学会标准。

最终,Verilog成为了电气电子工程师学会1364-1995标准,即通常所说的Verilog-95。

设计人员在使用这个版本的Verilog的过程中发现了一些可改进之处。

为了解决用户在使用此版本Verilog过程中反映的问题,Verilog进行了修正和扩展,这部分内容后来再次被提交给电气电子工程师学会。

这个扩展后的版本后来成为了电气电子工程师学会1364-2001标准,即通常所说的Verilog-2001。

Verilog-2001是对Verilog-95的一个重大改进版本,它具备一些新的实用功能,例如敏感列表、多维数组、生成语句块、命名端口连接等。

目前,Verilog-2001是Verilog的最主流版本,被大多数商业电子设计自动化软件包支持。

2005年,Verilog再次进行了更新,即电气电子工程师学会1364-2005标准。

该版本只是对上一版本的细微修正。

这个版本还包括了一个相对独立的新部分,即Verilog-AMS。

这个扩展使得传统的Verilog可以对集成的模拟和混合信号系统进行建模。

容易与电气电子工程师学会1364-2005标准混淆的是加强硬件验证语言特性的SystemVerilog(电气电子工程师学会1800-2005标准),它是Verilog-2005的一个超集,它是硬件描述语言、硬件验证语言(针对验证的需求,特别加强了面向对象特性)的一个集成。

2009年,IEEE1364-2005和IEEE1800-2005两个部分合并为IEEE1800-2009,成为了一个新的、统一的SystemVerilog硬件描述验证语言(hardwaredescriptionandverificationlanguage,HDVL)。

3QuartusII软件简介

3.1软件介绍

QuartusII是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(AlteraHardware支持DescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快、界面统一、功能集中、易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:

(1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;

(2)芯片(电路)平面布局连线编辑;

(3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;

(4)功能强大的逻辑综合工具;

(5)完备的电路功能仿真与时序逻辑仿真工具;

(6)定时时序分析与关键路径延时分析;

(7)可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;

(8)支持软件源文件的添加和创建,并将它们链接起来生成编程文件;

(9)使用组合编译方式可一次完成整体设计流程;

(10)自动定位编译错误;

(11)高效的期间编程与验证工具;

(12)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;

(13)能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

3.2界面介绍

3.2.1代码输入界面

代码输入界面如图3-1所示。

图3-1代码输入界面

3.2.2功能仿真界面

功能仿真界面如图3-2所示。

图3-2功能仿真界面

 

3.2.3波形仿真界面

波形仿真界面如图3-3、3-4所示。

图3-3波形赋值界面

图3-4波形仿真界面

4系统总体设计

4.1设计思路

电子钟的时钟信号的分、秒都是60进制的计数信号,小时则为24进制的计数信号。

由此,可以设置4个模块,分别为秒模块、分模块和小时模块。

另外,由于电子时钟还要有复位和校准功能,因此还要调时模块。

而这些功能可以通过计数器的相关功能来实现,首先开关打开后,秒模块开始计时,每当计满一个周期后会向下一个分模块产生进位信号,同时向秒模块发出重置信号,分模块也开始计时。

当分模块计满一个周期后,同样向小时模块产生进位信号并向本模块发出重置信号,以此来实现24小时的计时功能。

在调时模块的设计方面,可以将其穿插至各个计时模块中。

例如,可以利用控制计时模块的时钟脉冲的有无来实现整个时钟的暂停功能;而复位功能的设计,可以用控制信号控制各个模块的重置功能即可实现。

因此,本设计包括以下几个模块:

动态显示模块、计时模块、报时模块、调时模块。

4.2系统设计总体框图

系统设计框图如图4-1所示。

图4-1系统设计框图

5各模块详细设计

5.1计时模块

5.1.124进制计数器

(1)设计原理如下。

24进制计数器的设计思想是将输入进来的脉冲进行计数,每来一个上升沿记一次数,当计到24是清零。

(2)24进制的VerilogHDL代码如下。

modulecounter24h(H,CPH,RD);

output[7:

0]H;

inputCPH,RD;

reg[7:

0]H;

always@(negedgeRDorposedgeCPH)

begin

if(!

RD)H[7:

0]<=0;

else

begin

if((H[7:

4]==2)&&(H[3:

0]==3))

begin

H[7:

0]<=0;

end

else

begin

if(H[3:

0]==9)

beginH[3:

0]<=0;

H[7:

4]<=H[7:

4]+1;

end

elseH[3:

0]<=H[3:

0]+1;

end

end

end

endmodule

(3)24进制计数器的波形分析如图5-1

图5-1波形仿真图

由仿真波形可知:

①Hl作个位计数,Hh作十位计数;②当小时的高四位为0、1时,小时的低四位为9时,在下一个时钟的上升沿来之后,高四位加一;③当小时的高四位为2,同时低四位为3时,小时的高低四位都清零。

实现了从00到23的循环计数,其结论是符合时计时规律,逻辑电路设计正确。

(4)24进制计数器的原件例化如图5-2所示。

 

图5-224进制模块

5.1.260进制分计数器的设计

(1)设计原理如下。

60进制计数器的设计思想是将输入进来的脉冲进行计数,每来一个上升沿记一次数,当计到60是清零并且进位端输出1,否则输出0。

输出用两个四位二进制数来输出。

(2)60进制分的VerilogHDL代码如下。

modulecounter60m(M,CP60M,CPM,RD);

output[7:

0]M;outputCP60M;

inputCPM;inputRD;

reg[7:

0]M;

wireCP60M;

always@(negedgeRDorposedgeCPM)

begin

if(!

RD)//RD为低电平时,

beginM[7:

0]<=0;end//分输出M清零。

else

begin

if((M[7:

4]==5)&&(M[3:

0]==9))//到59时,

beginM[7:

0]<=0;end//分输出M清零。

else

begin

if(M[3:

0]==9)//分钟个位到9时,其分钟个位清零。

begin

M[3:

0]<=0;

if(M[7:

4]==5)//如果分钟十位此时巧好也到5时,

beginM[7:

4]<=0;end//其分钟十位也清零。

elseM[7:

4]<=M[7:

4]+1;//否则分钟十位加1

end

elseM[3:

0]<=M[3:

0]+1;//再否则分钟个位一直加1

end

end

end//分输出M为59时,

assignCP60M=~(M[6]&M[4]&M[3]&M[0]);//CP60M输出进位信号。

endmodule

当来60个上升沿的时候就会清零。

(3)60进制计数器的波形分析如图5-3

图5-3波形仿真图

60进制计数器的设计方法类似24进制计数器,不同的地方在于,60进制的设计思想是当计数到59时,置数清零,产生进位输出;而24进制的高低4位的清零和进位需要考虑个位计数到9和整个计满到23。

(4)60进制计数器的原件例化如图5-4所示。

图5-460进制分模块

5.1.360进制秒计数器

(1)60进制秒的VerilogHDL代码如下。

modulecounter60s(S,CP60S,CPS,RD);

output[7:

0]S;outputCP60S;

inputCPS;inputRD;

reg[7:

0]S;

wireCP60S;

always@(negedgeRDorposedgeCPS)

begin

if(!

RD)//RD为低电平时,

beginS[7:

0]<=0;end//秒输出S清零。

else

begin

if((S[7:

4]==5)&&(S[3:

0]==9))//到59时,

beginS[7:

0]<=0;end//秒输出S清零。

else

Begin//秒钟个位到9时,

if(S[3:

0]==9)//其秒钟个位清零。

begin

S[3:

0]<=0;//如果秒钟十位此时

if(S[7:

4]==5)//恰好也到5时,

beginS[7:

4]<=0;end//其秒钟十位也清零。

elseS[7:

4]<=S[7:

4]+1;//否则秒钟十位加1

end

elseS[3:

0]<=S[3:

0]+1;//再否则秒钟个位一直加1

end

end

end

assignCP60S=~(S[6]&S[4]&S[3]&S[0]);//秒输出S为59时,endmodule//CP60S输出进位信号。

(2)60进制秒的波形分析如图5-5

图5-5波形仿真图

由仿真波形可知:

①Sl作个位计数,Sh作十位计数;②当秒钟的高四位为0、1、2、3、4时,秒钟的低四位为9时,在下一个时钟的上升沿来了之后,高四位加一;③当秒钟的高四位为5,同时低四位为9时,秒钟的高低四位都清零。

实现了从00到59的循环计时,其结论是符合秒计时规律,逻辑电路设计正确。

(2)60进制秒计数器的原件例化如图5-6所示。

图5-660进制秒模块

5.2校时校分模块设计

(1)校时校分功能电路Verilog语言描述

modulexiaoshi2(CPM,CPH,CPS,CP60M,CP60S,SWM,SWH);

outputCPM,CPH;

inputSWM,SWH;

inputCPS,CP60S,CP60M;

regCPM,CPH;

always@(SWMorSWHorCPSorCP60SorCP60M)

begin

case({SWM,SWH})

2'b01:

beginCPM<=CPS;CPH<=CP60M;end

2'b10:

beginCPM<=CP60S;CPH<=CPS;end

default:

beginCPM<=CP60S;CPH<=CP60M;end

endcase

end

endmodule

(2)仿真波形如图5-7:

图5-7波形仿真图

由仿真图分析可知:

当SWM为0时,用秒时钟CPS对分钟CPM进行校对;当SWH为0时用秒时钟CPS对小时CPH进行校对。

当SWM、SWH都不为0时,分钟,小时正常计数。

其结论是符合校时校分规律,逻辑电路设计正确。

(3)校时校分原件例化如图5-8

图5-8调时模块

5.3报时模块设计

(1)正点报时功能电路Verilog语言描述

modulebaoshi(m6,m4,m3,m0,s6,s4,s3,s0,dy,gy,bshi);

inputm6,m4,m3,m0,s6,s4,s3,s0,dy,gy;

outputbshi;

wirebm;

regbshi;

assignbm=m6&m4&m3&m0&s6&s4&s0;

always@(bmors3ordyorgy)

begin

if(bm&s3)

bshi<=gy;

elseif(bm)

bshi<=dy;

else

bshi<=0;

end

endmodule

(2)仿真波形如下如图5-9:

图5-9波形仿真图

由仿真波形图看出,当为59分51秒、53秒、55秒、57秒时,以低音报时,当为59分59秒时,以高音报时。

验证了本模块的逻辑功能正确。

(3)校时校分原件例化如图5-10

图5-10报时模块

5.4分频模块

(1)分频电路Verilog语言描述

modulefenpin(clk,miao_out);

inputclk;

outputregmiao_out;

always@(posedgeclk)

begin:

xhdl0

reg[24:

0]cnt;

regff;

begin

if(cnt<24999999)

cnt=cnt+1;

else

begin

cnt=0;

ff=(~ff);

end

end

miao_out<=(~ff);

end

endmodule

(2)原件例化如图:

图5-11分频模块

5.5显示模块

原件例化如下图:

图5-12显示模块

5.6顶层模块设计

(1)原理如下。

各个模块的功能实现之后,需要一个主程序来调用这些模块,现采用在主程序中声明元件的方法。

将上述各模块声明为元件在主程序中进行实例化,以实现对各个模块的综合。

(2)原理图如图5-13所示。

图5-13顶层原理图

6硬件测试

当引脚锁定完毕后,将程序下载到试验箱中,连好电路,在输入端输入相应的值即可得到相应的时间。

下图为具体的实物连接图和引脚锁定如图6-1、6-2所示。

 

图6-1硬件连接图

图6-2引脚示意图

总结

两周的EDA课程设计结束了,在这期间的经历是让人享受的,为什么这么说呢?

从一开始的无从下手,到最后硬件实现,设计成功,期间太多的波折。

一开始,从网上搜集的资料写的都很含糊,总是缺少程序,有的没有分频程序,有的没有报时模块,而且有很多资料都是VHDL的,所以给我带来困扰也是相当大的。

没办法只能自己看书,一点点的写程序,可是这个真的有点难,因为基础不好,所以学起来很费劲。

分频模块是从图书馆借的书上修改来的,因为是VHDL语言,还让懂得同学改成VerilogHDL的,因为大多案例都是用原件例化做的,从原件例化学起,从最初找不到如何生成顶层文件的按钮:

SetasTop-levelentity,通过XX,找到的都是QUARTUS11.1的,后来在一个XX知道中找到了回答者的答案中在project中找到SetasTop-levelentity,在生成波形文件是行为设置的Timeperiod始终不正确,所以一直显示不正常,后来更改为Function终于成功了。

最让人难受的是在修改一个一个的error,有时一个错误改完了,又出来好几个错误,最让我头疼的是,有些错误根本找不到在哪,也看不明白,还是老师厉害啊,在魏老师的帮助下,终于程序能通过了,一个个的原件终于也例化完了,连接成原理图时,因为有飞线的存在,最后也终于修改成功了。

配置引脚又是一项大工程。

因为基础不牢的原因,居然开始是把数码管的引脚锁定弄反了,导致显示异常,还以为是程序的问题,反复的检查纠错后还是异常,连接时确实是个问题啊,好多引脚,连着连着就错了,后来有一个同学帮忙,一个连线一个锁定引脚。

只能说,基础太重要了,就像这次设计一样,程序和原件都做好了,在配置引脚出错了,还是不能实现功能。

所以说,只是还是要扎实啊!

希望通过以后的学习,可以让自己提高的更多。

总的来说,这次课程设计还是有所收获的,但是也暴露出太多的问题。

诸如动手能力,分析解决问题的能力,知识的应用上......我发现我有太多的不足与缺陷。

学习还是要趁早,通过这次学习,我深刻的意识到自己诸多方面的不足,在今后的学习中还是要继续努力。

学校实验室确实应该多来,在短短的一周中,我和相同课题的同学几乎天天到实验室调试,这个过程是让人享受的。

我发现实验老师也很爱解答我们的问题,在这里很感谢魏老师和王老师。

大学已接近尾声,抓住不多的时间,提高自己吧。

参考文献

[1]VokneiA.PedroniVHDL数字电路设计教程电子工业出版社,2008.5

[2]潘松,黄继业EDA技术实用教程(第二版).科学出版社,2005.2

[3]焦素敏EDA应用技术清华大学出版社,2002.4

[4]张昌凡等可编程逻辑器件及VHDL设计技术[M].广州:

华南理工大学出版社,2001

[5]曾繁泰,陈美金VHDL程序设计[M].北京清华大学出版社,2001

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1