《CPLD FPGA设计与应用基础教程》课件第八章_第1页
《CPLD FPGA设计与应用基础教程》课件第八章_第2页
《CPLD FPGA设计与应用基础教程》课件第八章_第3页
《CPLD FPGA设计与应用基础教程》课件第八章_第4页
《CPLD FPGA设计与应用基础教程》课件第八章_第5页
已阅读5页,还剩51页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章同步数字电路与时序分析LOREMIPSUMDOLOR目录CONCENT8.1同步数字电路的基本概念8.2D触发器的工作原理8.3亚稳态的产生原理以及同步寄存器8.4同步数字系统的时序约束8.5时钟8.6IO时序分析8.7时序例外8.8PLL8.9时序优化8.1同步数字电路的基本概念GRADUATIONTHESIS8.1基本数据类型8.1.1同步数字电路同步数字电路:由时序电路和组合逻辑电路共同构成的电路,其中时序电路主要由各种寄存器和触发器构成。该电路有一个同步的信号——通常称之为时钟信号——来控制所有的寄存器和触发器,因此同步数字电路会在严格的时钟控制下进行工作。电路中的所有的状态变化都是在时钟的上升沿或者下降沿完成的。同步数字电路示例8.1基本数据类型8.1.2时钟域所有的时序电路都是通过时钟信号来驱动。时钟域,就是在该系统中,所有的触发器都由同一时钟驱动。因此,时钟域的概念主要需要满足如下几点:(1)在同一个时钟域内,所有的触发器都由同一个时钟驱动(2)在同一个时钟域内,所有的组合逻辑的输入都只能由这些触发器驱动(3)在一个数字系统中,如CPLD/FPGA或者ASIC内,可能同时存在多个时钟域如下图所示,FF0和FF1为同一个时钟域,它们同时被时钟信号CLK1驱动,而FF2位另外一个时钟域,它由时钟信号CLK2驱动。当FF2驱动的信号进入组合逻辑时,需要进行特别处理,如增加同步寄存器,否则会产生亚稳态。8.1基本数据类型时钟域8.2D触发器的工作原理GRADUATIONTHESIS8.2D触发器的工作原理D触发器在时钟的上升沿或者下降沿的作用下,会存储一位系统状态并更新它。同时,它也带有复位/置位信号用于上电初始化或者系统复位——该输入信号与时钟信号互相独立并且优先于时钟信号。其基本元件符号如图所示。D触发器元件示意图8.2D触发器的工作原理采用SystemVerilog实现此D触发器如下:moduleDFF#(parameterW=1)(inputlogicclk,inputlogicrst_,inputlogic[W-1:0]d,outputlogic[W-1:0]q);

always_ff@(posedgeclk,negedgerst_)if(!rst_) q<=0;elseq<=d;endmodule8.2D触发器的工作原理建立时间(Tsu)——D触发器输入端要求输入信号在时钟信号有效沿(上升沿或者下降沿)到来之前保持稳定不变的时间。保持时间(Thold)——D触发器输入端要求输入信号在时钟信号有效沿(上升沿或者下降沿)到来之后保持稳定不变的时间。异步恢复时间(Tr)——异步控制信号在下一个有效时钟边沿到达前必须稳定下来的最短时间。Tco——从D触发器时钟信号输入端时钟有效沿到达到D触发器的输出端更新信号稳定之间的时间8.3亚稳态的产生原理以及同步寄存器GRADUATIONTHESIS8.3亚稳态的产生原理以及同步寄存器亚稳态的产生:信号从0到1之间的跳变或者从1到0之间的跳变时间称为上升时间或者下降时间,在这段时间内,信号是未定的,因此如果对这段时间内的信号进行采样,则会出现亚稳态现象。8.3亚稳态的产生原理以及同步寄存器第一种情形,经过一段时间的振荡,D触发器的信号最终会恢复到设计者想要设计的电平信号,如本例Q输出情形1最终恢复为高电平1。第二种情形,经过一段时间的振荡,D触发器的信号还是无法恢复到设计者想要设计的电平逻辑,如本例Q输出情形2最终恢复为低电平2。8.3亚稳态的产生原理以及同步寄存器亚稳态恢复时间过长造成的建立时间违例的波形图8.3亚稳态的产生原理以及同步寄存器同步逻辑正常采用波形图8.3亚稳态的产生原理以及同步寄存器同步逻辑采用亚稳态波形图(假设恢复为1的情形)8.3亚稳态的产生原理以及同步寄存器【例8-1】采样SystemVerilog设计一段代码对异步信号下降沿进行采用,要求:采用两个触发器进行设计。分析:对于异步信号的边沿采样,通常的原理是采用时钟信号连续对被检测的异步信号进行连续采样,如果相邻采样的数据出现不同,如前一个采样值为0,后一个采样值为1,则表示为该异步信号在进行上升沿跳变,如果前一个采样值为1,后一个采样值为0,则表示该异步信号在进行下降沿跳变。该代码原理按照此分析进行。8.3亚稳态的产生原理以及同步寄存器moduleEdge_detect(inputlogicclk,inputlogicrst_,inputlogicAsync_in,outputlogicfalling_edge_latch);

