摘 要: 通过对数字频率计系统的设计,介绍了基于VHDL语言的数字系统层次化设计方法。首先将数字系统按功能划分为不同的模块,各模块电路的设计通过VHDL语言编程实现,然后建立顶层电路原理图。使用MAX+PLUS II开发软件完成设计输入、编译、逻辑综合和功能仿真,最后在CPLD上实现数字系统的设计。结果表明,使用这种设计方法可以大大地简化硬件电路的结构,具有可靠性高、灵活性强等特点。
关键词: EDA技术;VHDL;数字系统;CPLD
电子设计自动化EDA(Electronic Design Automation)是随着电子系统设计技术的发展而发展起来的一门新技术。它是以计算机为工作平台,以EDA软件为开发环境,以硬件描述语言HDL(Hardware Description Language)为设计语言,以可编程逻辑器件PLD(Programmable Logic Device)为实验载体,以专用集成电路(ASIC)芯片为设计的目标器件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术[1-2]。参考文献[3-6]阐述了随着电子设计技术的发展EDA技术的发展过程,直到20世纪90年代EDA技术得到全新的发展。这一阶段的主要特征是以高级硬件描述语言(VHDL、AHDL或Verilog HDL)、系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,实现了整个系统设计过程的自动化。
EDA技术的关键之一是用硬件描述语言对硬件电路进行描述。在各种类型的硬件描述语言中,超高速集成电路硬件描述语言VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种全方位的硬件描述语言,1987年被IEEE和美国国防部确认为标准硬件描述语言[7-8]。它用软件编程的方式来描述硬件系统的逻辑功能、电路结构和连接形式,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为3种描述形式的混合描述,几乎覆盖了以往各种硬件描述语言的功能,整个“自顶向下”或“自底向上”的电路设计过程都可以用VHDL来完成。在电子设计工程领域,它承担了几乎全部数字系统的设计任务,更适合大规模数字系统的设计。本文以Altera公司提供的MAX+PLUS II为平台,通过对数字频率计的设计,介绍基于VHDL的数字系统层次化设计方法。
1 数字频率计设计系统的组成
本设计中的数字频率计是一个8位十进制数字频率计,它由3个模块组成:一个测频控制信号发生器模块TESTCTL、8个具有时钟使能的十进制计数器模块CNT10和一个32 bit锁存器模块REG32B。数字频率计系统的顶层电路原理图如图1所示。
2 各模块电路的设计及仿真
2.1 测频控制信号发生器的设计
频率测量的基本原理是计算每秒中内待测信号的脉冲个数,这就要求测频信号发生器TESTCTL的计数使能信号TSTEN能产生一个1 s脉宽的周期信号,并对频率计的每一计数器的使能端EN进行同步控制。当TSTEN为高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前1 s钟计数值锁存进32 bit锁存器REG32B,由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR对计数器进行清零,为下一秒钟的计数作准备。测频控制信号发生器模块用VHDL语言编程实现,程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY TESTCTL IS
PORT(CLK:IN STD_LOGIC;
TSTEN: OUT STD_LOGIC;
CLR: OUT STD_LOGIC;
LOAD: OUT STD_LOGIC);
END TESTCTL;
ARCHITECTURE BEHAVE OF TESTCTL IS
SIGNAL DIV2CLK: STD_LOGIC;
BEGIN
PROCESS (CLK)
BEGIN
IF CLK′EVENT AND CLK=′1′ THEN
DIV2CLK<=NOT DIV2CLK;
END IF;
END PROCESS;
PROCESS (CLK, DIV2CLK)
BEGIN
IF CLK=′0′ AND DIV2CLK=′0′ THEN
CLR<=′1′;
ELSE CLR<=′0′;
END IF;
END PROCESS;
LOAD<=NOT DIV2CLK;
TSTEN<=DIV2CLK;
END BEHAVE;
将该模块的设计通过MAX+PLUS II软件进行输入、编译、逻辑综合和功能仿真,验证设计的正确性。测频控制信号发生器的仿真结果如图2所示。
2.2 十进制计数器的设计
此计数器的特殊之处在于有一个时钟使能输入端EA,用于锁定计数值。当EA为高电平时允许计数,低电平时禁止计数。十进制计数器的仿真波形如图3所示。
2.3 32位锁存器的设计
设置锁存器的作用是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。如果有32 bit BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器内部,并由锁存器的输出端输出,然后由7段译码器译成能在数码管上显示的对应数值。
3 顶层电路的设计及仿真
使用MAX+PLUS II的文本输入方式完成各模块程序的输入,将各程序进行编译、仿真,然后生成各模块的默认电路符号。建立系统顶层原理图文件,调用各模块电路符号,按图1完成系统顶层原理图设计,并对系统原理图进行编译、逻辑综合及仿真。最后将设计结果下载到指定的CPLD芯片,连接硬件电路,最终完成整个系统的设计。8位十进制数字频率计系统的仿真结果如图4所示。
EDA技术彻底改变了数字系统的设计方法和实现手段,使电子系统的设计由硬件设计转变为以VHDL语言为核心的编程设计,借助于国际标准的VHDL语言和强大的EDA工具,使电子系统的设计变得思路简单,功能明了。使用CPLD可以反复进行硬件实验,降低了硬件电路的复杂程度,且设计电路的保密性强。通过修改程序就可以非常方便地修改设计,提高了设计的灵活性,大大缩短了设计周期,提高了设计的效率。与以前的传统设计相比,本文的设计具有硬件电路简单、可靠性高、灵活性强等特点。
参考文献
[1] Wang Liqin, Shen Lin. The application of EDA technology in education reform of system of hardware courses for electric information specialties[C]. Proceedings of 2010 International Conference on Future Information Technology and Management Engineering, 2010:268-271.
[2] 谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2004.
[3] 廖超平,邓力,韦彬,等.EDA技术[M].北京:北京理工大学出版社,2009.
[4] Qi Haibing. Application of EDA technology on professional teaching for electronic information engineering[C]. 2010 International Conference on E-Health Networking, Digital Ecosystems and Technologies Proceedings,2010(2):203-206.
[5] SCHEFFER L, LAVAGNO L, MARTIN G. EDA for IC system design, verification, and testing[M]. U.S.A. Florida: CRC Press, 2006.
[6] 韩威.EDA技术中的可靠性设计方法与策略[J].计算机与数字工程,2000,28(5):6-10,20.
[7] 刘爱荣,王振成,曹瑞,等.EDA技术与CPLD/FPGA开发应用简明教程[M].北京:清华大学出版社,2007.
[8] 骆珊,黄明达.VHDL电路结构优化设计探讨[J].计算机应用,2001,27(4):14-15,26.