1. 引言

​ 现代社会的迅猛发展与信息产品的广泛应用密不可分,这些产品不仅性能越来越强大,而且复杂度日益增加,更新速度也愈发迅猛。这一快速发展的背后离不开微电子制造工艺的不断进步以及电子产品设计开发技术的持续发展。在电子设计自动化(Electronic Design Automation, EDA)技术的框架下,数字时钟的设计与实现成为了一个富有代表性的案例。

​ 数字时钟作为一种电子设备,其主要功能是精确地显示时间。这在现代生活中有着广泛的应用,从智能手机到电子家居设备,无处不见数字时钟的身影[1]。为了实现数字时钟的设计,我们需要依赖于VHDL语言,这是一种极具表现力的硬件描述语言。VHDL语言不仅支持不同设计层次,包括系统行为级、寄存器传输级和逻辑门级,还能以多种描述方式(如结构、数据流和行为)灵活应对各种需求,使其在数字时钟的实现中具备了强大的适应性。

​ FPGA(Field Programmable Gate Array)器件则是一种特殊的ASIC(Application-Specific Integrated Circuit)芯片,具备多种优势,包括短的设计开发周期、低的设计制造成本、先进的开发工具、无需测试的标准产品、稳定的质量以及实时在线检测等[2。这些特点使得FPGA成为数字时钟设计的理想选择。FPGA允许工程师通过编程在硬件级别实现各种数字逻辑电路,从而简化硬件电路设计、提高系统性能,并显著缩短产品研发周期。本课程设计采用了CycloneⅢ EP3C40Q240C8型号的FPGA器件,为数字时钟系统的实现提供了坚实的硬件支持。

​ 数字时钟的设计代表了现代电子设计领域的重要性和多样性。通过应用VHDL语言、FPGA器件以及Quartus软件,我们能够实现高度可定制化的数字时钟系统,满足人们对精确时间和时间提醒的需求,为现代生活提供了便利。本课程设计将深入探讨数字时钟的设计原理和实现过程,为电子设计领域的学习和研究提供有价值的参考和指导。

2. 设计内容及要求

2.1 设计内容

​ 本次课程设计旨在创建一个基于现场可编程门阵列(FPGA)的数字时钟。此数字时钟不仅具备基础的时间显示功能,还包含多项附加功能,提升其实用性和用户体验。其功能如下:

​ (1) 秒表功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟、60秒钟的计数器显示;

​ (2) 时间校准功能:利用硬件按钮,对小时和分钟进行校准,并实现秒的清零功能。增加时钟的灵活性,动态调整时间。

​ (3) 整点报时功能:引入蜂鸣器,用于整点报时。当时钟达到59分59秒时,蜂鸣器将鸣叫1秒钟,提醒新的一小时的开始。

​ (4) 定时闹铃功能:自定义闹钟,在预定的时间(如早上7点)发出闹钟信号并且可中断闹钟。

​ 通过在FPGA平台上设计这款数字时钟,本次课程设计不仅提供了一种基础的时间显示设备,还通过附加功能提升了用户体验。

2.2 设计要求

​ 在本次课程设计中,设计报告需要针对设计要求详细描述每个要求的完成情况以及相关设计和实验的细节。以下是一些需要满足的要点:

​ (1) 正确建立顶层设计文件,可选择使用VHDL文本或原理图的方式,确保工程文件能够成功编译通过。

​ (2) 进行波形仿真,至少需要仿真通过7个规定的时间点,这些时间点包括3598秒、3599秒、3600秒、3601秒、3659秒和3660秒。

​ (3) 制作用于时间显示的实物,进行实物演示。

​ (4) 完成答辩环节,包括对设计的解释和回答相关问题。

​ (5) 按照要求完成课程设计报告的撰写,详细记录设计过程和结果。

​ 以上列出了设计任务书中的关键设计要求。这将有助于全面展示项目的成功实施,并为读者提供清晰的了解和评估基于这些要求的工作。

3. 设计原理

3.1 数字钟的构成

​ 数字钟实际上是一个对标准频率(1Hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1Hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。如图3-1所示为数字钟的一般构成框图。主要包括时间基准电路、计数器电路、控制电路、译码和显示电路。其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。

图3-1数字钟的一般组成框图

3.2 数字钟的工作原理

​ 数字钟的核心是振荡器,它产生稳定的高频脉冲信号,作为时间的基准。通常,这一振荡器由石英晶体构成,能够提供精确的频率,例如1MHz。这个高频信号首先被分频器处理,经过多级分频(如六次十分频)后,输出标准的每秒一个脉冲的秒脉冲信号。这些秒脉冲信号被送到秒计数器,秒计数器每累积60个脉冲,就向分计数器发送一个进位信号。类似地,分计数器在累积到60个进位后,向小时计数器发送进位信号。小时计数器遵循“24小时制”,即每24个进位重置一次。所有计数器在达到最大值后自动清零,并重新开始计数。计数器的输出信号随后被送到译码器,译码器将这些数字信号转换为适合数码管显示的格式。这些数码管负责显示当前的小时、分钟和秒。此外,数字钟还包含一个校时电路,允许用户校准时间。校时电路可以校正小时、分钟、秒。控制这些功能的信号,包括时钟使能、清零等,通常由一个4×4矩阵键盘输入。这使得用户能够方便地调整时间,以应对计时中的任何误差。

3.3 分频器的工作原理

​ 分频是把输入信号的频率变成倍数低于输入频率的输出信号。它的原理是:把输入的信号作为计数脉冲,由于计数器的输出端口是按一定规律输出脉冲的,所以对不同的端口输出的信号脉冲,可以看作是对输入信号的分频。分频频率是由选用的计数器所决定。如果是十进制的计数器那就是十分频,如果是二进制的计数器那就是二分频,还有四进制、八进制、十六进制等等。以此类推[3]

​ 分频器本质上是由电容器和电感线圈构成的LC滤波网络。高信道是高通滤波器,它只让高频信号通过而阻止低频信号。低信道正好相反,它只让低频通过而阻止高频信号。中间信道则是一个带通滤波器,除了两个分频点之间的频率可以通过,高频成分和低频成分都将被阻止。在实际的分频器中,有时为了平衡电路差异,还要加入衰减电阻。另外,有些分频器中还加入了由电阻、电容构成的阻抗补偿网络。
​ 最常用的分频器是由D触发器(DFF)构成的,而所有的分频器都是基于二分频。二分频实际上是一个具有两个状态的最简单的时序状态机。二分频器的原理如图3-2所示。

图3-2二分频电路原理图

3.4 译码器的工作原理

​ 在各种数字系统中,如本课程设计钟的数字钟,都需要将数字量直观地显示出来,一方面直接读取测量和运算的结果;另一方面用于监视数字系统的工作情况。因此,数字显示电路是许多数字设备不可缺少的部分。其中BCD七段译码器是一种数字电子器件,其主要功能是将输入的二进制编码(BCD编码)转换为七段数码管的驱动信号,以在数码管上显示相应的十进制数字。其工作原理基于逻辑电路,将输入的BCD编码映射到七段数码管的各个段,以形成所需的数字形状。BCD七段译码器接收四位二进制编码(A、B、C和D),表示要显示的十进制数字。例如,要显示数字7,输入编码为0111。之后,BCD七段译码器内部的逻辑电路根据输入的BCD编码,确定应该激活哪些输出线(a、b、c、d、e、f和g)。每个输出线对应于七段数码管上的一个段[4]。逻辑电路激活了相应的输出线,通电,点亮七段数码管上的特定段,以形成要显示的数字的形状。

​ 为了满足16进制数的译码显示,利用VHDL译码程序在FPGA中来实现。首先要设计一段程序,该程序可用case语句表述方法,根据如下的真值表3-1写出程序,也可利用该真值表实现仿真结果的验证。

输入 输出 字形
D C B A a b c d e f g 数码管显示
0 0 0 0 1 1 1 1 1 1 0 0
0 0 0 1 0 1 1 0 0 0 0 1
0 0 1 0 1 1 0 1 1 0 1 2
0 0 1 1 1 1 1 1 0 0 1 3
0 1 0 0 0 1 1 0 0 1 1 4
0 1 0 1 1 0 1 1 0 1 1 5
0 1 1 0 1 0 1 1 1 1 1 6
0 0 1 1 1 1 1 0 0 0 0 7
1 0 0 0 1 1 1 1 1 1 1 8
1 0 0 1 1 1 1 1 0 1 1 9
表3-1七段译码器真值表

3.5 共阴极数码管的工作原理

 数码管分共阴极和共阳极数码管。对于共阴极数码管来说,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示,通过给对应的二极管加电来点亮它。共阴极数码管的工作原理是基于段选编码。

​ 由于共阴极数码管公共端为阴极,加阳极数码管点亮。即当真值为1时,数码管点亮;真值为0时,数码管不亮,所以其结构如下图3-3所示,其真值表如下表3-2所示。

图3-3共阴极数码管结构图
dp g f e d c b a display Hex
0 0 1 1 1 1 1 1 0 0x3f
0 0 0 0 0 1 1 0 1(右) 0x06
0 1 0 1 1 0 1 1 2 0x5b
0 1 0 0 1 1 1 1 3 0x4f
0 1 1 0 0 1 1 0 4 0x66
0 1 1 0 1 1 0 1 5 0x6d
0 1 1 1 1 1 0 1 6 0x7d
0 0 0 0 0 1 1 1 7 0x07
0 1 1 1 1 1 1 1 8 0x7f
0 1 1 0 1 1 1 1 9 0x6f
图3-2共阴极数码管真值表

4. 设计方案

​ 本设计采用CycloneⅢ系列FPGA芯片EP3C40Q240C8为目标芯片,外围电路包括蜂鸣器、按钮和数码管。

​ 该数字钟系统采用24小时制计时方式,计数部分由两个60进制计数器和一个12计数器构成,为了方便后面进行数据选择,计数器的输出都采取高低位的方式表示,即由两路4位BCD码组成,一路表示个位,一路表示十位,不足4位的高位为0。显示部分采用动态扫描显示,扫描频率由外部信号发生器产生[5]。

​ 时间的修改采用加一脉冲的方式进行修改,当“时”和“分”的改命令有效时,在计数器时钟对应位置发出时钟脉冲信号,数字加一,,达到修改时间目。

​ 整点报时信号由引脚 (SOUND_OUT)输出,当“分”计数器产生进位信号时,信号的上跳沿发生,检测这一行为,在蜂鸣器输入口给予高电平用以驱动蜂鸣器发声。

​ 本课程设计采用自顶向下(Top-to-Down)的设计方法,将该系统分为计数、显示、校时、秒清零和闹钟报时五个子模块,然后将各个子模块更细分为更小的功能块,直到最后能用VHDL语言进行描述为止,顶层文件采用两种设计方案,即原理图设计或VHDL文本设计。当各个模块都描述完成并仿真确认无误后,再采用元件例化,将各个元件一层一层的例化连接起来,直到最后完成系统设计,再对系统整体进行仿真,最后根据该设计原理进行实物电路连接并进行验证。下图4-1为本课程设计的总设计框图。

图4-1数字钟设计总体框图

4.1 分频模块设计与实现

​ 晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。利用分频电路,将其输出信号转变为秒信号,其组成框图如图4-2。

图4-2秒信号产生电路框图

本系统使用的晶体振荡器电路给数字钟提供一个频率稳定准确的10384Hz的方波信号,其输出至分频电路。分频电路的逻辑框图如图4-3所示。其内部代码逻辑如图4-4所示。其内部代码逻辑如图4-4所示。外部16384Hz输入源经分频后输出1Hz的标准秒脉冲信号Q1,256Hz的数码管的动态扫描信号Q1000。

图4-3分频电路模块

图4-4分频电路逻辑设计

​ 该模块的时序仿真图如下图4-5所示,满足设计要求。

图4-5分频模块仿真图

4.2 计时校表模块设计与实现

​ 计时模块主要包括三个模块,分别是秒计时模块、分计时模块、时计时模块。该模块实现60位计数,计数信号由引脚(CLK1)引入,上升沿有效,输出位两个四位BCD码,分别表示秒的个位和十位。同理分也采用60进制计数器,时采用24进制计数器,时、分、秒、校时、校分及秒清零模块如下图4-6所示。

秒计时模块是一个60进制的计数器,模块包括两个输入分别为EN1复位端和CLK1时钟输入端,当EN1为高电平时对计数值进行清零操作,CLK1每来一个上升沿计数值加一。模块有三个输出,QA是秒的十位,QB是秒的个位,CO1是秒计时的进位端,当计数达到59时输出高电平。

​ 分计时模块是一个60进制的计数器,模块包括两个输入分别为EN2校分端和CLK2时钟输入端,当EN2为高电平时对计数值进行加一操作,CLK2每来一个上升沿计数值加一。模块有三个输出,QC是分的十位,QD是分的个位,CO2是分计时的进位端,当计数达到59时输出高电平。

​ 时计时模块是一个24进制的计数器,模块包括两个输入分别为EN3校时端和CLK3时钟输入端,当EN3为高电平时对计数值进行加一操作,CLK3每来一个上升沿计数值加一。不同于分秒模块,时模块没有进位输出模块。

图4-6计时电路模块
  使用VHDL语言对计数校时模块进行描述,其内部代码逻辑框图如下图4-7所示。

图4-7计时校时模块程序流程图

校表功能。校表功能由二选一模块和校时模式选择器模块构成。其中二选一模块用于连接下一级计时器模块的进位信号和手动按钮脉冲信号。当控制信号为“0”时,二选一模块输出计时器模块的进位信号。而当控制信号为“1”时,二选一模块输出手动按钮信号。控制信号由校时模式选择器模块输出,校时模式选择器输出端连接着“秒进分”和“分进时”的二选一模块。单无输入信号时校时模式选择器两个输出端均为“0”,给校时模式选择器模块输入端一个脉冲后,校时模式选择器的“秒进分”控制信号输出端为“1”,“分进时”控制信号输出端为“0”。再给校时模式选择器模块输入一个脉冲后,校时模式选择器的“秒进分”控制信号输出端为“0”, 校时模式选择选择器的“分进时”控制信号输出端为“1”。总结,校表功能的输入端为两个按钮,按钮一用于控制校时或者校分,按钮二用于控制时或分进行加一操作[6]。秒清零功能,秒计时器模块具有一键清零端口,当清零端口为“1”时,计时器模块的内部计数值清零。下图4-8为计时功能仿真,图4-9为秒清零功能仿真,图4-10为校表功能仿真,可以发现在误差允许的范围内,本课程设计的计数、校表、秒清零功能均可真正常实现,其钟出现毛刺,但不影响实物的功能演示。

图4-8计时功能仿真

图4-9秒清零功能仿真

图4-10校表功能仿真

4.3 动态扫描及显示模块设计与实现

​ 动态扫描电路将计数器输出的 8421BCD 码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和位选信号。所谓动态扫描显示方式是在显示某一位 LED 显示块的数据的时候,让其它位不显示,然后在显示下一位的数据,同时关闭其他显示块。这样做可以使每一个显示块显示与自己相对应的数据。只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象般每一位的显示时间为 1~10ms[7]。

​ 动态扫描逻辑框图如图 4-11 所示。该模块包含两个模块即CNT6以及SelTube模块。其中,CNT6模块的作用的为六进制计数器,生成0-5六个3位二进制数,用于6个数码管的动态扫描。SelTube模块用于选择在哪个数码管上显示苏子。CNT6模块的输入端口CLK5 是频率为 256Hz的扫描时钟,故每一位显示的时间为 1.4s,需要扫描6个数码管,故显示间隔为 23ms。由分频模块提供;其它输入端口接计数模块输出的数据:端口B输出数码管的片选信号。

图4-11动态扫描逻辑框图

​ 计数器实现了对时间的积累并以8421BCD码的形式输送到译码模块,将BCD码转换成七段码,再由数码管显示出来。本课程设计引入译码模块DECODER模块,根据共阴极数码管的译码真值表,使用VHDL语言进行BCD码转换,完成将要显示时间数字的8421BCD码转换成数码管的七段显示码的任务,配合动态扫描模块,可完成时钟计数显示在数码管上的任务,SelNumber模块用于选择要显示的数字,下图4-12为译码电路模块。

图4-12为译码电路模块

4.4 报时及闹铃模块设计与实现

​ 本课程设计要求当“分信号”为59时,并且“秒信号”为59时。即在每一个整点前的59秒进行响铃1s功能,完成整点报时功能。闹铃模块还具备四个输入端,分别接受设置的“时”的个十位,以及“分”的个十位。闹铃模块会对程序中已设置的信号和输入的真实信号进行比对处理。当检测到时间和设置闹铃时间一致时,在到达闹铃时间后的十秒内产生两端长闹铃信号。下图4-13为整点报时及闹钟响铃模块。

图4-13为译码电路模块

​ 使用VHDL语言对整点报时及闹铃模块进行描述,其内部代码逻辑框图如下图4-14所示,整点报时功能仿真及闹钟功能仿真结果分别如下图4-15,图4-16所示。

图4-14报时及闹铃模块流程框图

图4-15整点报时功能仿真

图4-16闹钟功能仿真

5. 结果及分析

​ 将4个大模块按照输入输出对照关系以原理图的方式进行连接,数字钟系统原理图如图5-1所示,VHDL程序见附录。CLK为输入时钟,SA为校时按钮,SB为校分按钮,SC为秒清零按钮,INTERRUPT为闹钟终端按钮,qout输出七段共阴极数码管的显示码,r输出数码管选通信号。下面对这一系统进行关键时间点仿真验证。

图5-1数字钟顶层原理图

5.1 计时功能仿真结果及分析

根据课程设计要求针对关键时间进行仿真验证,即时间点3598秒,3599秒,3600秒,3601秒,3659秒,3660秒,3661秒。仿真结果如图5-2所示,验证。






图5-2关键时间点仿真

​ 由于仿真7时验证闹钟模块时间过长,我们设定00时01分00秒验证闹钟响铃10s的功能,经过仿真得到如下图5-3结果。

图5-3数字钟闹钟仿真

​ 从波形中可以观察到当达到预设的目标闹钟时间00时01分00秒后,qw信号保持高电平约10s,这和预期效果相同,之后qw回归低电平,蜂鸣器停止工作,等待下一个触发时刻。下面可以接着验证打断闹钟的功能,我们通过给予打断信号INTERRUPT一个脉冲,使其打断闹钟响铃,并不会恢复响铃。图5-4为闹钟打断仿真测试结果。

图5-4闹钟打断仿真

​ 分析当前波形,对比图5-3,在64s时给予打断信号INTERRUPT一个脉冲,一次同时观察qw信号由高电平变为低电平,蜂鸣器由鸣叫到停止鸣叫,高电平持续时间为4s,且后面不会再鸣响。这表明已成功打断闹钟铃响,符合预期。

​ 下面验证秒清零功能,通过给予秒清零按钮SC一个高电平脉冲,观察数码管秒模块输出,即r[0]和r[1],得到如下图5-5的仿真结果。可以观察到在45s时,SC处于脉冲状态,此时r[0]和r[1]秒计数模块瞬间清零,之后恢复正常从00开始进行计数。因此,该设计系统中秒清零功能得到验证。

图5-5秒清零仿真

​ 接下来验证校表功能,通过校时SA、校表按钮SB一个高电平脉冲,观察数码管分、时模块输出,即r[2]和r[3],r[4]和r[5],得到如下图5-6的仿真结果。

图5-6秒校表功能仿真

5.2 数字钟实物测试结果及分析

​ 经过以上仿真验证,本课程设计仿真正确。由于本课程设计所用实验箱采用了CycloneⅢ EP3C40Q240C8型号的FPGA器件,所以设计工程的文件所选器件与其一致。之后按照外围电路进行也叫锁定,验证时的SA,SB,SC,CLK,qw端口锁定在JP2插槽,r[5..0]端口锁定在JP4插槽,qout[6..0]端口锁定在JP5插槽。引入外围数码管电路,用以显示数字钟计时电路以及蜂鸣器整点报时和闹钟铃响功能。引脚锁定后,再次进行编译,保证驱动程序安装正确,最后下载到实验箱的芯片中。管脚锁定如图5-7所示,外围数码管及蜂鸣器电路如图5-8所示。

图5-7数字钟管脚锁定

图5-8外围数码管及蜂鸣器电路

​ 经上述Quartus软件仿真,本课程设计的结果完全正确,现在进行物理测试实验。针对数字钟物理验证,本课程设计主要关注于进位是否正确。在实物演示过程中,经过烧录后可以正常驱动数码管电路正常显示并进行时、分、秒计数,在整点时听到蜂鸣器鸣叫,在7点时,蜂鸣器能够鸣响10s并且通过物理按键可以立即打断鸣叫。经过验证秒清零、校表电路均正常运作。下图是关注的重点即时、分、秒的进位情况,其中图5-9为从秒到分钟的进位,从物理验证中可以确认秒到分的进位是正确的,图5-10为分到时的进位,同样结果可以验证该设计的正确性,最后图5-11为23时59分59秒到00时00分00秒的验证,经验证设计正确。

图5-9物理验证秒到分的进位

图5-10物理验证分到时的进位

​ 经过仿真、物理检验,本课程设计的数字钟系统,完全符合要求。两种设计方法(原理图设计和VHDL文本设计)都得以验证,均实现了基本计时功能。六个数码管分别显示小时,分钟和秒,通过两个按键可以分别对小时和分钟进行调整,使显示的时间与实际时间相符并。通过扩展添加报时,闹钟等功能,使数字钟的功能更加多样化,也是该设计更加具有灵活性。也可以将该VHDL代码移植到液晶显示屏上,并添加星期、日期,使其应用更加全面。

6. 总结

在此次的数字钟设计过程中,更进一步地熟悉有关数字电路的知识和具体应用。学会了利用QuarterII软件进行原理图的绘制,硬件描述语言VHDL的编写,程序的仿真等工作。并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如在对具体模块的仿真的过程中,往往没有考虑到整体设计的层面以及与上下模块接口的设计。再加上器件对信号的延时等问题,实际下载到实验箱上后会出现一系列的问题,因此仿真图和电路连接图还是有一定区别的。

此次的数字钟设计重在于按键的控制和各个模块代码的编写,虽然能把键盘接口和各个模块的代码编写出来,并能正常显示,但对于各个模块的优化设计还有一定的缺陷和不足。总的来说,通过这次的设计实验更进一步地增强了实验的动手能力,对数字钟的工作原理也有了更加透彻的理解。在本设计调试过程中遇到了一些问题如下:

​ (1)当程序下载到实验箱上后,数码管显示全部为零,计数器不工作,经分析得知程序中的总的清零信号保持有效状态,改动程序后计数器开始计数。

​ (2)当秒时钟计数到59时变0时,分计数模块滞后计数,考虑的器件的延时,将程序中秒的进位信号提前1秒。

​ (3)利用控制按键给分模块加计数时,发现的分加到59时,时则在没有按键按下的情况下一直加计数。经查程序后得知,分的进位信号在分为59后变一直有效,其它模块也存在这种情况,改动程序后各个模块工作正常。

​ (4)在检测按键时,由于有些按键控制是秒时钟同步的,所以控制起来显得档慢些,但是工作正常,能满足实际的需要。

本设计中虽然有控制键对时钟进行控制,当在实际应用上存在不足。故提出改进方案为用一个按键控制数码管的片选,再用两个按键控制计数的加减。这样可以方便进行校时,针对闹钟定时可以改进电路完成用户自定义闹钟时间。本设计是采用硬件描述语言和FPGA芯片相结合进行的数字钟的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化。设计的过程变的相对简单等优点,相信随着电子技术的发展,EDA计数满足人们的各种需要。

参考资料

[1] 江翠云. “基于CPLD和VHDL的数字钟的设计.” 硅谷 2(2010):1.

[2] 刘宝军, et al. “基于FPGA的多功能数字钟系统的设计与实现.” 电声技术 10(2015):35-38.

[3] 杨真理. “基于FPGA的数字系统设计.” 中国科技000.017(2009):128-128.

[4] 张强, 万敏, and 刘可薇. “基于FPGA的多功能数字钟的设计与实现.” 仪器仪表用户 15.006(2008):103-104.

[5] 吴廷鑫. “基于FPGA的多功能数字钟设计.” 科技经济市场 5(2015):2.

[6] 黄卫华. (2021). 数字电子钟的设计及其vhdl实现. 装备制造技,000(009), 177-179,228.

[7] 万春迎. “基于VHDL的数字时钟设计.” 科技信息 27(2008):2.