logic[1:0]edge_latch;//边沿检测

always_ff@(posedgeclk,negedgerst_)

if(!rst_)

edge_latch<=2'b0;

else

begin

edge_latch[0]<=Async_in;

edge_latch[1]<=edge_latch[0];

end//当前一个采样值为1后一个采样值为0,则表示侦测到下降沿

assignfalling_edge_latch=(~edge_latch[0])&(edge_latch[1]);endmodule

8.3亚稳态的产生原理以及同步寄存器moduleEdge_detect(inputlogicclk,inputlogicrst_,inputlogicAsync_in,outputlogicfalling_edge_latch);

logic[2:0]edge_latch;//边沿检测always_ff@(posedgeclk,negedgerst_)if(!rst_) edge_latch<=3'b0; else begin edge_latch[0]<=Async_in; edge_latch[1]<=edge_latch[0]; edge_latch[2]<=edge_latch[1]; end//当前一个采样值为1后一个采样值为0,则表示侦测到下降沿assignfalling_edge_latch=(~edge_latch[1])&(edge_latch[2]);endmodule修改代码8.3亚稳态的产生原理以及同步寄存器基本电路逻辑如下:8.4同步数字系统的时序约束GRADUATIONTHESIS8.4同步数字系统的时序约束同步数字系统的时序约束,其本质在于在任何时候使得信号满足建立时间和保持时间的要求,确保系统不会出现亚稳态或者出现亚稳态时系统能够自行恢复到正常状态。同步数字电路示意图如下:其中,Tpd为组合逻辑的传播时延,Tcycle为时钟CLK的时钟周期,该时钟周期没有考虑时钟偏斜和抖动。8.4同步数字系统的时序约束从图中可以看出,要能够维持正确的同步逻辑,系统时序必须满足:8.4同步数字系统的时序约束在该不等式中,Tco、Tsu都是CPLD/FPGA所固定的,一旦选择哪款CPLD/FPGA,则Tco和Tsu不能更改,可以通过具体的CPLD/FPGA芯片的数据手册查阅。因此,在不考虑时钟偏斜和抖动的情况下,影响系统时序的主要是Tcycle时钟周期和Tpd组合逻辑传播时延。当组合逻辑时延Tpd过长,则Q1_Delay信号满足了FF2的保持时间的要求,但无法满足FF2的建立时间的要求,因此Q2输出为未定态。此时,可以通过降低时钟频率来解决该问题,如下图所示。8.4同步数字系统的时序约束但如果组合逻辑传播时延Tpd过短,则可能导致下一次上升沿到来时,信号因为保持时间不满足而违例。降低时钟频率满足时序逻辑时序要求8.4同步数字系统的时序约束如果Q1_Delay的传播时延过短,导致该信号在下一个时钟上升沿到来之后无法满足其保持时间的要求,因而依旧会输出亚稳态波形。8.5时钟GRADUATIONTHESIS8.5时钟8.5.1时钟偏斜与抖动对于时钟而言,由于走线拓扑、布线位置、扇出等不同而会导致同样的时钟信号到达各个触发器的时间也各不相同,这样就会出现时钟偏斜与抖动的现象。一个100MHz时钟从时钟源出来后,驱动一个时序逻辑系统,其中CLK1延时6个时间单位,CLK2延时4.9个时间单位,CLK3延时4.7个时间单位,CLK4延时3.8个时间单位,因此尽管时钟域相同,但由于走线不同,最终到达触发器的时间会不相同。8.5时钟在该图中,时钟周期不再是理想的时钟周期Tcycle,而是Tcycle+Tskew。其中Tskew可正可负。因此,当系统同时满足如下不等式时,同步数字电路能够稳定运行。

