
Verilog HDL 数字系统设计及实践 第11章 异步设计与同步设计的时序分析.ppt
41页第11章 异步设计与同步设计的时序分析,Verilog HDL 数字系统设计及实践,学习指南,【知识目标】(1) 理解亚稳态产生的物理意义(2) 理解触发器本身的建立时间和保持时间以及异步复位恢复的概念(3) 理解亚稳态恢复和同步寄存器的概念(4) 理解组合逻辑的延迟产生的原理,掌握系统时钟频率的计算(5) 理解并掌握时钟偏斜和抖动及其对时钟频率的影响(6) 理解提高系统时钟频率的两种方法(7) 了解False Path和多时钟周期的概念,知道使用False Path和多时钟周期进行时序约束8) 理解并掌握芯片之间的时序接口设计(9) 理解并掌握异步电路的设计方法 【技能目标】(1) 学会基本的静态时序分析(建立时间、保持时间等)与设计约束(2) 学会时钟频率计算及其提高系统时钟频率的集中方法(3) 学会设计异步电路的设计方法(4) 学会对芯片之间的接口时序进行约束(5) 能够设计稳定的异步电路,学习指南,【重点难点】(1) 建立时间和保持时间对系统时钟周期的影响(2) 给定约束条件下的静态时序分析(3) 异步设计方法,11.1 亚稳态的物理意义,,,图11.1 置于山坡的小球的稳定性,数字电路对于电平小于电压阀值VL称之为0,大于电压阀值VH称之为1,对于从0到1之间上跳变或者从1到0之间的下跳变期间叫做系统的亚稳态,,图11.2数字电路的高低电平和亚稳态区域,11.2 亚稳态与建立时间、保持时间、异步复位恢复时间,11.2.1建立时间、保持时间、异步复位恢复时间基本概念,,图11.3 100MHz时钟域采样33MHz时钟域的控制使能信号电路,,图11.4 100MHz时钟域采样33MHz时钟域的控制使能信号时序,11.2 亚稳态与建立时间、保持时间、异步复位恢复时间,,建立时间(micro_Tsu):器件输入端在时钟信号有效沿(上升沿或者下降沿)到来前,要求输入信号保持稳定不变的时间。
保持时间(micro_Th):器件输入端要求输入信号在时钟信号有效沿(上升沿或者下降沿)到来后保持稳定不变的时间异步恢复时间(micro_Trecover):异步恢复时间是异步控制信号,在下一有效时钟沿达到前必须稳定下来的最短时间,例如异步复位信号11.2.2建立时间、保持时间的违例(Violation),,图11.5 触发器建立时间、保持时间和异步恢复时间定义,11.2 亚稳态与建立时间、保持时间、异步复位恢复时间,,【例11.1】这是一个同步系统设计,需要用时钟域CLK2对异步输入Asyn进行同步图11.6是其逻辑功能图在图11.7的时序图中,我们看到在A时刻,由于异步输入满足触发器的建立和保持时间(在时钟沿A时刻到前后时,异步输入已经保持稳定),两个触发器都稳定输出高电平,然后在B和E时刻点,由于时钟上升沿落在建立和保持时间的窗口之内,不满足建立和保持时间,触发器器输出亚稳态从图上看出,当采样落在异步输入信号的建立和保持时间窗口之内,触发器经过一段时间恢复为稳定的状态,但是恢复出来的状态可能为0,也可能是1,这一点可以从图中Sync1和Sync2在C和F点亚稳态恢复结果可以看出,这种不确定性常常导致系统崩溃。
图11.6 同步系统逻辑电路图,图11.7 同步系统逻辑时序图,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,11.3.1亚稳态的恢复时间,,图11.8(a) 触发器的亚稳态恢复时间Tr,如图11.8(a)所示,从触发器采样到亚稳态输出到最终恢复为稳定状态的一段时间叫做触发器的恢复时间Tr,这是触发器保持亚稳态输出不至于使得系统失效的最大时间11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.8(b) 触发器的亚稳态恢复时间Tr,图11.8(b)就是一个亚稳态恢复时间与触发器建立时间大于一个时钟周期的例子,在这个例子中,尽管图11.8(b) 触发器的亚稳态恢复时间Tr触发器也能够从亚稳态状态中恢复出来,但是恢复后保持稳定的时间小于后一级触发器的建立时间,也就是当亚稳态被传播到下一个时钟周期11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,11.3.2同步寄存器,当信号在不相关或者异步时钟域电路之间传送时,在使用该信号之前,需要将信号同步到新的时钟域新钟域中第一个寄存器起到了同步寄存器的作用为消除异步信号传送时压稳态导致的失败,电路设计人员通常在目的时钟域中使用多个串联寄存器(同步寄存器链或者同步器),将信号重新同步到新时钟域上。
同步寄存器链或者同步器是满足以下要求的寄存器序列:1).链上的寄存器都由相同的或者相位相关的时钟进行同步2).链上的第一个寄存器由不相关的时钟域进行驱动,即异步驱动3).每个寄存器只扇出连接一个寄存器,链上的最后一个寄存器除外,,图11.9 同步寄存器的设计实例,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.10 同步寄存器的工作时序,【例11.2】我们看下面一段代码,它是完成采样异步信号上升沿的电路,其电路如框图和时序描述如图11.11所示,首先用两级触发器对异步输入信号进行同步,在sync_r1为1且sync_r2为0时作为上升沿检测的条件并输出同步上升沿// Example_11_2 sync_rising_edgemodule sync_rising_edge ( input i_rst_n, input i_clk, input i_async,,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,output o_sync_rise ); reg sync_r1; reg sync_r2; assign o_sync_rise = sync_r1 & ~sync_r2; always @(posedge i_clk) begin if (~i_rst_n) begin sync_r1 <= 1'b0; sync_r2 <= 1'b0; end else sync_r1 <= i_async; sync_r2 <= sync_r1; end endendmodule,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.11 同步上升沿采样电路及其时序图,,图11.12 同步上升沿检测失效案例时序图,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,,图11.13 两级触发器同步上升沿检测电路,图11.14(a) 两级触发器同步上升沿检测电路时序,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.14(b) 两级触发器同步上升沿检测电路时序,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,,11.3.3平均故障间隔时间(MTBF),下面我们给出亚稳态平均故障间隔时间MTBF的计算公式:,,表11.1 通用器件的亚稳态参数,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,11.3.4降低亚稳态传播的概率,1). 增加同步寄存器时钟周期,,图11.15 采用分频时钟进行同步的电路,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.16 采用分频时钟进行同步的时序,11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,,图11.17 采用分频时钟进行同步的电路改进,2. 多级同步寄存器级联,对于该级联系统,同样假设输入异步信号落在建立和保持时间窗口之内,我们可以计算级联电路第一级触发器的MTBF1,因此其失效的概率为1/ MTBF1,如果有n级触发器器级联,整个同步寄存器失效概率是每一级失效概率的积。
用公示表示为:,(11-8),11.3 亚稳态的恢复时间Tr与同步寄存器的MTBF,,,,图11.18 采用多级同步寄存器级联的同步系统,11.4 同步系统时钟频率,,,,,11.4.1组合逻辑的延迟 对于任何数字逻辑也是一样,任何输出信号到输出信号之间都有一定的线路延迟,我们把这个线路延迟叫做布线的延迟,当数字逻辑电路经过门电路时,同样会造成一定的延迟,我们把这个延迟叫做门延迟图11.19 理想阶越信号经过一RC网络的延迟图,11.4 同步系统时钟频率,,,,,图11.20 二选一的组合逻辑延迟图,11.4.2 时钟输出延迟Tco,,图11.21 触发器时钟输出延迟micro_Tco图,11.4 同步系统时钟频率,,,11.4.3同步系统中时钟频率,,图11.22同步时序电路模型图,,图11.22是一个典型的同步电路模型,其中micor_Tsu是触发器的的建立时间,micro_Th是触发器的保持时间,Tcomb是组合逻辑的延迟,mciro_Tco是时钟输出延迟,T是该电路的工作周期,Tskew是时钟偏斜,我们将在后面的章节考虑时钟偏斜的概念和其影响,这里假设时钟偏斜为0,因此从时钟上升沿1到时钟上升沿2所经历的时间刚好是一个时钟周期T,我们画出该同步电路的时序,如图11.23所示。
11.4 同步系统时钟频率,,,,图11.23同步时序电路模型时序图1(Tskew = 0,建立时间和保持时间都满足),11.4 同步系统时钟频率,,,,,图11.24同步时序电路模型时序图2(Tskew = 0,组合逻辑延迟太大导致建立时间不能满足),11.4 同步系统时钟频率,,,,,图11.25同步时序电路模型时序图3(Tskew = 0,增加时钟周期以满足建立时间),11.4 同步系统时钟频率,,,,,图11.27同步时序电路模型时序图4(增加组合逻辑延迟,使得保持时间满足),11.4 同步系统时钟频率,,,,,图11.26同步时序电路模型时序图4(增加固有保持时间,使得保持时间违例),11.4 同步系统时钟频率,11.4.4提高时钟速度的两种方法,1). 通过改变走线的方式来减小延时,我们通过给综合器加适当的约束(约束要适量,一般以加5%裕量较为合适,比如电路 工作在100Mhz,则加约束加到105Mhz就可以了,过大的约束效果反而不好,且极大增加综合时间),另外可以将相关的逻辑在布线时尽量布的靠近一点,从而减少走线的时延,关于这一点主要是从逻辑综合、布局布线的角度来完成,2. 通过拆分组合逻辑的方法,,图11.31 组合逻辑拆分示意图,11.4 同步系统时钟频率,图11.32 16位计数器框图,例11.7】我们需要设计一个16位的计数器,当计数器记满65535时,输出使能信号,根据要求,其电路框图如图11.32所示。
实现代码为Example_11_7,首先通过预综合找出该电路的关键路径,然后优化该关键路径,修改设计以获得最高频率// Example_11_7, cnt16.vmodule cnt16 ( input i_clk, input i_rst_n,,11.4 同步系统时钟频率,output reg [15:0] o_cnt_r, output reg o_en ); always @(posedge i_clk) begin if (~i_rst_n) begin o_cnt_r <= 16'd0;,o_en <= 1'b0; end else begin o_cnt_r <= o_cnt_r + 16'd1; o_en <= &o_cnt_r; end endendmodule,。












