互连时序模型与布线长度分析
高速数字电路互连时序模型与布线长度分析
本文引用地址://m.amcfsurvey.com/article/274626.htm高速电路设计领域,关于布线有一种几乎是公理的认识,即“等长”走线,认为走线只要等长就一定满足时序需求,就不会存在时序问题。本文对常用高速器件的互连时序建立模型,并给出一般性的时序分析公式。为体现具体问题具体分析的原则,避免将公式当成万能公式,文中给出了MII、RMII、RGMII和SPI的实例分析。实例分析中,结合使用公式分析和理论分析两种方法,以实例证明公式的局限性和两种方法的利弊。本文最后还基于这些实例分析,给出了SDRAM和DDR SDRAM等布线的一般性原则。
本文通过实例指明时序分析的关键在于:对具体时序理解透彻的基础上,具体问题具体分析,不能一味的套用公式,更不是通过走线的等长来解决时序问题。
1.典型高速器件互连时序模型
图1给出通用高速器件互连接口简化模型。图中,左侧虚线框表示通信器件双方的主控端。常见的实际情形有:SDRAM控制器、SPI主控制器等。经过适当的演化,基于本模型很容易得到I2C主控端、MII接口的TX组模型、RMII共享时钟模型以及DDR控制信号与地址信号的互连模型等。右侧虚线框表示通信中的被动端。本模型中,数据是双向的,但是时钟是单一方向。简单地说,就是时钟单一方向发送,数据双向传递。这个特点是本模型的适应场景。
![](http://m.amcfsurvey.com/editerupload/201505/22cbbd9bb1b6c9f775a9210500cc9b44.jpg)
图1简化的器件互连模型
图2是基于本模型的数据写时序关系图。图中,T0表示主控端内部时钟发生器CLK发出的时钟到达触发器Q1时钟输入端的延时;T1表示触发器Q1接受到时钟后到Q1输出端出现数据的延时;T2表示主控端内部时钟发生器CLK发出的时钟到主控端外部时钟输出引脚的延时;T3表示内部触发器Q1输出的数据到达主控端外部数据输出引脚的延时。通常,半导体制造商不会给出T0-T3这些参数,通常会给出一个用于反映这些参数最终等价效果的参数,即主控端外部数据引脚上出现数据时相对于外部时钟引脚出现时钟信号的延时,这里记为Tco.
![](http://m.amcfsurvey.com/editerupload/201505/538563695202170f0b398461f99df7b5.jpg)
图2数据写时序图
时序分析最关心的参数是信号到达接受端的最终建立时间和保持时间是否符合器件要求。这里将建立时间和保持时间分别记为Tsetup和Thold.Tflt-clk和Tflt-data分别表示时钟信号和数据信号的飞行时间,即他们在对应走线上的延时。Tjitter-clk和Tjitter-data分别代表时钟信号和数据信号上的抖动时间。
器件的建立时间和保持时间是通过描述器件外部的时钟引脚和数据引脚上的时序关系来反映器件内部相关的时序延时和相关目标逻辑时序关系的集总参数。信号从器件的引脚到内部目标逻辑存在一定延时,同时内部逻辑需要最终的建立和保持时间,综合器件内部的这些需求,最终得到器件对外的时序要求。
分析图2中时钟信号和数据信号的相互关系,可以发现:由于Tco的存在,如果器件间的时钟和数据走线等长,则在接收端,用于发送时间的边沿不能用于数据的采样。为了在接收端对数据进行正确采样,必须调整时钟和数据走线的关系,有两种方法:第一,时钟走线长于数据走线,使得数据飞行时间较时钟短。此时,在接收端仍然可以使用产生数据的时钟沿采样数据;第二,数据走线比时钟长,使得数据飞行时间较时钟长。此时,可以使用使用产生数据时钟沿的下一个上升沿采样数据。
实际工程中,设计人员一般使用第二种方法并希望对于数字系统的建立时间和保持时间都留有一定裕量,因此我们可以得出下列公式,即建立时间公式:
(Tsetup)min + (Tco)max + (Tflt-data - Tflt-clk)max + Tjitter-clk+ Tjitter-data (Thold)min(2)
很显然,Tco、Tflt-data、Tflt-clk中,Tco是器件的固有参数,Tflt-data和Tflt-clk取决于对应的PCB走线长度和走线层等。如果Tflt-data和Tflt-clk的差过小,则导致数据的保持时间不足;如果过大,则会使得建立时间不足。因此,Tflt-data和Tflt-clk的差存在上限和下限双重限制。
![](http://m.amcfsurvey.com/editerupload/201505/bc331f06355903d0a5ec51aed4a5c0e9.jpg)
图3数据读时序图
图3是基于本模型的数据读时序关系图。图中参数含义与前述相同。需要注意的是:在读关系中,时钟首先需要从主控端传到从端,待从端发出的数据回到主控端后,才能由主控端对数据进行采样。因此,建立和保持时间的公式如下:
(Tsetup)min + (Tco)max + (Tflt-data)max + (Tflt-clk)min + Tjitter-clk+ Tjitter-data < T (3)
(Thold)min< (Tco)min + (Tflt-data)min + (Tflt-clk)max - Tjitter-clk- Tjitter-data (4)
参数Tco、Tflt-data 、Tflt-clk中,To是器件的固有参数,Tflt-data 和Tflt-clk取决于对应的PCB走线长度和走线层等。如果Tflt-data 和Tflt-clk的总和过小,则导致数据的保持时间不足;如果过大,则会使得建立时间不足。因此,Tflt-data 和Tflt-clk的和存在上限和下限双重限制。
需要额外说明的是,前述公式的分析中暗含一个结果,就是:默认器件的输出保持时间和输出延时是等时间的。实际上,不同的半导体器件具有不同的情况,即使同一个半导体器件,在每次输出数据时也不一定是完全相同的。这正是本文开始就一再强调的,时序分析的公式并不是万能的,尽管大多数情况均适用,鉴于现实世界中的情况多样,必须具体问题具体分析。
还有一个问题:是否可以使用产生数据时钟沿的次次上升沿采样数据,或者更靠后的边沿来采样数据。图4所示是1#时钟沿发出的数据由3#时钟沿采样的例子,在前述内容中,1#时钟沿发出的数据均由2#时钟沿采样。此处。为了在接收端有较好的建立和保持时间,可以看出数据的飞行时间最好要大于一个时钟周期。假设此时钟周期为40ns,表层走线,板材为FR-4,则数据线的最小长度要635CM。即使时钟周期为8ns,数据线最小长度也要127CM。这显然不是我们所希望的。因此,实际中使用产生数据时钟沿的次上升沿来采样数据。
![](http://m.amcfsurvey.com/editerupload/201505/99121b1a5832db08087844dbc27b0d9a.jpg)
图4 使用数据产生沿的后续边沿采样数据
评论