书签 分享 收藏 举报 版权申诉 / 56
上传文档赚钱

类型《CPLD FPGA设计与应用基础教程》课件第八章.ppt

  • 上传人(卖家):momomo
  • 文档编号:5716101
  • 上传时间:2023-05-05
  • 格式:PPT
  • 页数:56
  • 大小:2.33MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《CPLD FPGA设计与应用基础教程》课件第八章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    CPLD FPGA设计与应用基础教程 CPLD FPGA设计与应用基础教程课件第八章 CPLD FPGA 设计 应用 基础教程 课件 第八
    资源描述:

    1、第八章第八章 同步数字同步数字电路与时序分析电路与时序分析LOREM IPSUM DOLOR目 录CONCENT8.1 同步数字电路的基本概念8.2 D触发器的工作原理8.3 亚稳态的产生原理以及同步寄存器8.4 同步数字系统的时序约束8.5 时钟8.6 IO时序分析8.7 时序例外8.8 PLL8.9 时序优化8.1同步数字电路的基本概念GRADUATION THESIS8.1基本数据类型8.1.1 同步数字电路同步数字电路同步数字电路同步数字电路:由时序电路和组合逻辑电路共同构成的电路,其中时序电路主要由各种寄存器和触发器构成。该电路有一个同步的信号通常称之为时钟信号来控制所有的寄存器和触

    2、发器,因此同步数字电路会在严格的时钟控制下进行工作。电路中的所有的状态变化都是在时钟的上升沿或者下降沿完成的。同步数字电路示例8.1基本数据类型8.1.2 时钟域时钟域所有的时序电路都是通过时钟信号来驱动。时钟域,就是在该系统中,所有的触发器都由同一时钟驱动。因此,时钟域的概念主要需要满足如下几点:(1)在同一个时钟域内,所有的触发器都由同一个时钟驱动(2)在同一个时钟域内,所有的组合逻辑的输入都只能由这些触发器驱动(3)在一个数字系统中,如CPLD/FPGA或者ASIC内,可能同时存在多个时钟域如下图所示,FF0和FF1为同一个时钟域,它们同时被时钟信号CLK1驱动,而FF2位另外一个时钟域

    3、,它由时钟信号CLK2驱动。当FF2驱动的信号进入组合逻辑时,需要进行特别处理,如增加同步寄存器,否则会产生亚稳态。8.1基本数据类型时钟域8.2 D触发器的工作原理GRADUATION THESIS8.2 D触发器的工作原理D触发器在时钟的上升沿或者下降沿的作用下,会存储一位系统状态并更新它。同时,它也带有复位/置位信号用于上电初始化或者系统复位该输入信号与时钟信号互相独立并且优先于时钟信号。其基本元件符号如图所示。D触发器元件示意图8.2 D触发器的工作原理采用SystemVerilog实现此D触发器如下:module DFF#(parameter W=1)(input logic clk

    4、,input logic rst_,input logic W-1:0 d,output logic W-1:0 q);always_ff(posedge clk,negedge rst_)if(!rst_)q=0;else q=d;endmodule8.2 D触发器的工作原理建立时间(Tsu)D触发器输入端要求输入信号在时钟信号有效沿(上升沿或者下降沿)到来之前保持稳定不变的时间。保持时间(Thold)D触发器输入端要求输入信号在时钟信号有效沿(上升沿或者下降沿)到来之后保持稳定不变的时间。异步恢复时间(Tr)异步控制信号在下一个有效时钟边沿到达前必须稳定下来的最短时间。Tco从D触发器时钟

    5、信号输入端时钟有效沿到达到D触发器的输出端更新信号稳定之间的时间8.3 亚稳态的产生原理以及同步寄存器GRADUATION THESIS8.3 亚稳态的产生原理以及同步寄存器亚稳态的产生:亚稳态的产生:信号从信号从0到到1之间的跳变或者从之间的跳变或者从1到到0之间的跳变时间称为上升时间或者下之间的跳变时间称为上升时间或者下降时间,在这段时间内,信号是未定的,因此如果对这段时间内的信号进降时间,在这段时间内,信号是未定的,因此如果对这段时间内的信号进行采样,则会出现亚稳态现象。行采样,则会出现亚稳态现象。8.3 亚稳态的产生原理以及同步寄存器第一种情形第一种情形,经过一段时间的振荡,D触发器的

    6、信号最终会恢复到设计者想要设计的电平信号,如本例Q输出情形1最终恢复为高电平1。第二种情形第二种情形,经过一段时间的振荡,D触发器的信号还是无法恢复到设计者想要设计的电平逻辑,如本例Q输出情形2最终恢复为低电平2。8.3 亚稳态的产生原理以及同步寄存器亚稳态恢复时间过长造成的建立时间违例的波形图8.3 亚稳态的产生原理以及同步寄存器同步逻辑正常采用波形图8.3 亚稳态的产生原理以及同步寄存器同步逻辑采用亚稳态波形图(假设恢复为1的情形)8.3 亚稳态的产生原理以及同步寄存器【例8-1】采样SystemVerilog设计一段代码对异步信号下降沿进行采用,要求:采用两个触发器进行设计。分析:对于异

    7、步信号的边沿采样,通常的原理是采用时钟信号连续对被检测的异步信号进行连续采样,如果相邻采样的数据出现不同,如前一个采样值为0,后一个采样值为1,则表示为该异步信号在进行上升沿跳变,如果前一个采样值为1,后一个采样值为0,则表示该异步信号在进行下降沿跳变。该代码原理按照此分析进行。8.3 亚稳态的产生原理以及同步寄存器module Edge_detect(input logic clk,input logic rst_,input logic Async_in,output logic falling_edge_latch);logic 1:0 edge_latch;/边沿检测 always_f

    8、f(posedge clk,negedge rst_)if(!rst_)edge_latch=2b0;else begin edge_latch0=Async_in;edge_latch1=edge_latch0;end/当前一个采样值为1后一个采样值为0,则表示侦测到下降沿 assign falling_edge_latch=(edge_latch0)&(edge_latch1);endmodule 8.3 亚稳态的产生原理以及同步寄存器module Edge_detect(input logic clk,input logic rst_,input logic Async_in,outpu

    9、t logic falling_edge_latch);logic 2:0 edge_latch;/边沿检测 always_ff(posedge clk,negedge rst_)if(!rst_)edge_latch=3b0;else begin edge_latch0=Async_in;edge_latch1=edge_latch0;edge_latch2=edge_latch1;end/当前一个采样值为1后一个采样值为0,则表示侦测到下降沿 assign falling_edge_latch=(edge_latch1)&(edge_latch2);endmodule修改代码修改代码8.3

    10、 亚稳态的产生原理以及同步寄存器基本电路逻辑如下:8.4 同步数字系统的时序约束GRADUATION THESIS8.4同步数字系统的时序约束同步数字系统的时序约束,其本质在于在任何时候使得信号满足建立时间和保持时间的要求,确保系统不会出现亚稳态或者出现亚稳态时系统能够自行恢复到正常状态。同步数字电路示意图如下:其中,Tpd为组合逻辑的传播时延,Tcycle为时钟CLK的时钟周期,该时钟周期没有考虑时钟偏斜和抖动。8.4同步数字系统的时序约束从图中可以看出,要能够维持正确的同步逻辑,系统时序必须满足:(max)(max)(min)(min)hcopdsucyclecopdTTTTTTT8.4同

    11、步数字系统的时序约束(max)(max)(min)(min)hcopdsucyclecopdTTTTTTT在该不等式中,Tco、Tsu都是CPLD/FPGA所固定的,一旦选择哪款CPLD/FPGA,则Tco和Tsu不能更改,可以通过具体的CPLD/FPGA芯片的数据手册查阅。因此,在不考虑时钟偏斜和抖动的情况下,影响系统时序的主要是Tcycle时钟周期和Tpd组合逻辑传播时延。当组合逻辑时延Tpd过长,则Q1_Delay信号满足了FF2的保持时间的要求,但无法满足FF2的建立时间的要求,因此Q2输出为未定态。此时,可以通过降低时钟频率来解决该问题,如下图所示。8.4同步数字系统的时序约束但如果

    12、组合逻辑传播时延Tpd过短,则可能导致下一次上升沿到来时,信号因为保持时间不满足而违例。降低时钟频率满足时序逻辑时序要求8.4同步数字系统的时序约束如果Q1_Delay的传播时延过短,导致该信号在下一个时钟上升沿到来之后无法满足其保持时间的要求,因而依旧会输出亚稳态波形。8.5时钟GRADUATION THESIS8.5时钟8.5.1时钟偏斜与抖动时钟偏斜与抖动对于时钟而言,由于走线拓扑、布线位置、扇出等不同而会导致同样对于时钟而言,由于走线拓扑、布线位置、扇出等不同而会导致同样的时钟信号到达各个触发器的时间也各不相同,这样就会出现时钟偏斜的时钟信号到达各个触发器的时间也各不相同,这样就会出现

    13、时钟偏斜与抖动的现象。与抖动的现象。一个100MHz时钟从时钟源出来后,驱动一个时序逻辑系统,其中CLK1延时6个时间单位,CLK2延时4.9个时间单位,CLK3延时4.7个时间单位,CLK4延时3.8个时间单位,因此尽管时钟域相同,但由于走线不同,最终到达触发器的时间会不相同。8.5时钟在该图中,时钟周期不再是理想的时钟周期Tcycle,而是Tcycle+Tskew。其中Tskew可正可负。因此,当系统同时满足如下不等式时,同步数字电路能够稳定运行。(max)(max)(max)(min)(min)(max)+|copdsucycleskewcopdskewhTTTTTTTTT8.5时钟 增

    14、加增加Tskew后的同步数字电路波形时序图(后的同步数字电路波形时序图(Tskew大于大于0)相对于CLK1的第一个上升沿,CLK2的上升沿到达FF2的时间为Tcycle+Tskew。Q1_Delay在CLK2第二个上升沿到来时稳定时间加长,但同时相对于保持时间会减小。在这种情况下,时序约束需要重点考虑保持时间违例的情形,如下图所示8.5时钟保持时间违例保持时间违例的同步数字电路波形时序图(的同步数字电路波形时序图(Tskew大于大于0)8.5时钟时钟偏斜也存在小于零的情况,如图,CLK2的上升沿到达FF2的时间相对于CLK1的上升沿到达的时间会提前一个偏斜时间到达,因此从CLK1的第一个上升

    15、沿到达FF1的时间和CLK2的第二个上升沿到达FF2的时间小于一个时钟周期,具体为Tcycle+Tskew(其中Tskew0)。8.5时钟当组合逻辑传播延时过大,导致信号不满足FF2的建立时间时,则会产生建立时间违例,Q2输出亚稳态。相应的时序波形图如图所示。8.5时钟8.5.2 FmaxFmax的概念:的概念:用来衡量芯片最大支持的工作频率。对于芯片内部而言,它是D触发器到D触发器之间的延时,而对于整个芯片来说,还需要考虑进入芯片的建立时间、保持时间以及输出芯片的Tco等。芯片内部的芯片内部的Fmax的计算公式如下:的计算公式如下:max1|pdcosuskewFTTTT整个系统时钟频率整个

    16、系统时钟频率Fmax的计算公式如下:的计算公式如下:max1max_,_,_Fcycleinputclk cycleinclk cycleoutputclk8.6 IO时序分析GRADUATION THESIS8.6 IO时序分析8.6.1 输入时序分析输入时序分析输入时序分析是指信号从上一个源芯片驱动输出,经过电路板或者电缆传送,到达目标CPLD/FPGA芯片的输入管脚,并成功被采样的过程。在此过程中主要有三种时序参数需要考虑。(1)输入建立时间输入建立时间输入建立时间是指时钟采样边沿到达CPLD/FPGA管脚与数据信号到达CPLD/FPGA输入管脚之间的时间差。如果数据先于时钟信号到达,则

    17、该输入建立时间为正。它是时钟频率、源芯片输出时序以及板级时延的函数。与CPLD/FPGA内部D触发器的建立时间是一个固定值不同,由于输入建立时间取决于输入时钟周期值,如果输入时钟周期发生改变,则输入建立时间也会发生改变。(2)输入延时输入延时输入延时是指采样时钟上一个上升沿到达CPLD/FPGA管脚到数据到达CPLD/FPGA输入管脚之间的时间差。显然,这段时间与时钟周期无关,因此如果输入时钟周期发生改变不会影响输入延时。(3)保持时间保持时间保持时间是指FPGA输入端的数据在采样时钟边沿到达FPGA管脚后保持有效的时间。8.6 IO时序分析8.6.2 输出时序分析输出时序分析输出时序逻辑实际

    18、就是分析输入时序逻辑的源设备的时序。其具体时序逻辑如下图所示。输出时序分析是指数据信号被时钟信号采样并成功驱动输出到电路板或者电缆,并顺利传送给目标芯片的输入管脚,在下一个采样时钟到来时成功被采样的过程。在此过程中主要有两种时序参数需要考虑。8.6 IO时序分析输出时序分析中主要有两种时序参数输出时序分析中主要有两种时序参数:l Tco此时的Tco和之前D触发器的Tco有所不同。输出时序逻辑的Tco是指发布时钟的有效边沿到达CPLD/FPGA输出寄存器到信号被驱动离开FPGA管脚的时间。它不仅包含D触发器的Tco时间,还包括了从输出寄存器的输出端到FPGA管脚之间的延时。它是时钟频率、目标设备

    19、时序以及板级延时的函数。因此,如果时钟周期发生变化,也会导致该参数发生变化。l 输出延时信号从离开CPLD/FPGA管脚到信号被目标芯片成功采样之间的时间差。它包括板级延时、输入建立时间以及因为板级SI等问题导致的时钟偏斜等。它与时钟周期无关。8.7 时序例外GRADUATION THESIS8.7 时序例外8.7.1 False Path Flase Path定义定义在设计中,把不需要进行时序检查的路径称之为False Path。FalsePath一般形式:一般形式:(1)逻辑上不可能出现的路径:设计者需要指出哪些路径在逻辑功能上不会存在,因为工具不可能获得足够的信息来分辨,如图8-29所示

    20、,不论And1与门为何值,And2与门用于输出为0。(2)CDC路径:对于跨时钟域的信号,采用握手协议或者FIFO来通信。(3)测试功能逻辑路径:在CPLD/FPGA设计中,往往会加入很多测试电路,如BIST测试、JTAG测试等。设计者对这些测试电路无需进行时序检查。(4)其他设计者特别指明的路径。8.7 时序例外Fath Path示例:逻辑上不可能出现的路径示例:逻辑上不可能出现的路径8.7 时序例外8.7.2 MultiCycle PathMultiCycle路径允许设计者指定一个与默认情况下的要求不同的时间要求。MultiCycle路径中的发送寄存器和接收寄存器可以由相同的时钟驱动,也可

    21、以采用不同的时钟驱动但必须相关。8.7 时序例外1.相同时钟域的相同时钟域的MultiCycle路径路径概念:概念:当发送寄存器和接收寄存器采用相同时钟的相同时钟沿(注意:是相同的时钟边沿)进行触发时,这就是相同的时钟域。MultiCycle路径的时序是:发布寄存器在上一个时钟上升沿发送数据,但接收数据发生在第三个时钟上升沿,而不是紧接着的第二个时钟上升沿。当然,并不是所有MultiCycle路径都是在第二个时钟上升沿接收数据,而是取决于在进行时钟约束时所设定的在第几个时钟上升沿接收数据。在约束文件中可以采用乘积因子(Multiplier Factor)来设定。如针对图8-35,设定如下:FR

    22、EQUENCY PORT“clk”200MHZ;MULTICYCLE FROM CELL“FF_S”TO“FF_D”2 X;“2 X”为乘积因子提醒布局布线软件数据从FF_S到FF_D需要额外一个时钟周期。8.7 时序例外2.跨时钟域的跨时钟域的MultiCycle路径路径所谓跨时钟域,也就是说发送寄存器和接收寄存器的驱动时钟不同,或者敏感驱动边沿不同。跨时钟域MultiCycle路径示意图8.7 时序例外 跨时钟域MultiCycle可以设置约束文件如下:FREQUENCY PORT CLK1 333.000000 MHz;FREQUENCY PORT CLK2 250.000000 MHz

    23、;CLK_OFFSET 1.330000 X;CLOCK_TO_OUT PORT Q 1.000000 ns CLKPORT CLK2;CLKSKEWDIFF CLKPORT CLK2 CLKPORT CLK1 0.500000 ns;时钟时序波形图8.8 PLLGRADUATION THESIS8.8 PLLPLL概念:概念:PLL(Phase Locked Loop,锁相环)是一种反馈控制电路,其工作原理示意图如下,通常由鉴相器(鉴相器(PD,Phase Detector)、环路滤波器()、环路滤波器(LF,Loop Filter)和压控振荡器(压控振荡器(VCO,Voltage Cont

    24、rolled Oscillator)三部分组成。PLL工作原理图8.8 PLL用Lattice CPLD/FPGA中的一个PLL如下:my_pll i_my_pll(.CLK(clk1),.RESET(rst),.CLKOP(clkop),.CLKOS(),.CLKOK(clkok),.LOCK(pll_lock);clk1为基准输入时钟信号clkop和clkok是PLL输出时钟信号pll_lock表示PLL输出时钟信号稳定信号。输出信号的频率可以比输入时钟高,也可以低,还可以相等,相位可以相同,也可以不同。8.8 PLL采用PLL进行CPLD/FPGA设计的优势在于:l 整个CPLD/FPG

    25、A的时序可控,尽管PLL输出的时钟信号可能频率和相位都不相同,但可以相关,这样就可以使用MultiCycle进行时序约束。l 在进行系统综合和布局布线时,各种时序报告可以自动分析PLL输出时钟信号的状态和相关约束,因此容易进行时序约束调整。l 采用PLL对输入信号进行锁频、分频和倍频,可以尽量减小输入信号的偏斜、抖动等各种影响时序约束的因素。8.9 时序优化GRADUATION THESIS8.9 时序优化时序优化的额一般方法:时序优化的额一般方法:(1)采用专用采用专用GSR资源来改善资源来改善Fmax。如果设计中会涉及大量的置位/复位的扇出,推荐采用专用的硬件GSR资源,从而减少布线拥塞,

    26、改善布线性能。(2)采用采用I/O寄存器来改善寄存器来改善I/O时序。时序。可以通过打开I/O寄存器来改善输入建立时间以及输出Tco。可以通过在Verilog HDL语言中进行注释来打开I/O寄存器或者在SDC约束文件中进行定义。(3)增加对输入寄存器的时延。增加对输入寄存器的时延。如果数据路径太快,可能会引起输入寄存器的保持时间违例。增加输入延时可以减小输入寄存器的保持时间违例风险,如图8-39所示。具体如何打开此输入时延,可查阅具体的CPLD/FPGA芯片的数据手册。不同的CPLD/FPGA芯片有不同的设置方式。(4)最大化扇出数来改善最大化扇出数来改善Fmax性能。性能。从一个驱动输出的

    27、信号的偏斜会最小,因此也就更容易满足时序的要求通常用于非时钟信号的约束。8.9 时序优化(4)采用流水线(采用流水线(pipeline)的方式。)的方式。采用流水线的方式,可以使得综合软件按照时序要求通过向前或者向后移动寄存器来满足时序要求,从而使得两个寄存器之间的组合逻辑传播延时变小,改善时序逻辑。如图所示。采用流水线的方式实现时序优化8.10 实例:采用SystemVerilog实现对开关信号的消抖设计GRADUATION THESIS8.10 实例在电子世界中,许多信号并不是理想的高低电平状态,而是会出现各种毛刺和尖峰脉冲,特别是在信号电平转换的时候。因此,当这些信号接入到CPLD/FP

    28、GA时,需要采用消抖电路进行设计。通常有两种方式来进行:采用RC滤波电路或者直接通过CPLD/FPGA进行编程消抖,也可以两个方法一起使用。采用RC滤波电路消抖的缺点在于输入信号的上升时间会加长,导致亚稳态出现的几率增大。而采用CPLD/FPGA编程消抖,可以较好地在不改变原始信号的上升时间的同时,进行消抖,输出稳定的开关信号。本章小结本章主要就同步数字电路的概念进行了分析讲述,本章主要就同步数字电路的概念进行了分析讲述,并着重分析了同步数字系统的时序要求、时钟偏斜和并着重分析了同步数字系统的时序要求、时钟偏斜和抖动对时序的影响,亚稳态的产生以及如何避免,并抖动对时序的影响,亚稳态的产生以及如何避免,并讲述了如何进行时序优化。最后通过一个对开关信号讲述了如何进行时序优化。最后通过一个对开关信号的消抖程序的设计强化了时序分析和设计理念。如果的消抖程序的设计强化了时序分析和设计理念。如果需要更深入的了解同步数字电路的时序分析和设计,需要更深入的了解同步数字电路的时序分析和设计,可以参考各可以参考各CPLD/FPGA公司的设计文档,或者专业公司的设计文档,或者专业第三方综合编译公司的设计指南。第三方综合编译公司的设计指南。谢谢THANK YOU

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《CPLD FPGA设计与应用基础教程》课件第八章.ppt
    链接地址:https://www.163wenku.com/p-5716101.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库