本章以较大的篇幅介绍硬件描述语言VHDL。VHDL与常见的程序语言不同,它是用来描述硬件的设计的。VHDL是IEEE颁布的国际通用的硬件描述语言标准之一。
  VHDL既能描述硬件的结构,也能描述硬件的行为。它涵盖了常用程序设计语言的几乎所有的语言结构,同时为了描述硬件的需要,增加了关于描述硬件模块化、层次化结构所需要的并行语句部分。
  VHDL的描述是一些实体的集合,每个实体含有一个实体声明和多个结构体,每个结构体分别表示该硬件的一种行为的或结构的实现。结构体中包含有进程语句、简单并行语句、例化语句、块语句和生成语句。这些语句都是并行执行的,执行顺序与书写的顺序无关,它们靠信号来互相联系。进程是由若干顺序语句组成的一段完整的程序,这些语句顺序执行。
  进程有激活和挂起两种状态。在挂起状态下,所有的内部状态包括变量值、运行中的语句位置、循环的计数等都保持不变,待激活时接着运行。我们可以认为进程在运行过程中时不停止的。因此进程中的变量初值只在启动时赋值一次。
  信号是进程与进程之间、进程与其他并行语句之间交换数据的数据通路。信号只能在端口中、结构体内和块结构内定义,而不能在进程内部定义。有些公共信号也能在各实体使用的程序包中定义。一般来说,变量只能在进程和子程序中定义,而不能在进程之外定义。信号的赋值有延时特性,而变量在执行赋值语句之后立即得到其新值。关于信号,还有事项处理和事件的概念,它们决定描述程序的运行过程。读者一定要把进程和信号的概念搞清楚,这是掌握VHDL语言的关键。
  硬件的层次化结构是通过配置来实现的。配置将一个结构体中的实例语句、元件模板与真正的实体结合起来,形成层次化结构。
  限于篇幅,本书介绍的只是VHDL语言最基本的部分,着重于讲清概念,掌握硬件描述语言的特点。更详细的语法要求请参看VHDL参考手册。同时对于设计者来说,仅仅掌握其语法的要求还是不够的,请参阅有关指导描述具体硬件的使用书籍,设计者也可以在实践过程中,逐步掌握其描述方法。
  读者可以参考第8章,通过利用实际EDA工具,掌握本章的内容。但要注意,所有的EDA工具几乎都只能提供VHDL的一个子集。尤其对于综合工具来说,有些语句或部分特性是不能综合的。各工具所能综合的子集也都不相同。读者在使用这些工具时,一定要参考这些工具的参考手册,或者借助于这些工具中的帮助,避免使自己的描述超出规定范围。