FPGA流程-2015

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

qslin@smit.com.cn概述目前FPGA的应用主要有两个方面,产品的开发和芯片设计的原型验证。不同厂家的FPGA有着自己的开发软件,而且它们之间是互不兼容的。Xilinx是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(IntellectualProperty)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE12.0系列。接下来以ISE11.4为开发工具,介绍一下FPGA的开发设计流程。一、建立工程首先打开ISE,每次启动时ISE都会默认恢复到最近使用过的工程界面。当第一次使用时,工程管理区显示空白。选择File|NewProject选项,在弹出的新建工程对话框中命名工程名,指定工程目录。输入的顶层文件可以是HDL、SCH、EDIF、NGC/NGO。接下来是选择FPGA器件、配置项目的属性和仿真工具。随后的两步依次是设计文件的新建和输入。你可以选择在建立项目过程中就完成代码的新建或者添加已写好代码,否则就可以直接next,next,然后finish。二、新建设计文件在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“NewSource”命令,会弹出如图所示的NewSource对话框。左图是不包含任何设计文件下的新建对话框,右图是已有设计文件前提下的新建对话框。•BMMFile:BlockRAMMemoryMap。提供布局后存储单元的位置和结构信息。•ChipScopeDefinitionandConnectionFile:在线逻辑分析仪ChipScope文件类型。•IP(Coregen&ArchitectureWizard):由ISE的IPCore生成工具快速生成可靠的源代码•MEMFile:blockmemory初始值文件。•ImplementationConstraintsFile:约束文件类型。•StateDisgram:状态图类型。•TestBenchWavaform:测试波形类型。•UserDocument:用户文档类型。•VerilogModule:Verilog模块类型。•VerilogTestFixture:Verilog测试模块类型。•VHDLModule:VHDL模块类型。•VHDLLibrary:VHDL库类型。•VHDLPacket:VHDL包类型。三、综合设计文件所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件双击Synthesize-XST,就可以运行综合。综合可能遇到3种情况:如果综合后完全正确,则在Synthesize-XST前面有一个打钩的绿色小圆圈;如果有警告,则出现一个带感叹号的黄色小圆圈,如果有错误,则出现一个带叉的红色小圆圈。•ViewRTLSchematics:代码经过编译后对应的电路图。•ViewTechnologySchematics:经过进一步优化后的电路图,和综合生成的网表对应。•语法检测。•生成仿真模型。•综合属性的设置右键单击synthesize-xst,选择属性。属性对话框如下图XST配置页面分为综合选项(SynthesisOptions)、HDL语言选项(HDLOptions)以及Xilinx特殊选项(XilinxSpecificOptions)等三大类,分别用于设置综合的全局目标和整体策略、HDL硬件语法规则以及Xilinx特有的结构属性。综合选项参数(SynthesisOptions)•【OptimizationGoal】:优化的目标。该参数决定了综合工具对设计进行优化时,是以面积还是以速度作为优先原则。面积优先原则可以节省器件内部的逻辑资源,即尽可能地采用串行逻辑结构,但这是以牺牲速度为代价的。而速度优先原则保证了器件的整体工作速度,即尽可能地采用并行逻辑结构,但这样将会浪费器件内部大量的逻辑资源,因此,它是以牺牲逻辑资源为代价的。•【OptimizationEffort】:优化器努力程度。这里有【normal】和【high】两种选择方式。对于【normal】,优化器对逻辑设计仅仅进行普通的优化处理,其结果可能并不是最好的,但是综合和优化流程执行地较快。如果选择【high】,优化器对逻辑设计进行反复的优化处理和分析,并能生成最理想的综合和优化结果,在对高性能和最终的设计通常采用这种模式;当然在综合和优化时,需要的时间较长。•【UseSynthesisConstraintsFile】:使用综合约束文件。如果选择了该选项,那么综合约束文件XCF有效。•【SynthesisConstraintsFile】:综合约束文件。该选项用于指定XST综合约束文件XCF的路径。•【GlobalOptimizationGoal】:全局优化目标。可以选择的属性包括有【AllClockNets】、【InpadToOutpad】、【OffestInBefore】、【OffestOutAfter】、【MaximmDelay】。该参数仅对FPGA器件有效,可用于选择所设定的寄存器之间、输入引脚到寄存器之间、寄存器到输出引脚之间,或者是输入引脚到输出引脚之间逻辑的优化策略。•【GenerateRTLSchematic】:生成寄存器传输级视图文件。该参数用于将综合结果生成RTL视图。•【WriteTimingConstraints】:写时序约束。该参数仅对FPGA有效,用来设置是否将HDL源代码中用于控制综合的时序约束传给NGC网表文件,该文件用于布局和布线。•【Verilog2001】:选择是否支持Verilog2001版本。•HDL语言选项(HDLOptions)以及Xilinx特殊选项(XilinxSpecificOptions)设计的对综合属性的更深入的设置,一般采用默认值即可。四、约束•管脚指定NETEBI_ADDR[16]IOSTANDARD=LVCMOS33;NETEBI_ADDR[16]LOC=AW22;或者NETEBI_ADDR[16]LOC=AW22|IOSTANDARD=LVCMOS33;•输入输出延时约束NETULPI_NXTTNM=ULPI_D_I;TIMESPECTS_ULPI_D_I=FROMULPI_D_ITOULPI_CLK9ns;NETULPI_STPTNM=ULPI_D_O;TIMESPECTS_ULPI_D_O=FROMULPI_CLKTOULPI_D_O8ns;•时钟频率约束NETsdram_clk_inTNM_NET=sdram_clk_in;TIMESPECTS_sdram_clk_in=PERIODsdram_clk_in33MHzHIGH50%;•虚假路径指定TIMESPECTS_hclk2sdramclkin=FROMu_sm1670_u_sm1670_chip_u_fpga_pll_CLKOUT0_BUFTOsdram_clk_inTIG;TIMESPECTS_sdramclkin2hclk=FROMsdram_clk_inTOu_sm1670_u_sm1670_chip_u_fpga_pll_CLKOUT0_BUFTIG;约束文件主要有xcf(作用于综合阶段),ucf/ncf(作用于实现阶段),pcf(在实现过程中map生成,作用于布局布线,可以手工调整)。在implementdesign之前就要准备好ucf/ncf文件。五、实现实现(Implement):将综合输出的逻辑网表转换成与FPGA的物理单元与硬件结构相关的网表,将设计映射到器件结构上,然后进行布局布线,达到在选定FPGA器件上实现设计的目的。实现主要分为3个步骤:翻译(Translate)逻辑网表映射(Map)到器件单元布局布线(Place&Route)1、翻译(translate)过程在翻译过程中,对逻辑网表进行分析、合并与转换,以及对约束文件进行转译与分析,最后生成NGD文件和BLD文件。其中NGD文件包含了当前设计的全部逻辑描述,BLD文件是转换的运行和结果报告。实现工具可以导入文件:1)EDN、EDF、EDIF、SEDIF格式的设计文件;2)UCF(用户约束文件)、NCF(网表约束文件)、NMC(物理宏库文件)、NGC(含有约束信息的网表)格式的约束文件。翻译项目包含命令:【GeneratePost-TranslateSimulationModel】用以产生翻译步骤后仿真模型,该仿真模型不包含实际布线时延。2、映射(map)过程在映射过程中,由translate生成的NGD文件将被映射为目标FPGA器件的物理逻辑单元,并保存在NCD(展开的物理设计数据库)文件中。映射的输入文件包括NGD、NMC、NCD和MFP(映射布局规划器)文件;输出文件包括NCD、PCF(物理约束文件)、NGM和MRP(映射报告)文件。其中NCD文件包含当前设计的物理映射信息,PCF文件包含当前设计的物理约束信息,NGM文件与当前设计的静态时序分析有关,MRP文件是映射的运行报告,主要包括映射的命令行参数、目标设计占用的逻辑资源、映射过程中出现的错误和告警、优化过程中删除的逻辑等内容。映射项目包括如下命令:【MapReport】用以显示映射的各步骤的报告;【GeneratePost-MapStaticTiming】产生映射静态时序分析报告,启动时序分析器(TimingAnalyzer)分析映射后静态时序;【ManuallyPlace&Route(FPGAEditor)】用以启动FPGA底层编辑器进行手动布局布线,指导Xilinx自动布局布线器,解决布局布线异常,提高布局布线效率;【GeneratePost-MapSimulationModel】用以产生映射步骤后仿真模型。3、布局和布线(Place&Route)过程•布局和布线(Place&Route):通过读取当前设计的NCD文件,将映射后生成的物理逻辑单元在目标系统(FPGA)中放置和连线,并提取相应的时间参数。•布局布线的输入文件包括NCD和PCF模板文件,输出文件包括NCD、DLY(延时文件)、PAD和PAR文件。在布局布线的输出文件中:NCD包含当前设计的全部物理实现信息;DLY文件包含当前设计的网络延时信息;PAD文件包含当前设计的输入输出(I/O)管脚配置信息;PAR文件主要包括布局布线的命令行参数、布局布线中出现的错误和告警、目标占用的资源、未布线网络、网络时序信息等内容。布局布线步骤的命令与工具:•【Place&RouteReport】用以显示布局布线报告;•【AsynchronousDelayReport】用以显示异步实现报告;•【PadReport】用以显示管脚锁定报告;•【GuideResultsReport】用以显示布局布线指导报告;•【GeneratePost-Place&RouteStaticTiming】包含了进行布局布线后静态时序分析的一系列命令,可以启动TimingAnalyzer分析布局布线后的静态时序;•【View/EditPlaceDesign(Floorplanner)】和【View/EditPlaceDesign(FPGAEditor)】用以启动Floorplanner和FPGAEditor完成FPGA布局布线的结果分析、编辑,手动更改布局布线结果,产生布局布线指导与约束文件,辅助Xilinx自动布局布线器,提高布局布线效率并解决布局布线中的问题;•【AnalyzePower(XPower)】用以启动功耗仿真器分析设计功耗;•【GeneratePost-Place&RouteSimulationModel】用以产生布局布线后仿真模型,该仿真模型包含的时延信息最全,不仅包含门延时,还包含了实际布线延时。该仿真步骤是比较有用的,以确保设计功能与FPGA实际运行结果一致。目前models

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功