《基于VHDL语言的作息时间控制器设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL语言的作息时间控制器设计.docx(5页珍藏版)》请在第壹文秘上搜索。
1、摘要:针对原来简单的EDA技术在实际应用中存在的问题,提出了一种基于VHD1.语言的作息时间控制器设计方法,对分频模块、时间调整模块、计数器模块以及显示模块这4个功能模块的设计进行了详细分析。关键词:EDA;VHD1.语言;Quartus.1!;作息时间控制器O引言超高速集成电路硬件描述语言(VHD1.)是一种用于电路设计的高级语言,与其他硬件描述语言相比,其具有语言简洁、灵活性强、不依赖于器件设计等特点,使其成为EDA技术通用的硬件描述语言,使EDA技术更便于设计者掌握。本文依托QUartUS_II软件环境,采用VHD1.语言编程,在不修改标准时钟电路的基础上,通过软件编程设计了一款能够将用
2、户作息时间在标准时钟电路中进行提醒的作息时间控制器,该作息时间控制器实现了不同作息事件不同提醒程度和方式的设计目的。1 设计原理一款根据作息时间的不同,通过不同程度和方式提醒的作息时间控制器,其提醒和模式设计是整个设计的核心。本文充分运用VHD1.语言“自顶向下”的设计优点,将整个系统进行模块划分,设计每一个模块的功能及各模块之间的接口,最终确定分为四大模块:分频模块、时间调整模块、计数器模块以及显示模块。2 功能模块2.1 分频模块该模块负责输入时钟信号,因为该FPGA中已有的时钟信号是50MHz的时钟信号,所以该分频器是一个50M分频的分频器,以保证通过这个分频器后每一个输入信号是1s,从
3、而使后面的计时器每一次计数为1s,保证计数的准确。其symbol如图1所示,其中elk为系统时钟信号输入端,carry为IHZ时钟频率输出端。1.1.153dVelkcarryinstd图1IHZ分频器symboI2.2 时间调整模块该模块负责实现计时器的预设功能,通过手动输入信号,在计时之初就改变计时器的初始计时状态。计时器的最大计时时间是固定的,即23h59min59s,同时可以手动校正与标准时钟的误差。调整电路设计如图2所示,该模块是由一个非门和一个二选一或门组成的,其中非门的作用是将输入的低电压转化为高电压,二选一或门的作用是保证标准时钟电路正常进行的情况下,通过手动也能对时钟电路进行
4、控制。inst10图2调整电路2.3 计数器模块该模块把分频器模块输出的信号作为相应信号,每有一个信号则作用一次,并在这个计时器模块中加入了暂停和清零两个信号的端口,用另外两个可自由控制的开关给定信号,来控制暂停和清零功能的动作与否。同时为了完成最大计时为23h59min59s,这个计数器模块由3个计数器组成,2个60计数器用来统计秒位和分位的时间变化,1个24计数器用来统计时位的时间变化。其中60秒位计时器的输入端链接60分位计时器的输出端,保证每60s显示Imin,60分位计时器的输入端链接24时位计时器的输出端,保证每60min显示Ih,这样设计可以保证计时器的计时规律与实际计时规律相同
5、,更直观。60进制计数器其symbol如图3所示,引脚CIk是接受从60秒位计时器中来的进位信号,并把这个时钟信号导入到模块中,即实际中计时60s记为Imin;引脚Clr是控制清零功能的,当系统收到从这个端口进入的信号时,此计数器模块内的所有计时结果清零;引脚en是控制暂停功能的,当系统收到从这个端口进入的信号时,此计时器不管elk口是否有信号,系统均保持计时不变,保持当前状态;引脚Pa为接受改变亮灯模式的输入信号;引脚h3.o是输出亮灯模式的类型的信号;引脚q3.o是输出计时个位的结果信号,能显示。到9;引脚b3.0是输出计时十位的结果信号,能显示0到6;引脚Carry是输出进位信号,当此计
6、数器达到最大值即60时,系统则输出一个进位信号,同时系统计时结果清零。引脚shlSh2、sh3sh4是在达到作息时间表中时间时向彩灯输出信号,达到闹钟设定秒、分钟位效果。24进制计数器其SynIbOl如图4所示,引脚elk、clrCn与60进制计数器功能相同。引脚q3.o是输出计时个位的结果信号,能显示0到9;引脚b3.0是输出计时十位的结果信号,能显示。到9;引脚Carry是输出进位信号,当此计数器达到最大值即24时,系统则输出一个进位信号,同时系统计时结果清零。引脚shl、Sh2、sh3是在达到作息时间表时间时向彩灯输出信号,达到闹钟控制时位的效果。1.1.15_CNT60SClkq(3.
7、OJ-Clrb(3.(-enh3.0j-pacarrysh1sh2sh3sh41.1.15_CNT24elkq3.0clrb(3.0encarrysh1sh2sh3nstist图360进制计数器Symbol图424进制时计数器Syntol2.4 显示模块该模块用来处理计数器模块的输出信号,通过相应的编码把计时结果显示在7位1.ED数码管上,从而使计时结果能够直观显示出来。其SyInboI如图5所示,引脚d3.0是接受从计时器模块输出的信号,每一个显示模块与一位计时器输出信号相对应;引脚h6.0是把处理后的计时器输出信号编译到7位1.ED数码管上,使得每一位数字能够显示出来。1.1.I5_qdymqd3.0h6.0inst图5显示模块symboI3 结语本文利用VHD1.语言,在QUartUSJl软件环境下进行编程设计的作息时间控制器,当下载到DE2-115开发板上进行硬件验证,所得结果满足设计要求。在设计过程中,发现作息时间控制器与我们日常所用的闹钟等提醒器件相近,但该作息时间控制器无法与闹钟一样可以让用户自己设定提醒时间,希望能与读者共同探讨是否能将作息时间表的设定交予用户设定的合理方案。