8.5时钟

增加Tskew后的同步数字电路波形时序图(Tskew大于0)相对于CLK1的第一个上升沿,CLK2的上升沿到达FF2的时间为Tcycle+Tskew。Q1_Delay在CLK2第二个上升沿到来时稳定时间加长,但同时相对于保持时间会减小。在这种情况下,时序约束需要重点考虑保持时间违例的情形,如下图所示8.5时钟保持时间违例的同步数字电路波形时序图(Tskew大于0)8.5时钟时钟偏斜也存在小于零的情况,如图,CLK2的上升沿到达FF2的时间相对于CLK1的上升沿到达的时间会提前一个偏斜时间到达,因此从CLK1的第一个上升沿到达FF1的时间和CLK2的第二个上升沿到达FF2的时间小于一个时钟周期,具体为Tcycle+Tskew(其中Tskew<0)。8.5时钟当组合逻辑传播延时过大,导致信号不满足FF2的建立时间时,则会产生建立时间违例,Q2输出亚稳态。相应的时序波形图如图所示。8.5时钟8.5.2FmaxFmax的概念:用来衡量芯片最大支持的工作频率。对于芯片内部而言,它是D触发器到D触发器之间的延时,而对于整个芯片来说,还需要考虑进入芯片的建立时间、保持时间以及输出芯片的Tco等。

芯片内部的Fmax的计算公式如下:整个系统时钟频率Fmax的计算公式如下:8.6IO时序分析GRADUATIONTHESIS8.6IO时序分析8.6.1输入时序分析输入时序分析是指信号从上一个源芯片驱动输出,经过电路板或者电缆传送,到达目标CPLD/FPGA芯片的输入管脚,并成功被采样的过程。在此过程中主要有三种时序参数需要考虑。(1)输入建立时间——输入建立时间是指时钟采样边沿到达CPLD/FPGA管脚与数据信号到达CPLD/FPGA输入管脚之间的时间差。如果数据先于时钟信号到达,则该输入建立时间为正。它是时钟频率、源芯片输出时序以及板级时延的函数。与CPLD/FPGA内部D触发器的建立时间是一个固定值不同,由于输入建立时间取决于输入时钟周期值,如果输入时钟周期发生改变,则输入建立时间也会发生改变。(2)输入延时——输入延时是指采样时钟上一个上升沿到达CPLD/FPGA管脚到数据到达CPLD/FPGA输入管脚之间的时间差。显然,这段时间与时钟周期无关,因此如果输入时钟周期发生改变不会影响输入延时。(3)保持时间——保持时间是指FPGA输入端的数据在采样时钟边沿到达FPGA管脚后保持有效的时间。8.6IO时序分析8.6.2输出时序分析输出时序逻辑实际就是分析输入时序逻辑的源设备的时序。其具体时序逻辑如下图所示。输出时序分析是指数据信号被时钟信号采样并成功驱动输出到电路板或者电缆,并顺利传送给目标芯片的输入管脚,在下一个采样时钟到来时成功被采样的过程。在此过程中主要有两种时序参数需要考虑。8.6IO时序分析输出时序分析中主要有两种时序参数:lTco——此时的Tco和之前D触发器的Tco有所不同。输出时序逻辑的Tco是指发布时钟的有效边沿到达CPLD/FPGA输出寄存器到信号被驱动离开FPGA管脚的时间。它不仅包含D触发器的Tco时间,还包括了从输出寄存器的输出端到FPGA管脚之间的延时。它是时钟频率、目标设备时序以及板级延时的函数。因此,如果时钟周期发生变化,也会导致该参数发生变化。l输出延时——信号从离开CPLD/FPGA管脚到信号被目标芯片成功采样之间的时间差。它包括板级延时、输入建立时间以及因为板级SI等问题导致的时钟偏斜等。它与时钟周期无关。8.7时序例外GRADUATIONTHESIS8.7时序例外8.7.1FalsePathFlasePath定义在设计中,把不需要进行时序检查的路径称之为FalsePath。FalsePath一般形式:(1)逻辑上不可能出现的路径:设计者需要指出哪些路径在逻辑功能上不会存在,因为工具不可能获得足够的信息来分辨,如图8-29所示,不论And1与门为何值,And2与门用于输出为0。(2)CDC路径:对于跨时钟域的信号,采用握手协议或者FIFO来通信。(3)测试功能逻辑路径:在CPLD/FPGA设计中,往往会加入很多测试电路,如BIST测试、JTAG测试等。设计者对这些测试电路无需进行时序检查。(4)其他设计者特别指明的路径。8.7时序例外FathPath示例:逻辑上不可能出现的路径8.7时序例外8.7.2MultiCyclePathMultiCycle路径允许设计者指定一个与默认情况下的要求不同的时间要求。MultiCycle路径中的发送寄存器和接收寄存器可以由相同的时钟驱动,也可以采用不同的时钟驱动——但必须相关。8.7时序例外1.相同时钟域的MultiCycle路径概念:当发送寄存器和接收寄存器采用相同时钟的相同时钟沿(注意:是相同的时钟边沿)进行触发时,这就是相同的时钟域。MultiCycle路径的时序是:发布寄存器在上一个时钟上升沿发送数据,但接收数据发生在第三个时钟上升沿,而不是紧接着的第二个时钟上升沿。当然,并不是所有MultiCycle路径都是在第二个时钟上升沿接收数据,而是取决于在进行时钟约束时所设定的在第几个时钟上升沿接收数据。在约束文件中可以采用乘积因子(MultiplierFactor)来设定。如针对图8-35,设定如下:FREQUENCYPORT“clk”200MHZ;MULTICYCLEFROMCELL“FF_S”TO“FF_D”2X;“2X”为乘积因子提醒布局布线软件数据从FF_S到FF_D需要额外一个时钟周期。8.7时序例外2.跨时钟域的MultiCycle路径所谓跨时钟域,也就是说发送寄存器和接收寄存器的驱动时钟不同,或者敏感驱动边沿不同。

