VHDL语言是由美国国防部在 20 世纪 80 年代初为实现其高速集成电路计划 (very high speed integrated circuit——VHSIC)而提出的一种 HDL——VHDL(高速集成电路硬件描述 语言)。目的是为了给数字电路的描述与模拟提供一个基本的标准。VHDL语言作为硬件行为描述型语言,如今已经广泛被应用到FPGA/CPLD和ASIC中的设计。
严格地讲,VHDL是一种用来描述数字逻辑系统的“编程语言”。它通过对硬件行为的直接描述来实现对硬件的物理实现,代表了当今硬件设计的发展方向。VHDL是为了满足逻辑设计过程中的各种需求而设计的。 ,它是可以用来描述逻辑设计的结构,比如逻辑设计中有多少个子逻辑,而这些子逻辑又是如何连接的。除此之外,VHDL并不十分关心一个具体逻辑依靠何种方式实现,而是把开发者的精力集中到逻辑所实现的功能上。 第二,VHDL采用类似语言的语句格式完成对硬件行为的描述,具备更强的模块化能力,并拥有良好的可读性以及程序的移植性。另外,VHDL淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于语言的表达式取代。这些也是为什么把VHDL称为“编程语言”的原因。 第三,VHDL给出逻辑的模拟与调试为设计工作提供了的空间。VHDL调试的过程是相当灵活的:一方面可以使用传统的调试方法,比如适用传统的波形激励或编写测试向量;另一方面,可以使用一些VHDL原码调试器,这类调试器可以大大加快VHDL程序调试的速度,因为它可以像调试软件一样单步跟踪调试每一条语句,并且可以设置断点,观察内部变量等。这些功能是传统的调试仿真方法所不具备的。这种调试器比较着名的有Aldec的Active-HDL。拥有高效率的生成代码,能够节省大量的资源。甚至不必编写任何测试向量便可以进行源代码级的调试。而且,设计者可以非常方便地比较各种方案之间的可行性及其优劣而不需做任何实际的电路实验。 鉴于VHDL具有以上诸多优点,只要开发者具备一定的语言程序设计基础,拥有Pascal、C等计算机语言的基础,同时又了解一些基本数字电路的设计方法,在此基础上来学习VHDL程序设计应该是比较容易的,可以轻松地掌握VHDL使硬件工作软件化。现代电子系统设计人员应该把VHDL语言作为一种基础知识来学习,并要求能够熟练地使用EDA的设计工具。
VHDL语言目前主要是对数字电路设计的描述,对模拟电路的设计尚不能很好地表达。VHDL语言在编程时要更加规范,程序结构要适合整个系统的硬件结构,要符合各模块的信号时序关系,以及数据流的走向。VHDL语言的设计格式更是面向具体的硬件对象的语言,因此任何独立于硬件实体的程序设计是没有意义的。现在EDA设计代替了传统的手工设计,都是以FPGA、CPLD、EPLD等可编程器件作为系统中硬件的载体,大部分是以VHDL作为设计语言,并针对所使用的芯片来选择不同公司的软件在计算机上进行设计、综合。这种用程序设计完成的硬件结构可装载到对应的可编程器件中,进行仿真、模拟、验证。VHDL的语言特点主要有:
(1)更加类似软件上的语言,具备更强的模块化能力并拥有良好的可读性以及程序的移植性;
(2)淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于语言的表达式取代;
(3)拥有高效率的生成代码,能够节省大量的资源。
一个VHDL程序由5个部分组成,包括实体(ENTITY)、结构体(architecture)、配置(coxnfiguration)、包(package)和库(library)。实体和结构体两大部分组成程序设计的最基本单元。图2.2表示的是一个VHDL程序的基本组成。配置是用来从库中选择所需要的单元来组成该系统设计的不同规格的不同版本,VHDL和Verilog HDL已成为IEEE的标准语言,使用IEEE提供的版本。包是存放每个设计模块都能共享的设计类型、常数和子程序的集合体。库是用来存放已编译的实体、结构体、包和配置。在设计中可以使用ASIC芯片制造商提供的库,也可以使用由用户生成的IP库。