




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学课程设计(论文)西安建筑科技大学课程设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、 课程设计(论文)题目数字时钟设计二、 本次课程设计(论文)应达到的目的培养自己逻辑设计能力和采用EDA方法进行设计的思想。三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 1设计一个具有时,分,秒,计数显示功能并以24小时循环计时和清零,调节小时、分钟功能及整点报时功能,整点报时的同时LED灯花样显示的数字时钟。2. 完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。四、应收集的资料及主要参考文献1潘松.EDA技术与VHDL(第4版).北京:清华大学出版社,2013.8086.2阎石.数字电子技术基础. 北京:高等教育出版社,1998.4654.3谭会生.EDA技术及应用.西安:西安电子科技大学出版社,2001.187196. 4潘松,王国栋.基于EDA技术CPLD/FPGA应用前景.北京:清华大学出版社,1993.3574.5邢建平,曾繁泰.VHDL程序设计教程.北京:清华大学出版社,2005.3847.5、 审核批准意见教研室主任(签字) 摘 要 日常生活中数字时钟非常常见,而数字时钟设计的实现方法有很多种,比如可以用单片机实现,也可以通过画电路控制原理图实现。但是本次课程设计利用EAD技术实现,利用QuartusII软件设计一个数字时钟,进行电路设计和仿真调试,实现了计时,校时,清零,显示和整点报时等多种基本功能,并下载到实验仪器进行调试和验证。在本次课程设计的过程中,根据设计要求和所要达到的目的,利用Quartus软件成功仿真出了数字时钟的各个信号状态的波形,并且在得到仿真波形的同时给出了分析结果。 关键词:数字时钟,VHDL,Quartus,仿真波形Abstract Digital clock in daily life is very common, and the realization of digital clock design method has many kinds, such as can be achieved with a single chip, can also be achieved by drawing circuit control schematic. But the curriculum design using ead technology design, using Quartus II software to design a digital clock, and debug the circuit design and simulation, has realized the time, school, school, clear, keep and the whole point timekeeping and other basic functions, and download to experiment instrument testing and verification. In the curriculum design process, according to the design requirements and to achieve the purpose of, using Quartus II software simulation waveforms of the digital clock of each state of the signal lamp, and get waveform simulation and analysis result is given.Keywords:Digital clock, VHDL, Quartus II, simulation waveforms目录一绪 论1二数字时钟设计原理22.1 Quartus软件介绍22.2 数字时钟设计原理2三 设计要求和目的43.1 设计要求43.2 设计目的4四电路设计方案分析54.1 数字时钟总体设计状态图54.2 数字时钟总设计电路图64.3 方案论证分析64.4 子模块电路设计原理64.4.1 时、分、秒计数显示电路原理74.4.2 数码管扫描片选驱动模块144.4.3 整点报时驱动电路184.4.4 按键抖动消除电路模块20五. 综合仿真测试过程及结果235.1 全程综合与编译235.2 仿真测试235.3 仿真波形图24六. 总结27参考文献28一绪 论人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机/FPGA来实现电子钟等等。这些方法都各有其特点,其中利用EDA技术实现的电子钟具有编程灵活,并便于功能的扩展。EDA技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的指示,及缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。因此,本设计中采用了EDA技术,应用目前广泛应用的VHDL硬件描述语言,实现数字时钟的设计,利用Quartus集成开发环境进行综合、仿真、完成系统的控制作用。第 22 页 共 23页二数字时钟设计原理2.1 Quartus软件介绍本次设计主要用的是Quartus仿真软件,在该软件里创建工程,编写VHDL语言,编译成功后并仿真出波形的,下面主要介绍一下Quartus软件。Quartus II是Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。Quartus II软件支持原理图文件或VHDL语言文件的输入,在本次设计中主要是用的VHDL语言文件输入。 Quartus II可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其它EDA工具提供了方便的接口;可以在Quartus II集成环境中自动运行其它EDA工具。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II软件的开发流程可概括为以下几步:设计输入、设计编译、设计定时分析、设计仿真和器件编程下载。本次课程设计由于硬件设施原因只做到仿真波形这儿。2.2 数字时钟设计原理 主要原理是将第一全局时钟CLK1的跳线器接1Hz,第二全局时钟CLK2的跳线器接1024Hz,第三全局时钟CLK3的跳线器接32768Hz。拨位开关KD1为清0控制开关(高电平有效),KD2、KD3分别为小时调节,分钟调节允许端(低电平允许调节,高电平禁止调节/正常计时)。按键K2、K3分别为小时调节、分钟调节按键(仅当KD2、KD3为低电平允许调节时有效),只能加调节。数码管SM6-SM1分别显示小时,分钟,秒。当数字时钟计时至*h59min51s时,扬声器开始鸣叫报时。其中,51s、53s、55s、57s为低音,59s为高音。LED1-LED9在51s-59s时依次闪烁。在Quartus II软件中测试出仿真波形,并进行观测分析,最后再进行的结果分析。3 设计要求和目的3.1 设计要求本次设计一个数字时钟主要具有以下功能:1. 时,分,秒,计数显示功能,以24小时循环计时。2清零,调节小时、分钟功能。3. 整点报时功能,整点报时的同时LED灯花样显示。3.2 设计目的 完成一个数字时钟设计,按照课程设计的具体要求,综合运用在EDA中学到的逻辑知识,通过查阅各种资料和文献,能够设计出具体的方案去实现,在整个设计的过程中,要求培养自己的逻辑设计能力和采用EDA方法进行设计的思想;掌握CPLD/FPGA器件的开发应用,掌握Quartus软件的应用,会用该软件进行仿真测试和时序波形图的仿真。图3-1数字时钟示意图四电路设计方案分析4.1 数字时钟总体设计状态图根据总体设计要求,经过分析知道,数字时钟具有:时,分,秒,计数显示功能,以24小时循环计时;清零,调节小时、分钟功能,所以状态图如图4-2所示:图4-1 数字时钟工作状态图4.2 数字时钟总设计电路图图4-2 数字时钟总设计电路图4.3 方案论证分析根据总体上的设计思路画出状态图后,下边画具体的流程图就比较清晰了,根据状态图我们组按照这个大体上的思路和方案一步步的编写程序,程序编好后开始编译并调试错误,直到编译完全成功后才测试仿真波形,观察波形,经过认真分析,得到了我们最终要实现的数字时钟。4.4子模块电路设计原理 将各个程序进行顶层设计并进行封装后连接实验电路图,编译程序直至没有错误后便开始下边的仿真波形测试和结果分析。4.4.1时、分、秒计数显示电路原理 时、分、秒计数显示电路以24h转换计时,其中second模块为60进制BCD码技术电路,实现秒计时功能;minute模块为60进制BCD码技术电路,实现分计时电路;HOUR模块为24进制BCD码计数电路,实现小时计时功能。整个计数器具有清0、调分和调时的功能。(1)秒计时器模块:给一个秒脉信号,显示秒钟。封装图:图4-3秒计时器封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT(reset,clk,clk2,setmin:IN STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); enmin:OUT_STD_LOGIC);END second;ARCHITECTURE BEHAV OF second ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNTER:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CARRY_OUT1:STD_LOGIC:SIGNAL CARRY_OUT2:STD_LOGIC;BEGINP1:PROCESS(reset,clk)BEGINIF(reset=0)RHENCOUNT=0000;COUNTER=0000;ELSIF(clkEVENT AND clk=1)THENIF()COUNTER5)THENIF(COUNT=9)THENCOUNT=0000;COUNTER=COUNTER+1;ELSECOUNT=COUNT+1;END IF;CARRY_OUT1=0;ELSEIF(COUNT=9)THENCOUNT=0000;COUNTER=0000;CARRY_PUT=1;ELSECOUNT=COUNT+1;CARRY_OUT1=0;END IF;END IF;END IF;IF(clk2EVENT AND clk2=1)THENenmin=CARRY_OUT1 OR setmin;END IF;END PROCESS;daout(7 DOWNTO 4)=COUNTER;daout(3 DOWNTO 0)=COUNT;END BEHAV;(2)分计时器模块:给一个分脉冲信号,显示分钟。封装图:图4-4分计时器封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute ISPORT(reset,clk,clk2,setopur:IN STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); enhour:OUT_STD_LOGIC);END minute;ARCHITECTURE BEHAV OF minute ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNTER:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CARRY_OUT1:STD_LOGIC:SIGNAL CARRY_OUT2:STD_LOGIC;SIGNAL SETHOUR1:STD_LOGIC;BEGINP1:PROCESS(reset,clk)BEGINIF(reset=0)RHENCOUNT=0000;COUNTER=0000;ELSIF(clkEVENT AND clk=1)THENIF(COUNTER5)THENIF(COUNT=9)THENCOUNT=0000;COUNTER=COUNTER+1;ELSECOUNT=COUNT+1;END IF;CARRY_OUT1=0;ELSEIF(COUNT=9)THENCOUNT=0000;COUNTER=0000;CARRY_PUT=1;ELSECOUNT=COUNT+1;CARRY_OUT1=0;END IF;END IF;END IF;IF(clk2EVENT AND clk2=1)THENSETHOUR1=SETHOUR;END IF;END PROCESS;P2:PROCESS(clk)BEGINIF(clkEVENT AND clk=0)THENIF(COUNTER=0)THENIF(COUNT=0)THENCARRY_OUT2=0;END IF;ELSECARRY_OUT2=1;END IF;END IF;END PROCESS;daout(7 DOWNTO 4)=COUNTER;daout(3 DOWNTO 0)=COUNT;enhour=(CARRY_OUT1 AND CARRY_OUT2)OR SETHOUR1;END BEHAV(3)时计时器模块:给一个时脉冲信号,显示小时。封装图:图4-5时计时器封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOUR ISPORT(reset,clk:IN STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END HOURARCHITECTURE BEHAV OF HOUR ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNTER:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP1:PROCESS(reset,clk)BEGINIF(reset=0)RHENCOUNT=0000;COUNTER=0000;ELSIF(clkEVENT AND clk=1)THENIF(COUNTER2)THENIF(COUNT=9)THENCOUNT=0000;COUNTER=COUNTER+1;ELSECOUNT=COUNT+1;END IF;ELSEIF(COUNT=3)THENCOUNT=0000;COUNTER=0000;ELSECOUNT=COUNT+1;END IF;END IF;END IF;END PROCESS;daout(7 DOWNTO 4)=COUNTER;daout(3 DOWNTO 0)=COUNT;END BEHAV4.4.2数码管扫描片选驱动模块 数码管扫描片选驱动模块有8位7段共阴极扫描数码管的片选驱动信号输出和7段码输出。SELTINE模块产生8为数码管的扫描驱动信号sel2.0和时钟显示数据(动态显示)daout3.0。EDLED模块则为数码显示时钟数据的7段译码电路。(1)数码管扫描片选驱动模块封装图:图4-6数码管扫描片选模块VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SELTIME ISPORT(ckdsp:IN STD_LOGIC; reset:IN STD_LOGIC; second:IN STD_LOGIC_VECTOR(7 DOWNTO 0); mintue:IN STD_LOGIC_VECTOR(7 DOWNTO 0); hour:IN STD_LOGIC_VECTOR(7 DOWNTO 0); daout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END SELTIME;ARCHITECTURE BEHAV OF SELTIME ISSIGNAL SEC:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(reset,ckdsp)BEGINIF(reset=0)RHENsec=0000;COUNTER=0000;ELSIF(ckdspEVENT AND ckdsp=1)THENIF(sec=101)THEN sec=0000;ELSEsecdaoutdaoutdaoutdaoutdaoutdaoutdaout=XXXX;END CASE;END PROCESS;sel=SEC;END BEHAV;(2)7段译码电路模块:给一个时间脉冲信号,在屏幕上显示时间。封装图:图4-7 7段译码模块封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DELED ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B,C,D,E,F,G,H:OUT STD_LOGIC);END DELED;ARCHITECTURE BEHAV OF DELED ISSIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEIGNDATADOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT=00000000;END CASE;END PROCESS;H=DOUT(7);G=DOUT(6);F=DOUT(5);E=DOUT(4);D=DOUT(3);C=DOUT(2);B=DOUT(1);A=DOUT(0);END BEHAV;4.4.3 整点报时驱动电路 扬声器在整点报时有报时驱动信号产生,以及LED灯根据设计的要求在正在时有花样显示信号产生。ALERT模块则产生整点报时的驱动信号speak和LED灯花样显示信号lamp8.0。在分位计数器到59min时,秒位为51s、53s、55s、57s、59s时扬声器会发出1s左右的警告音,并且在51s、53s、55s、57s为低音,59s为高音。封装图:图4-8 整点报时驱动模块封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALERT ISPORT(ckdsp:IN STD_LOGIC; reset:IN STD_LOGIC; second:IN STD_LOGIC_VECTOR(7 DOWNTO 0); mintue:IN STD_LOGIC_VECTOR(7 DOWNTO 0); speak:OUT STD_LOGIC; lamp:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);END ALERT;ARCHITECTURE BEHAV OF ALERT ISSIGNAL DIVCLKSPK2:STD_LOGIC;BEGINP1:PROCESS(CLKSPK)BEGINIF (clkspkEVENT AND clksok=1)THEN DIVCLKSPK2LAMP=000000001;SPEAKLAMP=000000010;SPEAKLAMP=000000100;SPEAKLAMP=000001000;SPEAKLAMP=000010000;SPEAKLAMP=000100000;SPEAKLAMP=001000000;SPEAKLAMP=010000000;SPEAKLAMP=100000000;SPEAKLAMP=000000000;SPEAK=0;END CASE;END IF;END PROCESS;END BEHAV;4.4.4 按键抖动消除电路模块 在second模块与minute模块之前加入了按键抖动消除模块debounce。抖动消除模块实际是一个倒数计数器,主要的目的是为了避免按键是键盘产生的按键抖动效应使按键输入信号(在程序中用key_pressed),只需要将按键输入信号作为计数器的充值输入,使计数器只有在使用者按下按键时,且在输入信号等于0时间足够长的一次重置动作,而计数器开始倒数计数,自然可将输入信号在短时间内变为0的情况滤出掉。封装图:图4-9 按键抖动消除模块封装图VHDL程序:LIBBARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY debounce ISPORT(key_pressed:IN STD_LOGIC; clk:IN STD_LOGIC; key_valid:OUT STD_LOGIC);END debounce;ARCHITECTURE BEHAV OF debounce ISBEGINPROCESS(CLK)VARIABLE DBNQ:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINIF(key_pressed=1)THENDBNQ:=111111;ELSIF(clkEVENT AND clk=1)THENIF(DBNQ/=1)THENDBNQ:=DBNQ-1;IF(DBNQ=2)THENkey_valid=1;ELSEkey_valid=0;END IF;END PROCESS;END BEHAVE;五.综合仿真测试过程及结果5.1 全程综合与编译在创建好工程后,将设计好的程序代码输入,之后进行全程的综合与编译,在编译的过程中要注意工程管理窗口下的Processing栏中的编译信息。如果工程中的文件有错误,下方的Processing栏中就会显示出语句格式错误,双击此错误显示处,即弹出对应的VHDL文件,在深色标记条附近即有文件错误所在,改错后再次进行编译直至排除所有错误。如果发现报出多条错误信息,每次只需要检查和纠正最上面报出的错误即可。5.2 仿真测试工程编译通过后,必须对其功能和时序性质进行仿真测试,以验证结果是否满足原设计要求。在这里仿真测试就用的是Quartus中自带的门级波形仿真器。以下是波形的仿真过程及步骤:(1) 打开波形编辑器。选择新建文件中的波形图文件选项,点击确认按钮,即出现空白的波形编辑器;(2) 设置仿真时间区域,将仿真时间轴设置在一个合理的时间区域上,一般设置整个仿真域的时间为55微秒,单击OK按钮。(3) 波形文件存盘。将波形文件保存到刚开始建立的同一个工程文件夹中。(4) 将所建工程的端口信号节点选入波形编辑器中。方法是首先选择ViewUtility WindowsNode Finder命令,然后在弹出的对话框中单击List按钮,于是在下方的窗口中便出现设计中的工程的所有端口名,最后将重要的节点分别拖到波形编辑窗口中。(5) 设置激励信号波形,单击波形窗口中的时钟信号名CLK,使之变成蓝色条,单击左列的时钟设置键,在此可以改变你所设置的信号的时钟周期,对其他信号也可以这样改变其周期。(6) 将设置好的仿真激励波形图文件再次存盘。最后,启动波形仿真按钮,仿真成功后观察时序波形图如下所示:5.3 仿真波形图(1)整点报时驱动电路仿真波形图:由波形图可知,报警设备speak在51s、53s、55s、57s、59s时产生报警信号,并且LED1-LED9在51s-59s时依次闪烁。 图5-1 整点报时驱动电路仿真波形图(2)秒计时器电路仿真波形图:给一个秒钟脉冲信号,并且reset为高电平时,second开始计时显示,在59秒时产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东德州财金投资控股集团有限公司招聘笔试参考题库含答案解析
- 2025年浙江省宁波市旅游投资发展有限公司招聘笔试参考题库含答案解析
- 加强房屋安全相关政策的宣传和协调工作机制
- 公共卫生执业医师考试总结经验试题及答案交流
- 教师在课堂管理中的关键作用试题及答案中小学资格笔试
- 医学知识考试考察形式的细致分析与复习建议试题及答案
- 突破系统架构设计师考试难关试题及答案
- 华医网检验试题及答案
- 2024年纺织品设计师采购管理试题及答案
- 湖南省邵阳市洞口一中、隆回一中、武冈二中重点中学2025届高三下学期入学测试(四)物理试题试卷
- 《认识三角形》第2课时示范公开课教学课件【七年级数学下册北师大】
- YY/T 1610-2018麻醉和呼吸设备医用氧气湿化器
- GB/T 6170-20001型六角螺母
- GB/T 32788.6-2016预浸料性能试验方法第6部分:单位面积质量的测定
- 地球概论第四章
- 食品防护、食品欺诈、过敏原管理培训测试题附答案
- 长输管道施工技术(完整版)
- (人工智能导论)课件
- 游艇理论训练考试题库600题(单选、判断题)
- 竞争性谈判二次报价单
- 不同时滞可燃物含水率预测模型精度的研究
评论
0/150
提交评论