2017-03-28 00:00:00小静 EDA技术培训
(8)制版、流片。送IC生产线进行制版,光罩和流片,进行试验性生产。
(9)芯片测试。测试芯片是否符合设计要求,并评估成品率。
1.7 面向FPGA的EDA开发工具
EDA工具在EDA技术应用中占据十分重要的位置,EDA的核心是利用计算机完成电子设计全程自动化,因此,基于计算机环境的EDA软件的支持是必不可少的。由于EDA的整个流程涉及不同技术环节,每一环节中必须有对应的软件包或专用EDA工具独立处理,包括对电路模型的功能模拟、对VHDL行为描述的逻辑综合等。因此单个EDA工具往往只涉及EDA流程中的某一步骤。这里就以EDA设计流程中涉及的主要软件包为EDA工具分类,并给予简要介绍。EDA工具大致可以分为5个模块:设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)和下载器。
当然这种分类不是绝对的,还有些辅助的EDA工具没有在上面的分类中,如物理综合器,例如Synplicity的Amplify和Mentor的Precision Physical Synthesis、HDL代码分析调试器,例如Debussy、形式验证(Formal Verification)工具。
由于对于一般设计使用不是很多,在这里就不再详细讲述。另外每个FPGA/CPLD生产厂家为了方便用户,往往都提供集成开发环境,如Altera的Quartus II。
1.7.1 设计输入编辑器
在以上曾对设计输入编辑器或称设计输入环境作了部分介绍,它们可以接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及HDL的文本输入方式。在各可编程逻辑器件厂商提供的EDA开发工具中,一般都含有这类输入编辑器,如Xilinx的ISE、Altera的MAX+plus II和Quartus II等。
通常专业的EDA工具供应商也提供相应的设计输入工具,这些工具一般与该公司的其他电路设计软件整合,这点尤其体现在原理图输入环境上。如Innovada的eProduct Designer中的原理图输入管理工具DxDesigner(原为ViewDraw),既可作为PCB设计的原理图输入,又可作为IC设计、模拟仿真和FPGA设计的原理图输入环境。比较常见的还有Cadence的Orcad中的Capture工具等。这一类的工具一般都设计成通用型的原理图输入工具。由于针对FPGA/CPLD设计的原理图要含有特殊原理图库(含原理图中的Symbol)的支持,因此其输出并不与EDA流程的下步设计工具直接相连,而要通过网表文件(如EDIF文件)来传递。
由于HDL(包括VHDL、Verilog HDL等)的输入方式是文本格式,所以它的输入实现要比原理图输入简单得多,用普通的文本编辑器即可完成。如果要求HDL输入时有语法色彩提示,可用带语法提示功能的通用文本编辑器,如UltraEdit、Vim、XEmacs等。当然EDA工具中提供的HDL编辑器会更好用些,如Aldec的Active HDL中的HDL编辑器、Altium的DXP 2004中的HDL编辑器。
另一方面,由于可编程逻辑器件规模的增大,设计的可选性大为增加,需要有完善的设计输入文档管理,Mentor提供的HDL Designer Series就是此类工具的一个典型代表。
有的EDA设计输入工具把图形设计与HDL文本设计相结合,如在提供HDL文本编辑器的同时提供状态机编辑器,用户可用图形(状态图)来描述状态机,最后生成HDL文本输出。如Visual HDL、Mentor公司的FPGA Adantage(含HDL Designer Series)、Active HDL中的Active State等。尤其是HDL Designer Series中的各种输入编辑器,可以接受诸如原理图、状态图、表格图等输入形式,并将它们转成HDL(VHDL/Verilog)文本表达方式,很好地解决了通用性(HDL输入的优点)与易用性(图形法的优点)之间的矛盾。
设计输入编辑器在多样、易用和通用性方面的功能不断增强,标志着EDA技术中自动化设计程度的不断提高。
1.7.2 HDL综合器
由于目前通用的HDL语言为VHDL、Verilog HDL,这里介绍的HDL综合器主要是针对这两种语言的。
硬件描述语言诞生的初衷是用于电路逻辑的建模和仿真的,但直到Synoposys推出了HDL综合器后,才改变了人们的看法,于是可以将HDL直接用于电路的设计。
由于HDL综合器是目标器件硬件结构细节、数字电路设计技术、化简优化算法以及计算机软件的复杂结合体,而且HDL可综合子集标准化过程缓慢,所以相比于形式多样的设计输入工具,成熟的HDL综合器并不多。比较常用的,性能良好的FPGA/CPLD设计的HDL综合器有以下3种。
● Synopsys公司的FPGA Compiler II、DC-FPGA综合器。
● Synplicity公司的Synplify Pro综合器。
● Mentor子公司Exemplar Logic的LeonardoSpectrum综合器和Precision RTL Synthesis综合器。
较早推出综合器的是Synopsys公司,它为FPGA/CPLD开发推出的综合器是FPGA Compiler及DC-FPGA。为了便于处理,最初由Synopsys公司在综合器中增加了一些用户自定义类型,如Std_logic等,后被纳入IEEE标准。对于其他综合器也都只能支持VHDL中的可综合子集。FPGA Compiler中带有一个原理图生成浏览器,可以把综合出的网表用原理图的方式画出来,便于验证设计,还附有强大的延时分析器,可以对关键路径进行单独分析。
Synplicity公司的Synplify Pro除了有原理图生成器、延时分析器外,还带有一个FSM Compiler(有限状态机编译器),可以从提交的VHDL/Verilog设计文本中提出存在的有限状态机设计模块,并用状态图的方式显示出来,用表格来说明状态的转移条件及输出。Synplify Pro的原理图浏览器可以定位原理图中元件在VHDL/Verilog源文件中的对应语句,便于调试。
Exemplar公司的Leonardo Spectrum也是一个很好的HDL综合器,它同时可用于FPGA/CPLD和ASIC设计两类工程目标。Leonardo Spectrum作为Mentor的FPGA Adantage中的组成部分,与FPGA Adantage的设计输入管理工具和仿真工具有很好的结合。
当然也有应用于ASIC设计的HDL综合器,如Synopsys的Design Compiler,Synplicity的Synplify ASIC,Cadence的Synergy等。
HDL综合器在把可综合的VHDL/Verilog程序转化成硬件电路时,一般要经过两个步骤:第一步是HDL综合器对VHDL/Verilog进行分析处理,并将其转成相应的电路结构或模块,这时是不考虑实际器件实现的,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程;第二步是对应实际实现的目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径等。
HDL综合器的输出文件一般是网表文件,如EDIF格式(Electronic Design Interchange Format.),文件后缀是.edf ,是一种用于设计数据交换和交流的工业标准文件格式的文件,或是直接用VHDL/Verilog语言表达的标准格式的网表文件,或是对应FPGA器件厂商的网表文件,如Xilinx的XNF网表文件。
由于综合器只完成EDA设计流程中的一个独立设计步骤,所以它往往被其他EDA环境调用,以完成全部流程。它的调用方式一般有两种:一种是前台模式,在被调用时,显示的是最常见的窗口界面;另一种称为后台模式或控制台模式,被调用时不出现图形界面,仅在后台运行。
综合器的使用也有两种模式:图形模式和命令行模式(Shell模式)。
1.7.3 仿真器
仿真器有基于元件(逻辑门)的仿真器和HDL语言的仿真器之分,基于元件的仿真器缺乏HDL仿真器的灵活性和通用性。在此主要介绍HDL仿真器。
在EDA设计技术中仿真的地位十分重要。行为模型的表达、电子系统的建模、逻辑电路的验证乃至门级系统的测试,每一步都离不开仿真器的模拟检测。在EDA发展的初期,快速地进行电路逻辑仿真是当时的核心问题,即使在现在,各设计环节的仿真仍然是整个EDA工程流程中最耗时间的一个步骤,因此仿真器的仿真速度、仿真的准确性、易用性成为衡量仿真器的重要指标。按仿真器对设计语言不同的处理方式分类,可分为编译型仿真器和解释型仿真器。
编译型仿真器的仿真速度较快,但需要预处理,因此不便即时修改;解释型仿真器的仿真速度一般,可随时修改仿真环境和条件。
按处理的硬件描述语言类型分,HDL仿真器可分为VHDL仿真器、Verilog仿真器、Mixed HDL仿真器(混合HDL仿真器,同时处理Verilog与VHDL)和其他HDL仿真器(针对其他HDL语言的仿真)。
Model Technology的ModelSim是一个出色的VHDL/Verilog混合仿真器。它也属于编译型仿真器,仿真执行速度较快。
Cadence的Verilog-XL是最好的Verilog仿真器之一,Verilog-XL的前身与Verilog语言一起诞生。
按仿真的电路描述级别的不同,HDL仿真器可以单独或综合完成以下各仿真步骤:
(1)系统级仿真。
(2)行为级仿真。
(3)RTL级仿真。
(4)门级时序仿真。
按仿真时是否考虑硬件延时分类,可分为功能仿真和时序仿真,根据输入仿真文件的不同,可以由不同的仿真器完成,也可由同一个仿真器完成。
几乎各个EDA厂商都提供基于Verilog/VHDL的仿真器。常用的HDL仿真器除上面提及的ModelSim与Verilog-XL外、还有Aldec的Active HDL、Synopsys的VCS,Cadence的NC-Sim等。
1.7.4 适配器(布局布线器)
适配器的任务是完成目标系统在器件上的布局布线。适配,即结构综合通常都由可编程逻辑器件的厂商提供的专门针对器件开发的软件来完成。这些软件可以单独或嵌入在厂商的针对自己产品的集成EDA开发环境中存在。例如Lattice公司在其ispLEVEL开发系统嵌有自己的适配器,但同时提供性能良好、使用方便的专用适配器:ispEXPERT Compiler;而Altera公司的EDA集成开发环境MAX+plus II、Quartus II中都含有嵌入的适配器(Fitter);Xilinx的Foundation和ISE中也同样含有自己的适配器。
适配器最后输出的是各厂商自己定义的下载文件,用于下载到器件中以实现设计。适配器输出以下多种用途的文件。
● 时序仿真文件,如MAX+plus II的SCF文件。
● 适配技术报告文件。
● 面向第三方EDA工具的输出文件,如EDIF、VHDL或Verilog格式的文件。
● FPGA/CPLD编程下载文件,如用于CPLD编程的JEDEC、POF、ISP等格式的文件;用于FPGA配置的SOF、JAM、BIT等格式的文件。
1.7.5 下载器(编程器)
把设计下载到对应的实际器件,实现硬件设计。软件部分一般都由可编程逻辑器件的厂商提供的专门针对器件下载或编程软件来完成。
1.8 Quartus II概述
由于本书给出的实验是基于Quartus II的,其应用方法和设计流程对于其他流行的EDA工具的使用具有一定的典型性和一般性,所以在此对它作一些介绍。
Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成1.5节所述的整个流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。
Altera的Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Compiler II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。
Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Compiler Database Interface)等。可以通过选择 Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择 Compiler Tool (Tools 菜单),在 Compiler Tool窗口中运行该模块来启动编译器模块。在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。
此外,Quartus II还包含许多十分有用的LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartus II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。
图1-9中所示的上排是Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。在图1-9下排的流程框图,是与上面的Quartus II设计流程相对照的标准的EDA开发流程。
Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL’87及VHDL’97标准)、Verilog HDL及AHDL(Altera HDL),AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主的硬件描述语言,只有企业标准。
Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。Quartus II拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。在作仿真前,需要利用波形编辑器编辑一个波形激励文件,用于仿真验证时的激励。编译和仿真经检测无误后,便可以将下载信息通过Quartus II提供的编程器下载入目标器件中了。
电子设计自动化技术及其发展 - Ryan - liyongfeng1111的博客
图1-9 Quartus II设计流程
1.9 IP(Intellectual Property)核
IP就是知识产权核或知识产权模块的意思,在EDA技术和开发中具有十分重要的地位。美国著名的Dataquest咨询公司将半导体产业的IP定义为用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。IP分软IP、固IP和硬IP。
软IP是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。软IP通常是以硬件描述语言HDL源文件的形式出现,应用开发过程与普通的HDL设计也十分相似,只是所需的开发软硬件环境比较昂贵。软IP的设计周期短,设计投入少。由于不涉及物理实现,为后续设计留有很大的发挥空间,增大了IP的灵活性和适应性。软IP的弱点是在一定程度上使后续工序无法适应整体设计,从而需要一定程度的软IP修正,在性能上也不可能获得全面的优化。
固IP是完成了综合的功能块。它有较大的设计深度,以网表文件的形式提交客户使用。如果客户与固IP使用同一个IC生产线的单元库,IP应用的成功率会高得多。
硬IP提供设计的最终阶段产品是掩膜。随着设计深度的提高,后续工序所需要做的事情就越少,当然,灵活性也就越小。不同的客户可以根据自己的需要订购不同的IP产品。由于通信系统越来越复杂,PLD的设计也更加庞大,这增加了市场对IP核的需求。各大FPGA/CPLD厂家继续开发新的商品IP,并且开始提供“硬件”IP,即将一些功能在出厂时就固化在芯片中。
实际上,IP的概念早已在IC设计中使用,应该说标准单元库(Standard Cell library)中的功能单元就是IP的一种形式。IC生产厂(Foundry)为扩大业务,提供精心设计并经过工艺验证的标准单元,以吸引IC设计公司(往往是Fabless,无生产线IC公司)成为他的客户,同时向客户免费提供相关的数据资料。于是IC设计师十分乐于使用成熟、优化的单元完成自己的设计,这样既可以提高效率,又可以减少设计风险。设计师一旦以这些数据完成设计,自然也就必须要到这家Foundry去做工艺流片,这就使Foundry达到了扩大营业的目的。
标准单元使用者除与Foundry签订“标准单元数据不扩散协议”之外,无须另交单元库的使用费,因此Foundry并没有直接获取IP的收益,只是通过扩大营业间接收到单元库的IP效益,这就是IP的初级形式。
今天的IP已远远超出了这个水平,IP已经成为IC设计的一项独立技术,成为实现SOC设计的技术支撑以及ASIC设计方法学中的学科分支。
从集成规模上说,现在的IP库已经包含有诸如8051、ARM、PowerPC等微处理器,320C50等数字信号处理器,MPEG-II、JPEG等数字信息压缩/解压器在内的大规模IC模块。这些模块都曾经是具有完整功能的IC产品,并曾广泛用来与其他功能器件一起,在PCB上构成系统主板。如今微电子技术已经具有在硅片上实现系统集成的功能,因此这些昔日的IC便以模块“核”(Core)的形式嵌入ASIC或SOC之中。
从设计来源上说,单纯靠Foundry设计IP模块已远不能满足系统设计师的要求。今天的IP库需要广开设计源头,汇纳优秀模块,不论出自谁家,只要是优化的设计,与同类模块相比达到芯片面积更小、运行速度更快、功率消耗更低、工艺容差更大,就自然会有人愿意花钱使用这个模块的“版权”,因此也就可以纳入IP库,成为IP的一员。
目前,尽管对IP还没有统一的定义,但IP的实际内涵已有了明确的界定:首先,它必须是为了易于重用而按嵌入式应用专门设计的。即使是已经被广泛使用的产品,在决定作为IP之前,一般来说也须要再做设计,使其更易于在系统中嵌入。比较典型的例子是嵌入式RAM,由于嵌入后已经不存在引线压点(PAD)的限制,所以在分立电路中不得不采取的措施,诸如数据线输入输出复用、地址数据线分时复用、数据串并转换以及行列等分译码等,在嵌入式RAM中将被去除,不仅节省了芯片面积,而且大幅提高了读写速度。
其次是必须实现IP模块的优化设计。优化的目标通常可用“四最”来表达,即芯片的面积最小、运算速度最快、功率消耗最低、工艺容差最大。所谓工艺容差大是指所做的设计可以经受更大的工艺波动,是提高加工成品率的重要保障。这样的优化目标是普通的自动化设计过程难以达到的,但是对于IP却又必须达到。因为IP必须能经受得起成千上万次的使用。显然,IP的每一点优化都将产生千百倍甚至更大的倍增效益。因此基于晶体管级的IP设计便成为完成IP设计的重要的途径。
再次,就是要符合IP标准。这与其他IC产品一样,IP进入流通领域后,也需要有标准。于是在1996年以后,RAIPD(Reusable Application-specific Intellectual-property Developers)、VSIA(Virtual Socket Interface Alliance)等组织相继成立,协调并制订IP重用所需的参数、文档、检验方式等形式化的标准,以及IP标准接口、片内总线等技术性的协议标准。虽然这些工作已经开展了多年,也制订了一些标准,但至今仍有大量问题有待解决。例如,不同嵌入式处理器协议的统一、不同IP片内结构的统一等问题。
我国在IP设计方面尚处于起步阶段,与IP的应用需求形成明显的不一致,这为我国未来的IP设计工程师提供了广阔的用武之地。
1.10 EDA技术的发展趋势
随着市场需求的增长,集成工艺水平及计算机自动设计技术的不断提高,促使单片系统,或称系统集成芯片成为IC设计的发展方向,这一发展趋势表现在以下几个方面。
● 超大规模集成电路的集成度和工艺水平不断提高,深亚微米(Deep-Submicron)工艺,如0.13μm、90nm已经走向成熟,在一个芯片上完成的系统级的集成已成为可能。
● 由于工艺线宽的不断减小,在半导体材料上的许多寄生效应已经不能简单地被忽略。这就对EDA工具提出了更高的要求。同时,也使得IC生产线的投资更为巨大。可编程逻辑器件开始进入传统的ASIC市场。
● 市场对电子产品提出了更高的要求,如必须降低电子系统的成本,减小系统的体积等,从而对系统的集成度不断提出更高的要求。同时,设计的效率也成了一个产品能否成功的关键因素,促使EDA工具和IP核应用更为广泛。
● 高性能的EDA工具得到长足的发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。
● 计算机硬件平台性能大幅度提高,为复杂的SOC设计提供了物理基础。
但现有的HDL语言只是提供行为级,或功能级的描述,尚无法完成对复杂的系统级的抽象描述。人们正尝试开发一种新的系统级设计语言来完成这一工作,现在已开发出更趋于电路行为级的硬件描述语言,如SystemC、SystemVerilog及系统级混合仿真工具,可以在同一个开发平台上完成高级语言,如C/C++等,与标准HDL语言(VeriIog HDL、VHDL)或其他更低层次描述模块的混合仿真。虽然用户用高级语言编写的模块尚不能自动转化成HDL描述,但作为一种针对特定应用领域的开发工具,软件供应商已经为常用的功能模块提供了丰富的宏单元库支持,可以方便地构建应用系统,并通过仿真加以优化,最后自动产生HDL代码,进入下一阶段的ASIC实现。
此外,随着系统开发对EDA技术的目标器件各种性能要求的提高,ASIC和FPGA将更大程度地相互融合。这是因为虽然标准逻辑ASIC芯片尺寸小、功能强大、耗电省,但设计复杂,并且有批量生产要求;可编程逻辑器件开发费用低廉,能在现场进行编程,但却体积大、功能有限,而且功耗较大。因此,FPGA和ASIC正在走到一起,互相融合,取长补短。由于一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准逻辑单元发生兴趣,而有些公司采取两头并进的方法,从而使市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市速度的要求。例如将可编程逻辑器件嵌入标准单元。
尽管将标准单元核与可编程器件集成在一起并不意味着使ASIC更加便宜,或使FPGA更加省电。但是,可使设计人员将两者的优点结合在一起,通过去掉FPGA的一些功能,可减少成本和开发时间并增加灵活性。当然现今也在进行将ASIC嵌入可编程逻辑单元的工作。目前,许多PLD公司开始为ASIC提供FPGA内核。PLD厂商与ASIC制造商结盟,为SOC设计提供嵌入式FPGA模块,使未来的ASIC供应商有机会更快地进入市场,利用嵌入式内核获得更长的市场生命期。
例如在实际应用中使用所谓可编程系统级集成电路(FPSLIC),即将嵌入式FPGA内核与RISC微控制器组合在一起形成新的IC,广泛用于电信、网络、仪器仪表和汽车中的低功耗应用系统中。当然,也有PLD厂商,不把CPU的硬核直接嵌入在FPGA中,使用了软IP核,并称之为SOPC(可编程片上系统),也可以完成复杂电子系统的设计,只是代价将相应提高。
在新一代的ASIC器件中留有FPGA的空间。如果希望改变设计,或者由于开始的工作中没有条件完成做足够的验证测试,稍后也可以根据要求对它编程。有了一定的再修改的自由度。ASIC设计人员采用这种小的可编程逻辑内核用于修改设计问题,很好地降低了设计风险。增加可编程逻辑的另一个原因是,考虑到设计产品的许多性能指标变化太快,特别是通信协议,为已经完成设计并投入应用的IC留有多次可自由更改的功能是十分有价值的事,这在通信领域中的芯片设计方面尤为重要。
现在,传统ASIC和FPGA之间的界限正变得模糊。系统级芯片不仅集成RAM和微处理器,也集成FPGA。整个EDA和IC设计工业都朝这个方向发展,这并非是FPGA与ASIC制造商竞争的产物,而对于用户来说,意味着有了更多的选择。
861
人