1.2 EDA主要内容
作为一门发展迅速、有着广阔应用前景的新技术,EDA技术涉及面广,内容丰富。要系统、全面的掌握EDA技术,必须掌握一系列的相关知识和理论,如作为载体的大规模可编程逻辑器件,作为主要表达手段的硬件描述语言,作为智能化设计工具的软件开发环境和作为下载和硬件验证工具的实验室开发系统等。
1.2.1 大规模可编程逻辑
可编程逻辑阵列PLD(Programmable Logic Device)是一种通过用户编程来实现某种逻辑功能的新型逻辑器件。经过近三十年的发展,可编程逻辑器件已经从最初简单PLA、PAL、GAL发展到目前应用最为广泛的CPLD/FPGA(Complex Programmable Logic Device复杂的可编程逻辑器件以及Field Programmable Gate Array现场可编程门阵列)。
FPGA是一种基于查找表LUT(Look Up Table)的可编程逻辑器件,在结构上主要分为可编程逻辑单元、可编程输入/输出单元和可编程连线三个部分。FPGA内部阵列块之间采用分段式进行互连,结构比较灵活,但是延时不可预测;比较适合于触发器多的逻辑相对简单的数据型系统。FPGA保存逻辑功能的物理结构多为SRAM型,即掉电后将丢失原有的逻辑信息,所以在使用中需要为FPGA芯片配置一个专用ROM,将设计好的逻辑信息烧录到此配置芯片中。系统上电时,FPGA就能自动从配置芯片中读取逻辑信息。
CPLD是一种基于乘积项的可编程逻辑器件,主要由可编程逻辑宏单元、可编程输入/输出单元和可编程内部连线组成。CPLD内部采用的固定长度的线进行各逻辑块的互连,因此,与FPGA相比,引脚到引脚的延时时间几乎是固定的,与逻辑设计无关,这使得设计调试比较简单,逻辑设计中的毛刺现象比较容易处理,性价比较高。CPLD具有很宽的输入结构,较适合逻辑复杂、输入变量多、对触发器的需求量相对较少的逻辑型系统这种系统。另外,CPLD结构大多为EEPROM或Flash ROM形式,编程后即可固定下载的逻辑功能,掉电后信息不丢失。
相比PLA、GAL而言,高集成度、高速度和高可靠性是CPLD/FPGA最显著的特点。高集成度方面,CPLD/FPGA几乎可以将整个系统下载于同一芯片中,实现所谓片上系统,大大缩小了产品的体积,使之易于管理和屏蔽。在高可靠性领域,只要设计得当,CPLD/FPGA完全不存在类似于MCU的复位不可靠和PC可能跑飞的问题。CPLD/FPGA还可将时钟延时缩短至毫秒级,大大提升了产品的系统性能。由于开发工具的通用性、设计语言的标准化以及设计过程与目标芯片的硬件结构的独立性,设计成功的各种逻辑功能块软件可以很好地兼容和移植,从而使得产品设计效率得到了大幅提高。
目前,国际上生产CPLD/FPGA并在我国占有较大市场份额的公司主要是XiLinx、Altera、Lattice三家。XiLinx的FPGA产品有XC2000、XC3000、XC4000、XC4000、EXC4000XLA和XC5200系列等,可用门数为1200~18000。Altera公司的CPLD器件有MAX和FLEX系列,FLEX系列有:FLEX6000、FLEX8000、FLEX10K和FLEX10KE系列等,提供门数5000~25000;Lattice公司的ISP-PLD器件有ispLSI1000、ispLSI2000、ispLSI3000和ispLSI6000系列等,集成度多达25000个PLD等效门。
1.2.2 硬件描述语言
硬件描述语言HDL(Hardware Description Language)是一种对于数字电路和系统进行性能描述和模拟的语言,即利用高级语言来描述硬件电路的功能、信号连接关系以及各器件间的时序关系。其设计理念是将硬件设计软件化,即采用软件的方式来描述硬件电路。数字电路和数字系统设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真、综合,最后利用专用集成电路或可编程逻辑器件来实现其设计功能。
传统的数字电路设计方法中,要完成整个产品设计之后才能进行产品的测试和设计的验证,因此一旦设计出现问题,需要在设计流程的最后才能发现并进行修改,直到设计的产品完全符合设计要求。而采用硬件描述语言可以在数字系统的设计阶段对系统性能进行描述和模拟仿真,以便在设计初期发现和修改绝大多数错误,缩短了硬件开发的时间,减少了硬件设计的成本,因此这种被称为高层次设计的方法目前已经得到了广泛的应用。
硬件描述语言(HDL)是EDA技术的重要组成部分,常见的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和SystemC。学术界自20世纪70年代已经开始使用HDL,发展至今已有三十多年的历史。但是最初由于各个EDA公司均开发支持自己公司产品的硬件描述语言,导致硬件描述语言品种很多,互相之间不能通用,语言本身的性能也不够完善,影响了这种设计工具的推广。直到20世纪80年代,标准化的硬件描述语言开始研究和应用,VHDL和Verilog HDL两种硬件描述语言先后成为IEEE的标准,采用硬件语言描述的设计方法才得到了广泛的应用。
目前,VHDL和Verilog HDL几乎得到了所有主流EDA工具的支持。VHDL作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。Verilog HDL适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级语言描述方面不及VHDL。
与传统的原理图设计方法相比较,硬件描述语言能更有效地表示硬件电路的特性,具有更多优点。
(1)用硬件描述语言(HDL)设计电路能够获得非常抽象的描述,设计与具体的硬件电路无关。对设计者而言,在高抽象层次进行系统设计,设计者可以将精力主要集中在系统级问题上,而不必关心低层次结构设计或制造工艺等的细节问题,这样可以节省开发时间和成本。比如设计者不用选择通用数字芯片就能写出电路的算法级描述,不用选择特定的制造工艺就能写出电路的寄存器传输级(Register Transfer Level,RTL)描述,逻辑综合工具能自动将算法级描述转换成RTL描述或将RTL描述转换成任何一种制造工艺。如果出现了新器件、新工艺,设计者不用重新设计电路,只需将电路的算法级描述或RTL描述输入到逻辑综合工具中,就能产生新的门级网表。逻辑综合工具将针对新的器件、新的工艺自动进行结构综合、电路面积和时序的优化等。
(2)用硬件描述语言(HDL)描述电路设计,在设计的前期就可以利用仿真工具完成电路功能级的验证和基于某种指定的可编程逻辑器件的时序验证。由于设计者工作在RTL级,他们可以不断修改和优化RTL描述,直到设计的系统能够满足所需要的功能和指标,这样能够发现并改进设计中绝大部分的错误,在设计后期的门级网表及物理版图中出现功能性错误的概率非常小,可以非常有效地缩短产品的开发周期。
(3)用硬件描述语言(HDL)设计电路,类似于计算机编程。辅以注释的硬件描述语言程序可以非常方便地进行数字电路和数字系统的开发和调试。
(4)用硬件描述语言(HDL)设计电路,使电路具有很好的易读性,便于理解。在大型的复杂电路系统设计中,采用门级原理图进行的设计几乎是不可理解的。
功能强大的逻辑综合工具把硬件描述语言(HDL)推到了数字电路设计的最前沿,设计者不再需要手工放置通用数字芯片的办法来“搭建”数字电路。由于使用HDL,设计者能够将更多精力投入到系统上,更好的从功能、行为和算法上表述自己的设计,并加上详细的注解,便于设计的移植和再开发。
1.2.3 软件开发工具
EDA技术的综合应用设计离不开EDA软件的支持。目前比较流行的、主流厂家的EDA软件工具有Altera公司的MAX+plus Ⅱ、Quartus Ⅱ,以及Lattice公司的ispDesignExpERT,XiLinx公司的Foundation Series、ISE/ISE-WebPACK Series。业界最流行的第三方EDA工具中,逻辑综合性能最好的是Synplify,仿真功能最强大的是ModelSim。这里,我们将主要针对Altera公司的两个产品进行相关介绍。
MAX+plus Ⅱ全称是Multiple Array Matrix and Programmable Logic User System(多阵列矩阵和可编程用户系统),是完全集成开发环境的软件,不需要第三方工具,支持30000门以下的所有设计。MAX+plus Ⅱ具体功能包括支持原理图和文本(AHDL、VHDL、Verilog)设计,自带综合器、仿真器,支持波形输入、波形模拟、时间分析、编译及下载。MAX+plusⅡ提供的原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便、精度良好的时序仿真器;具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果;在适配之后,生成供时序仿真用的EDIF、VHDL和Verilog三种不同格式的网表文件。MAX+plus Ⅱ的界面友好,使用便捷,被誉为业界最易用、易学的EDA软件。
Quartus Ⅱ是Altera公司在21世纪初推出的新一代FPGA/CPLD集成开发环境,是MAX+plus Ⅱ的更新换代产品,其界面友好,使用便捷,在短时间内就可完成设计,深受工程师认可和业界好评,逐渐成为市场广为接纳的通用接口。Quartus Ⅱ设计工具完全支持VHDL、Verilog的设计流程,可以利用第三方的综合工具,具备仿真功能的同时也支持第三方仿真工具。Quartus Ⅱ具有工作群组的设计环境EDA整合、先进的编译特性和突破临界的验证环境,使设计能更有效、更完善地规划百万门以上的逻辑门设计,并加以验证。QuartusⅡ以最新的软件技术为基础,几乎支持Altera公司所有系列的可编程逻辑器件产品。
1.2.4 实验室开发系统
除了EDA开发工具软件,EDA实验中还需要用到其他一些外围资源,以共同完成完整的EDA设计开发。
如计算机辅助分析软件MATLAB,可以用于复杂系统的系统及仿真,DSP的系统建模和有关数据的计算和分析等;印刷电路板PCB设计软件PROTEL、ORCAD等,用于设计系统的外围部件或外围部件的PCB图。
又如开发所需的各类基本信号发生模块,如时钟模块、脉冲和高低电平等;CPLD/FPGA输出信息显示模块,包括数码显示、发光管显示和声响显示等。
此外,不可或缺的还有目标芯片的适配座以及上面的CPLD/FPGA目标芯片和编程下载电路等。