基于VHDL的数字闹钟设计 - 图文 联系客服

发布时间 : 星期六 文章基于VHDL的数字闹钟设计 - 图文更新完毕开始阅读878bc054ad02de80d4d840c0

第四章 模块电路设计

( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); END music;

ARCHITECTURE SYN OF music IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0); COMPONENT altsyncram GENERIC (intended_device_family : STRING; width_a : NATURAL; widthad_a : NATURAL; numwords_a : NATURAL; operation_mode : STRING; outdata_reg_a : STRING; address_aclr_a : STRING; outdata_aclr_a : STRING; width_byteena_a : NATURAL; init_file : STRING; lpm_hint : STRING; lpm_type : STRING); PORT ( clock0 : IN STD_LOGIC ; address_a : IN STD_LOGIC_VECTOR (7 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); END COMPONENT; BEGIN q <= sub_wire0(3 DOWNTO 0); altsyncram_component : altsyncram GENERIC MAP ( intended_device_family => \ width_a => 4, widthad_a => 8, numwords_a => 256, operation_mode => \ outdata_reg_a => \ address_aclr_a => \ outdata_aclr_a => \ width_byteena_a => 1, init_file => \ lpm_hint => \INSTANCE_NAME=rom2\ lpm_type => \ PORT MAP ( clock0 => inclock, address_a => address, q_a => sub_wire0); END SYN;

13

选题背景

第五章 实验结果

5.1实验概述

本实验是以KEY2、KEY1为控制整个闹钟的校时,校分,校闹钟时、分,分别将KEY2[1],KEY2[0],KEY1,送到实验上的三个键,由这三个键来控制整个校时,校分,校闹钟时,校闹钟分的过程,加上分别连接的键叫A,B,C键.

5.2实验仿真结果

则当A=0,B=1,C=0时是对时钟进行校时,时个位和时十位会以二十四进制循环自动增加。仿真波形:

图5.2-1

当A=0,B=0,C=0时是对时钟进行校分,分个位和分十位会以六十进制循环增加,并且不对时进位。仿真波形:

图5.2-2

当A=0,B=1,C=1时是对闹钟进行校分,闹钟时个位和时十位会以二十四进制循环自动增加。仿真波形:

图5.2-3

当A=0,B=0,C=1时是对闹钟进行校时,闹钟分个位和分十位会以六十进制循环增加,并且不对时进位。仿真波形:

14

实验结果

图5.2-4

而当A=1,B=0,C=0或者A=1,B=1,C=0是正常的计时时间,秒从零开始计时,每秒加一,当到达五十九在来一个脉冲后,秒十位和秒个位清零,从零开始直到六十一直循环,并且向分个位清零;分位的原理同秒的一样;而时与秒,分的不同之处是,当时计数到二十三时清零并且不向任何位进位。仿真波形:

图5.2-5

另外当计数的时,分和闹钟所事先设置时、分相等时,“梁祝”这首歌会响起,作为闹钟并且维持一分钟,一分钟歌曲自动停止。在有条件的情况下,为验证所设计程序是否正确,将程序下载到FPGA器件中进行硬件测试。在QuartusⅡ开发环境中进行管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。最终可以看到时、分、秒正常显示

15

选题背景

第六章 总结与展望

研究结论

通过本次实验,系统的复习整个EDA的知识,并且了解了CPLD可编程芯片的结构和引脚,能够熟练的运用quartus II这个软件,尤其可贵的是,学会了使用这个软件来给程序配置引脚,并且实际的通过实验箱的几个按键就可以控制整个操作的过程,终于感到自己所学到的知识可以付诸到实践了。

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

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

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

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

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

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

研究展望

本设计中虽然有控制键对时钟进行控制,但是用到的按键太多,在实际应用上存在不足。故提出改进方案为用一个按键控制数码管的片选,再用两个按键控制计数的加减。这样可以节省按键资源,以供更多的功能的使用。

本设计是采用硬件描述语言和FPGA芯片相结合进行的数字钟的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化。设计的过程变的相对简单,容易修改等优点,相信随着电子技术的发展,数字钟的功能会更加多样化,满足人们的各种需要。

16