当前位置:首页 > VHDL语言简介
第二章 VHDL语言简介
2.1 VHDL语言的优点和设计特点
2.1.1 VHDL语言的优点
传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD实现其功能。
综合起来讲,VHDL语言具有如下优点:
1. 覆盖面广,描述能力强,是一个多层次的硬件描述语言。在VHDL语言中,设计的原
始描述可以非常简练,经过层层加强后,最终可成为直接付诸生产的电路或版图参数描述。
2. 具有良好的可读性,即容易被计算机接受,也容易被读者理解。
3. 使用期长,不会因工艺变化而使描述过时。因为VHDL的硬件描述与工艺无关,当工
艺改变时,只需修改相应程序中的属性参数即可。
4. 支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立
完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。
2.1.2 利用VHDL语言设计数字系统的特点
当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:
一.采用自上而下的设计方法。
即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:
第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述
18
的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。
第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。
第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。
应用逻辑综合工具产生的门级网络表,将其转换成PLD的编程码点,即可利用PLD实现硬件电路的设计。
由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。 二.系统可大量采用PLD芯片。
由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。 三.采用系统早期仿真。
从自上而下的设计过程中可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期,节约大量的人力和物力。 四.降低了硬件电路设计难度。
在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表)。这一工作是相当困难和繁杂的,特别是当系统比较复杂时更是如此。而利用VHDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大降低了设计的难度,也缩短了设计的周期。 五.主要设计文件是用VHDL语言编写的源程序。
与传统的电路原理图相比,使用VHDL源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。当设计其他硬件电路时,可使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序比阅读电路原理图要更容易一些,阅读者很容易在程序中看出某一电路的工做原理和逻辑关系。而要从电路原理图中推知其工作原理则需要较多的硬件知识和经验。
2.2 VHDL设计概览
本节仅讲述几个VHDL的实例,通过比较PLD的VHDL设计方法与传统的电路设计方法,使读者从总体上初步理解VHDL。
[例2-1] 用VHDL语言设计二选一数据选择器。 二选一数据选择器的器件图如下:
19
A B Y S A, B为输入端 S为选择信号输入端 Y为输出端 若S=0则Y=A;若S=1则Y=B 图2-1 二选一数据选择器器件图
二选一数据选择器的VHDL程序如下:
LIBRARY IEEE; 打开库和程序包 USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux21 IS
PORT( A,B : IN STD_LOGIC; S : IN STD_LOGIC; Y : OUT STD_LOGIC); END mux21;
21mux的外部说明,PORT相当于器件的引脚 ARCHITECTURE one OF 21mux IS BEGIN 21mux的内部工作逻 Y<=A WHEN S=?0? ELSE 辑 B WHEN S=?1?; END one;
在上述的程序中:
? LIBRARY(库)是经编译后的数据的集合,用来存放程序包定义、实体定义、构造体
定义和配置定义,使设计者可以共享已经编译过的设计结果。其中IEEE库是最常用的,而STD_LOGIC是它的标准程序包,其中定义了一些常用的数据类型和子程序 ? ENTITY(实体)语句类似于原理图中的一个部件符号,是一个初级设计单元。在实
体中,我们可以定义设计单元的输入输出引脚和器件的参数。上述程序中的实体语句描述了mux21的接口信息。其中,PORT(端口)则说明了mux21的外部引脚 ? ARCHITECTURE(构造体)语句描述一个设计的结构或行为,把一个设计的输入和
输出之间的关系建立起来。上述程序中的构造体语句描述了mux21内部的工作原理,在电路上相当于器件的内部电路
[例2-2] 用VHDL设计8位三态锁存器
以通用的三态锁存器74373为例,其器件图如2-1所示。其中D1,D2,D3,D4,D5,D6,D7,D8为输入信号,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8为输出信号。它的逻辑关系为:
若ONE=1,则Q1?Q8输出为高阻态;若ONE=0,则Q1?Q8输出为保存在锁存器
20
中的信号值。
若G=1,D1?D8输入的信号被锁存入74373中;若G=0,D1?D8保持原先锁入的信号值。
图2-1 SN74LS373器件图
图2-2 SN74LS373的内部工作原理图
21
共分享92篇相关文档