您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于VHDL语言的数字时钟设计

基于VHDL语言的数字时钟设计

来源:筏尚旅游网
第19卷 第l3期 V01.19 No.13 电子设计工程 Electronic Design 2011年7月 Ju1.2011 基于VHDL语言的数字时钟设计 李晓敏,田熙燕 (河南科技学院机电学院,河南新乡453003) 摘要:介绍了VHDL语言的特点及优势,表明了EDA技术的先进性。采用自上而下的设计思路,运用分模块的设计 方法设计了数字时钟系统,并在QuaItusⅡ环境下进行编译和仿真,完成了24 h计时和辅助功能设计,证明了方案的 可行性,体现出了“硬件设计软件化”的新趋势。 关键词:EDA技术;数字时钟;VHDL;设计 中囱分类号:TNT02 文献标识码:A 文章编号:1674—6236(2011)13-^0lo3O-o3 Design of digital clock based Oil VHDL language LI Xiao—rain,TIAN Xi-yan (School ofTechnique and Electricity,ttenan Institute ofScience and Technology,Xinxiang 453003,China) Abstract:This article introduces the characteristics of the VHDL language,and shows the advanced EDA technology.In hits paper,the top-down hierarchical design method to desin a digigtal clock s ̄tem is adopted,and the system is compiled nd asimu ̄d under Quartus II.It shows htat het system has the ̄atum as a digital clock.tI coil ̄nns hatt this desin gmehod tis practical and feasible,and it also shows the lleW trends of“hardware design to software design”. Key words:EDA technique;diitgal clock;VHDL;design 硬件描述语言VHDL是EDA技术的重要组成部分,也 是电子设计主流硬件的描述语言之一,它具有很强的电路描 ①24进制计数器;②6o进制计数器;③分频器;④选择 显示数据模块:其功能为将输入的六路信号(时十位、时个 位、分十位、分个位、秒十位、秒个位)轮流选中送给七段显 述能力和建模能力,极好地反映了EDA设计的“自顶向下” 的原则。而EDA技术作为硬件设计领域的先进技术已经在 发展的过程中充分地显现出其优越性。利用EDA技术进行 电子系统设计的最后目标,是完成专用集成电路ASIC的设 计和实现【I】。与传统的设计方法相比,EDA技术可以用VHDL 语言对系统进行抽象的行为与功能描述,对设计的各个阶段 进行模拟验证.同时由于VHDL具有与具体电路无关的特 性,使得设计者大大节省了时间,提高了效率国。 示译码器.即在一个时间单元内只显示一路信号的值;⑤动 态扫描控制模块:其功能为控制数码管电路的亮灭,即完成 对6个数码管的扫描控制功能翻:⑥七段显示译码器:完成 BCD码向7段显示码的转换;⑦模六计数器:用来控制数码 管的片选信号,同时作为选择显示数据模块的地址产生器。 1.2系统的模块框图 如图1所示。采用自顶向下的设计方法圈,通过对功能框 图的分析,将系统分模块来进行设计,然后再通过例化语句完 成各模块间的衔接,最终实现了顶层描述,完成系统预定功能。 1.3系统的工作流程描述 1数字时钟的设计方案及框图 1.1设计方案 系统要完成的主要功能有: 1)数字时钟按24 h制设计,由6只数码管显示小时、分 钟、秒; 如图1。时钟系统具有一个使能端en、一个异步清零端 clr以及时钟脉冲输入端elk。由6个计数器分别完成小时、分 钟、秒的计时,并分别通过数据选择器的6个输入端送入选 2)小时单元和分钟单元具有复位功能,当按下对应按键 择器。数据选择器的使能端由一个模为六的计数器控制,轮 流选中数据选择器的6个输入端,这样,6个输入端口的数据 时,小时单元和分钟单元复位为O0; 3)动态扫描功能,扫描输出轮流点亮各个数码管,可用 来检测数码管的好坏; 由功能要求可将系统分模块实现t31。将系统分为7个模 在数据选择器的输出端口就得到了串行轮流的输出。此输出 作为七段显示译码器的字符输入端,经译码后在数码管显示 电路上显示出对应字形。数码管显示电路上的6个数码管同 样采用轮流点亮的方式。由于循环的速度非常快,所以肉眼 看起来仍然是同时显示的感觉。 块来实现。这7个模块分别为: 收稿日期:20l1—05—18 稿件编号:201 105076 基金项目:2010年度河南省科技计划项目(102102210190) 作者简介:李¥ ̄-研究方向:信号及信息处理。 (1984--),女,河南新乡人,硕士研究生,助教。 30- 李晓敏。等基于VHDL语言的数字时钟设计 begin if fen: 1 )then 一七 段 显 不 —J 一I m6  if(cl )then 一l -I m5  一ten<=”0000”; one<=”oooo”; 一译 e11 —I  使 能 码 器 一l m4 I 一一一 -m3 I elsif(clk'event and clk= 1 )then if(one=3)then one<=”o00o”; 一—一 I m2 I 一cl r -清 蓉 --I ml if(ten=2)then 译 码 器 4) clk ten<=”0ooo”; else ten<=ten+l; 模六计数 图I数字钟模块框图 Fig.1 Block diagram of di舀tal clock model end if; else one<=one+l; end if: 2各模块的设计实现 2.1 24进制计数器和6O进制计数器的实现 endif; else one<=”0000”;ten<=”o0oo”; end if; end process; end art; 24进制计数器的功能为完成计时电路中小时单元的计 时功能[51,并且具有异步清零端clr(低电平有效)、使能端en (高电平有效);当数字钟处于正常计时状态时,完成小时计 时,并且受分计时模块(60进制)进位输出信号的控制。程序 描述如下: library ieee:一24进制计数器VHDL语言描述 use ieee.stdlogicj 164.all; _程序的仿真波形如图2所示,en为使能端,co为计满标 志位输出。 6O进制计数器功能为完成计时电路中分单元和秒单元 的计时功能,具有异步清零端clr(低电平有效)、使能端en use ieee.stdlogicunsigned.all; __(高电平有效)以及进位信号CO;其程序描述与24进制计数 entity cnt24 is 器类似,其仿真波形如图3。 2.2分频器的实现 port(clk,clr,ell:in std_logic; CO:out std_logic; ten:buffer stdlogicvector(3 downto 0); _分频器的功能为将输入的1 000 Hz的脉冲信号转换为 —1 Hz的信号送给计时电路[61。作为电路的基准脉冲信号,采用 VHDL语言进行描述,并利用软件仿真。其程序描述如下: library ieee:一一分频器VHDL语言描述 use ieee.stdlogic1 164.all; _一one:buffer stdlogicvector(3 downto 0)); __end cnt24; architecture art of cnt24 iS begin entity fenpin is port(clk:in std logle; q:out stdlogic); _CO<-- 1 when(ten=”O010”and one=”o011”)else ; endfenpin; process(clk,clr) 图2 24进制计数器仿真波形 Fig.2 The 24 binary counter simulation 一31— 《电子设计工程)2ol1年第13期 图3 6O进制计数器仿真波形 Fig.3 The 60 binary counter simulation architecture arc of fenpin is begin ten60=>g,co60=>b);一60进制计数器倒化 u3:cnt60 port map(clr=>clrc,clk:>h,en=>enc,one60=>i, process(clk) variable cnt:integer range 0 to 999; begin if clk’event and clk=’1’then if cnt<999 thell cnt:=cnt+l; ten60=>j,eo60=>e); u4:mux244 port map(ones= ̄c,tens=>d,onem=>f,tenm=>g, _oneh=>i,tenh=>j,sel=>k,bcd=>1);—-选择显示数据模块例化 u5:seg7 port map(bcd=>l。segout=>shizhongout);~七段显示 译码器例化 u6:scan port map(sel=>k.seg6 com=>bcd_contro1);一一动态扫 描控制模块倒化 q<=’0’; else cnt:=0: q<=’1’; u7:sel port map(clk=>clkc,sel=>k);一译码器例化 u8:fenpin port map(clk=>clkc,q=>h);~一分频器例化 end if; end if; end pmce ̄; 以5 S时刻为例。扫描控制输出轮流点亮各个LED数码 管:(1l11O一1】l101—1l111l一111011-110111—1111l1—101ll1— 011111—11110~~~) end arc; 仿真结果如图4所示。 七段显示译码器输出为O(O111111),5(1101101),系统 仿真波形如图5所示。 系统的仿真结果证明,此设计能够完成既定功能,设计 过程是正确的。 3结束语 图4分频器仿真波形 Fig.4 The divider counter simulation 本文通过电子时钟的设计表明了VHDL设计的一般流 2.3顶层电路设计 程及其显著特点,把其下载到开发板上与其他外围电路一起 构成了数字钟的硬件系统。并进行设计测试。得到了良好的 效果。同时表明了EDA技术“硬件设计软件化”的特点,在 设计过程中不涉及具体硬件电路。这也是电子品设计的大 趋势。 各个模块建立起来后,通过仿真无误,采用例化语句完 成各个模块间的衔接。最终完成顶层电路的设计。例化语句 的具体描述为: ul:cnt24 port map(clr=>clrc,clk=>b,en=>enc,one=>c,ten=> d):一24进制计数器例化 参考文献: u2:cnt60 port map(clr=>clrc,clk=>e,en=>enc,one60=>f, 【1】潘松,黄继业.EDA技术实用教程(3)【M】.北京:科学出版 图5系统级仿真波形 Fig.5 The system simulation (下转第35页) -32- t■■■■●■ pppppp p 钱丹,等INT8 p=Malloc(255) 1f(p 一 \0 ) { whi王e(1) p+ p+ p+ p+ p+ 口+ 基于C'Core的动态内存分配方案与实现 I =^^^) +++++++ 摇 ,. 叫 时 示情况,成功动态分配了255个字节的内存单元。实验证明 此方案可在不受操作系统影响情况下动态分配一定大小的 C'Core系列芯片内存,在C'Core系列芯片的开发过程中.此 0x0 0xl 0】【2 0x3 0x4 0x5 n.,C 方案可有效管理芯片中有限的内存资源,此外该方案在51 单片机上也成功实现了动态分配内存的功能。相比较一些 操作系统中自带的基于链表数据结构的动态内存分配函 图7内存分配检验图 数,本方案可避免出现内存碎片等情况.具有较高的稳定性 和可靠性。 参考文献: Fig.7 Test diagram of memo ̄allocation 置为l,表示255个字节块已经被分配。对(p+0)~(p+9)对应 单元分别赋值0~9,在图8中查看结果,显示正确。对(p+251) 一【l】王宜怀,刘晓升.嵌入式应用基础基础教程【M】.北京:清华 大学出版社.2005. (p+254)对应单元即meh[251]-meh[254]分别赋值0XF8 ̄ 7) 8) 9) 25 25 OXFB,在图4中查看结果。显示正确。 【2】王宜怀,朱巧明,郑茳.C Core与M Core的嵌入式系统 【M】.北京:清华大学出版社.2006. 【3】苏州国芯科技有限公司.CCM3l18DQ Advance Information 25 25 【MJ.1版.苏州:【S.n.】,2003. [41马鸣锦,蒋烈辉,杜威.基于M・CORE微控制器的嵌入式 图8内存分配临界部分示意图 系统【M】.北京:国防工业出版社,2003. [5】Hankerson D,Menezes A,Vanstone S.椭圆曲线密码学导 论【M1.张焕国,等译.北京:电子工业出版社,2005. Fig.8 Diagram of critical part of the mcmo ̄allocation 3结 论 笔者较为详细地阐述了基于C'Core的动态内存分配方 【6】Metrowerks.Codewarrior IDE user guide【EB/OL].(2O0o) 【2010-11—201.http://read.pudn.corn/downloadsl4/ebook/ 55460/ADSCodeWarriorlDEGuide.pdf. _案,结合程序在苏州国芯公司的CS32XDV10开发板上的演 (上接第32页) 社.2OO6. [4]徐大诏.基于FPGA实现的数字钟设计【J].信息技术,2009 (12):102—104. 【2]艾明晶,金惠华.EDA教学实验设计实例——电子秒表电 路的设计[J].仪器仪表学报,2011,22(4):141—142. AI Ming-jing,JIN Hui-hua.A design example of EDA Teaching Experiment-the design of electronic stop-watch XU Da・zhao.Digital clock desin gbased on FPGA [J].Information Technology,2009(12):102—104. [5】包本刚,朱湘萍.基于EDA技术的多功能数字时钟的ASIC 设计[J】.微计算机信息,2008,24(1212):212—214. BAO Ben-gang,ZHU Xiang-ping.ASIC design of muhifunctional circuit fJ】.Chinese Journal of Scientiifc Instrument,2011,22 (4):141-142. 【3】徐晓玲,田亚菲,崔伟.基于EDA仿真技术的电子时钟系 digital clock based on EDA technoloy[gJ].Microcomputer Information 2008。24(12/2):212—214. 统设计【J】.微计算机信息,2010,26(2):139-140. XU Xiao ling,TIAN Ya-fei,CUI Wei.Electronic clock system desin based on EDA simulatgion technology .Microcomputer [6】康华光.电子技术基础:数字部分(3)【M】.5版.北京:高等教 育出版社.2006. Information,2010,26(2):139-140. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务