EDA技术与VHDL电路开发应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 关于VHDL

作为IEEE标准硬件描述语言,利用VHDL进行系统行为级设计已成为FPGA和ASIC设计的主流。使用VHDL,不仅可以快速地描述和综合FPGA设计,还具有许多强大的性能,如代码设计灵活、可移植性强、不依赖于器件的设计和上市时间快、成本低等。

2.1.1 什么是VHDL

VHDL的全称是Very High Speed Integrated Circuit HD(超高速集成电路硬件描述语言),它的诞生源于是美国国防部在20世纪70年代末提出的VHSIC(Very High Speed Integrated Circuit,超高速集成电路)计划。该计划的目标之一是为更为复杂的集成电路的生产和设计建立一项新的描述方法。为了增强设计的可移植性和再开发性,便于信息交换和设计维护,美国国防部委托IBM和Texas Instrument公司联合开发并在1981年提出了一种硬件描述语言VHSIC Hardware Description Language,取此项目的名称的第一个字母将这种硬件描述语言命名为VHDL。

1987年12月,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言,并颁布了VHDL的标准版本IEEE-1076。从此,VHDL在电子设计领域得到了广泛的认同,各大EDA公司要么纷纷推出相应的VHDL设计环境,要么宣布自己的设计工具可以和VHDL接口,非标准硬件描述语言开始逐渐被VHDL所取代。经过不断更改和完善,IEEE在1993年对VHDL进行了修改,从更高的抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL作为IEEE的工业标准硬件描述语言,得到了众多EDA公司的支持,如Synopsys、Mentor Graphic、Cadence、Altera等,在电子工程领域,已经成为事实上的通用硬件描述语言。

在现代数字系统设计中,硬件描述语言已经成为了设计者和EDA工具之间的桥梁。VHDL采用软件的方式设计系统,即便工程师不懂硬件电路也可以设计出一个硬件系统。就像我们已经习以为常的用C、C++代替汇编语言一样,在硬件描述领域也可以用VHDL来取代原理图、逻辑状态图等。如果采用传统的电路原理图设计方法进行系统设计,则必须给出完整的具体电路结构图,且原理图的描述与实现工艺紧密相连,一旦功能发生微小的改变则可能要重新设计整个电路,造成了不必要的资源浪费,降低了工作效率。而VHDL具有较强的抽象描述能力,可以对系统进行行为级描述,且与实现工艺无关,令整个设计过程变得高效简捷。

正如几十年前VHSIC计划预期的那样,EDA工具和VHDL语言的流行,使得数字系统向集成化、大规模和高速度等方向发展。

2.1.2 VHDL的特点

VHDL的程序结构特点是将一项工程设计或设计实体,如将一个元件、一个电路模块或一个系统分成可视外部(如端口)和不可视内部,即设计实体的内部功能和算法完成部分。在一个设计实体定义了外部界面后,一旦其内部开发完成,其他的设计就可以直接调用这个实体。这种将设计实体进行划分的概念是VHDL系统设计的出发点。作为一种通用的硬件描述语言,VHDL具有以下基本特点:

(1)VHDL支持结构化和自顶向下的设计方法,这样非常便于设计的模块化。设计者从系统整体要求出发,自上而下将系统内容细化,最后将模块组合完成系统的整体设计。

(2)VHDL具有多层次描述和仿真系统硬件功能的能力,可以从系统级到门级电路不同层次对数字电路进行建模和描述,不同的描述还可以混合使用,大大简化了硬件设计任务,提高了设计效率和可靠性,缩短产品开发周期。

(3)VHDL是一种工业标准语言,设计者、EDA开发工具的供应商和IC芯片生产商都要遵循这一标准,因此它具有设计与开发环境、具体电路实现工艺以及采用的实现芯片无关的特点,设计成果便于移植、交流和二次开发。另外由于其语法严格,是强类型语言,因此设计安全性好,也便于阅读和修改。

(4)VHDL既支持传输延时也支持惯性延时,不仅可以很好地描述系统和电路的逻辑功能,也可以真实地反映系统和电路的时间特性。

(5)VHDL可以支持各种不同类型的数字电路和系统的设计。既支持同步电路、也支持异步电路;既支持TTL电路,也支持CMOS电路;既可以采用CPLD芯片实现,也可以采用FPGA芯片实现。

目前,比较常见的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog和SystemC。下面,我们将就前三者的使用进行比较。

如图2-1所示,硬件描述语言通常可以由高到低依次在行为级、RTL级和门级三个层次上进行电路描述。作为一种高级描述语言,VHDL适用于行为级和RTL级的描述;而Verilog HDL和ABEL适宜用来进行RTL级和门级的描述,其中,ABEL尤其适合于描述门级电路。

图2-1 逻辑描述层次

VHDL在进行电子系统设计时可以不了解电路的结构细节,因此相对于Verilog HDL和ABEL来说,为设计者减少了大量的工作,能极大地提高工作效率。

综合时,VHDL源程序要依次经过行为级、RTL级和门级的转化,几乎不能直接控制门电路的生成,因而对综合器的性能要求较高;而Verilog HDL和ABEL的综合过程比较简单,只需要RTL级和门级两级转化,易于控制电路资源,对综合器的要求也相对要低。

此外,由于VHDL和Verilog HDL都是IEEE标准硬件描述语言,因此,支持VHDL和Verilog HDL的EDA工具很多,甚至很多高级EDA软件还支持VHDL和Verilog HDL混合设计,但ABEL语言的特性和受支持的程度远远不如VHDL和Verilog HDL。