1、江苏大学计算机科学与通信工程学院数字逻辑课程设计报告多功能数字钟的设计与实现姓 名: 杨天宇 专业班级: 通信 1102 学 号: 3110601030 指导老师: 邹婷婷 设计日期: 2013.07.12013.07.5 江苏大学计算机科学与通信工程学院一、设计目的1、学会应用数字系统设计方法进行电路设计;2、学习使用 QuartusII 9.0, 进一步提高软件的开发应用能力,增强自己的动手实践能力。3、培养学生书写综合实验报告的能力。 二、设计任务及要求实现多功能数字钟的设计,主要有以下功能:1、记时、记分、记秒2、校时、校分、秒清 03、整点报时4、时间正常显示5、闹时功能(选做)三、
2、设计思路3.1 计时模块3.1.1 设计原理计时模块如图 3.1.1 所示,其中计时用 60 进制计数器,计分和计秒用 24进制计数器。 60进 制 计 数 器24进 制 计 数 器 60进 制 计 数 器1HZ2MUX 2MUX进 制 计 数 器进 制 计 数 器 进 制 计 数 器图 3.1.1 计时间模块计时间过程:计秒:1HZ 计数脉冲,059 循环计数,计数至 59 时产生进位信号;计分:以秒计数器进位信号作为分计数脉冲,059 循环计数,59 时产生进位;计时:以分计数器进位信号作为时计数脉冲,023 循环计数,23 时清 0。计数器的设计:3.1.2 设计程序编程分别设计 24、
3、60 进制计数器,计数状态以 BCD 码形式输出。24 进制计数器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;江苏大学计算机科学与通信工程学院entity FEN24 isport(en,clk:in std_logic; -高电平有效的使能信号/输入时钟co:out std_logic; h1,h0:out std_logic_vector(3 downto 0); -时高位/低位end FEN24;architecture behave of FEN24 isbeginproces
4、s(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0); -记数beginif(en=0)then -“使能”为 0cnt0:=“0010“;cnt1:=“0001“;elsif clkevent and clk=1then -上升沿触发if cnt1=“0010“and cnt0=“0011“thencnt0:=“0000“; -高位/低位同时为 0 时cnt1:=“0000“;co=5 thentempnum:=s(3 downto 0); selnum:=s(7 downto 4); selnum:=m(3 downto 0); sel
5、num:=m(7 downto 4); selnum:=h(3 downto 0);selnum:=h(7 downto 4);selselsegsegsegsegsegsegsegsegsegsegseg=“0000000“; end case; end if;end process;selout=sel;segout=seg;end architecture;3.5.3 设计仿真及生成器件动态扫描仿真波形如图 3.5.1 所示,由于 h、m、s 为时分秒的输入,为设置时,segout 即 BCD7 段译码器没有显示,selout 为位选信号,实现六选一。图 3.5.1 动态扫描仿真波形动态
6、扫描生成器件如图 3.5.2 所示,其中左端为输入,分别接时钟输入信号、秒分时计数器的输出信号,右端为输出,selout 即位选信号,segout 即BCD7 段译码器。江苏大学计算机科学与通信工程学院clks70m70h70selout20segout60DTSMinst24图 3.5.2 动态扫描3.6 闹时模块(选做)3.6.1 设计原理设置的闹时模块需要注意一下几点:1、设定的闹钟的时间应使用新的计数器进行存储,与正常的计时互不干扰。2、与正常计时状态的显示切换。可以设定一个按键,用于选择是将计时时间还是将闹钟时间状态送到动态显示模块。3、应实现一个比较模块,当计时到与闹钟相等时,则驱
7、动扬声器鸣叫。4、闹钟响声应限定在一定时间内,比如一分钟,且在这段时间内应随时可以通过按键取消闹时状态(扬声器停止鸣叫) 。3.6.2 设计程序六路选择器源程序:library ieee;use ieee.std_logic_1164.all;entity MUX63 isport(p:in bit;sh:in std_logic_vector(7 downto 0);nh:in std_logic_vector(7 downto 0);sm:in std_logic_vector(7 downto 0);nm:in std_logic_vector(7 downto 0);ss:in std
8、_logic_vector(7 downto 0);h:out std_logic_vector(7 downto 0);m:out std_logic_vector(7 downto 0);s:out std_logic_vector(7 downto 0);end MUX63;architecture one of MUX63 isbeginprocess(sh,nh,sm,nm,ss,p)begin江苏大学计算机科学与通信工程学院if p=1 then h=nh;m=nm;s=ss;elseh=sh;m=sm;s=ss;end if;end process;end one;数据比较器源程
9、序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity COMP isport(off1,open1:in std_logic;sh:in std_logic_vector(7 downto 0);nh:in std_logic_vector(7 downto 0);sm:in std_logic_vector(7 downto 0);nm:in std_logic_vector(7 downto 0);d:out std_logic);end COMP;architecture beh
10、ave of COMP isbeginprocess(off1,open1,sh,nh,sm,nm)beginif off1=1 then d=0;elsif open1=1 thenif (sh=nh and sm=nm )then d=1;else d=0;end if; end if;end process;end behave;3.6.3 设计仿真及生成器件六路选择器和数据比较器生成器件分别如图 3.6.1、图 3.6.2 所示。选择器的左端为输入,接正常时间和闹钟设定的时间,右端为输出端,与动态扫描器相连接,能扫描出正常计数时间与闹钟设置时间。江苏大学计算机科学与通信工程学院数据比较
11、器左端输入接正常计数时间的时和分以及闹钟设定实间的时和分,将两者相比较,如果相同,则右端输出端 d 为1 ,在有时钟信号的情况下产生闹铃。psh70nh70sm70nm70ss70h70m70s70MUX63inst8 off1open1sh70nh70sm70nm70dCOMPinst9图 3.6.1 六路选择器 图 3.6.2 数据比较器3.7 时钟顶层图时钟顶层图(含闹钟)如图 3.7.1 所示。VCCsa INPUTVCCsb INPUTVCCsc INPUTVCCclk INPUTVCCoff1 INPUTVCCopen1 INPUTspeakerOUTPUTseg0OUTPUT s
12、eg1OUTPUTseg2OUTPUT seg3OUTPUTseg4OUTPUT seg5OUTPUTseg6OUTPUT sel0OUTPUTsel1OUTPUT sel2OUTPUTenclk cos130s030FEN60inst2enclk coh130h030FEN24instCLRNDPRNQDFFinst3CLRNDPRNQDFFinst4CLRNDPRNQDFFinst5ABSYMUX2inst7NOTinst10NOTinst11NAND2 inst13NOTinst14enclk cos130s030FEN60inst6VCCmh30ml30sh30sl30sig500si
13、g1kZDBSinst17AND2inst20AND2inst21clks70m70h70selout20segout60DTSMinst24clk hz512hz64hz4hz1FPQinst16ABSYMUX2inst1VCCoff1open1sh70nh70sm70nm70dCOMPinst9AND2inst22OR3inst31enclk coh130h030FEN24inst12enclk cos130s030FEN60inst15CLRNDPRNQDFFinst18CLRNDPRNQDFFinst25VCCVCCABSYMUX2inst29ABSYMUX2inst30ABSYMUX
14、2inst32ABSYMUX2inst33GND GNDCLRNDPRNQDFFinst27psh70nh70sm70nm70ss70h70m70s70MUX63inst8hz1hz1hz4hz64hz512hz64hz4hz4hz64hz64bjh74jh30jm74jm30js74js30jm74jm30js74js30cscsbhz64hz4hz64 qhz4hz64qqjh70jhh70jm70jmm70clkjm70jmm70js70jhh70clkhz512qjh70sel20seg60clks70m70h70h70m70s70AND2inst36AND2inst37jhh74jh
15、h30jmm74jmm30hz4hz4VCCsd INPUTVCCse INPUTVCCsf INPUT江苏大学计算机科学与通信工程学院图 3.7.1 时钟设置顶层图(含闹钟)四、设计中遇到的问题及解决方法1、问题:下载验证时数码管显示时间与正常显示时间相反。解决方法:动态扫描程序出错,扫描顺序与正常显示时间相反,修改程序,使得其由时高位向秒低位进行扫描。2、问题:校准分钟时,时钟也跟着一起跳动。解决方法:将分计数器进位与跟时计数器相连的二路选择器间连线上的非门去掉。3、问题:加上闹钟模块进行下载验证时,时位与分位跳动频率与秒位频率一样。解决方法:闹钟模块部分的时计数器与分计数器给了同样的时钟脉冲,加与门(未解决) 。五、设计结果时钟的基本功能可以达到,时间可以正常显示,按按键 s1 可以调节时钟的小时,按按键 s2 可以调节时钟的分,按按键 s3 可以对秒位进行清零。闹钟功能没有很好地实现,修改后的电路图没有经过下载验证,因此闹钟模块是否正确还是个未知数。六、心得体会