VHDL在数字系统设计中的运用

摘 要:以电子钟为例,介绍了用硬件描述语言(vhdl)设计数字系统的方法。

关键词:电子钟;可编程器件;vhdl

在数字系统设计中,简单的接口电路到复杂的状态机,甚至soc,cpld和fpga发挥着越来越重要的作用。由于cpld/fpga的应用设计复杂,硬件描述语言hdl(hardware description language)已成为设计大规模cpld/fpga的一种有效手段。目前最主要的设计语言是vhdl(veryhighspeed integrated circuit hadware description language)和verilog。本文以电子钟设计为实例,详细介绍用vhdl进行设计和使用max+plusii开发环境的方法。

1电子钟基本结构

电子钟的结构如图1所示,由时钟脉冲发生器、按键、8段lcd显示器和控制芯片组成,开关的消抖动电路放在控制芯片部分考虑,时钟输入端clkin由外部时钟脉冲发生器的输出提供。本设计的6位显示器为6个8段led。控制芯片的8条段输出线segment(7~0)与8段led的对应段相连;控制芯片的6条common(5~0)输出线分别接到各个led,用来选择显示的led。common以166hz的频率使6个led按次序循环点亮,从而得到一个人眼观察无闪烁的稳定的显示输出。

2设计方法

由图1中的电子钟结构可以看出,其核心是一片asic芯片,该芯片的输入输出信号已有明确的定义:

时钟输入信号—clkin;复位信号—reset;设定/记时控制信号—sel;时、分、秒设定输入—seth,setm,sets;led段码输出—segment(7~0),共8条线;led位码输出—common(5~0),共6条线。

知道了输入输出后,就可以根据其功能来设计该芯片。为了便于描述,将控制芯片分成三部分来描述:时钟产生部分、设定计数部分、显示部分。

(1)时钟产生部分

这部分只包含一个clkgen模块。这个模块的功能是对时钟输入信号clkin(6mhz)进行分频,使之产生1khz的clken信号和1hz的clk信号。在此,采用计数器分频电路,将6mhz的clkin信号经6k次分频后得到1khz的clken信号;再经过1k次分频后得到1hz的clk信号。

(2)设定计数部分

这部分包含三个二选一模块、两个六十进制计数器和一个十二进制计数器,主要用来实现时分秒的设定和产生6位时间信号。当sel=‘1’时进入时分秒设定状态,为‘0’时则为记时状态;当reset=‘1’时,输出信号为零。

(3)显示部分

显示部分包括一个多路选择器dgitsel、一个六进制计数器、一个段译码器和一个位译码器。主要是将设定计数部分产生的6位时间信息送给led显示出来。clken是六进制计数器的计数脉冲,在该计数脉冲的驱动下,六进制计数器的6个状态000b~101b按顺序循环变化,其输出为q[2.0]。该q[2.0]经译码电路comdec译码后产生选通6位数码管之一的common信号。与此同时,q[2.0]还作为数据选择电路digitsel的选择信号,选择对应位的数据。由于六进制计数器循环计数,因此,每个位的显示时间约为0.166ms,刷新频率为166hz。

当各小模块分别编译成功后,则创建一个个元件符号。再用图形编辑器将各元件模块组装起来,这就是本设计中的最顶层的图形设计文件(如图2所示)。然后选择用于编程的目标芯片,这里用的是alter公司的epm7128elc84-7。接着,确定各输入输出的引脚。对于总线形式的引脚名,应当分别写出总线中的每个信号。例如,segment[7.0]就应写成segment7、segment6……segment0,共8个引脚名。设定完后就可以进行编译了。

编译成功后进行仿真。首先建立波形文件。波形文件建好并存盘后,选择菜单“max+plusii”—>“simulator”,启动仿真操作;结束后观察仿真波形。

本设计中,仿真波形如图3所示。在图中可以看到,当sel为‘1’时,系统处于赋值状态,分别给时、分、秒赋值;当sel为‘0’时,系统处于计时状态。当reset为‘1’时,各模块输出为零,数码管显示为零。当common(5~0)选中某个数码管时,segment(7~0)也输出对应位的数字。例如:当common(5~0)为‘01’时,选中的是第一个数码管,此时segment(7~0)输出的是秒个位sec0的数字。

仿真结束后,就可以将设计文件top编程下载到芯片中去。连接硬件系统后,选择“max+plusii”—>“programmer”菜单,调出编程器(programmer)窗口。一切就绪后,按下编程器窗口中的“program”按钮,设计的内容就下载到芯片epm7128s中去。

3结论

运用vhdl设计电子钟,硬件电路简单,开发周期短,成本低,同时也能提高系统的可靠性和精度。
参考文献

[1] 潘松,王国栋.vhdl实用教程[m].电子科技大学出版社,2002.

[2] 王志东,邓仰东.数字集成系统的结构化设计与高层次综合[m].清华大学出版社,2001.

[3] 候伯亨,顾新.vhdl硬件描述语言与数字逻辑电路设计[m].西安电子科技大学出版社,20

  • VHDL在数字系统设计中的运用已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计