系统时序分析
- 格式:pdf
- 大小:511.45 KB
- 文档页数:13
时序分析教程范文时序分析(Timing Analysis)是指对数字电路或系统进行时间性能评估和验证的过程。
它主要关注信号在电路中的传播延迟、时钟频率、时序关系等参数,帮助设计者确保电路或系统工作在正确的时序要求下。
时序分析在数字电路的设计和验证中具有重要的作用,特别是对于高速电路和复杂系统来说更为关键。
下面是一些常用的时序分析技术和方法:1.时钟分析:时钟是数字电路中最重要的信号之一,时钟的频率和时钟偏斜对电路的性能有着直接影响。
时钟分析主要关注时钟的频率、时钟偏斜、时钟分配和时钟网络等方面。
通过时钟分析可以评估时钟网络的性能,优化时钟分配方案,减少时钟偏斜等。
2.时序约束:时序约束是指在设计过程中对电路或系统的时序要求进行规定和约束的过程。
时序约束涉及到输入信号和时钟之间的关系,以及输出信号在一些时钟边沿之后的稳态时间等要求。
正确的时序约束有助于设计者确保电路或系统可以在正确的时序要求下运行。
3.时序分析工具:时序分析工具可以帮助设计者对电路或系统进行时序分析和验证。
常用的时序分析工具包括静态时序分析工具和动态时序分析工具。
静态时序分析工具主要通过对电路的逻辑和时钟分析,检查时序约束是否满足。
动态时序分析工具则通过模拟电路行为,计算信号的传播延迟和时序关系。
4.时序优化:时序优化是指通过改变电路结构和布局,减少路径延迟、降低时钟偏斜等手段,提高电路的时序性能。
常用的时序优化技术包括逻辑编码、时钟优化、布局布线优化等。
时序优化需要结合时序分析工具进行验证,确保优化后的电路满足时序要求。
时序分析对数字电路的正确性和性能具有重要的影响,它能帮助设计者在设计和验证过程中找到潜在的问题和改进方案。
因此,时序分析是数字电路设计和验证中必不可少的一部分。
通过学习和掌握时序分析的基本原理和方法,可以提高数字电路设计的质量和效率。
网络动力学建模与时序分析网络动力学建模与时序分析是一门研究网络系统中节点行为和相互作用的学科,旨在揭示网络系统中的时序规律和行为模式。
通过对节点之间的相互作用进行建模,可以更好地理解和预测网络系统中的各种现象和现象。
本文将对网络动力学建模与时序分析进行深入研究,探讨其在不同领域中的应用。
首先,我们将介绍网络动力学建模的基本概念。
网络动力学建模是一种描述节点之间相互作用的数学框架。
在这个框架中,节点可以是个体、组织、城市或其他实体,而边则表示节点之间的连接或关系。
通过对这些连接进行数学描述,可以揭示出系统中各个节点之间的相互作用规律。
在进行网络动力学建模时,我们需要选择适当的数学方法和工具。
常见的方法包括微分方程、差分方程、随机过程等等。
而工具则包括MATLAB、Python等编程语言以及相关软件包。
其次,我们将介绍时序分析在网络动力学研究中的应用。
时序分析是指对时间序列数据进行统计和分析的方法。
在网络动力学研究中,时序分析可以帮助我们揭示网络系统中的时序规律和行为模式。
例如,我们可以利用时序分析方法来研究社交网络中的信息传播。
通过对信息传播过程进行建模,并对时间序列数据进行分析,我们可以揭示信息在社交网络中的传播速度、路径和规模等特征。
此外,时序分析还可以帮助我们预测和控制网络系统中的行为。
通过对时间序列数据进行预测建模,我们可以预测未来的节点行为和相互作用,并采取相应措施来优化系统性能。
最后,我们将介绍网络动力学建模与时序分析在不同领域中的应用。
网络动力学建模与时序分析已经广泛应用于社会科学、物理学、生物学等领域。
在社会科学领域,研究人员利用网络动力学建模与时序分析方法来研究人类社会系统中节点之间的相互作用规律。
例如,在经济领域,研究人员可以利用这些方法来研究市场波动和金融风险等问题。
在物理学领域,研究人员利用这些方法来研究复杂物理系统中的相互作用规律。
例如,在复杂网络中,研究人员可以通过网络动力学建模与时序分析方法来研究节点之间的相互作用规律,以及网络系统的稳定性和演化过程。
综合与静态时序分析综合与静态时序分析是软件工程中常用的两种分析方法,用于评估系统的性能、可靠性和效率等方面。
本文将详细介绍综合与静态时序分析的基本概念、应用场景以及优缺点,并对两者进行比较,以便读者能够更好地了解和应用这两种方法。
一、综合时序分析综合时序分析是指通过建立模型,对系统进行模拟和分析,得出系统性能和可靠性等相关指标。
综合时序分析主要考虑系统的整体性能,包括处理速度、吞吐量、延迟等方面。
常用的综合时序分析方法有排队网络模型、离散事件模拟等。
综合时序分析的应用场景包括网络通信、分布式系统、并行计算等领域。
在这些领域中,系统的性能和可靠性要求较高,并且通常涉及多个组件之间的协作和交互。
通过综合时序分析,可以预测系统的行为、发现潜在的问题,并提出改进措施。
综合时序分析的优点是可以全面考虑系统的各个方面,分析结果较为准确。
然而,综合时序分析通常需要复杂的模型和大量的计算,对分析人员的要求较高。
此外,由于模型建立和参数设定的不准确性,综合时序分析的结果可能和实际情况存在一定的偏差。
静态时序分析是指在系统的设计和实现阶段,通过对系统的源代码或设计文档进行静态分析,得出系统的时序行为和性能指标。
常用的静态时序分析方法有程序切片、基本块图、语义分析等。
静态时序分析的应用场景包括软件开发、代码审查、性能优化等领域。
在这些领域中,开发人员需要预先了解系统的行为和性能,并进行相应的设计和优化。
通过静态时序分析,可以发现源代码中的潜在问题、提高系统的性能等。
静态时序分析的优点是可以在系统设计和实现的早期阶段就发现问题,并及时进行调整。
此外,静态时序分析可以在不需要运行系统的情况下进行,因此可以节省时间和资源。
然而,静态时序分析通常只考虑系统的源代码和设计文档,可能忽略了系统运行时的复杂环境和其它外部因素的影响。
三、综合时序分析与静态时序分析的比较1.方法论差异:综合时序分析主要基于建模和仿真,而静态时序分析主要基于代码和设计文档的分析。
IC基础(六):时序分析过程需要的相关计算以及处理⽅法时序分析的基本步骤:⼀个合理的时序约束可以分为以下步骤: 时序约束整体的思路如下:1. 先是约束时钟,让软件先解决内部时序问题;(在这⼀步骤中可以适当加⼊时序例外,以便时序通过)2. 然后再加⼊IO的延迟约束;3. 最后针对没有过的时序,添加时序例外。
1、 IO⼝的建⽴时间与保持时间1.1 输⼊延迟外部器件发送数据到FPGA系统模型如下图所⽰。
对FPGA的IO⼝进⾏输⼊最⼤最⼩延时约束是为了让FPGA设计⼯具能够尽可能的优化从输⼊端⼝到第⼀级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯⽚到FPGA的信号。
输⼊延时即为从外部器件发出数据到FPGA输⼊端⼝的延时时间。
其中包括时钟源到FPGA延时和到外部器件延时之差、经过外部器件的数据发送Tco,再加上PCB板上的⾛线延时。
如下图所⽰,为外部器件和FPGA接⼝时序。
最⼤输⼊延时(input delay max)为当从数据发送时钟沿(lanuch edge)经过最⼤外部器件时钟偏斜(Tclk1),最⼤的器件数据输出延时(Tco),再加上最⼤的PCB⾛线延时(Tpcb),减去最⼩的FPGA时钟偏移(FTsu)的情况下还能保证时序满⾜的延时。
这样才能保证FPGA的建⽴时间,准确采集到本次数据值,即为setup slack必须为正,计算公式如下式所⽰: Setup slack =(Tclk + Tclk2(min))–(Tclk1(max) +Tco(max) +Tpcb(max) +FTsu)≥0 (1)最⼩输⼊延时(input delay min)为当从数据发送时钟沿(lanuch edge)经过最⼩外部器件时钟偏斜(Tclk1),最⼩器件数据输出延时(Tco),再加上最⼩PCB⾛线延时(Tpcb),此时的时间总延时值⼀定要⼤于FPGA的最⼤时钟延时和建⽴时间之和,这样才能不破坏FPGA 上⼀次数据的保持时间,即为hold slack必须为正,计算公式如下式所⽰: Hold slack = (Tclk1(min) + Tco(min) + Tpcb(min))–(FTh + Tclk2(max))≥ 0 (2)我们很容易就可以从公式(1)和(2),推到出(3) Tclk – Ftsu ≥Tclk1 - Tclk2 + Tco + Tpcb ≥ FTh (3)在公式(3)中,我们发现Tclk 、Ftsu以及FTh,对于⼯具来说是已知的,⽽Tclk1 - Tclk2 + Tco + Tpcb正是我们需要告知综合⼯具的延迟量。
连续时间系统的时分析连续时间系统的时分析是研究连续时间系统中信号在时间上的属性和特征的重要方法。
时分析的主要目的是深入理解信号在时间上的演化规律,以揭示系统的动态行为和性能。
时分析在多个领域都有广泛的应用,如信号处理、通信、控制系统等。
通过时分析,我们可以了解信号的频率成分、时域分布、瞬态特性、周期性等属性,从而为系统设计、故障诊断和优化提供重要的依据。
本文将介绍连续时间系统的时分析的重要性和背景,并讨论一些常用的时分析方法和工具。
通过深入研究和应用时分析,我们可以更好地理解和利用连续时间系统的动态行为,从而提高系统的性能和可靠性。
连续时间系统的定义连续时间系统是一种在时间上连续变化的系统。
它以无限多个时刻为基础,对连续时间内的输入信号进行分析和处理。
与离散时间系统相比,连续时间系统具有自变量和因变量均为连续的特点。
连续时间系统的概念和特点连续时间系统可以通过微分方程或差分方程来描述其动态行为。
连续时间系统可以是线性系统或非线性系统,可以是时变系统或时不变系统。
连续时间系统的特点之一是其输入和输出信号均是连续的,因此它能够处理包含连续时间范围内的信号。
这使得连续时间系统在模拟电路、控制系统和信号处理领域中得到广泛应用。
另一个特点是连续时间系统具有无限多个输入和输出值。
通过对连续时间内的输入信号进行积分运算,连续时间系统能够生成连续时间内的输出信号。
这使得连续时间系统能够对信号进行连续的分析和处理。
时分析是对连续时间系统进行的一种分析方法。
它通过研究连续时间系统在时域上的行为来理解系统的动态特性和性能。
在时分析中,我们研究系统对不同输入信号的响应情况,包括系统的稳态响应和暂态响应。
通过时分析,我们可以了解系统对不同输入信号的滤波特性、传递函数和频率响应等重要性能指标。
时分析可以通过使用微分方程、拉普拉斯变换或傅里叶变换等数学工具来进行。
这些工具可以帮助我们理解系统对不同输入信号的响应,并从中得出有关系统稳定性、阶数、传输速度等信息。
TECHNOLOGY AND INFORMATION科学与信息化2023年6月上 49时间序列模型系统运行分析王庆国 卢宝林 段修立 路春阳 董新忠国能信控互联技术有限公司 北京 100032摘 要 作为持续自主学习的第一步,也是关键的一步,数据增强学习主要用来解决神经网络训练时没有足够的数据来最大化深层神经网络的泛化能力的问题。
文章提出了一种智能增强学习方法,将用于训练的数据按一种最优的数据增强策略进行扩维。
增强学习一般用于图像数据扩维,针对时空数据的扩维方法目前并不多见。
在时序预测领域,也常常面临着没有足够的数据来进行学习的窘境,因此本文将数据增强引入时空数据来提升时序预测的精度具有积极意义。
关键词 日志信息;系统异常;检测Time Series Model System Run AnalysisWang Qing-guo, Lu Bao-lin, Duan Xiu-li, Lu Chun-yang, Dong Xin-zhongCHN Energy Information Control Interconnection Technology Co., Ltd., Beijing 100032, ChinaAbstract As the first and crucial step of continuous independent learning, data augmentation learning is mainly used to solve the problem that there is not enough data in neural network training to maximize the generalization ability of deep neural networks. This paper proposes an intelligent augmentation learning method, which expands the data used for training according to an optimal data augmentation strategy. Augmentation learning is generally used for image data expansion, and there are currently few expansion methods for spatiotemporal data. In the field of time series forecasting, there is often a dilemma that there is not enough data for learning, so it is of positive significance that this paper introduces data augmentation into spatiotemporal data to improve the accuracy of time series forecasting.Key words log information; system abnormalities; detect引言近年来,随着信息技术的深入发展和广泛应用,各行各业也逐步进入了信息化的时代,以人为本的教育领域也面临着教育信息化的挑战,教育大数据也应运而生。
微控制器设计中的时序分析与优化
在微控制器设计中,时序分析和优化是非常关键的步骤,它们直接影响到系统的性能和稳定性。
时序分析是指对于微控制器中各个时钟周期的信号传输和处理时序进行精确的分析,以确保微控制器在各种工作条件下都能正常运行。
而时序优化则是在分析的基础上,通过调整硬件电路的设计或编程算法的优化,减少时钟周期数量或提高时钟频率,从而提高系统的运行速度和效率。
首先,在进行时序分析时,我们需要考虑到微控制器内部各个模块之间的时钟延迟、信号传输时间、数据处理时间等因素。
通过对系统的时序进行准确的分析,可以及时发现潜在的时序冲突或延迟问题,从而在设计阶段就进行相应的调整和优化,避免后期的修改和调试工作。
时序分析的结果通常由时序图、时序约束等形式呈现,以帮助工程师更直观地了解系统的工作时序,发现和解决潜在问题。
其次,在时序优化方面,我们可以通过多种方法来提高微控制器系统的性能。
一种方法是针对性地改进硬件电路设计,减少信号传输路径的长度或增加并行计算单元,从而缩短响应时间和提高处理速度。
另一种方法是优化编程算法,减少冗余计算或引入并发处理机制,以实现更高效的数据处理和运行速度。
通过不断地优化和调整系统的时序,可以最大限度地提高微控制器系统的性能和稳定性。
总的来说,时序分析和优化是微控制器设计中非常重要的环节,它们直接关系到系统的性能和稳定性。
通过精确的时序分析和有效的时序优化,可以提高微控制器系统的运行速度、响应时间和功耗效率,从而更好地满足不同应用场景的需求。
在实际的微控制器设计项目中,工程师们应当充分重视时序分析和优化工作,不断提升自身的技术水平和系统设计能力,以打造出更加优秀和稳定的微控制器系统。
时序分析基础:Setuphold,跨时钟域处理和亚稳态⼀、建⽴时间和保持时间Setup/holdTsetup和Thold内数据都稳定时,data1和data2才会正常被D触发器采样⼆、什么是亚稳态百度百科上说亚稳态是指触发器⽆法在某个规定时间段内达到⼀个可确认的状态。
当⼀个触发器进⼊亚稳态时,既⽆法预测该单元的输出电平,也⽆法预测何时输出才能稳定在某个正确的电平上。
讲⼈话就是,亚稳态就是在建⽴时间或保持时间⾥数据处于不够稳定的状态、正在变化的状态,下⾯以单bit跨时钟域处理为例⼦。
三、单bit跨时钟域中的亚稳态处理先说什么是时钟域,打个⽐⽅,FPGA的主控芯⽚⼯作在系统时钟之下,系统时钟由晶振产⽣为50MHz,如果不分频,板内的所有资源都⼯作在系统时钟之下,那么这就是⼀个时钟域clk_a。
同⼀个时钟域下的信号,综合以及布线⼯具可以在data路径或者clock路径上插⼊buffer使得每⼀个D触发器的setup/hold时间都满⾜,这个时候可以简化⼀下模型,把系统时钟看成clk_a域的理想时钟,并在时钟上升沿D触发器采样(实际上是建⽴时间这个时间段采样的)。
那么当另⼀个时钟域的信号data_b来了(⼀般是外设的标志位或者数据组),就是跨时钟域了,就可能发⽣下图情况。
这时就产⽣了亚稳态,这个数据是不稳定的,可能采样到0,也可能采样到1。
可能会导致信号⽑刺、逻辑判断混乱、振荡等问题。
消除亚稳态有三种⽅法,⼀是⽤多级DFF来延时,俗称打两拍。
打⼀拍的verlog代码如下always@(posedge clk or negedge rst_n)if(!rst_n)data_r<=0;elsedata_r<=data_b;View Code这样就会发⽣下图情况在时钟的上升沿对clk_b域的data_b采样,并将其值赋给clk_a域的data_r。
亚稳态判读出的是1值,data_r就像上图中的data_r,是⼀个稳态值,亚稳态已经消去;亚稳态判读出的是0值,data_r就像上图中的data_r‘,也是⼀个稳态值,亚稳态已经消去。
系统中的时序算法时序算法是一种通过对事件发生的顺序进行分析和处理的算法。
它广泛应用于许多领域,包括计算机图形学、物理仿真、通信协议和生物信息学等。
时序算法的核心思想是根据事件发生的时间先后顺序来确定它们的关系和影响。
本文将介绍几种常见的时序算法及其应用。
一、离散事件模拟离散事件模拟是一种通过模拟事件的发生来研究和分析系统行为的方法。
它模拟的是离散事件系统,即系统的状态在离散的时间点上发生变化。
在离散事件模拟中,事件有严格的时间先后顺序,并且事件之间可以相互影响。
离散事件模拟的一个典型应用是网络通信协议的仿真。
在网络通信中,数据包之间的发送和接收顺序非常重要,因为错误的顺序可能导致数据包丢失或数据损坏。
通过离散事件模拟,可以模拟数据包的发送和接收过程,并验证通信协议的正确性和性能。
二、排序算法排序算法是一种根据元素的大小进行排序的算法。
时序排序算法是一种特殊的排序算法,它根据元素的时间先后顺序进行排序。
在时序排序算法中,元素的时间戳被用作排序的依据,而不是元素的值。
时序排序算法在许多领域有着广泛的应用,如事件日志的分析、订单处理的优化等。
通过时序排序算法,可以根据事件发生的时间顺序对数据进行排序,并找到事件发生的顺序规律和时间间隔。
三、物理仿真物理仿真是一种通过模拟物理系统来研究和分析其行为的方法。
物理系统中,事件的发生具有明确的时间顺序和影响关系。
时序算法在物理仿真中发挥着重要的作用,可以模拟物理系统中事件的发生和演化过程。
物理仿真的应用非常广泛,如游戏开发、虚拟现实等。
通过时序算法,可以模拟物体之间的碰撞、运动轨迹和相互作用等物理现象,从而实现真实的物理效果。
四、图形渲染图形渲染是一种将图形数据转化为可视结果的过程。
在图形渲染中,图形的绘制顺序非常重要,因为绘制的顺序决定了图形的覆盖关系。
时序算法在图形渲染中可以用来确定需要绘制的顺序。
图形渲染的一个常见应用是三维场景的渲染。
通过时序算法,可以根据物体的深度信息确定它们在屏幕上的绘制顺序,从而实现透视效果和物体的遮挡关系。
常用时序分析SDC时序分析(SDC)是一种通过对电气信号或数字信号的流动和延迟进行建模和仿真,以评估和优化电路性能的方法。
它广泛应用于集成电路设计、数字信号处理、通信系统和计算机网络等领域。
本文将介绍常用的时序分析方法和工具。
时序分析的基本原理是将电路中的时钟信号作为参考,通过计算信号延迟和时序约束来评估电路的性能。
时序分析的主要目标是确保电路在时钟周期内的正确操作,以及满足时序约束,如输入输出的保持时间、上升时间和下降时间等。
常用的时序分析方法包括路径延迟分析、时钟域交叉点分析、时钟域插入延迟分析和正态分布时延分析等。
路径延迟分析是时序分析的基础,它用于计算信号从输入到输出的总延迟。
该分析方法基于信号在电路中传播的时间和路径,并根据电路中的逻辑门和线缆的延迟模型,计算每个路径的延迟。
路径延迟分析通常用于检测潜在的时序故障,如不满足时序约束的路径。
时钟域交叉点分析是用于检测和修复时钟域之间的交叉点的时序分析方法。
时钟域交叉点是指时钟边沿和非时钟边沿之间的特殊点,在这些点上信号可能发生非同步转换,导致时序故障。
时钟域交叉点分析通过建立时钟域模型,预测信号在交叉点处的时延,并根据时序约束进行优化。
时钟域插入延迟分析是为了解决时钟信号在时钟分配网络中传播的延迟问题而提出的。
时钟信号在时钟分配网络中传播的延迟会导致时序故障,因此需要对插入延迟进行建模和分析。
时钟域插入延迟分析通过建立时钟分配网络模型,计算插入延迟,并根据时序约束进行优化。
正态分布时延分析是一种考虑变化的时延和时钟抖动的高级时序分析方法。
在集成电路设计中,由于制造偏差、温度变化和电压噪声等因素,电路的时延和时钟信号的抖动会出现一定的变化。
正态分布时延分析通过建立变化模型,并根据正态分布进行分析,可以更准确地评估电路的性能。
除了上述方法外,还有一些常用的时序分析工具,如PrimeTime、Tempus、HyperLynx和ModelSim等。
第六章系统时序对于系统设计工程师来说,时序问题在设计中是至关重要的,尤其是随着时钟频率的提高,留给数据传输的有效读写窗口越来越小,要想在很短的时间限制里,让数据信号从驱动端完整地传送到接收端,就必须进行精确的时序计算和分析。
同时,时序和信号完整性也是密不可分的,良好的信号质量是确保稳定的时序的关键,由于反射,串扰造成的信号质量问题都很可能带来时序的偏移和紊乱。
因此,对于一个信号完整性工程师来说,如果不懂得系统时序的理论,那肯定是不称职的。
本章我们就普通时序和源同步系统时序等方面对系统时序的基础知识作一些简单的介绍。
6.1 普通时序系统所谓普通时序系统就是指驱动端和接收端的同步时钟信号都是由一个系统时钟发生器提供。
下图就是一个典型的普通时钟系统的示意图,表示的是计算机系统的前端总线的时序结构,即处理器(CPU)和芯片组(Chipset)之间的连接。
在这个例子中,驱动端(处理器)向接收端(芯片组)传送数据,我们可以将整个数据传送的过程考虑为三个步骤:1.核心处理器提供数据;2.在第一个系统时钟的上升沿到达时,处理器将数据Dp锁存至Qp输出;3.Qp沿传输线传送到接收端触发器的Dc,并在第二个时钟上升沿到达时,将数据传送到芯片组内部。
一般来说,标准普通时钟系统的时钟信号到各个模块是同步的,即图中的Tflight clka 和Tflight clkb延时相同。
通过分析不难看出,整个数据从发送到接收的过程需要经历连续的两个时钟沿,也就是说,如果要使系统能正常工作,就必须在一个时钟周期内让信号从发送端传输到接收端。
如果信号的传输延迟大于一个时钟周期,那么当接收端的第二个时钟沿触发时,就会造成数据的错误读取,因为正确的数据还在传输的过程中,这就是建立时间不足带来的时序问题。
目前普通时序系统的频率无法得到进一步提升的原因就在于此,频率越高,时钟周期越短,允许在传输线上的延时也就越小,200-300MHz已经几乎成为普通时序系统的频率极限。
那么,是不是传输延时保持越小就越好呢?当然也不是的,因为它还必须要满足一定的保持时间。
在接下来几节里,我们就建立和保持时间来分析一下时序设计需要考虑的一些问题以及正确的系统时序所必须满足的条件。
6.1.1 时序参数的确定对于时序问题的分析,我们首先要清楚地理解相关的一些时序参数的具体含义,比如Tco,缓冲延时,传播延迟,最大/小飞行时间,建立时间,保持时间,建立时间裕量,保持时间裕量,时钟抖动,时钟偏移等等,如果对这些参数的概念理解不深刻,就很容易造成时序设计上的失误。
首先要阐明的是Tco和缓冲延时(buffer delay)的区别。
从定义上来说,Tco是指时钟触发开始到有效数据输出的器件内部所有延时的总和;而缓冲延时是指信号经过缓冲器达到有效的电压输出所需要的时间。
可以看出,Tco除了包含缓冲延时,还包括逻辑延时。
通常,确定Tco的方法是在缓冲输出的末端直接相连一个测量负载,最常见的是50欧姆的电阻或者30pF的电容,然后测量负载上的信号电压达到一定电平的时间,这个电平称为测量电压(Vms),一般是信号高电平的一半。
如Tco和缓冲延时的确定如下图所示:信号从缓冲器出来之后,就要经过传输线到接收终端,信号在传输线上的传输的延时我们称为传播延迟(propagation delay),它只和信号的传播速度和线长有关。
然而我们在大多数时序设计里面,最关键的却不是传播延迟这个参数,而是飞行时间(Flight Time)参数,包括最大飞行时间(Max Flight Time)和最小飞行时间(Min Flight Time)。
飞行时间包含了传播延迟和信号上升沿变化这两部分因素,从下图中可以很容易看出两者的区别。
在较轻的负载(如单负载)情况下,驱动端的上升沿几乎和接收端的信号的上升沿平行,所以这时候平均飞行时间和传播延迟相差不大;但如果在重负载(如多负载)的情况下,接收信号的上升沿明显变缓,这时候平均飞行时间就会远远大于信号的传播延迟。
这里说的平均飞行时间是指驱动端波形的Vms到接收端波形Vms之间的延时,这个参数只能用于时序的估算,准确的时序分析一定要通过仿真测量最大/最小飞行时间来计算。
上面只是对信号上升沿的分析,对于下降沿来说,同样存在着最大/最小飞行时间的参数,如下图。
在时序计算时我们实际取的最大飞行时间是在上升沿和下降沿中取最长的那个飞行时间,而最小飞行时间则是取上升和下降沿中最短的那个飞行时间。
也有些时候,人们对信号的最大/最小飞行时间还有其它称谓,比如在Cadence软件中,就将最大飞行时间称为最终稳定延时(Final Settle Delay),而将最小飞行时间称为最早开关延时(First Switch Delay),如下图。
信号经过传输线到达接收端之后,就牵涉到建立时间和保持时间这两个时序参数,它们是接收器本身的特性,表征了时钟边沿触发时数据需要在锁存器的输入端持续的时间。
通俗地说,时钟信号来的时候,要求数据必须已经存在一段时间,这就是器件需要的建立时间(Setup Time);而时钟边沿触发之后,数据还必须要继续保持一段时间,以便能稳定的读取,这就是器件需要的保持时间(Hold Time)。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
见图1-6-6,其中还考虑了时钟误差的因素。
每个器件的建立和保持时间参数,一般都可以在相应的DataSheet查到,对于设计者来说最大的目的是提高时序的裕量,这样即使信号完整性上出现一点问题,或者外界环境发生一定的变化,系统仍然能正常工作,这就是一个设计优良的系统应该体现出的超强的稳定性。
系统时序设计中对时钟信号的要求是非常严格的,因为我们所有的时序计算都是以恒定的时钟信号为基准。
但实际中时钟信号往往不可能总是那么完美,会出现抖动(Jitter)和偏移(Skew)问题。
所谓抖动,就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响,如图1-6-7。
除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。
总的来说,jitter可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和。
时钟偏移(skew)是指两个相同的系统时钟之间的偏移。
它表现的形式是多种多样的,既包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB走线误差造成的接收端和驱动端时钟信号之间的偏移,比如在图1-6-1中所示,CLKA 和CLKB之间的差异,CLKC和CLKP之间的差异均为时钟偏移,这些偏移量在时序计算中需要全部考虑。
除了上面提到的这些概念,还有一点要注意的是,时刻不能忽略信号完整性对时序的影响,比如串扰会影响微带线传播延迟;反射会造成数据信号在逻辑门限附近波动,从而影响最大/最小飞行时间;时钟走线的干扰会造成一定的时钟偏移。
有些误差或不确定因素是仿真中无法预见的,设计者只有通过周密的思考和实际经验的积累来逐步提高系统设计的水平。
6.1.2 时序约束条件下面来具体讨论一下系统时序需要满足的一些基本条件。
我们仍然以图1-6-1的结构为例,并可以据此画出相应的时序分析示意图(图1-6-8)。
在上面的时序图中,存在两个时序环,我们称实线的环为建立时间环,而虚线的环我们称之为保持时间环。
可以看到,这两个环都不是闭合的,缺口的大小就代表了时序裕量的多少,因此设计者总希望尽可能增大这个缺口。
同时还要注意到,每个环上的箭头方向不是一致的,而是朝着正反两个方向,因为整个系统时序是以时钟上升沿为基准的,所以我们时序环的起点为系统时钟clk in的上升沿,而所有箭头最终指向接收端的控制时钟CLKC的边沿。
先来分析建立时间环:缺口的左边的半个时序环代表了从第一个系统时钟上升沿开始,直到数据传输至接收端的总的延时,我们计为数据延时,以Tdata tot表示:Tdata tot =Tco clkb+Tflt clkb+Tco data+Tflt data上式中:Tco clkb 是系统时钟信号CLKB在时钟驱动器的内部延迟;Tflt clkb是CLKB从时钟驱动器输出后到达发送端(CPU)触发器的飞行时间;Tco data是数据在发送端的内部延迟;Tflt data是数据从发送端输出到接收端的飞行时间。
从CLKC时钟边沿的右边半个时序环代表了系统时钟到达接收端的总的沿时,我们计为时钟延时,以Tclk tot表示:Tclk tot =Tcycle+Tco clka+Tflt clka– Tjitter其中,Tcycle 是时钟信号周期;Tco clka是系统时钟信号CLKA(第二个上升沿)在时钟驱动器的内部延迟;Tflt clka是时钟信号从时钟驱动器输出到达接收端触发器的飞行时间;Tjitter是时钟的抖动误差。
因此我们可以根据建立时间裕量的定义,得到:Tsetup margin = Tclk tot– Tdata tot– Tsetup将前面的相应等式带入可得:Tsetup marin = Tcycle+ Tco clka+ Tflt clka– Tjitter– Tco clkb– Tflt clkb– Tco data– Tfltdata – Tsetup我们定义时钟驱动器(PLL)的两个时钟输出之间的偏移为Tclock Skew,两根CLOCK走线之间的时钟偏移为TPCB Skew,即:Tclock Skew = Tco clkb- Tco clka;TPCB Skew= Tflt clkb- Tflt clka这样就可以得到建立时间裕量的标准计算公式:Tsetup marin =Tcycle– TPCB skew–Tclock skew–Tjitter– Tco data– Tflt data-Tsetup(1.6.1)再来看保持时间环:对照图1-6-8,我们可以同样的进行分析:Tdata delay = Tco clkb+ Tflt clkb+ Tco data+ Tflt dataTclock delay = Tco clka+ Tflt clka于是可以得出保持时间裕量的计算公式:Thold margin = Tdata delay– Tclock dalay– Thold time即: Thold margin = Tco data+ Tflt data+ Tclock skew+ Tpcb skew– Thold(1.6.2)可以看到,式1.6.2中不包含时钟抖动Jitter的参数。
这是因为Jitter是 指时钟周期间(Cycle to Cycle)的误差,而保持时间的计算和时钟周期无关。