您好,欢迎访问三七文档
第2章FPGA设计流程第2章FPGA设计流程2.1QuartusⅡ设计流程概述2.2设计输入2.3设计约束和分配2.4设计综合2.5布局布线2.6基于模块的设计2.7仿真2.8时序分析2.9时序逼近2.10用QuartusⅡ完成FPGA设计的实例第2章FPGA设计流程2.1QuartusⅡ设计流程概述AlteraQuartusⅡ设计软件提供完整的多平台设计环境,能够直接满足特定的设计需要,为可编程芯片系统提供全面的设计工具。QuartusⅡ软件含有FPGA和CPLD设计所有阶段的解决方案。QuartusⅡ的主要设计流程如图2.1所示。第2章FPGA设计流程图2.1QuartusⅡ的设计流程第2章FPGA设计流程QuartusⅡ为设计流程中每一个阶段提供的主要工具和功能如下。1)设计输入(DesignEntry)(1)文本编辑器(TextEditor)是一个灵活的工具,用于以AHDL、VHDL和VerilogHDL语言以及Tcl脚本语言输入文本型设计。还可以使用TextEditor输入、编辑和查看其他ASCII文本文件,包括为QuartusⅡ软件或由QuartusⅡ软件建立的文本文件。(2)模块编辑器(BlockEditor)用于以原理图和框图的形式输入和编辑图形设计信息。第2章FPGA设计流程(3)符号编辑器(SymbolEditor)用于查看和编辑代表宏功能、宏功能模块、基本单元或设计文件的预定义符号。(4)使用MegaWizardPlug-inManager建立Altera宏功能模块、LPM功能和IP功能,用于QuartusⅡ软件和EDA设计输入与综合工具中的设计。第2章FPGA设计流程2)约束和分配输入(ConstraintandAssignmentEntry)(1)分配编辑器(AssignmentEditor)界面用于在QuartusⅡ软件中建立、编辑节点和实体级别的分配。分配用于在设计中为逻辑指定各种选项和设置,包括位置、I/O标准、时序、逻辑选项、参数、仿真和引脚分配等。(2)引脚规划器(PinPlanner)。Assignments菜单下的引脚规划器中,可视化工具为引脚和引脚组分配提供了另一种途径。它包括器件的封装视图,以不同的颜色和符号表示不同类型的引脚,并以其他符号表示I/O块。引脚规划器使用的符号与器件系列数据手册中的符号非常相似,它还包括已分配和未分配引脚的列表。第2章FPGA设计流程(3) Settings对话框。可以使用Settings对话框(Assignments菜单)为工程指定分配和选项,可以设置一般工程范围的选项以及综合、适配、仿真和时序分析选项。(4)平面布局图编辑器(FloorplanEditor)可以用来直观地分配资源。(5)设计分区窗口用以建立和修改设计分区。第2章FPGA设计流程3)综合(Synthesis)(1)可以使用分析和综合(Analysis&Synthesis)模块分析设计文件,建立工程数据库。Analysis&Synthesis使用QuartusⅡIntegratedSynthesis综合Verilog(.v)或者VHDL设计文件(.vhd)。根据需要可以使用其他EDA综合工具综合VerilogHDL或VHDL设计文件,然后生成QuartusⅡ软件使用的EDIF网表文件(.edf)或者VerilogQuartusMappingFile(.vqm)。(2)设计助手(DesignAssistant)依据设计规则,检查设计的可靠性。(3)通过RTLViewer可以查看设计的原理图,RTLViewer包括原理图视图,同时也包括层次结构列表,列出整个设计网表的实例、基本单元、引脚和网络。第2章FPGA设计流程(4) TechnologyMapViewer提供设计的底级或基元级专用技术原理表征。TechnologyMapViewer包括一个原理视图以及一个层次列表,列出整个设计网表的实例、基本单元、引脚和网络。(5)增量综合(IncrementalSynthesis)是自上而下渐进式编译流程的组成部分,可以将设计中的实体指定为设计分区,在此基础上逐渐进行Analysis&Synthesis,而不会影响工程的其他部分。第2章FPGA设计流程4)布局布线(Place&Route)(1) Fitter使用由Analysis&Synthesis建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给最佳逻辑单元位置,进行布线和时序分析,并选定相应的互连路径和引脚分配。(2)完整的增量编译(FullIncrementalCompiler)使用以前的编译结果,确保只有修改过的设计部分需要进行重新编译,因此能够保持设计性能不变,节省编译时间。(3)使用Messages窗口查看适配结果。Report窗口和Report文件的Messages部分以及Messages窗口的Processing标签显示最近编译或仿真产生的信息。(4) Report窗口包含许多部分,可以帮助使用者对Fitter以布局布线的方式进行分析,显示资源的使用情况,它还列出Fitter生成的错误消息,以及正在运行的任何其他模块的消息。第2章FPGA设计流程(5)运行Fitter之后,时序逼近平面布局图(TimingClosureFloorplan)将显示布局布线的结果。此外,可以反标适配结果,以保留上次编译期间的资源分配。由可编辑的时序逼近平面布局图查看Fitter以及用户分配执行的逻辑布局,进行LogicLock区域分配,并查看布线的拥塞情况。(6)运行Fitter并分析结果之后,可以使用多种方法来优化适配:①使用位置分配;②设置用于控制布局布线的选项;③使用ResourceOptimizationAdvisor;④使用DesignSpaceExplorer。第2章FPGA设计流程5)仿真(Simulation)(1)仿真分为功能仿真、时序仿真以及采用FastTiming模型进行的时序仿真。功能仿真用以测试设计的逻辑功能。时序仿真在目标器件中测试设计的逻辑功能和最坏情况下的时序。采用FastTiming模型进行的时序仿真,在最快的器件速率等级上仿真尽可能快的时序条件。(2)使用NativeLink功能,使其他公司提供的EDA仿真工具可以在QuartusⅡ软件中自动设置和运行。(3) QuartusⅡ提供的Simulator在工程中可仿真任何设计。(4)波形编辑器(WaveformEditor)可以建立和编辑用于波形或文本格式仿真的输入向量。使用WaveformEditor,可以将输入向量添加到波形文件中,此文件用于描述设计中的逻辑行为。第2章FPGA设计流程6)时序分析(TimingAnalysis)(1) TimingAnalyzer在完整编译期间自动对设计进行时序分析。(2)使用TimingWizard(Assignments菜单)、Settings对话框和AssignmentEditor,指定初始工程全局范围和个别的时序要求。(3)在完整编译期间进行时序分析或在初始编译之后单独进行时序分析。(4)在部分编译之后,适配完成之前,进行早期时序估算(EarlyTimingEstimate)。(5)使用Report窗口、时序逼近平面布局图和list_pathTcl命令来查看时序分析的结果。第2章FPGA设计流程7)时序逼近(TimingClosure)(1)可以使用时序逼近平面布局图查看Fitter生成的逻辑布局,查看用户分配、LogicLock区域分配以及设计的布线信息。可以使用这些信息在设计中识别关键路径,进行时序分配、位置分配和LogicLock区域分配,达到时序逼近。(2) TimingOptimizationAdvisor针对设计时序优化,在最大频率(fMAX)、建立时间(tSU)、时钟至输出延时(tCO)和传播延时(tPD)等方面提出建议。(3)网表优化选项用于在综合及布局布线期间进一步优化设计。网表优化具有按键式特性,它通过修改网表以提高性能,从而来改进fMAX结果,不管使用何种综合工具,均可应用该选项。第2章FPGA设计流程(4)可以使用LogicLock区域达到时序逼近,方法是:在时序逼近平面布局图中分析设计,然后将关键逻辑约束在LogicLock区域中。LogicLock区域通常为分层结构,使用户对模块或模块组的布局和性能有更强的控制。可以在个别节点上使用LogicLock功能,例如,将沿着关键路径的节点分配给LogicLock区域。(5)可以使用DesignSpaceExplorer(DSE)Tcl脚本(dse.tcl)针对时序进行优化设计。DSE界面可以使用户浏览一定范围内的QuartusⅡ选项和设置,自动确定应采用哪种设置以获得工程的最佳可能结果。可以指定允许DSE所做修改的级别、优化目标、目标器件和允许的编译时间。第2章FPGA设计流程8)功耗分析(PowerAnalysis)(1) PowerPlayPowerAnalyzer用以进行设计的功耗分析,可以设定初始化功耗分析过程中的触发速率和静态几率,以及是否需要将功耗分析过程中使用的信号活动写入到输出文件,还可以指定基于实体的触发速率。对于有些器件,QuartusⅡ软件将分析设计拓扑和功能,填补任何丢失的信号活动信息。(2)在设计过程的任何阶段都可以使用PowerPlayEarlyPowerEstimator来估算功耗。第2章FPGA设计流程9)编程和配置(Programming&Configuration)(1)可以用Programmer对一个或多个器件进行编程或配置。(2)可以使用本地计算机未提供的编程硬件,配置本地JTAG服务器设置,使远程用户连接到本地JTAG服务器进行编程。第2章FPGA设计流程10)调试(Debugging)(1) SignalTapⅡ逻辑分析仪(SignalTapⅡLogicAnalyzer)是系统级调试工具,可以捕获和显示实时信号行为,观察系统设计中硬件和软件之间的相互作用。QuartusⅡ软件可以选择要捕获的信号、开始捕获信号的时间以及要捕获多少数据样本。还可以选择是将数据从器件的存储器块通过JTAG端口传送至SignalTapⅡLogicAnalyzer,还是传送至I/O引脚以供外部逻辑分析仪或示波器使用。(2) SignalProbe功能允许在不影响设计现有适配的情况下,将用户指定的信号连接到输出引脚,而不需要再进行一次完整编译就可以调试信号。从一个已经完成完全布线的设计开始,可以选择并对要调试的信号布线,通过以前保留的或当前尚未使用的I/O引脚进行调试。第2章FPGA设计流程(3)当系统存储器内容编辑器(In-SystemMemoryContentEditor)允许运行时,独立于设计的系统时钟,来查看和修改RAM、ROM或者寄存器内容。(4) RTLViewer及TechnologyMapViewer也可以用于调试。(5)可以将芯片编辑器(ChipEditor)与SignalTapⅡ以及SignalProbe调试工具一起使用,加快设计验证,并逐步修复在设计验证期间未解决的错误。运行SignalTapⅡ逻辑分析仪或使用SignalProbe功能验证信号之后,可以使用ChipEditor来查看编译后布局布线的详细信息。还可以使用ResourcePropertyEditor对逻辑单元、I/O单元或PLL的属性和参数进行编译后的编辑,而不需要执行完整的重新编译。第2章FPGA设计流程11)工程更改管理(EngineeringChangeManagement)(1) QuartusⅡ软件允许在完整编译之后对设计进行小的更改,称做工程更改记录(ECO)。可直接对设计数据库进行ECO更改,而不是更改源代码或QuartusⅡSettings和Configuration文件(.qsf)。对设计数据库做ECO更改可避免为实施一个小的更改而运行完整的编译。第2章FPGA设计流程(2)更改管理(Ch
本文标题:FPGA设计流程
链接地址:https://www.777doc.com/doc-4178822 .html