当前位置:文档之家› 用VHDL实现数字时钟的设计[1]

用VHDL实现数字时钟的设计[1]

收稿日期:2007-06-04 第一作者 刘竹林 男 27岁 助教用V HDL 实现数字时钟的设计刘竹林 李晶骅(十堰职业技术学院电子工程系,湖北十堰442000)摘 要:以一款数字钟设计为例,较详细的介绍了如何用VHDL 语言设计数字电路,并给出了部分程序、仿真波形图,并在MAX +plusII 中进行编译、仿真、下载。

由此说明利用VHDL 开发数字电路的优点。

关键词:VHDL ;设计;数字钟;应用电路中图分类号:TN953 文献标识码:A0 引言VHDL 硬件描述语言在电子设计自动化(EDA )中扮演着重要的角色,它的出现极大的改变了传统的设计方法、设计过程乃至设计观念。

由于采用了“自顶向下”(Top 2Down )的全新设计方法,使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。

这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。

在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。

然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。

由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。

1 用V HDL 设计一款数字钟我们设计的数字时钟原理框图如图1。

其基本功能划分为:计数模块(包括秒、分、时)、译码模块、扫描显示控制模块。

计数模块由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数,当计数到23点59分59秒的时候,即一天结束,计数器清零,新的一天重新开始计数。

图1 数字时钟原理框图秒计数器的计数时钟信号为1Hz 的标准信号,可以由系统板上提供的4MHz 信号通过222分频得到。

秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。

设计一个同时显示时、分、秒6个数字的数字钟,则需要6个七段显示器。

若同时点亮这6个七段显示器,则电路中会产生一个比较大的电流,很容易造成电路烧坏,我们通过扫描电路来解决这一问题,通过产生一个扫描信号CS (0)-CS (5)来控制6个七段显示器,依次点亮6个七段显示器,也就是每次只点亮一个七段显示器。

只要扫描信号CS (0)-CS (5)的频率超过人的眼睛视觉暂留频率24Hz 以上,就可以达到尽管每次点亮单个七段显示器,却能具有6个同时显示的视觉效果,而且显示也不致闪烁抖动。

其中6位扫描信号一方面控制七段显示器依次点亮,一方面控制6选1选择器输出相应显示数字。

2 模块设计2.1 VHDL 语言的基本结构一个独立的设计实体通常包括:实体(EN TIT Y )、结构体(ARCHITECTURE )、配置(CONFIGURA TION )、包集合(PACKGE )、和库(L IBRAR Y )5个部分。

其中实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;建立输入和输出之间的关系;配置语句安装具体元件到实体—结构体对,可以被看作是设计的零件清单;包集合存放各个设计模块共享的数据类型、常数和子程序等;库是专门存放预编译程序包的地方。

VHDL 程序设计基本结构如图2。

图2 VHDL 程序设计基本结构2.2 各模块的实现2.2.1 计数模块(建立VHDL 语言的工程文件)计数模块由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数。

其VHDL 源程序相差不大由于篇幅有限,这里我们以秒模块的实现为例。

程序如下:library ieee ;use ieee.std -logic -1164.all ;entity counter -60-bcd is山西电子技术2008年第1期 应用实践 port (cen ,clk ,settime :in std -logic ; q -one :out integer range 0to 9; q -ten :out integer range 0to 9; co :out std -logic );end counter -60-bcd ;architecture rtl of counter -60-bcd is signal coo :std -logic ; signal clkI :std -logic ; component dff is port (clk ,d :in std -logic ; q :out std-logic ); end component ;begin process (clk ) variable s -one :integer range 0to 9; variable s -ten :integer range 0to 9; begin if clk ’event and clk =’1’then if settime =’1’then if s -one <9thens -one :=s -one +1; else s -one :=0;if s -ten <5thens -ten :=s -ten +1;else s -ten :=0; end if ; end if ; elsif cen =’1’then if s -one <9thens -one :=s -one +1; else s -one :=0; if s -ten <5thens -ten :=s -ten +1; else s -ten :=0; end if ; end if ; end if ; end if ; q -one <=s -one ; q -ten <=s -ten ; if s -ten =5and s -one =9then co <=’1’; else co <=’0’; end if ;end process ;clkI <=not clk ;U1:dff port map (clkI ,co ,co );2.2.2 多路选择控制模块多路选择控制模块中扫描控制电路产生扫描信号一方面控制6个七段显示器每次只点亮一个七段显示器;另一方面同时控制6×1多路选择器输出相应的显示数字。

