基于QuartusII 的多功能数字钟设计
- 格式:docx
- 大小:568.08 KB
- 文档页数:24
数字逻辑电路设计-多功能数字钟多功能数字钟摘要:实验作品名为多功能数字钟,具有校时、清零、保持、整点报时、闹钟五大功能。
整个实验以QuartusII 7.0为软件设计基础,结合Altera公司研发的Cyclone系列可编程逻辑器件工具箱进行实际测试。
整个数字钟的开发完全遵照自顶向下的设计方法,这个设计因为该方法可移植性强、逻辑符合一般规律、可多人共做等优点而得以为设计人员省去大量时间和精力。
本作品在防抖动电路和蜂鸣器鸣响时长控制上拥有一定的自主创新性和理论证明,同时由于整个设计过程当中适当地对每个器件进行了有机的封装,所以电路图的逻辑关系较为清晰。
现在数字钟因其在日常生活生产中的作用而成为可盈利的商品,在金钱的驱动下数字钟的设计方法及本实验作品相比功能和效率上都有非常大的提升,故本实验的目的在于让设计者充分了解数字逻辑电路设计的流程和具体软件的使用方法。
关键词:数字钟,可编程逻辑器件,防抖动电路,学习型设计The design of Multifunctional digital clock Abstract: This experimental product is called Multifunctional digital clock. It has five majorfunctions such as time setting, resetting, holding,alarming, and beeping when it comes to an additionto the hour. The whole experiment is based on the software of design called Quartus II 7.0 and is tested by combining the Cyclone series of programmable logical device provided by Altera. The clock is designed under the process of ‘from the top to the end’. The method spares designers lots of time and energy for its flexibility to be transplanted, easiness for ordinary logic reasoning and availability for cooperative designing. The product is self-creative and provable in terms of turbulence muting and manipulation of the period of beeping. At the same time, the diagrams of the circuits are apparently logical thanks to well-organized sealing of each part of device during the design. In this era of common concept of inexpensiveness of digital clocks, methods and effectiveness of designing a clock are improved due to its profitability. Hence, this experimental designis aimed at letting the participants to understand the process of digital logic circuits designing and to get to familiar with the usage of particular software.Keyword: Digital Clock, programmable logic device, mute circuit, design for learning目录一.设计要求及说明 (4)二.方案论证……………………………………………………………… (4)1.设计整体思路2.设计大体流程三.各子模块设计原理及调试仿真 (5)1.时钟发生器 (5)2.计时电路 (7)3.显示电路 (9)4.校分电路和清零电路 (12)5.报时电路 (13)6.储时电路 (15)7.选择电路 (16)8.闹钟比较电路 (16)9.其他 (1)7四.编程下载1.整体电路图 (18)2.管脚配置 (19)3.编译调试 (19)五.实验感想一.设计要求及说明1、能进行正常的时、分、秒计时功能2、分别由六个数码管显示时分秒的计时3、使能开关4、清零开关5、校分开关6、校时开关7、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1KHz, )8、闹表设定功能9、自己添加其他功能二.方案论证1.设计整体思路图1数字钟的功能设计思路大致如图1时钟发生电路:位计时电路提供频率为1HZ的稳定脉冲,该电路是整个时钟是否精准的关键计时电路:由时钟发生器驱动,存储并演绎时间的流逝储时电路(闹钟):储存一个固定的时间选择电路:由输入端控制调校或显示储时电路和计时电路中的一个显示电路:将两个时间电路的输出信号调制成可输出的信号报时电路:根据时间信号以一定的模式输出符合要求的蜂鸣器驱动信号校分电路:使时间电路脱离时钟驱动并以累加的方式分别调校时及分清零电路:使时钟电路的所有信号归零2设计大体流程1)设计时钟发生电路及计时电路2)连接两个模块并调试电路,分别用LED灯检测时分秒的运行状况3)设计显示电路并单独调试4)连接时钟电路和显示电路并调试,整体调试时钟电路5)设计校分电路和清零电路并连接调试6)设计报时电路并单独调试7)连接报时及时钟电路,利用已调校好的调分清零电路调校报时电路的功能8)设计储时电路(在计时电路上适当修改)9)设计选择电路将计时电路和储时电路连接,调校选择电路以保证时间及调校显示的接口功能正常10)整体调试并增加诸如防抖动等优化电路三.各子模块的设计原理及调试1.时钟发生器图2时钟发生器设计思路大致如图21)十六分频电路由四个T触发器异步连接而成2)图3实时(timing)仿真如图4图4有仿真图波形可初步断定用4*T触发器一步连接对高频信号进行16分频是不会产生明显延迟和错位现象3)一千分频电路由三个十进制加法计数器连接而成,连接方式是:低位计数器的QD端及高位计数器的CLK端相连图5为方便今后对十分频器的使用在此对其进行了封装,仿真波形图如下图6输入波周期为10ns,由图6所示仿真图中的时间条可看出,在Timing模式下1000分频电路对高频信号几乎无延迟及错位,同时可看出该分频器的占空比为1:10。
EDA(二)多功能时钟学号:姓名:2011年11月摘要:利用QuartusII软件设计一个数字钟,并下载到SmartSOPC实验系统中,可以完成00:00:00到23:59:59的动态显示计时功能以及清零、保持、快速校分、整点报时.关键词:QuartusII 保持校分清零整点报时Abstract:Using Quartus II to design a Multifunctional digital clock and download to Smart SOPC experimental system. To achieve the function of 00:00:00to23:59:59 dynamic display time , holding, reset, speedily checking hours and minutes, Whole-hour clocking and so on.Keyword:Quartus II ,holding, speedily checking minutes, reset.目录:设计要求 (4)方案论证 (4)子模块设计原理 (5)电路接口与开关控制说明 (18)调试仿真及下载 (19)实验中遇到的问题及解决办法 (19)实验收获与感受 (19)参考文献 (20)一、设计要求基本要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);5、K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);6、K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时)。
提高要求1、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55时报时频率为500Hz,59’59”时报时频率为1KHz);2、秒表功能。
《电子技术基础实验报告》实验名称:多功能数字钟设计1、实验名称:多功能数字钟设计2、实验设计要求以及内容:利用Quartus II软件、FPGA器件和EDA技术实现多功能数字钟的设计。
功能包括以数字形式显示时、分、秒的时间、小时计时器为同步24小时制、可以手动校准时和分等。
3、实验仪器、软件:Quartus II软件、FPGA开发板。
4、实验具体设计:创建工程项目文件、设计电路相关结构、对各模块进行编码、设置仿真分析类型、生成网表、仿真分析、查看仿真输出结果。
实验设计框图如下所示。
以下是对应的各个模块的代码:具体设计思路:当秒的个位计数到9时,下一次CP脉冲信号到达时,秒的个位清零,十位进一。
当秒的个位计数到9且十位计数到5时,下一次CP脉冲信号到达时,秒的个位和十位清零,分的个位进一。
分和时的各个位置数字变化以此类类推。
当小时的十位计数到2、,个位计数到3,分和秒的个位计数到9且十位计数到5时,计时器的时分秒的个位和十位全部清零。
顶层汇总设计://***************** wangdehao.v ********************module wangdehao(input CP,nCR,EN,Adj_Min,Adj_Hour,output [7:0]Hour,Minute,Second,output a,b,c,d,e,f,g);supply1 Vdd;wire Secd_EN,MinL_EN,MinH_EN,Hour_EN;reg clk_50m,clk_1hz;Div50MHz Div(clk_50m,clk_1hz);counter10 U1(Second[3:0],nCR,EN,CP);assign Sech_EN=(Second[3:0]==4'h9);counter6 U2(Second[7:4],nCR, Secd_EN,CP);assign MinL_EN=Adj_Min? Vdd :(Second==8'h59);assign MinH_EN=(Adj_Min&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8'h59);counter10 U3(Minute[3:0],nCR,MinL_EN,CP);counter6 U4(Minute[7:4],nCR,MinH__EN,CP);assign Hour_EN=Adj_Hour ? Vdd : ((Minute==8'h59)&&(Second==8'h59));counter24 U5(CP,nCR,Hour_EN,Hour[7:4],Hour[3:0]);seg7_decoder Seg1(Minute[7:4],a,b,c,d,e,f,g);seg7_decoder Seg2(Minute[3:0],a,b,c,d,e,f,g);seg7_decoder Seg3(Second[7:4],a,b,c,d,e,f,g);seg7_decoder Seg4(Second[3:0],a,b,c,d,e,f,g);endmodule6位计数器://***************** counter6.v (BCD: 0~5)******************module counter6(Q, nCR, EN, CP);input CP, nCR, EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)beginif(~nCR) Q <= 4'b0000; // nCR=0,计数器被异步清零 else if(~EN) Q <= Q; //EN=0,暂停计数else if(Q == 4'b0101) Q <= 4'b0000;else Q <= Q + 1'b1; //计数器增1计数endendmodule10位计数器://**************** counter10.v ( BCD: 0~9 ) **************module counter10(Q, nCR, EN, CP);input CP, nCR, EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)beginif(~nCR) Q <= 4'b0000; // nCR=0,计数器被异步清零 else if(~EN) Q <= Q; //EN=0,暂停计数else if(Q == 4'b1001) Q <= 4'b0000;else Q <= Q + 1'b1; //计数器增1计数endendmodule24位计数器://**************** counter24.v ( BCD: 0~23 ) **************module counter24(input CP,nCR,EN,output reg[3:0] CntH,CntL);always @(posedge CP,negedge nCR)beginif(~nCR) {CntH,CntL}<=8'h00;else if(~EN) {CntH,CntL}<= {CntH,CntL};else if ((CntH>2)||(CntL>9)||((CntH==2)&&(CntL>=3))) {CntH,CntL}<=8'h00;else if ((CntH==2)&&(CntL<3)) begin CntH<=CntH; CntL<=CntL+1'b1;endelse if (CntL==9) begin CntH<=CntH+1'b1; CntL<=4'b0000;endelsebegin CntH<=CntL; CntL<=CntL+1'b1;endendendmodule分频模块:module Div50MHz(clk_50m,clk_1hz);input clk_50m;output clk_1hz;reg [24:0] Cnt;reg clk_1hz;always@(posedge clk_50m)beginif(Cnt>25'd2*******)begin Cnt=0; clk_1hz=~clk_1hz; endelseCnt=Cnt+1;endendmodule七段显示译码器模块:module seg7_decoder(D,a,b,c,d,e,f,g);input [3:0]D;output reg a,b,c,d,e,f,g;always@(D)begincase({D3,D2,D1,D0})//yi_ma4'd0: {a,b,c,d,e,f,g}=7'b111_1110;//04'd1: {a,b,c,d,e,f,g}=7'b011_0000;//14'd2: {a,b,c,d,e,f,g}=7'b110_1101;//24'd3: {a,b,c,d,e,f,g}=7'b111_1001;//34'd4: {a,b,c,d,e,f,g}=7'b011_0011;//44'd5: {a,b,c,d,e,f,g}=7'b101_1011;//54'd6: {a,b,c,d,e,f,g}=7'b001_1111;//64'd7: {a,b,c,d,e,f,g}=7'b111_0000;//74'd8: {a,b,c,d,e,f,g}=7'b111_1111;//84'd9: {a,b,c,d,e,f,g}=7'b111_1011;//9default:{a,b,c,d,e,f,g}=7'b000_0000;//light_offendcaseendendmodule5、输出仿真波形以及相关数据:下列波形中Hour、Minute、Second分别对应数字钟的时分秒。
EDA设计实验报告实验名称:多功能数字钟设计姓名:王渝学号:050405227院系:紫金学院电光系班级:电气工程及其自动化(2)班指导教师:蒋立平花汉兵时间:08.06.12-08.06.13目录01.EDA设计技术-----------------------------------302.设计要求--------------------------------------303.方案论证--------------------------------------304.秒钟模块设计-------------------------------------305.分钟模块设计-------------------------------------406.时钟模块设计-------------------------------------607.数字钟电路图-------------------------------------708.参考文献-----------------------------------------909.实验感想-----------------------------------------901.EDA设计技术:Altera QuartusⅡ设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。
它是可编程片上系统(SOPC)设计的综合性环境。
QuartusⅡ软件拥有FPGA和CPLD设计的所有阶段的解决方案02.设计要求:1.设计一个具有校时、校分、清零、保持和整点报时功能的数字钟。
2.数字钟的具体设计要求具体如下功能:(1)数字钟最大计时显示44小时79分35秒;(2)在数字钟正常工作使可以对数字钟进行快速校时和校分;(3)在数字钟正常工作情况下,可以对其进行不断电复位;(4)保持功能是要求在数字钟正常工作情况下,拨动开关可以使数字钟保持原有显示,停止计时;(5)整点报时是要求数字钟在每小时整点到来前进行鸣叫。
EDA课程设计报告书 课题名称 多功能数字钟的设计
姓 名 王兴俊
学 号 081220138
院 系 物理与电信工程系
专 业 电子信息工程
※※※※※※※※※ ※※ ※※ ※※
2008级学生
EDA课程设计 .
;. 指导教师 周来秀讲师
2011年 6月13日
一、 设计任务及要求: 设计任务:利用Quartus II软件设计一个多功能数字钟 设计要求:所设计数字钟是基于现实基础上的多功能数字钟,基本上能实现一般 多功能数字钟的功能,包括翻页显示时间和日期,调整时间及日期等等,利用Quartus II强大的编程功能以及完整的仿真系统进行仿真设计,通过仿真设计校正达到设计要求
指导教师签名: 年 月 日
二、指导教师评语:
指导教师签名: 年 月 日 .
;. 多功能数字钟的设计 王兴俊 (湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300) 1设计目的
EDA是电子设计自动化的缩写,在20世纪如年代初从计算机辅助设计、计
算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来的。传统意义上或者狭义上的EDA技术是指可编程技术,是以计算机为工具,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子EDA通用软件包,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。利用EDA技术进行电子系统的设计,具有以下几个特征:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋。利用EDA设计电子产品已经是势在必得了。
三、成绩 验收盖章 年 月 日 .
基于VHDL的多功效数字钟设计陈述021215班卫时章02121451一.设计请求1.具有以二十四小时制计时.显示.整点报时.时光设置和闹钟的功效.2.设计精度请求为1秒.二.设计情况:Quartus II三.体系功效描写1.体系输入:时钟旌旗灯号clk采取50MHz;体系状况及较时.准时转换的控制旌旗灯号为k.set,校时复位旌旗灯号为reset,均由按键旌旗灯号产生.2.体系输出:LED显示输出;蜂鸣器声音旌旗灯号输出.3.多功效数字电子钟体系功效的具体描写如下:(一)计时:正常工作状况下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时.(二)校时:在计时显示状况下,按下“k”键,进入“小时”待校准状况,若此时按下“set”键,小时开端校准;之后按下“k”键则进入“分”待校准状况;中断按下“k”键则进入“秒”待复零状况;再次按下“k”键数码管显示闹钟时光,并进入闹钟“小时”待校准状况;再次按下“k”键则进入闹钟“分”待校准状况;若再按下“k”键恢复到正常计时显示状况.若校时进程中按下“reset”键,则体系恢复到正常计数状况.(1)“小时”校准状况:在“小时”校准状况下,显示“小时”的数码管以2Hz闪耀,并按下“set”键时以2Hz的频率递增计数.(2)“分”校准状况:在“分”校准状况下,显示“分”的数码管以2Hz闪耀,并按下“set”键时以2Hz的频率递增计数.(3)“秒”校准状况:在“秒复零”状况下,显示“秒”的数码管以2Hz闪耀,并以1Hz的频率递增计数.(4)闹钟“小时”校准状况:在闹钟“小时”校准状况下,显示“小时”的数码管以2Hz闪耀,并按下“set”键时以2Hz的频率递增计数.(5)闹钟“分”校准状况:在闹钟“分”校准状况下,显示“分”的数码管以2Hz闪耀,并按下“set”键时以2Hz的频率递增计数.(三)整点报时:蜂鸣器在“59”分钟的第“51”.“53”.“55”.“57”秒发频率为500Hz的低音,在“59”分钟的第“59”秒发频率为1000Hz的高音,停止时为整点.(四)显示:采取扫描显示方法驱动4个LED数码管显示小时.分,秒由两组led灯以4位BCD 码显示.(五)闹钟:闹钟准不时光到,蜂鸣器发出频率为1000Hz的高音,中断时光为60秒.四.各个模块剖析解释1.分频器模块(freq.vhd)(1)模块解释:输入一个频率为50MHz的CLK,应用计数器分出1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz.(2)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity freq isport (CLK: in std_logic ; --输入时钟旌旗灯号q1KHz: buffer std_logic;q500Hz: buffer std_logic;q2Hz: buffer std_logic;q1Hz: out std_logic);end freq;architecture bhv of freq isbeginP1KHZ:process(CLK)variable cout:integer:=0;beginif CLK'event and CLK='1' thencout:=cout+1; --每来个时钟上升沿时cout开端计数if cout<=25000 then q1KHz<='0'; --当cout<=25000时,q1KHz输出“0”elsif cout<50000 then q1KHz<='1'; --当25000<cout<=50000时,q1KHzelse cout:=0; --输出“1”,完成1KHz 频率输出end if;end if;end process;P500HZ:process(q1KHz) --q1KHz作为输入旌旗灯号,分出q500Hzvariable cout:integer:=0;beginif q1KHz'event and q1KHz='1' thencout:=cout+1;if cout=1 then q500Hz<='0'; --二分频elsif cout=2 then cout:=0;q500Hz<='1';end if;end if;end process;P2HZ:process(q500Hz)variable cout:integer:=0;beginif q500Hz'event and q500Hz='1' then cout:=cout+1;if cout<=125 then q2Hz<='0';elsif cout<250 then q2Hz<='1';else cout:=0;end if;end if;end process;P1HZ:process(q2Hz)variable cout:integer:=0;beginif q2Hz'event and q2Hz='1' thencout:=cout+1;if cout=1 then q1Hz<='0';elsif cout=2 then cout:=0;q1Hz<='1'; end if;end if;end process;end bhv;(3)模块图:2.控制器模块(contral.vhd)(1)模块解释:输入端口k,set键来控制6个状况,这六个状况分离是:显示计不时光状况,调计时的时.分.秒的3个状况,调闹铃的时.分的3个状况,reset键是复位键,用往返到显示计不时光的状况.(2)波形仿真图:(3)模块图:3、二选一模块(mux21a.vhd)(1)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux21a isport(a,b,s:in bit;y:out bit);end entity mux21a;architecture one of mux21a isbeginprocess(a,b,s)beginif s='0' theny<=a; --若s=0,y输出a,反之输出b. else y<=b;end if;end process;end architecture one;(2)仿真波形图:(3)模块图:4、计时模块a.秒计时(second.vhd)(1)仿真波形图:(2)模块图:b.分计时(minute.vhd)(1)仿真波形图:(2)模块图:c.小时计时(hour.vhd)(1)仿真波形图:(2)模块图:d.闹钟分计时(cntm60b.vhd)(1)仿真波形图:(2)模块图:e.闹钟小时计时(cnth24b.vhd)(1)仿真波形图:(2)模块图:5.闹钟比较模块(compare.vhd)(1)模块解释:比较正常计数时光与闹钟准不时光是否相等,若相等,compout输出“1”,反之输出“0”.(2)仿真波形图:(3)模块图:6.报时模块(bell.vhd)(1)模块解释:该模块既实现了整点报时的功效,又实现了闹铃的功效,蜂鸣器经由过程所选频率的不合,而发出不合的声音.(2)仿真波形图:(3)模块图:7.控制显示模块(show_con.vhd)(1)模块解释:该模块实现了数码管既可以显示正常时光,又可以显示闹钟时光的功效;调时进程的准时闪耀功效也在此模块中真正实现.(2)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity show_con isport(th1,tm1,ts1:in std_logic_vector(7 downto 4);th0,tm0,ts0:in std_logic_vector(3 downto 0);bh1,bm1:in std_logic_vector(7 downto 4);bh0,bm0:in std_logic_vector(3 downto 0);sec1,min1,h1: out std_logic_vector(7 downto 4);sec0,min0,h0: out std_logic_vector(3 downto 0);q2Hz,flashs,flashh,flashm,sel_show:in std_logic); end show_con;architecture rtl of show_con isbeginprocess(th1,tm1,ts1,th0,tm0,ts0,bh1,bm1,bh0,bm0,q2Hz,flas hs,flashh,flashm,sel_show)beginif sel_show='0'thenif ( flashh='1'and q2Hz='1')thenh1<="1111";h0<="1111"; --显示小时数码管以2Hz闪耀min1<=tm1;min0<=tm0;sec1<=ts1;sec0<=ts0;elsif (flashm='1'and q2Hz='1')thenh1<=th1;h0<=th0;min1<="1111";min0<="1111";sec1<=ts1;sec0<=ts0;elsif (flashs='1'and q2Hz='1')thenh1<=th1;h0<=th0;min1<=tm1;min0<=tm0;sec1<="1111";sec0<="1111";elseh1<=th1;h0<=th0;min1<=tm1;min0<=tm0;sec1<=ts1;sec0<=ts0;end if;elsif sel_show='1'then--若sel_show为“1”,数码管显示闹钟时光if(flashh='1' and q2Hz='1')thenh1<="1111";h0<="1111";min1<=bm1;min0<=bm0;sec1<="0000";sec0<="0000";elsif ( flashm='1' and q2Hz='1')thenh1<=bh1;h0<=bh0;min1<="1111";min0<="1111";sec1<="0000";sec0<="0000";elseh1<=bh1;h0<=bh0;min1<=bm1;min0<=bm0;sec1<="0000";sec0<="0000";end if ;end if;end process;end rtl;(3)模块图:8.动态扫描显示模块(scan_led.vhd)(1)模块解释:由4组输入旌旗灯号和输出旌旗灯号进而实现了时钟时.分的动态显示.(2)源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity scan_led isport(clk1:in std_logic;h0:in std_logic_vector(3 downto 0);h1:in std_logic_vector(7 downto 4);min0:in std_logic_vector(3 downto 0);min1:in std_logic_vector(7 downto 4);ML:out std_logic_vector(7 downto 0);MH:out std_logic_vector(7 downto 0);HL:out std_logic_vector(7 downto 0);HH:out std_logic_vector(7 downto 0));end scan_led;architecture one of scan_led issignal cnt4:std_logic_vector(1 downto 0);signal a: std_logic_vector(3 downto 0) ;beginp1:process(clk1)beginif clk1'event and clk1 ='1' thencnt4<=cnt4+1;if cnt4=3 thencnt4<="00";end if;end if;end process p1;p2:process(cnt4,h1,h0,min1,min0)begincase cnt4 is --控制数码管位选when "00"=>case min0 iswhen "0000"=>ML<="11000000";when "0001"=>ML<="11111001";when "0010"=>ML<="10100100";when "0011"=>ML<="10110000";when "0100"=>ML<="10011001";when "0101"=>ML<="10010010";when "0110"=>ML<="10000010";when "0111"=>ML<="11111000";when "1000"=>ML<="10000000";when "1001"=>ML<="10010000";when others=>NULL;end case;when "01"=>case min1 iswhen "0000"=>MH<="11000000"; when "0001"=>MH<="11111001";when "0010"=>MH<="10100100";when "0011"=>MH<="10110000";when "0100"=>MH<="10011001";when "0101"=>MH<="10010010";when "0110"=>MH<="10000010";when "0111"=>MH<="11111000";when "1000"=>MH<="10000000";when "1001"=>MH<="10010000";when others=>NULL;end case;when "10"=>case h0 iswhen "0000"=>HL<="11000000"; when "0001"=>HL<="11111001";when "0010"=>HL<="10100100";when "0011"=>HL<="10110000";when "0100"=>HL<="10011001";when "0101"=>HL<="10010010";when "0110"=>HL<="10000010";when "0111"=>HL<="11111000";when "1000"=>HL<="10000000";when "1001"=>HL<="10010000";when others=>NULL;end case;when "11"=>case h1 iswhen "0000"=>HH<="11000000"; when "0001"=>HH<="11111001";when "0010"=>HH<="10100100";when "0011"=>HH<="10110000";when "0100"=>HH<="10011001";when "0101"=>HH<="10010010";when "0110"=>HH<="10000010";when "0111"=>HH<="11111000";when "1000"=>HH<="10000000";when "1001"=>HH<="10010000";when others=>NULL;end case;when others =>null;end case;end process p2;end one;(3)模块图:五、端口设定k:button2 ,set:button1 ,reset:button0 ;Bell:SW1 用于开关蜂鸣器;六.顶层电路图七、心得领会此次的数字钟设计重在于按键的控制和各个模块代码的编写,固然能把键盘接口和各个模块的代码编写出来,并能正常显示,但对于各个模块的优化设计还有必定的缺点和缺少,比方对按键消抖等细节处并未作出优化.经由此次数字钟的设计,我确切从中学到许多的器械.起首,经由过程VHDL硬件说话的进修,我充分熟悉到了功效模块若何用说话实现,让我初步懂得到了一个数字电路用硬件说话设计的方法和设计思惟.其次,也让我深深地领会到实践的主要性,起先我学VHDL说话的时刻,只是学得书本上的常识,经由此次课程设计,经由过程对模块的说话实现,对于VHDL说话我有了更深的熟悉.并且在程序错误的发明和纠正的进程中,我得到了更多的收成,也确切让我提高了许多.再次,当我碰到一些问题的时刻,就教先生,和同窗们一路评论辩论,令我受益颇多!最后,这个多功效数字电子钟是自我创造与汲取借鉴配合感化的产品,是自我尽力的成果.这让我对数字电路的设计充满了信念.固然课程设计已经停止,但这其实不代表着我已经真正控制了VHDL说话,仍需中断进修!。
题目:多功能数字钟一、设计任务及要求基于EDA/SOPC系统开发平台和八位七段管码显示模块,运用QuartusⅡ可编程逻辑器件开发软件,设计一个多功能数字钟。
二、设计原理多功能数字钟应该具有的功能:显示时-分-秒。
整个电子钟的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围是从0~23时。
复位后全部显示00-00-00。
在设计中为了显示的方便,分钟和秒钟(显示的范围都是从00~59),小时(00~23)的十位和个位都应该采用十进制计数器。
八位七段管码显示模块说明:设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000H Z 。
为了得到1000Hz信号,必须对输入的时钟信号50MH Z进行分频。
显示模块共用10个管脚,其中7个用于连接8个数码管的七段LED,还有3个管脚用于选择点亮哪个数码管,每隔很短的一段时间8个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。
三、设计原理及方案1.电子钟计时电路模块:module shijian(clk1,rst,hour,min,sec);input clk1,rst;output reg [7:0] hour,min,sec;always@(negedge clk1)beginif(!rst)beginhour=0;sec=0;min=0;endelsebeginif(sec<60) sec=sec+1;if(sec>60) sec=0;if(sec==60)beginsec=0;if(min<60)min=min+1;if(min>60) min=0;if(min==59)beginmin=0;if(hour<24)hour=hour+1;elsehour=0;endendendendendmodule2.分频器模块:module fenpin1k(cp,clk1000); input cp;output clk1000;reg[32:0]cnt;reg clk1000;always@(posedge cp)beginif(cnt==49999)beginclk1000=1;cnt=0;endelsebeginclk1000=0;cnt=cnt+1;endendendmodule3.模8计数器模块:module mo8xuanze(clk,out,sel2,sel1,sel0);input clk;output reg[2:0] out;output reg sel2,sel1,sel0;always @(posedge clk)beginif(out<3'b111)out=out+1;elseout=3'b000;sel2=out/4;sel1=out/2%2;sel0=out%2;endendmodule4.显示译码选择模块:module ledyima(ctrl,hour,min,sec,A,B,C,D,E,F,G); input[2:0] ctrl;input[7:0] hour,min,sec;output reg A,B,C,D,E,F,G;reg[6:0] out;reg[3:0] data;alwaysbegincase(ctrl)3'b000:data=hour/10;3'b001:data=hour%10;3'b011:data=min/10;3'b100:data=min%10;3'b110:data=sec/10;3'b111:data=sec%10;default:data=10;endcasecase(data)0:out=7'b1111110;1:out=7'b0110000;2:out=7'b1101101;3:out=7'b1111001;4:out=7'b0110011;5:out=7'b1011011;6:out=7'b0011111;7:out=7'b1110000;8:out=7'b1111111;9:out=7'b1110011;default:out=7'b0000001;endcaseA=out/64%2;B=out/32%2;C=out/16%2;D=out/8%2;E=out/4%2;F=out/2%2;G=out%2;endendmodule5.总体电路图:四、仿真、测试结果(一)仿真:1)电子钟计时电路模块的仿真结果:2)模8计数器的仿真结果:3)分频器仿真结果:(二)测试:每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围是从0~23时,显示均为十进制动态显示。
多功能数字钟摘要本实验是利用QuartusII软件设计一个数字钟,进行实验设计和仿真调试,以实现计时,校时,校分,清零,保持和整点报时等多种基本功能,并下载到SmartSOPC实验系统中进行调试和验证。
此外还添加了一个固定闹钟(早上七点半,响八秒)和秒表等附加功能,使得设计的数字钟的功能更加完善。
关键字:QuartusII 数字钟功能仿真AbstractThis experiment is to design a digital clock which is based on Quartus software and in which many basic functions like time-counting,hour-correcting,minute-correcting,reset,time-hol ding and belling on the hour. And then validated the design on the experimental board.In addition,additional functions likedisplaying and reseting the week,setting alarm ,stopwatch,and belling with music make this digital clock a perfect one.Keywords: QuartusII digital-clock functionsimulate目录1.设计要求 (3)2.工作原理 (4)3.各模块说明 (5)1)分频部分 (5)2)计时部分 (8)3)动态显示部分 (10)4)校分与校时部分 (11)5)清零部分 (12)6)保持部分 (12)7)整点报时部分 (12)8)附加功能 (13)固定闹钟部分 (13)秒表部分 (13)9)总图 (15)4.实验中出现问题及解决办法 (17)5.实验总结 (18)6.参考文献 (19)一、设计要求1.设计一个数字时钟可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等基本功能。
电子信息学院课程设计报告课程名称: 《数字系统设计课程设计》题目: 多功能数字钟设计年级/专业/班: 2011级电科X班学生姓名1: xxx 学号:学生姓名2: xxx 学号:2014 年 7 月 1 日目录1课程设计目标和流程分析 (3)1.1课程设计目标 (3)1.2开发环境说明 (3)1.3设计流程说明 (4)2系统设计 (5)2.1系统架构设计 (5)2.2子模块分析 (5)2.3调试结果 (7)3小结 (8)附录:主要代码 (9)课程设计目标和流程分析1.1课程设计目标基于Verilog语言描述系统的功能;在quartusII环境中编译通过;仿真通过并得到正确的波形;掌握数字系统的分析和设计方法。
能够熟练的、合理的选用集成电路器件。
掌握数字钟得设计制作方法。
用Verilog硬件描述语言设计数字钟,实现的目标如下:1)具有时、分、秒计数显示功能,以二十四小时循环计时。
2)具有调节小时,分钟的功能,可以通过按键选择时和分。
3)具有整点报时及闹铃时间可调的功能。
4)数字钟具有四种模式:正常显示、时间调整、闹铃时间调整、秒表。
1.2开发环境说明硬件:采用基于EP1C12Q240C8芯片的FPGA开发平台FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA (Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
多功能数字钟设计 院系: 专业: 指导教师:
班级: 学号: 姓名
时间:2015.3.9-3.18 摘要 多功能数字钟在我们的日常生活中有着非常广泛的应用。本实验利用QuartusII软件设计一个多功能数字计时器,并下载到SmartSOPC实验系统中。这个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能,这些功能相互独立,却又互相协调配合。在此类基础功能之上还添加了秒表功能。
关键词 QuartusII软件 SmartSOPC实验系统 多功能数字钟
外文摘要 Title Multi-function digital clock design dissertation
Abstract Multi-function digital clock in our daily life has a very wide application. This experiment using software QuartusII design a multi-function digital timer, and download to SmartSOPC experiment system. The digital timer, can complete 00:00:00 to 23:59:59 timing functions, and under the action of control circuit has to keep fast, reset, when the school, the school points, hour, and other functions, and these features are independent of each other, and coordinate with each other. On such a basis function also added stopwatch function.
Keywords QuartusII、SmartSOPC experimental system、Multi-function digital timer。 目录 1 实验设计要求及说明---------------------------------------------------------------------4 2 方案论证------------------------------------------------------------------------------------4 3 各子模块设计原理与实现---------------------------------------------------------------5 3.1 脉冲发生器电路----------------------------------------------------------------------5 3.2 计时电路-------------------------------------------------------------------------------9 3.3 译码显示电路-------------------------------------------------------------------------13 3.4 清零电路-------------------------------------------------------------------------------15 3.5 校分电路-------------------------------------------------------------------------------15 3.6 保持电路-------------------------------------------------------------------------------16 3.7 报时电路-------------------------------------------------------------------------------17 3.8 秒表-------------------------------------------------------------------------------------18 4 多位一体-数字计数器总电路图-------------------------------------21 5 系统调试,仿真及编程下载------------------------------------------------------------20 5.1 系统调试--------------------------------------------------------------------------------20 5.2 系统仿真--------------------------------------------------------------------------------20 5.3 编程下载--------------------------------------------------------------------------------21 6 结论 ----------------------------------------------------------------------------------------22 7 试验中所遇到的问题及解决方案------------------------------------------------------22 8 实验收获与感受---------------------------------------------------------------------------23 9 期望及要求---------------------------------------------------------------------------------24 10 参考文献----------------------------------------------------------------------------------24 【正文】 1 实验设计要求及说明 设计基本要求: 1.能进行正常的时、分、秒计时功能; 2、分别由六个数码管显示时分秒的计时; 3、 K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变); 4、 K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零); 5、 K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分); 6、 K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时); 附加功能: 1. 使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57” 时报时频率为500Hz,59’59”时报时频率为1KHz, ); 2.实现秒表功能 2 方案论证 数字钟电路结构方框图:
本实验的目的是利用QuartusII软件设计一个多功能的数字计时器,使该计时器具有计时,显示,清零,较分,校时及整点报时功能。依据上述数字钟电路结构方框图可知,秒计时器和分计时器均为60进制,小时计时器是24进制计数器。当秒计时器对1HZ时钟脉冲信号计数到60时,产生一个进位脉冲,使分计时器的数值加1,同样,分计时器计数到60时,使小时计时器的数值加一。当数字钟走时出现误差时,通过校时电路对时,分的时间进行校正,其中校时电路和清零电路只需在原有电路的基础上采用一定的逻辑门电路实现。为了保证数字钟走时准确,时钟信号源输出的信号频率需经过分频器分频,得到1HZ和1KHZ时钟信号。1HZ时钟信号用于计时,1KHZ时钟信号用于动态扫描译码电路。通过分计时器和秒计时器的引脚在固定时刻采用逻辑门进行逻辑运算后驱动蜂鸣器,可实现整点报时功能,引入不同的频率信号可改变报时声音的频率。与此同时,可合理利用实验板上闲置的两个LED数码管做成秒表,从而实现秒表计时功能。 3 各子模块设计原理与实现
3.1脉冲发生器电路 3.1.1 脉冲发生器模块总体设计 脉冲发生器是数字电子钟的核心部分,它的精度和稳定度直接决定数字电子钟的质量。本实验中,实验操作板只能提供48MHZ的频率,为保证数字电子钟的正常运行,我们需要多种频率的保障:电子钟正常运行时1HZ的秒脉冲,动态扫描译码器时1KHZ的扫描脉冲,报时电路中500HZ的低频信号脉冲,秒表计时中100HZ的时钟脉冲。 这些脉冲的获得可通过分频电路对48MHZ的脉冲信号连续分频,选取我们所需要的频率信号输入相关电路即可。具体实现方法如以下流程图所示: 3.1.2 脉冲发生器模块总原理图 3.1.3 各子模块原理图 (1)48MHZ频率信号经过由三个D触发器的级联构成的8分频系统作用变成6MHZ的频率,再用74160进行六分频,即可得到1MHZ的频率信号。原理图如下:
仿真波形如下: (2)将以上得到的1MHZ频率信号经过由三个74160级联组成的1000分频电路,得到1KHZ的频率信号,原理图如下: (3)1HZ的频率信号只需将1KHZ的频率信号进行1000分频即可,具体电路与上图相同,这里不再赘述。500HZ的频率信号只需将以上所得的1KHZ频率信号经过D触发器进行2分频,而100HZ的频率信号可将1KHZ的频率信号通过一个74160进行十分频即可,具体原理图如下: A.由1KHZ到500HZ,即模2计数器原理图:
仿真图: