数电基础:时序逻辑电路的时序分析_数字电路路径最小路径延时是什么-程序员宅基地

技术标签: 静态时序分析  组合逻辑延迟  建立时间与保持时间  STA时序分析  Verilog  最高时钟频率  

目录

1.组合逻辑延迟

2.时钟输出延迟Tco

3.同步系统中时钟频率

3.1 建立时间与保持时间都满足

3.2 建立/保持时间不满足

(1) Tcomb太大导致建立时间不满足

(2) 器件的固有保持时间增大(老化)使得保持时间违例

 4. 时钟偏斜及其影响

 4.1时钟偏斜的物理意义

 4.2 时钟偏斜对时序的影响

(1) 对于未引入时钟偏斜时,保持时间与建立时间均不为例必要条件:

(2)引入时钟偏斜后的时序图如下(Tskew21>0)

(3)引入时钟偏斜也可能会导致保持时间违例,进而输出亚稳态的情况(Tskew21>0)

(4)Tskew21 <0时,即clk2先于clk1到达其时钟端,保持时间就比较容易满足了,但对满足建立时间就有所要求了。

4.3实例介绍


1.组合逻辑延迟

布线延迟门延迟

    数字逻辑电路中,任何输出信号到输入信号之间都有一定的线路延迟,把这种线路延迟叫做布线延迟。当数字逻辑电路经过门电路时,同样会造成一定的延迟,我们把这个延迟叫做门延迟

 

图1布线延迟

 

图2:门延时

 

 

2.时钟输出延迟Tco

     clock to out的时间,即从时钟触发到数据输出的时间。这是针对触发器器件而言,是触发器的固有参数,不同厂家或不同批次的器件 该参数有差异。

 

图3:Tco

3.同步系统中时钟频率

图4:同步系统典型电路图

Tsu      :   触发器建立时间

Th        : 触发器保持时间

T          : 电路的工作周期

Tco      :   时钟输出延迟

Tskew : 时钟偏斜(clock skew),又称为时钟偏移,是指时钟信号到达数字电路各部分所用时间差异

Tcomb: 组合逻辑的延迟。


                                                                             时钟偏移Skew = 0


     为由浅入深,假设 Skew = 0,即说明时钟到达所有器件的时间相同,没有差异,那么图中时钟上升沿1到时钟上升沿2之间刚好相隔一个工作周期T。下面介绍几种情况下的同步时序电路模型的时序图,图中标注了说明。

3.1 建立时间与保持时间都满足

    下图为同步时序电路模型时序图1Tskew=0,建立时间和保持时间都满足):

图6:建立保持时间时序图1分析

核心知识点: 

(1) Tco+Tcomb将导致数据会延迟到达下一个触发器,要想数据到达下一个触发器时满足建立时间的要求,则必要条件为:

T-(Tco+Tcomb)>Tsu,即有T>Tco+Tcomb+Tsu。因此一个电路搭建好后,会有一个最小的工作周期Tmin=Tco+Tcomb或者最大的工作频率1/Tmin。

(2) 一般电路的工作时钟不是其所能跑的最高频率,那么其实际工作周期要大于其支持的最小工作周期,这个差值就是建立时间的裕量Ts_slack。反映在计算公式上即为:Ts_slack=T-Tmin=T-(Tco+Tcomb)。会不会出现T-(Tco+Tcomb)<Tsu呢?这不就是建立时间违例的情况吗?怎么解决呢?看下面分析。

(3) Tco+Tcomb将会导致数据延迟到达下一个触发器,而下一个触发器不仅仅要求数据提前到达保持稳定一段时间,还要求数据被打入后保持一段时间稳定。假设数据源变化速率很慢,慢于时钟速率问题不大因为相邻周期触发器采样的是同一个值送往下一个寄存器,但同步系统中,数据一般跟随时钟同步跳转,即一个cycle会跳变一次,即数据保持一个时钟周期T的稳定状态。如此,本级寄存器在当前时钟采样的数据经过Tco+Tcomb延迟后到达下一级触发器,那么数据在下级触发器在下次时钟上升沿被打入后仍然会保持Tco+Tcomb时间。下级触发器要想满足保持时间,其必要条件为:Tco+Tcomb>Th .

(4)一般Tco+Tcomb不可能刚好等于Th的,因此当Tco+Tcomb大于Th,那么Th-slack =Tco+Tcomb-Th。会不会出现Tco+Tcomb小于Th呢?这不就是保持时间违例的情况吗,遇到这种情况怎么办呢?下面也有介绍。

综上:要想时序收敛,就是建立保持时间不违例,二者缺一不可。

3.2 建立/保持时间不满足

(1) Tcomb太大导致建立时间不满足

       下图为同步时序电路模型时序图2Tskew =0,组合逻辑延迟太大,导致建立时间不能满足): 

图7:建立时间违例时序图2分析

   解决1:可通过降频(增大周期)以满足建立时间

       下图为同步时序电路模型时序图3Tskew = 0,增加时钟周期以满足建立时间):

 

图8:时钟频率降频

 解决2:优化组合逻辑

 解决3:切割组合逻辑

详见:如何提高电路工作频率

 

(2) 器件的固有保持时间增大(老化)使得保持时间违例

 

图9:保持时间违例时序图分析

 

解决:当不满足保持时间时,通过增大组合逻辑延迟Tcomb来是保持时间满足

图10:保持时间违例解决

 

 


                                                                             Tskew不等于0


之前为了简单介绍知识点 ,未引入时钟偏移Tskew,但时间电路中是存在时间偏移的,分析时候不可忽视。

 4. 时钟偏斜及其影响

 

图11

 

 4.1时钟偏斜的物理意义

              时钟偏移指定了同时发生的两个时钟信号经过时钟驱动器或布线后到达时间上的差异

 4.2 时钟偏斜对时序的影响

            下图给出了未引入和引入时钟偏斜(clock skew)后的同步时序电路图对比模型:

图12

(1) 对于未引入时钟偏斜时,保持时间与建立时间均不为例必要条件:

                   保持时间不违例:Tco+Tcomb > Th;

                   建立时间不违例:T>Tco+Tcomb+Tsu。

           因此不会产生输出亚稳态现象。也可推出 (T-Tco-Tsu) >   Tcomb > (Th-Tco) ,即对组合逻辑延迟的要求。

  【注意】:这里面只有时钟周期T和组合逻辑延迟Tcomb可变。

(2)引入时钟偏斜后的时序图如下(Tskew21>0

            图12中,由于引入了Tskew21(>0),导致FF2的时钟段clk2的时序相对于FF1的clk1延后了Tskew,但上图的情况属于并未导致保持时间违例,因此未发生输出亚稳态现象。

            仔细分析就可以看出,相对于未引入时钟偏斜时的保持时间裕量Th-slack = Tco+Tcomb-Th)。此情况中FF2的保持时间裕量变成了Th-slack = Tco+Tcomb-Th-Tskew21,减少了Tskew21。(原因就clk2滞后Tskew21,导致保持时间的起点和终点相对于数据延后了)。

                     1.保持时间不违例:Tco+Tcomb-Tskew21>Th

                                 即依旧有Th-slack=Tco+Tcomb-Th-Tskew21>0,即Tco+Tcomb-Tskew21>Th ;

                      2.建立时间不违例:T+Tskew21>Tco+Tcomb+Tsu

             只要未引入时钟偏移的时候(Tskew21 == 0)的时候,就满足建立时间要求 T>Tco + Tcomb +Tsu,那么引入Tskew后,时钟  Clk2相对于数据滞后,更能够满足建立时间了。甚至之前尚不满足建立时间要求即T < Tco + Tcomb + Tsu情况下,在引入  Tskew后,就有T+Tskew > Tco +Tcomb + Tsu满足了建立时间。

(3)引入时钟偏斜也可能会导致保持时间违例,进而输出亚稳态的情况(Tskew21>0

        1.保持时间违例:Tco+Tcomb-Tskew21<Th

                 当引入的 Tskew21不够大时,没有超过保持时间裕量问题不大,但如果Tskew21太大,Tskew21>Tco+Tcomb-Th=Th-slack(未引入偏移时的裕量),就不再满足保持时间的要求,也会导致输出亚稳态。如下图所示;

         2.建立时间必然不违例

                 如情况(2)种描述,只要在未引入时钟偏移的情况下满足建立时间,那么只要Tskew21>0就会必定不违例。并且建立时间的裕量: Ts_slack =Tskew+ (T - Tco -Tcomb -Tsu)增加了Tskew。(情况(2)的建立时间也是如此,在此补充一下

(4)Tskew21 <0时,即clk2先于clk1到达其时钟端,保持时间就比较容易满足了,但对满足建立时间就有所要求了。

           1.保持时间必然不违例

                因为在未引入偏移时候就有Tco+Tcomb > Th,只要Tskew21<0,则Tco+Tcomb-Tskew21 >Th必然满足。

            2. 建立时间不违例:T+Tskew21  >  Tco+Tcomb+Tsu

            需要注意的是此时的Tskew21 < 0,因此 T > Tco+Tcomb+Tsu-Tskew21,此时最小时钟周期Tmin=Tco+Tcomb+Tsu-Tskew21 变大了,支持的最大时钟频率减小了。

标题

(5)同理,当Tskew21<0  并且T+Tskew21 < Tco+Tcomb+Tsu 此时建立时间就违例了,就会产生输出亚稳态现象了。

4.3实例介绍

Ex1:

       通常我们可以假设逻辑门的延时为1+0.1k,其中k为逻辑门的输入端个数。比如对于非门,只有一个输入端,那么其延时为1+1*0.1=1.1ns。现有触发器的时序参数为:Tsu=0.6ns, Th=0.4ns, 0.8ns ≤ Tco ≤ 1.0 ns , 需要计算下面电路的最小时钟周期:

答:  Tclkmin =Tco-max+Tcomb-max+Tsu=1.0+1.1+0.6=2.7ns。所以该电路最高可跑时钟频率为fmax=1/Tclkmin=370.37Mhz。

Ex2: 4位计数器电路如下图所示:

电路中有很多电路中有很多路径可以使触发器开始(Enable)或结束(Disable),其中最长的路径开始于触发器Q0结束语Q3。电路中这种最长的路径称为关键路径。如上图中红色路线,包括触发器Q0的时钟信号输出至Q的延时Tco,3个与门,1个异或门以及建立时间Tsu,所以有:

                    Tclkmin = Tco+3* Tand+Txor+Tsu=1.0+3*1.2+1.2+0.6=6.4ns

         fmax = 1/Tclkmin =156.25Mhz

   电路的最短路径是每个触发器经过一个异或门到它自身,每条这样的路径的最小延时为Tco+Txor=0.8+1.2=2.0ns>Th=0.4ns, 所以电路中不存在时间违背

Ex3:在上述Ex2中,是假定时钟clk是同时到达4个触发器的,即时钟clk不存在clock skew、现在我们仍然假设时钟信号clk同时到达Q0、Q1、Q2,但是到达Q3存在一个延时。这种时钟信号到达触发器的时间偏离称为时钟偏斜(clock skew)。关键路径为Q0到Q3,然而Q3的时钟偏斜具有减小延迟的作用。原因在于数据加载到触发器之前就额外的时间,将时钟偏斜skew=1.5ns计算在内,从Q0到Q3的路径上时延为:       Tco+3*Tand+Txor+Tsu-Tskew=6.4-1.5=4.9ns(之前的时延为6.4ns)。此时从Q0到Q2的线路径成为关键路径:Tclkmin =Tco+2*Tand+Txor+Tsu=1.0+2*1.2+1.2+0.6=5.2ns,

fmax =1/Tclkmin =192.31Mhz。这种情况下,时钟偏斜会提高时钟频率,但如果时钟偏斜是负的,则会降低时钟频率

由于时钟偏斜的存在,数据加载到Q3会被延迟,对于所有开始于Q0,Q1,Q2而结束于Q3的路径,加载的延时会提高触发器维持时间的要求(Th+Tskew),其中最短的路径是从Q2到Q3,延迟为Tco + Tand + Txor = 0.8+ 1.2+1.2=3.2ns > Th+Tskew=1.9ns,所以不存在时间违背

      对于时钟偏斜值Tskew >= 2.8ns情况,可以看出存在时间违背,此时不论时钟频率多少,该电路都不可能可靠的工作。

 

     我们再看下面这个例子,在这个电路中有一条路径开始于触发器Q1, 经过一些逻辑门网络,在触发器Q2的D端结束。由图可知,时钟信号到达触发器前存在不同的延迟。假设触发器Q1和Q2的时钟信号延迟分别为t1和t2,这两个触发器之间的时间偏斜可定义为Tskew= t2-t1,假设电路中通过逻辑门路径的最长延迟为TL,则这两个触发器的最小时钟周期为Tclk-min=Tco+TL+Tsu-Tskew, 因此如果t2-t1>0,则时钟频率会提升,否则时钟偏斜会降低频率。

 

为了计算触发器Q2是否存在时间违背,需要确定触发器的最短路径。如果电路中通过逻辑门的最小延迟为Tl,且Tl+Tco<Th+Tskew, 将会产生时间违背。如果t2-t1>0,维持时间的限制将更难以满足,而如果t2-t1<0,则较易满足。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_26652069/article/details/90756790

智能推荐

【Qt】:常用控件(二:QWidget核心属性)-程序员宅基地

文章浏览阅读1.1k次,点赞11次,收藏11次。cursor,font,tooltip,focuspolicy,stylesheet的使用

C++编译链接的那些小事_/home/runner/temp/41256961.42894/main.cc: in funct-程序员宅基地

文章浏览阅读957次。本文转载,尊重原创!受益良多!点击打开链接最近,有同事向我多次问及C++关于编译链接方面的问题,包括如下:1:什么样的函数以及变量可以定义在头文件中2:extern "C"的作用3:防止重复包含的宏的作用4:函数之间是怎么链接起来的我认为,这些问题不难,书上基本上都有,但要是没有真正思考过,就凭死记硬背,也就是只能“嘴上说说”而已,遇到问题还真棘手,所以我觉得有_/home/runner/temp/41256961.42894/main.cc: in function ‘int main()’:

Seata-server启动闪退问题_seata-server.batshantui-程序员宅基地

文章浏览阅读8.1k次,点赞14次,收藏17次。第一步:查看错误日志打开cmd运行seata-server.bat查看错误信息Error: missing server' JVl at C:\ Program Files (x86)\ Javaljre1. 8. 0_221\ bin\ server \ jvn. d11Please instal1 or use the TRE or TDK that contains these missing components找到出错目录搜索jvm.dll在bin文件夹新_seata-server.batshantui

android 中的service 实现之 利用onStart方式_service的onstart方法-程序员宅基地

文章浏览阅读6.4k次。service的实现主要有两种方式,一种是onStart方式,另一种是onBoundd方式。两种方式的关于service的生命周期不一样。前者是和activity的生命周期一样的,后者则不是。activity结束了service可以继续运行。onStart 方法来调用service的话,调用者其实和service是没有关系的,调用者消亡了的话,service是依然可以继续运行的;onB_service的onstart方法

数智化转型人才“大考”,综合人才成为企业“基础设施”_数智化落地,需要专业能力-程序员宅基地

文章浏览阅读302次。数智化转型的目的和核心都是实现业务转型、创新和增长,而我们的基石就是数智化技术。企业做数智化转型,需要什么样的数智化人才?员工要具备哪些能力才能助力企业完成转型?这样的员工该如何培养......首先我们来看下都有哪些数智化人才,以及他们分别需要什么能力。第一类人才是数字化专业人才,他们的主要任务是发现企业业务上的问题、并利用科学技术创造性的解决问题。对于专业人才来说,他需要有技术能力、产品能力、运营能力以及项目管理能力,具体解释为:技术能力:系统或平台规划与设计、开发与建设等_数智化落地,需要专业能力

Element table组件内容\n换行解决办法_el-table 换行-程序员宅基地

文章浏览阅读3k次。由于中的数据源是直接给了一个对象,所以table中的每一个cell用户都不用管,要使身份证号 这一列内容以\n换行。将内容自动换行,IE,OP,Chrome,Safari都可以,FF就悲剧了。被包围在 pre 元素中的文本通常会保留空格和换行符。nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 标签为止。pre-wrap 保留空白符序列,但是正常地进行换行。pre-line 合并空白符序列,但是保留换行符。空白会被浏览器忽略。数据源中的每一个元素的对象中的字段用。_el-table 换行

随便推点

LDA主题模型进阶-程序员宅基地

文章浏览阅读553次。其实我在TF-IDF和gensim实现主题提取写过LDA关于LDA的理论相关知识以后有机会阐释import numpy as npfrom gensim import corpora,models,similaritiesfrom pprint import pprint #打印出来的更好看1.构建停用词列表def load_stopword(): f_stop=open('stopword.txt') sw=[line.strip() for line in f_stop]

ionic5+angular8混合移动开发(一)——环境搭建_ionic新建项目指定angular的版本-程序员宅基地

文章浏览阅读9.7k次。ionic5+agular8混合移动开发(一)——环境搭建1、首先安装nodejs,本次安装的是v10.16.02、解决国内连接下载npm包慢,可以配置淘宝镜像3、创建App并运行1、首先安装nodejs,本次安装的是v10.16.01.0 下载nodejs最新稳定版,下载地址如下:https://nodejs.org1.1 安装下载的node-v10.16.0-x64.msi1.2 ..._ionic新建项目指定angular的版本

3.搭建分类器-pytorch与自然语言处理_.join('%5s' % classes[predicted[j]是啥意思-程序员宅基地

文章浏览阅读1.5k次。​Python人工智能20个小时玩转NLP自然语言处理【黑马程序员】_哔哩哔哩_bilibili目的:对不同的输入图像进行识别并分类。采用CIFAR10数据集,进行单分类任务_.join('%5s' % classes[predicted[j]是啥意思

CCS编译问题之#1965 cannot open source file “DSP2833x_Device.h“_descriptionresourcepathlocationtype #1965 cannot o-程序员宅基地

文章浏览阅读3w次,点赞30次,收藏70次。#1965 cannot open source file "DSP2833x_Device.h"1. 现象2. 原因分析3. 解决措施1. 现象当使用CCS进行编译会出现如下错误。2. 原因分析因为.h文件所存放的地址与CCS中的默认位置不同引起。CCS编译器在其默认存放.h文件的地方寻找文件,但是没有找到,就会报错。源文件引用的.h文件确实不存在,当引用的头文件与意图引起的头文件..._descriptionresourcepathlocationtype #1965 cannot open source file "dsp28

dp与px转换_public class dporpxutils { public static int dip2p-程序员宅基地

文章浏览阅读1k次。/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpV_public class dporpxutils { public static int dip2px(context context, floa...

struts2实现文件上传(类型、大小过滤——手动、拦截器)_struts 文件上传过滤文件类型-程序员宅基地

文章浏览阅读3.9k次。struts2实现文件上传1、首先需要引入上传文件所需的jar包,下面是对应的maven坐标。 commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4 2、添加jsp文件aaa.jsp和bbb.jspaaa.jsp<% String_struts 文件上传过滤文件类型</div>

推荐文章

热门文章

相关标签