图6-13中SEL为功能选择信号,当SEL=1时,系统执行正常计时功能;当SEL=0时,系统执行校时功能。H_EN、M_EN、S_EN分别时分秒计数单元设置计数值的使能选择信号,高电平有效。图6-14为其编译仿真后的输出时序波形图和生成的元件符号图。
(a) (b)
图6-14模式计数译码器子模块 (a) 仿真输出波形;(b)元件符号图
3)数字钟校时单元顶层电路模块设计
根据校时单元的功能特性,可利用时钟基准输出的100Hz信号自动校时,在功能设置键Mode按钮的选择下,拨动一个校时开关KEY后(KEY=1时开始校时;KEY=0时停止校时,100Hz信号分别作用于时分秒计数器,使之自动递增,直至增加到希望的值后,再将校时开关KEY拨回初始状态即可。其原理图如图6-15所示,图中21MUX为2选1电路(S=0时选Y=B, S=1时选Y=A),用于选择正常计时状态和校时状态下和时分秒计数器的计数使能信号和时钟基准信号。Ts和Tm分别为秒计数器,分计数器的进位输出。
图6-15 时、分、秒校时的校时电路逻辑图
4整点报时电路的设计
报时电路就是当在整点前10秒钟时,整点报时电路输出为高电平(或低电路),驱动蜂鸣电路工作,当时间到整点时蜂鸣电路停止工作。当时间为59分50秒到59分59秒期间与非门输出低电平,用与非门的输出驱动蜂鸣器蜂鸣,当到整点时报时结束,其逻辑表达式为:
Alarm=(m6?m4? s6?s4? m3?m0) and clk_10 (6-4)
m6、m4为分十位计数器的输出;m3、m0为分个位计数器的输出;s6、s4为秒十位计数器的输出clk_10为送至蜂鸣器的100Hz音频信号。
6.2.4 数字钟的顶层设计和仿真
经过对该设计项目各结构模块的定义、创建及编缉仿真后,证明其工作过程是正确的,下面我们利用QuartusII图形编缉器,把各个模块连接起来,完成最终设计。
1数字钟的顶层设计输入
按已确立的层次化设计思路,在QuartusII图形编缉器中分别调入前面的设计方案中所设计的低层模块的元件符号,而后我们就可以用这些元件符号来设计数字钟的顶层原理图,如图6-16所示:
图6-16数字钟的顶层原理图
其中count60_160为60进制计数器,count24_160为24进制计数器,T_con为时、分、秒校时的校时电路。以clock_top为文件名保存数字钟的顶层原理图,在工程管理器选择File菜单下的Project中Set Project to Current File选项,将当前的顶层原理图设置为工程文件。这时可以看到工程管理器左上角的顶部工程名为clock_top,这样一来就完成了整个设计的输入,之后再进行编缉直到正确无误。 2 仿真设计
在QuartusII中选择Waveform Editor波形编辑器,系统会打开波形编辑器窗口,创建一个新的波形文件,本设计中要仿真的对象为数字钟,须设定一个1KHZ的输入时钟信号和一个校时开关K2,模式的设置开关信号K1的波形,如图6-17和图6-18所示。为了能够看到合适的仿真结果,所设计的输入信号的频率和实际的1HZ信号的频率是不同的,本设计中假定网格时间(Grid Size)为10ns,总模拟时间(END TIME)为1ms。图6-19为编译仿真正确无误后所生成的数字钟定层元件符号。
图6-17 数字钟计时状态时的仿真结果
图6-18 数字种时状态校时的仿真结果
图6-19数字钟定层元件符号
6.2.5 硬件测试
为了能对所设计的多功能数字钟进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对目标芯片进行编程下载,完成数字钟的最终开发,其硬件测试示意图如图6-20。其设计流程如下。
图6-20硬件测试示意图
1确定引脚编号
在目标芯片引脚锁定前,应首先确定选用的EDA开发平台及相应电路的工作模式,在此选择GW48系统的电路工作模式为No.7。
1)1KHz接系统的clock0(接1KHz),其对应目标芯片EP1C6的引脚号为179;
2) Alarm接时钟报警SPEAKER,其对应目标芯片EP1C6的引脚号为174;
3) HH[1..0] 由数码管8显示,对应目标芯片EP1C6的引脚是158、141;HL[3..0] 由数码管7显示,其对应目标芯片EP1C6的引脚是140、139、138、137;MH[2..0] 由数码管5显示,其对应目标芯片EP1C6的引脚是135、134、133;,ML[3..0] 由数码管4显示,其对应目标芯片EP1C6的引脚是132、128、41、21;SH[2..0] 由数码管2显示,对应的目标芯片EP1C6的引脚分别是19、18、17,SL[3..0] 由数码管1显示,对应的目标芯片EP1C6的引脚分别是16、15、14、13。
4)用键8、键5表示模式选择键和调整键,此两键所对应的目标芯片EP1C6的引脚分别是240、237。
2引脚锁定:根据第5章5.2.5节的流程的第2步即可完成引脚锁定工作。 3编程下载和硬件测试
完成引脚锁定工作后,再次对设计文件进行编译,排查错误并生成编程下载文件clock_top.SOF。执行QuartusII主窗口“Tools”菜单下“Programmer”命令或者直接单击“Programmer”按扭进入设置编程方式窗口,将“Mode”栏目中原有“JTAG” 模式改为“Passive Serial”。完成编程模式选择后,执行QuartusII主窗口“Processing”菜单下“Star Programming”,,将配置文件下载到GW48-SOPC系统的目标芯片EP1C6上。按实验板上的输入按钮“键8,键5”,观测数码管输出,即可检查数字钟的输出是否正确。