域得到进一步确认。
(8)单片电子系统SOC(System On Chip)高效、低成本设计技术的成熟。
总之,随着系统开发对EDA技术的目的器件的各种性能要求的提高,ASIC和 FPGA将更大程度的、相互融合。这是因为虽然标准逻辑器件ASIC芯片尺寸大小、功能强大、耗电小,但设计复杂,并且有大批量生产需求;可编程逻辑器件开发费用低廉,能在现场进行编程,但体积大、功能有限,而且功耗较大。因此,FPGA和ASIC相互融合,取长补短。由于一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准单元发生兴趣,而有些公司采取两头并进的方法,从而使市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市速度的要求,例如将可编程逻辑器件嵌入标准单元。
现今也在进行将ASIC嵌入可编程逻辑单元的工作。目前,许多PLD公司开始为ASIC提供FPGA内核,PLD厂商与ASIC制造商结盟,为SOC设计提供嵌入式FPGA模块,使未来的ASIC供应商有机会更快进入市场,利用嵌入式内核获得更长的市场生命期。传统ASIC和FPGA之间的界限正在变得模糊。
10
第三章 硬件描述语言 VHDL
硬件描述语言是电子系统硬件行为描述、结构描述、数据描述的语言。目前利用硬件描述语言可以进行数字电子系统的设计。随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计,也在探索中。
§3.1 VHDL语言概况
VHDL(Very High Speed Integrated Circuit Hardware Descripition Language)即超高速集成电路硬件描述语言,美国国防部在20世纪80年代后期开发了VHDL语言。VHDL工作小组于1981年6月成立,提出了一个满足电子设计各种要求的能够作为工业标准的HDL。1983年第3季度,由IBM公司、TI公司、Intermetrics公司签约,组成开发小组,工作任务式提出语言版本和软件开发环境。1986年IEEE标准化组织开始工作,讨论VHDL标准语言,历时一年有余,1987年
12
月通过标准审查,并宣布实施,即
IEEE STD
1076——1987[LRM87]。1993年VHDL重新修订,形成新的标准,即IEEE STD 1076——1993[LRM93]。
此语言设计技术齐全、方法灵活、可与制作工艺无关、编程易于共享,所以成为硬件描述语言的主流,成为标硬件描述语言。将VHDL程序写入可编程芯片中,做成ASIC芯片,因其开发周期短,更改方便,所以将在大范围内取代单片控制电路,成为未来数字电路设计的主流。由于半导体编程技术的快速进步,VHDL所能提供的高阶电路描述语言方式,是复杂的电路可以通过VHDL编辑器的电路方式,轻易而快速的达到设计的规格。VHDL电路描述语言所能涵盖的范围相当广,能适用于不同阶层的设计工程师的需求。从ASIC的设计到PCB系统的设计,VHDL电路描述语言都能派上用场,所以VHDL电路设计毫无疑问的成为硬件设计工程师的必备工具。目前,VHDL
11
语言也成为FPGA/CPLD编程最常用的工具。
VHDL作为EDA的重要组成部分,提供了借助计算机进行数字系统设计的一种很好的手段。用VHDL进行设计有许多优点,VHDL的硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试。利用VHDL丰富的仿真语句和库函数,对大系统的早期设计,可在远离门级的高层次上进行模拟,以利用设计者确定整个设计结构和功能的可行性。VHDL强大的行为描述能力和程序结构,使其具有支持对大规模设计进行分解,以及对已有的设计进行再利用的功能。运用VHDL设计系统硬件具有相对独立性,设计式4没有嵌入与工艺有关的信息,对硬件的描述与具体的工艺技术和硬件结构无关。当门级或门级以上的描述通过仿真检验后,再用相应的工具将设计映射成不同的工艺,这使硬件实现的目标器件有很宽的选择范围,并且修改电路与修改工艺(或选择器件)相互之间不会产生不良影响。VHDL标准、规范,语法较为严格,采用VHDL的设计不必改变源程序,只需改变类属参数或函数,就可以改变设计的规模和结构。当然,VHDL也存在某些不足,如电路采用高级而简明的文本文件方式进行描述的同时,放弃了对电路门级实现定义的控制;由于综合工具进行逻辑综合的实现效果有时不太理想;工具的不同也导致了综合质量的差异。
由于VHDL是一种硬件描述语言,设计者需要较多的了解数字电路与逻辑设计方面的电路知识;而更为重要的是必须以一种并行语言的思路去理解和应用VHDL。VHDL描述的是实际的电路系统。电路系统内各功能模块的工作状态可以相互独立、互补相关,也可以互为结果;也就是说,任一时刻,电路系统中可有许多相关的和不相关的事件同时发生,为适应实际电路系统的工作方式,VHDL以顺序和并行的多种语句方式对同一时刻电路中所有可能发生的事件进行描述。可以认为,VHDL是一种并行语言。当然。VHDL仍旧保留着计算机语言的基本特征。用VHDL进行的设计描述只是综合器赖以构建硬件电路结构的依据,不可能代替硬件电路真实的行为方式。如用VHDL的顺序语句可以描述多路选择器、译码器等以并行工作为特征的电路,但实际电路并不按照逐个顺序判断的工作方式进行。因而,
12
尽可能了解软件语言与硬件结构间的联系,了解软件描述背后的硬件工具行为和硬件结构方式,将有助于实现高质量的VHDL设计。
总之,VHDL是EDA技术最重要的应用工具。离开硬件描述语言的支持,EDA技术将无法应用。1995年我国国家技术监督局制定的《CAD通用技术规范》推荐将VHDL作为我国电子设计自动化硬件描述语言的国家标准。目前,VHDL已经成为世界上各家EDA工具和集成电路厂商普遍认同和共同推广的硬件描述语言。掌握VHDL,利用VHDL设计电子电路,是当前进行技术竞争的一项基本技能和强有力工具。
§3.2 VHDL硬件程序结构
一个完整的VHDL语言程序一般包括五部分: (1)实体(ENTITY)部分
实体的功能是对这个实际的实体与外部电路进行借口描述,其说明部分规定了设计单元的输入输出接口或引脚,它是设计实体对外的一个通信界面。设计实体可以拥有一个或多个结构体,它描述实体的逻辑结构和逻辑功能。
实体语句结构: ENTITY 实体名 IS [GENERIC (类属表);] [PORT (端口表);] END ENTITY 实体名;
实体名就是这个设计实体的名称,注意在plusII中要求文件名必须与实体名一致。
GENERIC
类属说明语句用于设计实体和其外部环境通信的参
数,传递静态的信息。它的一般书写格式如下:
GENERIC ({常数名:数据类型[:设定值]
常数名:数据类型[:设定值]});
其中的常数名是由设计者确定的类属常数名,数据类型通常取INTEGER或TIME等类型,设定值就是常数名所代表的数值。
13
PORT端口说明语句是对一个设计实体界面的说明。它的一般书写格式如下:
PORT(端口名;端口模式 数据类型; {端口名;端口模式 数据类型});
其中的端口名是指设计者为实体的每一个对外通道所取的名字,端口模式是指这些通道上的数据流动方式,如输入输出等。数据类型是指端口上流动的数据的表达式或取值类型。
(2)结构体(ARCHITECTURE)部分
结构体用来描述系统内部的结构与行为,即描述设计实体的内部结构和外部外部设计实体端口之间的逻辑关系。
结构体的语句结构:
ARCHITECTURE结构体名OF实体名IS [说明语句] BEGIN
[功能描述语句]
END ARCHITECTURE结构实体名;
上面的实体名是指所设计实体的名字,结构体名可以由设计者自己选择,但对于多个结构体取名不可重复。结构体说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYRE)、常数(CONXTANT)、元件(COMPONNENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。对于一个结构体说明语句如希望用于其他的实体或结构体中,则需要将其作为程序包来处理。功能描述语句是包括块语句、进程语句、信号赋值语句、子程序调用语句、元件例化语句五种不同类型的语句。
(3)配置(CONFIGURATION)部分
这是属性选项,主要用来描述实体与结构体、层与层之间的连接关系,例如高层设计需要将底层实体作为文件加以利用,就要用到配置说明。
配置语句的一般格式如下:
CONFIGURATION配置名OF 实体名IS 配置说明
14