您好,欢迎访问三七文档
当前位置:首页 > 资格认证/考试 > 技工职业技能考试 > 技能培训专题 FPGA设计高级进阶
2目标•掌握FPGA的基本设计原则•乒乓结构、流水线设计•异步时钟域的处理•状态机的设计•毛刺的消除•掌握FPGA设计的注意事项•从文档到设计完成•从设计实例加深设计思想3提纲•FPGA的基本设计原则•FPGA设计的注意事项•设计实例•交织器•数据适配器4推荐书籍•Verilog•Verilog数字系统设计教程夏宇闻北京航天航空大学出版社•硬件描述语言Verilog刘明业等译清华大学出版社•FPGA•基于FPGA的系统设计(英文版)WayneWolf机械工业出版社•AlteraFPGA/CPLD设计(高级篇)EDA先锋工作室人民邮电出版社•IC设计•Reusemethodologymanualforsystem-on-a-chipdesigns3rded.MichaelKeating,PierreBricaud.•片上系统:可重用设计方法学沈戈,等译电子工业出版社,2004•Writingtestbenches:functionalverificationofHDLmodels/JanickBergeronBoston:KluwerAcademic,c20005推荐文章••VerilogCodingStylesForImprovedSimulationEfficiency•StateMachineCodingStylesforSynthesis•SynthesisandScriptingTechniquesforDesigningMulti-AsynchronousClockDesigns•SynchronousResets?AsynchronousResets?Iamsoconfused!•NonblockingAssignmentsinVerilogSynthesis,CodingStylesThatKill!6FPGA设计的两条思路•控制通路(上午)•有限状态机的设计•异步时钟域的处理•数据通路(下午)•关注算法到结构的映射7FPGA设计基本原则8目标•完成本单元的学习后你将会•加深FPGA设计常用的设计思想和技巧•了解为什么才用流水线设计•掌握处理异步时钟的方法•掌握状态机的设计•了解毛刺消除的方法9FPGA设计流程综合-TranslateDesignintoDeviceSpecificPrimitives-OptimizationtoMeetRequiredArea&PerformanceConstraints-Synplify,ISEXSTDesignSpecification布局布线-MapPrimitivestoSpecificLocationsinsideTargetTechnologywithReferencetoArea&PerformanceConstraintsDesignEntry/RTLCoding-BehavioralorStructuralDescriptionofDesignRTL仿真-FunctionalSimulation(Modelsim®)-VerifyLogicModel&DataFlow(NoTimingDelays)CLBI/OBlockRAM10FPGA设计流程时序分析-VerifyPerformanceSpecificationsWereMet-StaticTimingAnalysis门级仿真-TimingSimulation-VerifyDesignWillWorkinTargetTechnologyPCBoardSimulation&Test-SimulateBoardDesign-Program&TestDeviceonBoard-UseChipScopeProforDebuggingtclk11LogiCOREApplicationAreas•BasicElements•Multiplexers,parallel-to-serialconverters•DSPFunctions•Timeskewbuffers,FIRfilters,correlators•MathFunctions•Accumulators,adders,multipliers,integrators,squareroot•Memories•Pipelineddelayelements,singleanddual-portRAM•SynchronousFIFOs•PCI•Masterandslaveinterfaces,PCIbridge12FPGA设计基本原则•乒乓结构和流水线设计•异步时钟的处理•同步状态机的设计•毛刺的消除13乒乓操作应用于数据流控制•通过“输入数据选择单元”和“输出数据选择单元”按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到“数据流运算处理模块”进行运算与处理。•节约缓存空间14数据通道-多级RAM乒乓结构•以定长包为单位的处理•提高数据处理的并行性•提高数据传输速率•隔离时钟域之间的冲突•66MHz,33MHz,8MHz•双口RAM与同步器15流水线操作•流水线技术几乎是昀常用的提供系统工作速率的强有力手段。•它是面积换取速度思想的又一种具体体现。16流水线操作•考虑一个电路每个时钟周期执行N个操作,工作频率为F。我们可以认为吞吐量为N*Fops/sec。•Pipeline本质上是通过增加F来提高吞吐量,达到latency和area的tradeoff。•什么决定了昀高工作频率呢?•回忆statictiminganalysis•在flipflops之间的昀大延时17流水线操作(STA)•时序电路之间的组合电路延时决定整个电路的速度,即昀大工作时钟频率,故不可太复杂。昀小时钟周期:T=Tco+Tdelay+Tsetup昀快时钟频率:F=1/T18解决方式(PIPELINE技术)通过将Algorithm分为两个部分,在中间插入触发器19流水线技术•其思想是利用寄存器将一条长路径切分成几段小路径,从而达到提高工作速率的作用。•假设原路径延时为t,加入2级流水线并且假设路径切割均匀,则路径延时可以减少到约t/3,从而系统速率可以提高到原来的3倍左右。•当然要注意的是输出同时会往后推迟3个时钟周期。所以采用流水线技术时,要记得进行时序调整。20流水线设计例子•设计din1+din2+din3+din4结果输出给dout。din1din2din3din4dout21PIPELINE程序实例•未用PIPELINE技术前的程序:•Always@(posedgeclk)•if((a+b+c)==d)•………..•采用PIPELINE技术后的程序:•always@(posedgeclk)•begin•e=a+b+c;•if(e==d)•…………..•end22FPGA设计基本原则•乒乓结构和流水线设计•异步时钟的处理•同步状态机的设计•毛刺的消除23多时钟系统•许多系统要求在同一设计内采用多时钟,昀常见的例子是两个异步微处理器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以上述应用引进了附加的定时约束条件,它们会要求将某些异步信号同步化。24多时钟系统设计如果一个系统中存在多个独立(异步)时钟,并且存在多时钟域(clockdomain)之间的信号传输,那么电路会出现亚稳态。dinaclkbclkadatbdataclkadatbclkbdat25•Sync_a2b消除亚稳态----同步化dinaclkbclkadatbdatbdat1bdat2aclkadatbclkbdat1bdat126亚稳态分析•出现亚稳态的平均时间间隔常用“平均无故障时间”(MTBF,MeanTimeBetweenFailure)来表示。单个触发器的MTBF为温度、电压、辐射等因素都对MTBF有影响27两个寄存器方案分析•优点:–实现简单.–成本低.•缺点:–不能完全消除亚稳态–导致延时增加.28同步化29多时钟系统•在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,设计人员将面临复杂的时间分析问题。•昀好的方法是将所有非同源时钟同步化。•这时就需要使用带使能端的D触发器,并引入一个高频时钟来实现信号的同步化。30同步化任意非同源时钟QDPRNCLRNENA3M_ENDatainDataoutQDPRNCLRNENADatainDataoutQDPRNCLRNQDPRNCLRN20M_CLKQDPRNCLRNQDPRNCLRN3M_CLK5M_CLK5M_EN31异步多时钟系统模型aClkLogicaClkLogicbClkLogicbClkLogicSync_a2bSync_a2baSigaClkbClkaClkDomainbClkDomainbSig32注意其信号命名和模块划分方法•这种信号命名和模块划分的方法有如下优点:•有利于检查信号所通过的时钟域;•有利于各模块进行单独的静态时序分析;•有利于在静态时序分析中快速地设定falsepath;•异步信号穿越时钟域时,这些信号与异步时钟之间的相位关系数是无穷的,所以在整个系统静态时序分析时必须忽略这些信号路径。33数据接口的同步方法•输入、输出的延时(芯片间、PCB布线、一些驱动接口元件的延时等)不可测,或者有可能变动的条件下,如何完成数据同步?昀常用的缓存单元是DPRAM和FIFO,在输入端口使用上级时钟写数据,在输出端口使用本级时钟读数据。34多时钟系统设计的经典案例-异步FIFO关于多时钟域数字系统设计的方法,可以参考《SynthesisandScriptingTechniquesforDesigningMulti-AsynchronousClockDesigns》,CliffordE.Cummings。35思考•当输入信号小于一个时钟周期,比如快时钟域的信号进入慢时钟域信号36时钟质量保证•时钟的纯净:时钟昀好不要通过任何组合电路,或者不要用组合电路产生时钟;•时钟的单一:数字系统设计时,应该尽量减少时钟的数目,昀好整个系统只有一个时钟。37异步设计的注意事项小结•注意使用同步化电路来对异步信号进行同步;•采用FIFO方式是解决问题的昀好的方法,但需要注意FIFO的深度的设定以及FIFO门限的控制;•进行科学的模块划分和信号命名;•尽量减少握手控制信号的数目,以避免同步化造成的信号拉伸而破坏控制信号之间的相位关系;•快时钟域信号进入慢时钟域时,要注意信号丢失的避免和检测;38FPGA设计基本原则•乒乓结构和流水线设计•异步时钟的处理•同步状态机的设计•毛刺的消除39同步状态机的概念•状态寄存器由一组触发器组成,用来记忆当前状态;•所有触发器都连接在一个时钟信号上;•状态的改变只在时钟沿到来时才发生,由触发器类型决定是上升沿还是下降沿;•驱动方程决定了状态机的下一个状态,驱动方程是输入信号和当前状态的组合函数;•状态机的输出是由输出函数得到,它也是当前状态和输入信号的函数;•目前一般都采用D触发器进行状态机的设计。40同步状态机的概念Moore状态机:输出仅与当前状态有关Melay状态机:输出与当前状态和输入信号都有关41状态机的表示方法1方法一:状态转换表…………0000000100010000输出下一状态当前状态输入42状态机的表示方法2方法二:算法流程图方法与软件程序的流程图类似状态转换表和算法流程图都不适合复杂系统的设计43状态机的表示方法3方法三:状态转换图这是昀流行的表示方法状态1状态4状态2状态3入/出入入入/出/出/出Moore条件控制定序直接控制定序44状态机的表示方法3方法三:状态转换图这是昀流行的示方法状态1状态4状态2状态3入/出入入入/出/出/出/出Mealy条件控制定序直接控制定序45状态机的应用设计例子:设计一个二进制序列检测器,当检测到10110序列时,就输出1(一个时钟周期的脉冲)。其他情况下输出0。规定检测到一
本文标题:技能培训专题 FPGA设计高级进阶
链接地址:https://www.777doc.com/doc-8137037 .html