跨时钟域MultiCycle路径示意图8.7时序例外跨时钟域MultiCycle可以设置约束文件如下:FREQUENCYPORT"CLK1"333.000000MHz;FREQUENCYPORT"CLK2"250.000000MHz;CLK_OFFSET1.330000X;CLOCK_TO_OUTPORT"Q"1.000000nsCLKPORT"CLK2";CLKSKEWDIFFCLKPORT"CLK2"CLKPORT"CLK1"0.500000ns;时钟时序波形图8.8PLLGRADUATIONTHESIS8.8PLLPLL概念:PLL(PhaseLockedLoop,锁相环)是一种反馈控制电路,其工作原理示意图如下,通常由鉴相器(PD,PhaseDetector)、环路滤波器(LF,LoopFilter)和压控振荡器(VCO,VoltageControlledOscillator)三部分组成。PLL工作原理图8.8PLL用LatticeCPLD/FPGA中的一个PLL如下:my_plli_my_pll(.CLK(clk1),.RESET(rst),.CLKOP(clkop),.CLKOS(),.CLKOK(clkok),.LOCK(pll_lock));clk1为基准输入时钟信号clkop和clkok是PLL输出时钟信号pll_lock表示PLL输出时钟信号稳定信号。输出信号的频率可以比输入时钟高,也可以低,还可以相等,相位可以相同,也可以不同。8.8PLL采用PLL进行CPLD/FPGA设计的优势在于:l整个CPLD/FPGA的时序可控,尽管PLL输出的时钟信号可能频率和相位都不相同,但可以相关,这样就可以使用MultiCycle进行时序约束。l在进行系统综合和布局布线时,各种时序报告可以自动分析PLL输出时钟信号的状态和相关约束,因此容易进行时序约束调整。l采用PLL对输入信号进行锁频、分频和倍频,可以尽量减小输入信号的偏斜、抖动等各种影响时序约束的因素。8.9时序优化GRADUATIONTHESIS8.9时序优化时序优化的额一般方法:(1)采用专用GSR资源来改善Fmax。如果设计中会涉及大量的置位/复位的扇出,推荐采用专用的硬件GSR资源,从而减少布线拥塞,改善布线性能。(2)采用I/O寄存器来改善I/O时序。可以通过打开I/O寄存器来改善输入建立时间以及输出Tco。可以通过在VerilogHDL语言中进行注释来打开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论