您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 1[1]FPGA的设计流程以及DSP设计
11AlteraFPGA的设计流程以及DSP设计贺光辉清华大学电子工程系hgh02@mails.tsinghua.edu.cn2目标掌握FPGA的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTLCode用QuartusII做设计综合和布局布线用FPGAMega-functions做设计返标SDF并运行门级的仿真掌握FPGA的时序约束了解用DSPBuilder进行FPGA设计3提纲FPGA的设计流程用Modelsim进行仿真和调试用QuartusII进行时序分析、综合等FIR滤波器的设计实例DSPBuilder介绍24FPGA的设计流程5目标完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计QuatursIIModelsim6FPGA的设计流程FPGA的设计流程用ModelSim进行仿真用QuartusII进行综合和时序分析用QuartusII进行布局布线、调试和下载37FPGA设计流程综合-TranslateDesignintoDeviceSpecificPrimitives-OptimizationtoMeetRequiredArea&PerformanceConstraints-Synplify,QuartusIIDesignSpecification布局布线-MapPrimitivestoSpecificLocationsinsideTargetTechnologywithReferencetoArea&PerformanceConstraintsDesignEntry/RTLCoding-BehavioralorStructuralDescriptionofDesignRTL仿真-FunctionalSimulation(Modelsim®,QuartusII)-VerifyLogicModel&DataFlow(NoTimingDelays)LEM512M4KI/O8FPGA设计流程时序分析-VerifyPerformanceSpecificationsWereMet-StaticTimingAnalysis门级仿真-TimingSimulation-VerifyDesignWillWorkinTargetTechnologyPCBoardSimulation&Test-SimulateBoardDesign-Program&TestDeviceonBoard-UseSignalTapIIforDebuggingtclk9系统规划和预算系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。410设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。设计文档化非常重要11设计实现用电路框图或者HDL描述实现自己的设计:简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。12功能仿真对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时;详细一些的可以认为门延时都是一样,而忽略互连线的延时。RTL代码RTL代码逻辑仿真器调用模块的行为仿真模型调用模块的行为仿真模型测试数据测试数据测试程序(testbench)测试程序(testbench)513逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:RTL代码RTL代码逻辑综合器调用模块的黑盒子接口调用模块的黑盒子接口设置综合目标和约束条件设置综合目标和约束条件EDIF网表(netlist)EDIF网表(netlist)HDL网表(netlist)HDL网表(netlist)14布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;逻辑综合器EDIF网表(netlist)EDIF网表(netlist)FPGA厂家工具调用模块的综合模型调用模块的综合模型设置布局布线约束条件设置布局布线约束条件HDL网表(netlist)HDL网表(netlist)SDF文件(标准延时格式)SDF文件(标准延时格式)下载/编程文件15门级仿真FPGA厂家工具HDL网表(netlist)HDL网表(netlist)SDF文件(标准延时格式)SDF文件(标准延时格式)逻辑仿真器测试数据测试数据FPGA基本单元仿真模型FPGA基本单元仿真模型测试程序(testbench)测试程序(testbench)616SDF文件IndustryStandardFormatAutomaticallyGeneratedWhenYouCompileaDesign(OutputFilewithExtension.sdo)ContainTimingInformationDeviceDelaysInterconnectDelaysPortDelaysPathDelaysTimingChecksCanbeBack-annotatedtoaDesignforAccurateModelofDelays17物理验证将生成的二进制配置文件下载到FPGA上,进行实际的功能和时序的测试;Altera(.sof.pof文件)由于FPGA常常是作为整个系统一部分,因此还应该将FPGA放到整个系统中进行验证,整个系统工作正常,才算完成了开发过程。18用ModelSim仿真719ModelSim的用途1.RTL仿真(功能仿真)验证设计HDL的基本逻辑功能,属于最基本的验证仿真速度最快2.门级仿真采用综合软件综合后生成的门级网表不带有布局布线后产生的时序信息3.时序仿真(后仿真)在门级仿真的基础上加入时延文件“.sdf”文件速度很慢,需要很长时间20用ModelSim作功能仿真(1)ModelSim的实现方法:交互式的命令行(Cmd)利用控制台的命令行用户界面(UI)能接受菜单输入和命令行输入批处理模式从DOS或UNIX命令行运行批处理文件21用ModelSim作功能仿真(2)基本仿真步骤:1Ö建立库2Ö映射库到物理目录3Ö编译源代码-所有的HDL代码必须被编译4Ö启动仿真器5Ö执行仿真822用ModelSim作功能仿真(3)1Ö建立库UI)从主菜单里面:Design-CreateaNewLibraryCmd)从main,记录窗口:ModelSimvlib库名23用ModelSim作功能仿真(4)2Ö映射库到物理目录UI)从主菜单:Design-BrowseLibrariesDesign-CreateaNewLibraryCmd)从主体的记录窗口:ModelSimvmaplogical_namedirectory_path24用ModelSim作功能仿真(5)3Ö编译源代码(Verilog)UI)Design-CompileCmd)vlog-worklibrary_namefile1.vfile2.v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要支持增量式编译(只有被改动的设计单元被编译)缺省编译到work库例如.vlogmy_design.v925用ModelSim作功能仿真(6)3Ö编译源代码点亮一个或多个文件并点击Compile26用ModelSim作功能仿真(7)4Ö启动仿真器UI)Design-LoadNewDesignCmd)vsim-liblibrary_nametop_level_designVHDLvsimtop_entitytop_architectureVerilogvsimtop_level27用ModelSim作功能仿真(8)4Ö启动仿真器选择库选择顶级module或entity/architecture1028用ModelSim作功能仿真(9)5Ö执行仿真UI)RunCMD)runtime_steptime_units按timesteps指定的时间长度执行仿真29用ModelSim作功能仿真(10)5Ö执行仿真(UI)选择timesteps数量就可以执行仿真Restart–重装任何已改动的设计元素并把仿真时间设为零COM)restart30用ModelSim作功能仿真(11)5Ö执行仿真----run命令举例run1000-从当前位置运行仿真1000timestepsrun2500ns-从当前位置运行仿真2500nsrun@3000-运行仿真到timestep30001131用ModelSim作功能仿真(12)5Ö执行仿真----仿真器激励测试台-Verilog或VHDL代码-非常复杂的仿真(交互式仿真、数据量大的仿真)force命令-简单的模块仿真-直接从命令控制台输入-.DO文件(宏文件)32用ModelSim作功能仿真(13)5Ö执行仿真----仿真器激励.do文件自动完成仿真步骤的宏文件–库设置–编译–仿真–强制仿真激励能在所有的ModelSim模式里被调用–UI)Macro-Execute–COM)dofilename.do能调用其他的DO文件33用ModelSim作功能仿真(14)5Ö执行仿真----仿真器激励.do文件举例vlibworkvcomcounter.vhdvsimcounterview*addwave/*addlist/*dorun.doaddwave/clkaddwave/clraddwave/loadaddwave-hex/dataaddwave/qforce/clk00,150-repeat100force/clr00,1100run500force/load10,0100force/data16#A50force/clk00,150-repeat100run1000cdc:\mydirvlibworkvcomcounter.vhdvsimcounterview*dostimulus.domy_sim.dostimulus.do1234用ModelSim作功能仿真(15)5Ö执行仿真----仿真器激励测试台文件(testbench)针对复杂的仿真在测试台文件中将设计模块实例化--将测试台文件置于TOP层,调用设计模块--在测试台文件中加载时钟激励信号,以及给部分信号赋初值测试台文件的写法与设计模块写法有区别--一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用35用ModelSim作功能仿真(总结)基本仿真步骤:1Ö建立库(AlteraMegaFunction库)2Ö映射库到物理目录3Ö编译源代码-所有的HDL代码必须被编译4Ö启动仿真器5Ö执行仿真#Createlibaryvlibwork#Compilethealtera_mflibraryvlogd:/quartus51/eda/sim_lib/altera_mf.v#Createaltera_mflibraryandmapittoworkexecvmapaltera_mfwork#sourcefiles#FIFOvlog../core/INFIFO.v#top_levelvlog../src/chip_top.vvlog../src/tb_top.v#simulationandtestbenchesvsim-Lworktb_topdowave_tb_top.dorun5ms36用ModelSim作时序仿真(1)时序仿真的含义:布局布线后
本文标题:1[1]FPGA的设计流程以及DSP设计
链接地址:https://www.777doc.com/doc-631992 .html