由于篇幅有限代码就省略了。

2.2.3 显示译码模块的设计该模块描述了一个共阴极数码管显示驱动电路,其输入为选择控制模块的输出,输出信号分别接在数码管的的7个段。

例如当输入为‘0’时,输出就为“1111110”,数码管显示0。

由于篇幅有限代码就省略了。

3 各模块的编译、仿真各模块设计完成后,就要对其进行功能仿真。

打开MAX +plusII ,选择菜单File/New 命令,进入出现对话框选择中选择“Text Editor File ”选项,即进入文本编辑方式新建一个工程。

在编译之前要此工程设置为当前工程。

若没有错误则编译通过。

新建仿真文件,输入保存。

这里以秒模块的仿真为例,其结果如图3。

图3 秒模块的仿真结果4 综合在编译各模块的同时,生成符号文件,把各符号文件按照逻辑功能连接起来(如图4),当然也可以利用元件例化语句进行,然后加上输入输出端口构成顶层系统然后在进行编译。

5 程序下载至芯片1)点击主菜单Assign/Pin/Location/Chip 进行芯片脚位设置。

2)将实体定义的端口名字和下载芯片的管脚进行具体对应。

3)最后再进行一次编译,这时系统将产生可以向EPF10K10下载的文件。

4)将带芯片的实验板通过下载电缆与计算机并口相连,然后给实验板通电。

5)打开下载窗口选择下载方式、下载器件型号最后点击Configure 按钮将程序写入芯片中。

连接外围器件即可工作。

6 结束语本文通过数字钟实现的例子展现出了现代电子设计新方法2EDA 技术的灵活性,层次化设计方式的优点。

VHDL 语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。

用VHDL 语言实现电路设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺(下转第54页)4)系数,一般取为0.06~0.2。

3.3 仿真结果设有12个城市(或景点),今从某市出发遍历各城市,使之旅行费用最少(即找出一条旅费最少的路径)。

我们取种群代数为80,染色体个数为100,变异概率为0.2,评价函数alpha =0.1;利用Matlab 所编的函数只要花7.094秒就可以得到最短路线。

染色体种群进化过程实例如图3所示:参考文献[1] 周明,孙树栋.遗传算法原理及应用[M ].北京:国防工业出版社,2002.[2] 刘勇,康立山,陈毓屏,等.非数值并行算法—遗传算法[M ].北京:科学出版社,1995.[3] 许家玉,经亚枝.基于DSP +FPG A 的遗传算法硬件实现[J ].微计算机信息,2005,21-1:127-128.[4] 刘海,郝志峰,林智勇.改进遗传交叉算子求解TSP 问题[J ].华南理工大学学报(自然科学版),2002,30(12):71-73.图3 染色体种群进化过程Solution of T raveling Salesman Problem B ased on Genetic AlgorithmWang Shui 2ping Lu Hua Zhao Guang 2yu(N aval Representatives Of f ice of S hanghai Power S tation A uxiliary Equipment Works Co.,L td ,S hanghai 200090,China )Abstract :The working method of traveling salesman problem based on genetic algorithm is given in application ,and combiningthe practical example ,the process of the solution and the results simulation are also introduced in this paper.According to the analy 2sis ,the improved genetic algorithm can get the better result than the traditional genetic algorithm.This shows that the method has better feasibility and practicability.K ey w ords :TSP ;genetic algorithm ;crossover operator (上接第48页)相关的因素花费过多的时间和精力。

相关主题