1.2 EDA技术与硬件描述语言

随着数字电路技术的迅速发展,数字集成电路已从最初的几个门逻辑发展到现在的千万门级逻辑,这使得电路系统的设计变得非常复杂,已经超出设计人员的脑力运算,必须借助计算机的自动化设计来完成。硬件描述语言是EDA工具进行设计输入的主要方式,以硬件描述语言作为系统设计的工具具有多种优势。本节简要介绍EDA技术与硬件描述语言。

1.2.1 EDA技术简介

1.概述

从20世纪60年代中期(早于PLD开始发展的时间70年代),人们就开始研究各种计算机辅助设计(computer aided design,CAD)技术。CAD主要表现为一些印制电路板(printed circuit board,PCB)软件,用于布线设计、电路模拟、版图绘制等。CAD利用计算机的计算功能,将设计人员从大量繁琐的计算和绘图中解脱出来。

20世纪80年代初,随着集成电路规模的快速发展,出现了计算机辅助工程(computer aided engineering,CAE)技术,主要表现为设计工具和单元库的完备,并具备原理图输入、编译和连接、逻辑模拟、测试代码生成以及版图自动布局等功能。CAE软件需要针对产品开发,按照设计、分析、生产、测试等划分阶段,不同阶段使用不同软件,通过顺序循环使用这些软件完成整个设计过程。

基于CAD或CAE技术的设计过程,其自动化和智能化的程度并不高,需要使用多个软件完成一个完整的工程,各种软件千差万别,互不兼容,学习使用困难,直接影响到设计环节的衔接。同时,20世纪90年代中期以后,微电子技术以惊人的速度发展,在单芯片上可集成数百万甚至数千万只晶体管,工作速度达到GHz以上,在这种芯片上设计系统就需要更加先进的工具来支持。因此,人们开始追求将整个设计过程自动化,即电子系统设计自动化(electronic design automation,EDA)。

EDA是指利用计算机来完成电子系统的设计,以计算机和微电子技术为技术先导,汇集了计算机图形学、逻辑学、微电子工艺和结构学以及计算机数学等多种计算机应用学科最新成果的先进技术。目前,EDA技术主要以硬件描述语言输入、系统级仿真和综合技术为特征,自动将用户以高级语言描述的功能需求转化为基础门电路,将设计封装到FPGA/CPLD中或制成ASIC芯片,极大提高了系统的设计效率,使设计人员摆脱了大量的辅助性和基础性工作,将精力集中于创造性的方案与算法设计和系统结构优化上。

EDA工具种类多,系统集成度高,主要可以分为两类:一类是专业的EDA软件公司产品,比较著名的有Mentor Graphics公司系列产品(ModelSim,PADS,WG等)、Cadence公司系列产品(Incisive,Encounter,Allegro等)、Altium公司系列产品(Protel DXP等)等;一类是半导体器件厂家开发的专门用于自身产品开发的EDA工具,比较著名的包括Xilinx公司的ISE、Altera公司的Quartus Ⅱ以及TI公司的CCS软件等。

2.CPLD/FPGA开发与EDA工具

基于CPLD/FPGA的开发完全由EDA工具来完成,包括HDL语言的逻辑编译、化简、分割、综合优化、布局布线、仿真以及对特定目标器件的适配编译和编程下载等工作。

基于EDA工具的CPLD/FPGA设计主要采用硬件描述语言作为设计输入,包括抽象行为与功能描述,甚至内部的具体线路结构;之后,借助编译综合工具将设计自动转化为底层逻辑模块。这个编译转换过程不需要人工参与,并且可以在系统设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性。

典型的CPLD/FPGA EDA设计工具必须包含特殊的综合器软件包,综合器的功能是将设计者在EDA平台上完成的HDL语言、原理图描述或状态图描述,针对给定的硬件系统组件进行编译、优化和综合。作为全球最大的CPLD/FPGA器件提供商,Xilinx公司和Altera公司都已针对各自的产品推出自己的EDA设计工具。Xilinx公司的ISE集成开发环境和Altera公司的Quartus Ⅱ集成开发环境是全面包含CPLD/FPGA设计所需组件的EDA工具软件,包括设计输入、综合、仿真、布局布线、器件编程。同时,还有诸多EDA开发软件也很常用,包括综合软件Synplify、仿真软件modelSim和软件辅助工具matlab等。

1.2.2 硬件描述语言简介

硬件描述语言(hardware description language,HDL)以文本形式来描述数字系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言,可以从上层到下层(从抽象到具体)逐层描述设计者的设计思想。

EDA要求设计者用硬件描述语言来描述硬件的行为和功能。在利用EDA工具进行电子设计时,逻辑图、分立电子元器件作为整个越来越复杂的电子系统的设计已不适应。任何一种EDA工具都需要一种硬件描述语言作为其工作语言。这些众多的EDA工具软件开发者各自推出了自己的硬件描述语言。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。

VHDL和Verilog HDL是目前最流行的两种硬件描述语言,均为IEEE标准,被广泛应用于基于可编程逻辑器件的项目开发中。VHDL发展得较早,语法严格,而Verilog VHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。国外电子专业很多在本科阶段教授VHDL,在研究生阶段教授Verilog VHDL。事实上,两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快地学会另一种语言。 选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。集成电路(ASIC)设计人员,则必须首先掌握Verilog VHDL,因为在IC设计领域,90%以上的公司都是采用Verilog VHDL进行IC设计。对于CPLD/FPGA设计者而言,两种语言可以自由选择。

现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog,SystemC,Cynlib C++等。究竟选择哪种语言进行设计,整个业界正在进行激烈的讨论。