版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AlteraFPGA的设计流程贺光辉清华大学电子工程系1AlteraFPGA的设计流程贺光辉1目标掌握FPGA的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTLCode用QuartusII做设计综合和布局布线用FPGAMega-functions做设计返标SDF并运行门级的仿真掌握FPGA的时序约束了解FPGA的设计原则2目标掌握FPGA的标准设计流程和工具2提纲FPGA概要FPGA的设计流程用Modelsim进行仿真和调试用QuartusII进行时序分析、综合等FIR滤波器的设计实例3提纲FPGA概要3FPGA概要4FPGA概要4FPGA的优点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间布局布线容易,设计过程相当于只有ASIC设计的前端研发费用低不需要投片费用5FPGA的优点集成度高,可以替代多至几千块通用IC芯片5FPGA的应用前景通信、控制、数据计算等领域得到了广泛的应用减少电子系统的开发风险和开发成本缩短上市时间(timetomarket)通过在系统编程、远程在线重构等技术降低维护升级成本系统的原型实现+ASIC的原型验证ASIC常用FPGA进行原型机验证6FPGA的应用前景通信、控制、数据计算等领域得到了广泛的应用CPLD与FPGA的区别CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-EAB(嵌入式逻辑块),锁相环保密性可加密一般不能保密7CPLD与FPGA的区别CPLDFPGA内部结构Produc
CPLD还是FPGA?
复杂组合逻辑:CPLD–PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20~30多个组合逻辑输入• 复杂时序逻辑:FPGA–FPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万8
CPLD还是FPGA?
复杂组合逻辑:CPLD8推荐书籍VerilogVerilog数字系统设计教程夏宇闻北京航天航空大学出版社硬件描述语言Verilog刘明业等译清华大学出版社FPGA基于FPGA的嵌入式系统设计任爱锋西安电子科技大学出版社基于FPGA的系统设计(英文版)WayneWolf机械工业出版社IC设计Reusemethodologymanualforsystem-on-a-chipdesigns3rded.MichaelKeating,PierreBricaud.
片上系统:可重用设计方法学沈戈,等译电子工业出版社,2004Writingtestbenches:functionalverificationofHDLmodels/JanickBergeronBoston:KluwerAcademic,c2000
9推荐书籍Verilog9推荐文章/papers/VerilogCodingStylesForImprovedSimulationEfficiencyStateMachineCodingStylesforSynthesisSynthesisandScriptingTechniquesforDesigningMulti-AsynchronousClockDesignsSynchronousResets?AsynchronousResets?Iamsoconfused!
NonblockingAssignmentsinVerilogSynthesis,CodingStylesThatKill!
10推荐文章http://www.sunburst-designFPGA的设计流程11FPGA的设计流程11目标完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计QuatursIIModelsim12目标12FPGA的设计流程FPGA的设计流程用ModelSim进行仿真用QuartusII进行综合和时序分析用QuartusII进行布局布线、调试和下载13FPGA的设计流程FPGA的设计流程13FPGA设计流程综合-TranslateDesignintoDeviceSpecificPrimitives-OptimizationtoMeetRequiredArea&PerformanceConstraints-Synplify,QuartusIIDesignSpecification布局布线-MapPrimitivestoSpecificLocationsinsideTargetTechnologywithReferencetoArea&PerformanceConstraintsDesignEntry/RTLCoding-BehavioralorStructuralDescriptionofDesignRTL仿真
-
FunctionalSimulation(Modelsim®,QuartusII)-VerifyLogicModel&DataFlow(NoTimingDelays)
LEM512M4KI/O14FPGA设计流程综合DesignSpecificationFPGA设计流程时序分析-VerifyPerformanceSpecificationsWereMet-StaticTimingAnalysis门级仿真-
TimingSimulation-VerifyDesignWillWorkinTargetTechnologyPCBoardSimulation&Test-
SimulateBoardDesign-Program&TestDeviceonBoard-UseSignalTapIIforDebuggingtclk15FPGA设计流程时序分析门级仿真PCBoardSimul系统规划和预算系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。16系统规划和预算系统功能的总体规划:16设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。设计文档化非常重要17设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片设计实现用电路框图或者HDL描述实现自己的设计:简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。18设计实现用电路框图或者HDL描述实现自己的设计:18功能仿真对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时;详细一些的可以认为门延时都是一样,而忽略互连线的延时。RTL代码逻辑仿真器调用模块的行为仿真模型测试数据测试程序(testbench)19功能仿真对逻辑功能进行验证:逻辑仿真器19逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:RTL代码逻辑综合器调用模块的黑盒子接口设置综合目标和约束条件EDIF网表(netlist)HDL网表(netlist)20逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;逻辑综合器EDIF网表(netlist)FPGA厂家工具调用模块的综合模型设置布局布线约束条件HDL网表(netlist)SDF文件(标准延时格式)下载/编程文件21布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,时序逼近时序逼近流程是一个推荐的设计方法可以帮助设计满足它们的时序目标22时序逼近时序逼近流程是一个推荐的设计方法可以帮助设计满足它们门级仿真FPGA厂家工具HDL网表(netlist)SDF文件(标准延时格式)逻辑仿真器测试数据FPGA基本单元仿真模型测试程序(testbench)23门级仿真FPGA厂家工具逻辑仿真器23SDF文件IndustryStandardFormatAutomaticallyGeneratedWhenYouCompileaDesign(OutputFilewithExtension.sdo)ContainTimingInformationDeviceDelaysInterconnectDelaysPortDelaysPathDelaysTimingChecksCanbeBack-annotatedtoaDesignforAccurateModelofDelays24SDF文件IndustryStandardFormat物理验证将生成的二进制配置文件下载到FPGA上,进行实际的功能和时序的测试;Altera(.sof文件)Xlinx(.bit文件),由于FPGA常常是作为整个系统一部分,因此还应该将FPGA放到整个系统中进行验证,整个系统工作正常,才算完成了开发过程。25物理验证将生成的二进制配置文件下载到FPGA上,进行实际的功用ModelSim
仿真26用ModelSim
仿真26内容ModelSim产品简介ModelSim的用途用ModelSim进行功能仿真用ModelSim进行时序仿真27内容ModelSim产品简介27ModelSim产品简介(1)由MentorGraphics公司的子公司ModelTech公司开发工业上最通用的仿真器之一支持Verilog和VHDL仿真OEM版本允许Verilog仿真或者
VHDL仿真ModelSim/SE首要的版本,能混合仿真Verilog和VHDLModelSim/XEOEM版,包含Xilinx公司的库文件ModelSim/AEOEM版,包含Altera公司的库文件28ModelSim产品简介(1)由MentorGraphicModelSim产品简介(2)ModelSim用户界面main主窗口:structure结构窗口process处理窗口:Signal&variable信号和变量窗口dataflow数据流窗口source源窗口Wave&list波形和列表窗口29ModelSim产品简介(2)ModelSim用户界面maModelSim的用途RTL仿真(功能仿真)验证设计HDL的基本逻辑功能,属于最基本的验证仿真速度最快门级仿真采用综合软件综合后生成的门级网表不带有布局布线后产生的时序信息时序仿真(后仿真)在门级仿真的基础上加入时延文件“.sdf”文件速度很慢,需要很长时间30ModelSim的用途RTL仿真(功能仿真)30用ModelSim作功能仿真(1)ModelSim的实现方法:交互式的命令行(Cmd)利用控制台的命令行用户界面(UI)能接受菜单输入和命令行输入批处理模式从DOS或UNIX命令行运行批处理文件31用ModelSim作功能仿真(1)ModelSim的实现方用ModelSim作功能仿真(2)基本仿真步骤:1
建立库2映射库到物理目录3编译源代码 -所有的HDL代码必须被编译4启动仿真器5执行仿真32用ModelSim作功能仿真(2)基本仿真步骤:32用ModelSim作功能仿真(3)1 建立库UI)从主菜单里面:
Design->CreateaNewLibraryCmd)从main,记录窗口:
ModelSim>vlib<库名>33用ModelSim作功能仿真(3)1 建立库33用ModelSim作功能仿真(4)2 映射库到物理目录UI)从主菜单:
Design->BrowseLibraries
Design->CreateaNewLibraryCmd)从主体的记录窗口:ModelSim>vmap<logical_name><directory_path>34用ModelSim作功能仿真(4)2 映射库到物理目录用ModelSim作功能仿真(5)3 编译源代码(Verilog)UI)
Design->CompileCmd)
vlog-work<library_name><file1>.v<file2>.v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要支持增量式编译(只有被改动的设计单元被编译)缺省编译到work库例如.vlogmy_design.v35用ModelSim作功能仿真(5)3 编译源代码(Ve用ModelSim作功能仿真(6)3编译源代码点亮一个或多个文件并点击Compile36用ModelSim作功能仿真(6)3编译源代码点亮一用ModelSim作功能仿真(7)4 启动仿真器UI)
Design->LoadNewDesign
Cmd)
vsim-lib<library_name><top_level_design>VHDLvsimtop_entitytop_architectureVerilogvsimtop_level37用ModelSim作功能仿真(7)4 启动仿真器37用ModelSim作功能仿真(8)4 启动仿真器选择库选择顶级module或entity/architecture38用ModelSim作功能仿真(8)4 启动仿真器选择用ModelSim作功能仿真(9)5 执行仿真UI)
Run
CMD)
run<time_step><time_units>按timesteps指定的时间长度执行仿真39用ModelSim作功能仿真(9)5 执行仿真39用ModelSim作功能仿真(10)5 执行仿真(UI)选择timesteps数量就可以执行仿真Restart–重装任何已改动的设计元素并把仿真时间设为零COM)restart40用ModelSim作功能仿真(10)5 执行仿真(UI用ModelSim作功能仿真(11)5 执行仿真----run命令举例run1000- 从当前位置运行仿真1000timestepsrun2500ns- 从当前位置运行仿真2500nsrun@3000- 运行仿真到timestep300041用ModelSim作功能仿真(11)5 执行仿真---用ModelSim作功能仿真(12)5 执行仿真----仿真器激励测试台- Verilog或VHDL代码- 非常复杂的仿真(交互式仿真、数据量大的仿真)force命令- 简单的模块仿真- 直接从命令控制台输入- .DO文件(宏文件)42用ModelSim作功能仿真(12)5 执行仿真---用ModelSim作功能仿真(13)5 执行仿真----仿真器激励.do文件自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励能在所有的ModelSim模式里被调用UI)
Macro->ExecuteCOM)
do<filename>.do能调用其他的DO文件43用ModelSim作功能仿真(13)5 执行仿真---用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.do44用ModelSim作功能仿真(14)5 执行仿真---用ModelSim作功能仿真(15)5 执行仿真----仿真器激励测试台文件(testbench)针对复杂的仿真在测试台文件中将设计模块实例化 --将测试台文件置于TOP层,调用设计模块
--在测试台文件中加载时钟激励信号,以及给部分信号赋初值测试台文件的写法与设计模块写法有区别 --一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用45用ModelSim作功能仿真(15)5 执行仿真---用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.dorun5ms46用ModelSim作功能仿真(总结)基本仿真步骤:#Cre用ModelSim作时序仿真(1)时序仿真的含义:布局布线后进行的后仿真包含有延时信息仿真结果可能与功能仿真不相同除功能仿真时需要的文件以外,还需要网表文件(如time_sim.vhd或time_sim.v)和包含延时信息的文件(time_sim.sdf文件)在Quartus中是.vo和.sdo文件47用ModelSim作时序仿真(1)时序仿真的含义:47用ModelSim作时序仿真(2)指定SDF文件指定SDF文件使用定时值的等级的类型(如果不是顶级)48用ModelSim作时序仿真(2)指定SDF文件指定SDF用ModelSim作时序仿真(3)vsim命令的参数参数-t<time_unit>指定仿真的时间分辨率单位可以是{fs,ps,ns,ms,sec,min,hr}如果用了Verilog的‘timescale指令,将使用整个设计中的最小的时间精度可选项(缺省是ns)-sdfmin|-sdftyp|-sdfmax<instance>=<sdf_filename>注释SDF文件可选项使用实例名也是可选项;如果没有使用,SDF用于顶级49用ModelSim作时序仿真(3)vsim命令的参数49用ModelSim作时序仿真(总结)基本仿真步骤:建立库编译Altera器件库3映射库到物理目录4编译综合后网表5加入SDF文件4启动仿真器5执行仿真#scriptforModelsimposttimingsimulationofAlteracyclonedevice#byWayne#setyourPCenvironmentsetmodelsim_homed:/edatools/Modeltech_6.1dsetquartus_homed:/quartus51#buildworklibvlibwork#addcyclonedevicelibanditssimmodelsvlog-reportprogress300-workcyclone$quartus_home/eda/sim_lib/cyclone_atoms.v程序接下页50用ModelSim作时序仿真(总结)基本仿真步骤:#scrvmapcyclonework#postsimulationinmodelsimforAlteradevicessetdesign_namechip_topsethome../impvlog../src/tb_top.vvlog../imp/simulation/modelsim/$design_name.vovsim-sdftyp/tb_top/UUT=chip_top_v.sdo-tpswork.tb_topdowave.dorun500us程序接上页51vmapcyclonework程序接上页51用QuartusII
进行综合、时序分析和布局布线
52用QuartusII进行综合、时序分析和布局布线
52设计流程CreateaNewQuartusIIProjectCompileaDesignintoanFPGALocateResultingCompilationInformationAssignDesignConstraints(Timing&Pin)PerformTimingAnalysis&ObtainResultsConfigureanFPGA53设计流程CreateaNewQuartusIIPr创建一个新的工程54创建一个新的工程54添加文件55添加文件55ChooseDeviceFamily器件选择56ChooseDeviceFamily器件选择56管脚分配Assignmentsmenu->AssignmentEditor->Pins57管脚分配Assignmentsmenu->AssignmePinPlanner窗口UnassignedPinsListPackageView(ToporBottom)AssignedPinsList58PinPlanner窗口UnassignedPinsAltera的IP工具IP的概念:
用于ASIC、ASSP、PLD等芯片中预先设计好的常用但较复杂的电路功能模块,经过严格测试和优化,如FIR滤波器、SDRAM控制器、PCI接口等。使用IP的优势:提高设计性能降低开发成本缩短设计周期设计灵活性强仿真方便59Altera的IP工具IP的概念:59IP的分类:软IP、固IP和硬IPMegafunctions/LPM(免费的宏功能模块):如算术组件、门、I/O组件、存储器、存储组件MegaCore(需要授权的):如数字信号处理类、通信类、接口和外设类、微处理器类Altera的IP工具60IP的分类:Altera的IP工具60下载所要的MegaCore通过MegaWizard的界面打开IP核的统一界面IPToolbench定制要生成的IP的参数产生IP的封装和网表文件,以及功能模型对IP的RTL模型做功能仿真将IP的封装和网表文件放在工程中,并实现设计购买IP许可证IP使用的步骤61下载所要的MegaCoreIP使用的步骤61MegaWizardPlug-InManagerEasesImplementationofMegafunctions&IPToolsMegaWizardPlug-InManager62MegaWizardPlug-InManagerEaseMegaWizard示例Multiply-AddPLLLocateDocumentationinQuartusIIHelportheWeb63MegaWizard示例Multiply-AddPLLL时序分析64时序分析64TimingAssignments
5typesoftimingassignmentsexist:–fmax,tsu,thold,tco,tpdThesetimingassignmentscanbeassignedgloballyorindividually65TimingAssignments
5typesofRegister的参数DClkQDQClktc-qtholdTtsutsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的时间,它间接约束了组合逻辑的最大延时thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时钟沿到来后需要保持稳定的时间,它间接约束了组合逻辑的最小延时tc-q:寄存器从有效时钟沿到来到输出有效的最大时间违反建立或保持时间,都会造成触发器工作异常,产生Metastability。为了可靠工作,在建立时间开始到保持时间为止的这段时间内,触发器的输入端信号不应发生变化。66Register的参数DClkQDQClktc-qtholdClockSkew在同一个时钟域或者两个时钟域之间时钟信号到达寄存器的最大时间差别产生原因主要有:时钟源到达各端点的路径长度不同,各端点负载不同,时钟网络中插入的缓冲器不同等在两个点之间,可以大体认为Skew是固定的值注意:ClockSkew影响的是时钟的到达时间不同,也就是时钟发生相移,并不影响时钟的周期宽度67ClockSkew在同一个时钟域或者两个时钟域之间时钟信号ClockSkew(2)68ClockSkew(2)68时钟参数满足的条件时钟周期应大于寄存器延时、组合逻辑延时、和目标寄存器建立时间的和本寄存器有效输出通过组合逻辑的延时应该大于目的寄存器的保持时间要求69时钟参数满足的条件时钟周期应大于寄存器延时、组合逻辑延时、和FmaxAssignment70FmaxAssignment70FmaxAssignment:Single/MultipleClock71FmaxAssignment:Single/MultipClockPeriod =Clock-to-Out+DataDelay+SetupTime-ClockSkew =tco+B+tsu-(E-C)
fmax =1/ClockPeriodBCtcotsuEClockPeriodClockSetup(fmax)Worst-CaseClockFrequency72ClockPeriod =Clock-to-Out+SelectClockSetupWorstfmaxFmaxValuesAreListedinAscendingOrder;WorstFmaxIsListedontheTopSource,DestinationRegisters&AssociatedFmaxValuesClockSetup(fmax)Tables73SelectWorstfmaxFmaxValuesAfmaxAnalysisDetailsDataDelay(B)SourceRegisterClockDelay(C)SetupTime(tsu)BCtcotsuEClockPeriodDestinationRegisterClockDelay(E)ClocktoOutput(tco)10.384ns+7.445ns+0.180ns-0.000ns=124.86MHzMessagesWindow(SystemTab)inQuartusII74fmaxAnalysisDetailsDataDelaI/OAssignments:Tsu,Tco75I/OAssignments:75TimingAssignmentsWhatcanbetaggedwithatimingassignments?Registers(all)ClockPins(all)InputPins(tsu,th)OutputPins(tco)BidirectionalPins(all)76TimingAssignmentsWhatcanbeTimingSettings
EasywaytoentertimingassignmentsConsolidatesalltimingassignmentsinone menu –IndividualclocksettingsORoverallcircuitfrequency –Defaultsystemtiming •tsu •th •tco •tpd –Defaultexternalinput/outputdelays –Enable/Disabletiminganalysisduring compilation –Timingdrivencompilation77TimingSettings
EasywaytoenReportingTimingResultsTiminginformationispartoftheCompilationReport –SummaryTimingAnalyses –fmax(notincl.delaysto/frompins)orfmax(incl.delaysto/frompins) –Register-to-RegisterTable –tsu(InputSetupTimes) –th(InputHoldTimes) –tco(ClocktoOutDelays) –tpd(PintoPinDelays)•Alltimingresultsarereportedhere78ReportingTimingResultsTimingI/O建立时间和保持时间ClockdelaytsuthDatadelaytsu=datadelay-clockdelay+intrinsictsuintrinsictsu&holdth=clockdelay-datadelay+intrinsicth79I/O建立时间和保持时间ClockdelaytsuthI/OClock-to-OutputAnalysis(tco)DatadelaytcoClockdelayclockdelay+intrinsictco+datadelay=tcointrinsictco80I/OClock-to-OutputAnalysis(TimeSlackslack=期望数据到达时间–数据实际到达时间Slack为正,表示数据提前到达,此时组合逻辑延迟满足条件,Register有足够的建立时间;Slack为负,表示数据比预期的时间晚到达,此时显然不满足Register的建立时间,不满足约束;81TimeSlackslack=期望数据到达时间–数SlackEquations(Setup)Slack=LargestRequiredTime-LongestActualTimeRequiredTime=ClockSetup
-tco-tsu+(clk’-clk)ActualTime=DataDelaylaunchedgeclkclk’setuplatchedgeClockSetup*clktcotsuCombinatorialLogicclk’Register1Register2data
delay82SlackEquations(Setup)Slack=SlackEquations(Hold)launchedgeclkholdlatchedgeClockHold*clktcothCombinatorialLogicclk’Register1Register2datadelaySlack=ShortestActualTime-SmallestRequiredTimeActualTime=DataDelayRequiredTime=
ClockHold
-tco+th+(clk’-clk)clk’83SlackEquations(Hold)launcheinoutclkreg1reg2clk’clkclk’slack=p2prequired–p2pdelayp2pp2prequired=setuprelationship+clockskew–µtCO-µtSUsetuprelationship=latchedge–launchedgeclockskew=clk’–clklaunchlatchSimpleRegistertoRegister示例84inoutclkreg1reg2clk’clkclk’slainoutclkreg1reg2clk’slack=p2prequired–p2pdelayp2pp2prequired=setuprelationship+clockskew–µtCO–µtSU
setuprelationship=latchedge–launchedge =5.0–0.0 =5.0
clockskew=clk’–clk
2.2660.110.082µtcoµtsu0.0820.11=2.521-2.993=5.0+(-0.472)–0.11–0.082=4.336–2.266=-0.472=4.336µtcoµtsu=2.072.9932.5212.9932.521SimpleRegistertoRegister示例(con)85inoutclkreg1reg2clk’slack=p2InputMinimumDelayMinimumDelayfromExternalDevicetoAlteraI/ORepresentsExternalDevicetco+PCBDelay+PCBClockSkewConstrainsRegisteredInputPath(th)AtcothAlteraDeviceExternalDevicePCBDelaythA
≤
InputMinimumDelayInputMinimumDelaythACLKCLK86InputMinimumDelayMinimumDelOutputMaximumDelayMaximumDelayfromAlteraI/OtoExternalDeviceRepresentsExternalDevicetsu+PCBDelay+PCBClockSkewConstrainsRegisteredOutputPath(Max.tco)BtcotsuAlteraDeviceExternalDevicePCBDelaytcoB
≤
tCLK-OutputMaximumDelaytcoOutputMaximumDelayCLKCLK87OutputMaximumDelayMaximumDeOutputMinimumDelayMinimumDelayfromAlteraI/OtoExternalDeviceRepresentsExternalDeviceth-PCBBoardDelayConstrainsRegisteredOutputPath(Min.tco)BtcothAlteraDeviceExternalDeviceBoardDelaytcoB
≥
OutputMinimumDelaytcoOutputMaximumDelayCLKCLK88OutputMinimumDelayMinimumDeExampleInputMaximumDelayNotice:InputPind(6)&d(3)TimingInformationIsIncludedwithClockSetup(fmax)AnalysisInputDelayHasBeenAddedtoListPathCalculationInputMaximumDelay(d)=4ns
89ExampleInputMaximumDelayNotCompilinginQuartus90CompilinginQuartus90CompilinginQuartus(Start)91CompilinginQuartus(Start)91CompilinginQuartus
92CompilinginQuartus
92Done!93Done!93DownloadBitFile94DownloadBitFile94DownloadBitFileintoFPGA95DownloadBitFileintoFPGA95AlteraFPGA配置列表配置模式典型应用被动串行模式(PS)运用增强配置芯片(EPC16,EPC8或EPC4)EPC1,EPC2,EPC1441,串行同步微处理器,USB接口下载电缆,MasterBlasterTM通信电缆,ByteBlasterTMII并口下载电缆或ByteBlasterMVTM并口下载电缆。主动串行模式(AS)应用串行配置芯片EPCS1,EPCS4等被动并行同步模式(PPS)并行同步微处理器配置快速被动并行模式(FPP)增强型配置芯片或8位同步并行微处理器速度为PPS模式的8倍。被动并行异步模式(PPA)采用异步微处理器,这种模式下微处理器对于目标芯片如同一个存储器。被动串行异步模式(PSA)串行异步处理器JTAG模式根据IEEEStd.1149.1(JTAG)引脚标准96AlteraFPGA配置列表配置模式典型应用被动串行模式(DebugwithSignalTapII97Debugwith97QuartusII嵌入式逻辑分析仪特点特点优点可以灵活的改变缓冲器模式在循环模式或间隔模式采样时,使每次不同的触发均能采到更加精确的数据。每个器件最高支持1024个通道可以支持多个采用通道和很宽的总线模式采样。每个器件支持128K采样存储使每个通道得到更多的采样数据。采样时钟最高可达270MHz可以采集速率更高的数据。资源使用的评价者可以评估逻辑或存储器件的资源使用情况。不需要额外费用SignalTapIIlogicAnalyzer是QuartusII免费提供的。可对一个器件进行多重逻辑分析可以从一个复杂的时钟信号中分析出想要得到的数据通过一个JTAG接口可对多个器件进行多重的逻辑分析使设计者可以通过一个JTAG接口同步得到多个芯片的数据对每个信号均有10种触发模式可以捕捉到更加复杂的数据信号,更加景区的找到问题的所在。增加的编译可以在综合编译之前对逻辑分析仪进行修改。98QuartusII嵌入式逻辑分析仪特点特点优点可以灵活的FIR滤波器设计实例99FIR滤波器设计实例99一个综合的例子FIR滤波器的设计Modelsim的使用QuartusII的使用宏功能模块的使用仿真、综合等过程及报告的查看100一个综合的例子FIR滤波器的设计100设计要求设计一个14阶FIR滤波器,已给出滤波器系数,要求用Verilog/VHDL实现该滤波器,并且选用Altera的Stratix或StratixII器件。要求充分利用AlteraStratix/StratixII的器件的DSPBLOCK资源。要求每一级都一级流水线(pipeline)。能够利用Altera的megafunction。能够在Modelsim下进行仿真。选用EP2S60F484C3器件。Fmax达到270Mhz以上。101设计要求设计一个14阶FIR滤波器,已给出滤波器系数,要求用设计难点难点在于要达到270MHz以上的频率通过插入流水线可以达到要求为了不过分的增加流水线寄存器的数量,需要对FIR滤波器的结构进行精心设计102设计难点难点在于要达到270MHz以上的频率102直接形式结构关键路径是1个乘法器和2个加法器
流水线割集插入流水线寄存器,这样得到的关键路径是1个乘法和1个加法
103直接形式结构关键路径是1个乘法器和2个加法器流水线割集插数据广播结构关键路径是1个乘法器和1个加法器
流水线割集插入流水线寄存器,关键路径是1个乘法
104数据广播结构关键路径是1个乘法器和1个加法器流水线割集插入设计方案选择寄存器数目关键路径长度直接形式结构39×36个1个乘法器和1个加法器数据广播结构13×36个1个乘法器和1个加法器进一步流水的数据广播结构27×36个1个乘法器105设计方案选择寄存器数目关键路径长度直接形式结构39×36FIR滤波器的结构106FIR滤波器的结构106模块划分乘法器模块:直接用Altera的DSPBLOCKlpm_mult进行例化信号名称I/O描述dataaI乘法器输入数据信号,16bit字长databI乘法器输入数据信号,16bit字长resultO滤波器输出数据信号,32bit字长
加法器模块:直接用Altera的DSPBLOCKlpm_add_sub进行例化
顶层模块:将乘法器和加法器连接成数据广播结构的FIR滤波器信号名称I/O描述dataaI乘法器输入数据信号,36bit字长databI乘法器输入数据信号,36bit字长resultO滤波器输出数据信号,36bit字长107模块划分乘法器模块:直接用Altera的DSPBLOCKlDSPBlocksforComplex
ArithmeticApplicationsWirelessFiltering&CompressionEncryptionSignalProcessingConsumerImageProcessingAudioProcessingCompressionDataComBarrelShiftingQoSAlgorithms+OptionalPipeliningOutputRegistersOutputMUX+-S+-SInputRegisters108DSPBlocksforComplex
ArithmeStratixIIDSPBlocksUp96DSPBlocksEachConfiguredfor(8)9x9Multipliers(4)18x18Multipliers(1)36x36MultiplierCanBeCascadedforLargerOperationsDedicatedConfigurableMathCircuitryMultiplier,Accumulate&Addition/SubtractionRounding&SaturationBuilt-InShiftRegisterforCompleteFIRFilterImplementationSelectableInput,Output&PipelineStageRegisters109StratixIIDSPBlocksUp96DSPDSPBlockArchitectureAdd/Sub/AccSummationUnitOutputRegisterXXXX++-+-InputRegisterPipelineRegisterOutputMux110DSPBlockArchitectureAdd/Sub/综合结果目标器件EP2S60F484C3TotalALUTs338/48,352(<1%)DSPblock9-bitelements28/288(9%)资源利用率速度最高时钟频率(约束300MHz情况下)312.89MHz(period=3.196ns)111综合结果目标器件EP2S60F484C3TotalALUT总结(1)1、使用ModelSim进行功能仿真3、使用QuartusII对设计进行综合,时序分析和布线4、使用ModelSim进行后仿真5、使用QuartusII下载文件到实际电路6、使用SignalTapII进行调试和数据观测112总结(1)1、使用ModelSim进行功能仿真112总结(2)数字系统设计应该明确如下观点:无论是ASIC、FPGA还是DSP,都只是一种实现手段;无论采用哪种HDL或哪种开发工具,都不能单纯从语言或工具本身作出评价;关键是看应用环境,只有选择最适合于应用的实现方式和工具才是最好的设计方案;设计应该注重硬件设计本身,只有先有了良好的设计,才可能有高效的描述和实现。数字模拟电路、HDL语言等知识和实际经验比了解软件更重要。113总结(2)数字系统设计应该明确如下观点:1135、世上最美好的事是:我已经长大,父母还未老;我有能力报答,父母仍然健康。
6、没什么可怕的,大家都一样,在试探中不断前行。
7、时间就像一张网,你撒在哪里,你的收获就在哪里。纽扣第一颗就扣错了,可你扣到最后一颗才发现。有些事一开始就是错的,可只有到最后才不得不承认。
8、世上的事,只要肯用心去学,没有一件是太晚的。要始终保持敬畏之心,对阳光,对美,对痛楚。
9、别再去抱怨身边人善变,多懂一些道理,明白一些事理,毕竟每个人都是越活越现实。
10、山有封顶,还有彼岸,慢慢长途,终有回转,余味苦涩,终有回甘。
11、人生就像是一个马尔可夫链,你的未来取决于你当下正在做的事,而无关于过去做完的事。
12、女人,要么有美貌,要么有智慧,如果两者你都不占绝对优势,那你就选择善良。
13、时间,抓住了就是黄金,虚度了就是流水。理想,努力了才叫梦想,放弃了那只是妄想。努力,虽然未必会收获,但放弃,就一定一无所获。
14、一个人的知识,通过学习可以得到;一个人的成长,就必须通过磨练。若是自己没有尽力,就没有资格批评别人不用心。开口抱怨很容易,但是闭嘴努力的人更加值得尊敬。
15、如果没有人为你遮风挡雨,那就学会自己披荆斩棘,面对一切,用倔强的骄傲,活出无人能及的精彩。5、人生每天都要笑,生活的下一秒发生什么,我们谁也不知道。所以,放下心里的纠结,放下脑中的烦恼,放下生活的不愉快,活在当下。人生喜怒哀乐,百般形态,不如在心里全部淡然处之,轻轻一笑,让心更自在,生命更恒久。积极者相信只有推动自己才能推动世界,只要推动自己就能推动世界。
6、人性本善,纯如清溪流水凝露莹烁。欲望与情绪如风沙袭扰,把原本如天空旷蔚蓝的心蒙蔽。但我知道,每个人的心灵深处,不管乌云密布还是阴淤苍茫,但依然有一道彩虹,亮丽于心中某处。
7、每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方!
8、不要活在别人眼中,更不要活在别人嘴中。世界不会因为你的抱怨不满而为你改变,你能做到的只有改变你自己!
9、欲戴王冠,必承其重。哪有什么好命天赐,不都是一路披荆斩棘才换来的。
10、放手如拔牙。牙被拔掉的那一刻,你会觉得解脱。但舌头总会不由自主地往那个空空的牙洞里舔,一天数次。不痛了不代表你能完全无视,留下的那个空缺永远都在,偶尔甚至会异常挂念。适应是需要时间的,但牙总是要拔,因为太痛,所以终归还是要放手,随它去。
11、这个世界其实很公平,你想要比别人强,你就必须去做别人不想做的事,你想要过更好的生活,你就必须去承受更多的困难,承受别人不能承受的压力。
12、逆境给人宝贵的磨炼机会。只有经得起环境考验的人,才能算是真正的强者。自古以来的伟人,大多是抱着不屈不挠的精神,从逆境中挣扎奋斗过来的。
13、不同的人生,有不同的幸福。去发现你所拥有幸运,少抱怨上苍的不公,把握属于自己的幸福。你,我,我们大家都可以经历幸福的人生。
14、给自己一份坚强,擦干眼泪;给自己一份自信,不卑不亢;给自己一份洒脱,悠然前行。轻轻品,静静藏。为了看阳光,我来到这世上;为了与阳光同行,我笑对忧伤。
15、总不能流血就喊痛,怕黑就开灯,想念就联系,疲惫就放空,被孤立就讨好,脆弱就想家,不要被现在而蒙蔽双眼,终究是要长大,最漆黑的那段路终要自己走完。5、从来不跌倒不算光彩,每次跌倒后能再站起来,才是最大的荣耀。
6、这个世界到处充满着不公平,我们能做的不仅仅是接受,还要试着做一些反抗。
7、一个最困苦、最卑贱、最为命运所屈辱的人,只要还抱有希望,便无所怨惧。
8、有些人,因为陪你走的时间长了,你便淡然了,其实是他们给你撑起了生命的天空;有些人,分开了,就忘了吧,残缺是一种大美。
9、照自己的意思去理解自己,不要小看自己,被别人的意见引入歧途。
10、没人能让我输,除非我不想赢!
11、花开不是为了花落,而是为了开的更加灿烂。
12、随随便便浪费的时间,再也不能赢回来。
13、不管从什么时候开始,重要的是开始以后不要停止;不管在什么时候结束,重要的是结束以后不要后悔。
14、当你决定坚持一件事情,全世界都会为你让路。
15、只有在开水里,茶叶才能展开生命浓郁的香气。5、世上最美好的事是:我已经长大,父母还未老;我有能力报答,114AlteraFPGA的设计流程贺光辉清华大学电子工程系115AlteraFPGA的设计流程贺光辉1目标掌握FPGA的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTLCode用QuartusII做设计综合和布局布线用FPGAMega-functions做设计返标SDF并运行门级的仿真掌握FPGA的时序约束了解FPGA的设计原则116目标掌握FPGA的标准设计流程和工具2提纲FPGA概要FPGA的设计流程用Modelsim进行仿真和调试用QuartusII进行时序分析、综合等FIR滤波器的设计实例117提纲FPGA概要3FPGA概要118FPGA概要4FPGA的优点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间布局布线容易,设计过程相当于只有ASIC设计的前端研发费用低不需要投片费用119FPGA的优点集成度高,可以替代多至几千块通用IC芯片5FPGA的应用前景通信、控制、数据计算等领域得到了广泛的应用减少电子系统的开发风险和开发成本缩短上市时间(timetomarket)通过在系统编程、远程在线重构等技术降低维护升级成本系统的原型实现+ASIC的原型验证ASIC常用FPGA进行原型机验证120FPGA的应用前景通信、控制、数据计算等领域得到了广泛的应用CPLD与FPGA的区别CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-EAB(嵌入式逻辑块),锁相环保密性可加密一般不能保密121CPLD与FPGA的区别CPLDFPGA内部结构Produc
CPLD还是FPGA?
复杂组合逻辑:CPLD–PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20~30多个组合逻辑输入• 复杂时序逻辑:FPGA–FPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万122
CPLD还是FPGA?
复杂组合逻辑:CPLD8推荐书籍VerilogVerilog数字系统设计教程夏宇闻北京航天航空大学出版社硬件描述语言Verilog刘明业等译清华大学出版社FPGA基于FPGA的嵌入式系统设计任爱锋西安电子科技大学出版社基于FPGA的系统设计(英文版)WayneWolf机械工业出版社IC设计Reusemethodologymanualforsystem-on-a-chipdesigns3rded.MichaelKeating,PierreBricaud.
片上系统:可重用设计方法学沈戈,等译电子工业出版社,2004Writingtestbenches:functionalverificationofHDLmodels/JanickBergeronBoston:KluwerAcademic,c2000
123推荐书籍Verilog9推荐文章/papers/VerilogCodingStylesForImprovedSimulationEfficiencyStateMachineCodingStylesforSynthesisSynthesisandScriptingTechniquesforDesigningMulti-AsynchronousClockDesignsSynchronousResets?AsynchronousResets?Iamsoconfused!
NonblockingAssignmentsinVerilogSynthesis,CodingStylesThatKill!
124推荐文章http://www.sunburst-designFPGA的设计流程125FPGA的设计流程11目标完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计QuatursIIModelsim126目标12FPGA的设计流程FPGA的设计流程用ModelSim进行仿真用QuartusII进行综合和时序分析用QuartusII进行布局布线、调试和下载127FPGA的设计流程FPGA的设计流程13FPGA设计流程综合-TranslateDesignintoDeviceSpecificPrimitives-OptimizationtoMeetRequiredArea&PerformanceConstraints-Synplify,QuartusIIDesignSpecification布局布线-MapPrimitivestoSpecificLocationsinsideTargetTechnologywithReferencetoArea&PerformanceConstraintsDesignEntry/RTLCoding-BehavioralorStructuralDescriptionofDesignRTL仿真
-
FunctionalSimulation(Modelsim®,QuartusII)-VerifyLogicModel&DataFlow(NoTimingDelays)
LEM512M4KI/O128FPGA设计流程综合DesignSpecificationFPGA设计流程时序分析-VerifyPerformanceSpecificationsWereMet-StaticTimingAnalysis门级仿真-
TimingSimulation-VerifyDesignWillWorkinTargetTechnologyPCBoardSimulation&Test-
SimulateBoardDesign-Program&TestDeviceonBoard-UseSignalTapIIforDebuggingtclk129FPGA设计流程时序分析门级仿真PCBoardSimul系统规划和预算系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。130系统规划和预算系统功能的总体规划:16设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。设计文档化非常重要131设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片设计实现用电路框图或者HDL描述实现自己的设计:简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。132设计实现用电路框图或者HDL描述实现自己的设计:18功能仿真对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时;详细一些的可以认为门延时都是一样,而忽略互连线的延时。RTL代码逻辑仿真器调用模块的行为仿真模型测试数据测试程序(testbench)133功能仿真对逻辑功能进行验证:逻辑仿真器19逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:RTL代码逻辑综合器调用模块的黑盒子接口设置综合目标和约束条件EDIF网表(netlist)HDL网表(netlist)134逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;逻辑综合器EDIF网表(netlist)FPGA厂家工具调用模块的综合模型设置布局布线约束条件HDL网表(netlist)SDF文件(标准延时格式)下载/编程文件135布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,时序逼近时序逼近流程是一个推荐的设计方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生美术课件制作视频
- 消防教学培训课件
- 七年级科学上册9.2家庭用电9.2.4家庭用电的安全措施学案无答案牛津上海版
- 三年级数学上册第3单元图形的运动一3.4有趣的剪纸课时练冀教版
- 三年级科学上册第二单元我们怎么知道第七课它是什么教案青岛版
- 道路安全生产课件讲义
- 上半年大一学生会工作参考计划范文
- 《芳草地国际学校》课件
- 陶笛培训课件图片
- 2021年卫生系统招聘(卫生事业管理)考试题库(真题导出版)
- 北京联合大学《数据挖掘B》2023-2024学年第一学期期末试卷
- 2024年中国大数据企业排行榜V9.0(大数据产业白皮书)-中国民营科技促进会
- 2025公司简单劳务合同书范本
- 2024-2030年中国广电技术行业现状分析及未来发展趋势预测报告
- 2025年统编版高考政治一轮复习:选择性必修1、2、3共3册必背考点知识点汇编
- 货物交接单和交接合同
- 《灭火应急疏散预案》课件
- 【高分复习笔记】孙广仁《中医基础理论》(第9版)笔记与考研真题详解
- 造影剂过敏的护理
- 开题报告:高质量数字教材建设机制及政策研究
- PE工程师工作总结
评论
0/150
提交评论