1.5 FPGA/CPLD的常用开发工具
本节主要介绍FPGA/CPLD的一些常用EDA开发工具。
Quartus Ⅱ中集成的EDA开发工具可以分为两类,一类是Altera自己提供的软件工具,另一类是其他EDA厂商提供的软件工具,后者统称为第三方工具。
常用的Altera自带FPGA/CPLD开发工具有Text Editor(文本编辑器)、Memory Editor (内存编辑器)、Mega Wizard(IP核生成器)、Schematic Editor(原理图编辑器)、Quartus Ⅱ (内嵌综合工具)、RTL Viewer(寄存器传输级视图观察器)、Assignment Editor(约束编辑器)、Logic Lock(逻辑锁定工具)、Power Fit Fitter(布局布线器)、Timing Analyzer(时序分析器)、Floorplan Editor(布局规划器)、Chip Editor(底层编辑器)、Design Space Explorer (设计空间管理器)、Design Assistant(检查设计可靠性)、Assembler(编程文件生成工具)、Programmer(下载配置工具)、Power Analyzer(功耗仿真器)、Signal Tap Ⅱ(在线逻辑分析仪)、Signal Probe(信号探针)、Qsys(可编程片上系统设计环境)、DSP Builder (内嵌DSP设计环境)、Software Builder(软件开发环境)。
第三方软件指专门的EDA工具生产商提供的设计工具,Quartus Ⅱ集成了与这些设计工具的友好接口,在Quartus Ⅱ中可以直接调用这些工具。第三方工具一般需要License授权方可使用。Quartus Ⅱ中支持的第三方工具接口有Synplify/Synplify Pro综合工具、Amplify综合工具、Precision RTL综合工具、Leonardo Spectrum综合工具、FPGA Compiler Ⅱ综合工具、Model Sim(包括SE和AE版本)仿真工具、Verilog-XL仿真工具、NC-Verilog/VHDL仿真工具、Active-HDL仿真工具、VCS/VSS仿真工具、Prime Time静态时序分析工具以及板级仿真验证工具Mentor Tau、Synopsys HSPICE和Innoveda BLAST等。
限于篇幅,本书只能对常用EDA工具加以讨论。根据设计流程与功能划分,上述EDA工具主要分为设计输入工具、综合工具、仿真工具、实现与优化工具、后端辅助工具、验证与调试工具和系统级设计环境等7类。
一、设计输入工具
设计输入是工程设计的第一步,常用的设计输入方法有HDL语言输入、原理图输入、IP Core输入和其他输入方法。
• HDL语言输入。这种设计输入方法应用最广泛,目前业界最流行的HDL语言是Verilog和VHDL语言,几乎任何文本编辑器都可以完成HDL语言输入。Quartus Ⅱ内嵌的文本编辑器是Text Editor,它能根据语法来彩色显示关键字。另外,大家常用的文本编辑器还有Ultra Edit,通过修改Ultra Edit的WORDFILE.TXT也可以支持彩色语法显示。
• 原理图设计输入方式在早期应用广泛,目前已经逐渐被HDL语言输入方式所取代,仅仅在有些设计的顶层描述时才会使用,所以本书强烈推荐初学者尽量采用HDL语言方式设计电路。Quartus Ⅱ内嵌的原理图编辑器是Schematic Editor。
• IP Core输入方式是FPGA设计中的一个重要设计输入方式。所谓IP Core,是指已经设计好且受知识产权保护的标准模块单元。Quartus Ⅱ的IP Core生成器是Megafunctions/Mega Wizard,它能生成的IP核功能繁多,从简单的基本设计模块到复杂的处理器等一应俱全,适当地使用 IP Core,能大幅度地减轻工程师的设计工作量,提高设计质量。
• 其他辅助性设计输入方法还有状态机输入、真值表输入和波形输入等。比较流行的状态机输入工具是State CAD,设计者只需画出状态转移图,状态机编辑器就能自动生成相应的VHDL、ABEL或Verilog HDL语言模型。并且状态机编辑器能生成状态转移的测试激励文件,验证寄存器传输级(RTL)模型,优化并分析状态机设计结果。合理使用状态机输入方式,能在一定程度上缓解设计者的工作量。使用真值表输入方法时,用户在工具中填充设计对应的真值表即可自动生成HDL代码。波形输入方法是,用户画出输入的激励波形和输出的相应波形,波形输入工具自动生成符合输入输出关系的功能代码。这些输入方式目前已经逐步被淘汰。
二、综合工具
主流的综合工具主要有Synplicity公司的Synplify/Synplify Pro、Synopsys公司的FPGA Compiler Ⅱ/Express、Exemplar Logic公司的Leonardo Spectrum,另外,Quartus Ⅱ还内嵌了自己的综合工具。
• Synplify/Synplify Pro作为新兴的综合工具在综合策略和优化手段上有较大幅度的提高,特别是其先进的Timing Driven(时序驱动)和BEST(Behavioral Extraction Synthesis Technology,行为级综合提取技术)算法引擎,使其综合结果往往面积较小,速度较快,在业界口碑很好。如果结合Synplicity公司的Amplify物理约束功能,对很多设计能大幅度地减少资源,优化面积达到30%以上。
• Synopsys公司的FPGA Express是最早的FPGA/CPLD综合工具之一。FPGA Express的综合结果比较忠实于原设计,其升级版本FPGA Compiler Ⅱ是最好的ASIC/FPGA设计工具之一。
• Mentor的子公司Exemplar Logic出品的Leonardo Spectrum也是一款非常流行的综合工具。它的综合优化能力也非常高,随着Exemplar Logic与Altera的合作日趋紧密,Leonardo Spectrum对Altera器件的支持也越来越好。
• Quartus Ⅱ内嵌综合工具。虽然Altera设计综合软件的经验还不够丰富,但只有Altera自己对其芯片的内部结构最了解,所以其内嵌综合工具的一些优化策略甚至优于其他专业综合工具。
三、仿真工具
业界最流行的仿真工具是Mentor公司的Model Sim。另外,Aldec公司的Active-HDL仿真工具也有相当广泛的用户群。其他如Cadence公司的Verilog-XL和NC-Verilog/VHDL仿真工具,Synopsys公司的VCS/VSS仿真工具等也具备一定的影响力。还有一些小工具和仿真相关,比如测试激励生成器等。
• Model Sim可以说是业界最流行的仿真工具之一。其主要特点是仿真速度快,仿真精度高。Model Sim支持VHDL、Verilog HDL及VHDL和Verilog HDL混合编程的仿真。Model Sim的PC版的仿真速度也很快,甚至和工作站版不相上下。
• Active-HDL也是一款比较有特色的仿真工具,其状态机分析视图在调试状态机时非常方便。另外值得一提的是,Aldec公司还开发了许多比较著名的软硬件联合仿真系统。
• 测试激励生成器是一种根据电路设计输入,自动生成测试激励的工具,它可以在一定程度上分担工程师书写测试激励文件的繁重工作。比较常用的测试激励生成器是HDL Bencher。
四、实现与优化工具
实现与优化工具包含的面比较广。如果能较好地掌握这些工具,将大幅度提高设计者的水平,使设计工作更加游刃有余。Quartus Ⅱ集成的实现工具主要有Assignment Editor(约束编辑器)、Logic Lock(逻辑锁定工具)、Power Fit Fitter(布局布线器)、Timing Analyzer (时序分析器)、Floorplan Editor(布局规划器)、Chip Editor(底层编辑器)、Design Space Explorer(设计空间管理器)和Design Assistant(检查设计可靠性)等。
• Assignment Editor是图形界面的用户约束输入工具。约束文件包含时钟属性、延时特性、管脚位置、寄存器分组、布局布线要求和特殊属性等信息,这些信息指导实现过程,是由用户设计的决定电路实现的目标与标准。设计约束文件有较高的技巧性,如果约束文件设计得当,会帮助Quartus Ⅱ达到用户的设计目标,如果过约束或约束不当,会影响电路性能。
• Quartus Ⅱ内嵌的Logic Lock用以完成模块化设计流程,通过划分每个模块的设计区域,然后单独设计和优化每个模块,最后将每个模块融合到顶层设计中。模块化设计方法是团队协作、并行设计的集中体现。Logic Lock支持模块化设计流程、增量设计流程、团队设计流程等设计方法,合理使用这些方法,能在最大程度上继承以往设计成果、并行分工协作、有效利用开发资源、缩短开发周期。
• Power Fit Fitter是Quartus Ⅱ内嵌的布局布线器。
• Timing Analyzer是Quartus Ⅱ内嵌的STA分析工具,用以定位、分析并改善设计的关键路径,从而提高设计的工作频率。
• Floorplan Editor用以观察、规划、修改芯片内部的实际布局布线情况,是用户分析设计结构、指导布局布线的重要工具。
• Chip Editor也是分析、修改芯片内部布线情况的重要工具。通过Chip Editor可以观察芯片时序的关键路径,将Chip Editor 与Signal Tap Ⅱ 和Signal Probe调试工具配合使用,可以加快设计验证及增量化修改在设计验证期间未解决的错误。
• Design Space Explorer(缩写为DSE,即设计空间管理器)是控制Quartus Ⅱ布局布线的另一种有效方法。DSE对应一个名为dse.tcl的Tcl 脚本,可以使用quartus_sh 可执行文件从命令行运行它,用以优化设计。DSE 界面能自动试验一系列的Quartus Ⅱ 选项和设置,从而确定优化设计的最佳参数设置。
• Design Assistant内嵌工具用以检查设计的可靠性。
五、后端辅助工具
Quartus Ⅱ内嵌的后端辅助工具主要有Assembler(编程文件生成工具)、Programmer (下载配置工具)和Power Gauge(功耗仿真器)。
• Assembler是Quartus Ⅱ Compiler的一个内嵌工具,用以完成FPGA/CPLD配置文件的生成。
• Programmer是Quartus Ⅱ内嵌的下载编程工具,用于对FPGA/CPLD下载配置。
• Power Analyzer是Quartus Ⅱ内嵌的功耗仿真器,用以估算设计的功耗。
六、验证调试工具
Quartus Ⅱ内嵌的调试工具有Signal Tap Ⅱ(在线逻辑分析仪)和Signal Probe(信号探针)。常用的板级仿真验证工具还有Mentor Tau、Synopsys HSPICE 和Innoveda BLAST等。
• Signal Tap Ⅱ (在线逻辑分析仪)和Signal Probe(信号探针)功能配合使用,用以分析器件内部节点和I/O 引脚上的信号。Signal Tap Ⅱ 逻辑分析仪使用内嵌的逻辑分析器将信号数据通过JTAG 端口送往Signal Tap Ⅱ 逻辑分析器或外部逻辑分析仪或示波器;Signal Probe 采用增量式路由方式,将选定信号送往外部逻辑分析仪或示波器。
• Mentor Tau和Innoveda BLAST板级验证工具用以分析Quartus Ⅱ生成STAMP模型。
七、系统级设计环境
Quartus Ⅱ的系统级设计环境主要包括Qsys(可编程片上系统设计环境)、DSP Builder (内嵌DSP设计环境)和Software Builder(软件开发环境)。
• Qsys为用户提供了一个标准化的系统集成图形设计环境。Altera的Qsys标准结构由CPU、存储器接口、标准外围设备和用户自定义的外围设备等组件组成。Qsys 允许选择和自定义系统模块的各个组件和接口。
• DSP Builder是一个图形化的DSP算法开发环境。DSP Builder 允许系统、算法和硬件设计者共享公共开发平台。DSP Builder 是由Altera 提供的一个可选软件包,且DSP 开发工具包中也包含它。DSP Builder 可使用Signal Tap 在线逻辑分析仪对系统进行调试,还可以通过MATLAB/Simulink 接口综合、编译和下载设计,然后执行调试。
• 软件编译环境,目前有两种CPU可供使用,一种是ARM结构的硬核CPU,嵌入于SOC芯片中(Cyclone V + ARM9)。这种CPU基于ARM的嵌入式设计套件EDS作为固件开发和应用软件开发的平台。SoC EDS的核心是独特的Altera版ARM Development Studio 5 ( DS-5™)工具包。这一工具包结合了ARM DS-5高级多核调试功能和FPGA自适应功能,前所未有的实现了全芯片调试可视化和控制能力。另一种软件编译环境应用于软核CPU ( Nios Ⅱ ),作为软核,它可以应用于各种FPGA,并可以实现多个。它使用基于eclipse定制的Nios Ⅱ 开发工具。