高速PCB设计中的时序分析及仿真策略
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA
接收时钟CLKA下一个周期的总延时为:
TCLKA_DELAY=TCYCLE+TCO_CLKA+Tflt_CLKA
要满足数据的建立时间则必须有:
TCLKA_DELAY_MIN-TDATA_DELAY_MAX-Tsetup-Tmargin>0
展开并考虑时钟的抖动Tjitter等因素整理后得到:
TCYCLE+(TCO_CLKA_MIN-TCO_CLKB_MAX)+(Tflt_CLKA_MIN-Tflt_CLKB_MAX)-TCO_DATA_MAX-Tflt_DATA_SETTLE_DELAY_MAX-Tjitter-Tsetup-Tmargin>0 (1)
式(1)中TCYCLE为时钟的一个时钟周期;第一个括号内是时钟芯片CLOCK BUFFER输出时钟CLKA、CLKB之间的最大相位差,即手册上称的output-output skew;第二个括号内则是CLOCK BUFFER芯片输出的两个时钟CLKA、CLKB分别到达RECEIVER和DRIVER的最大延时差。式(1)中TCO_DATA是指在一定的测试负载和测试条件下,从时钟触发开始到数据出现在输出端口并到达测试电压Vmeas(或VREF)阈值的时间间隔,TCO_DATA的大小与芯片内部逻辑延时、缓冲器OUTPUT BUFFER特性、输出负载情况都有直接关系,TCO可在芯片数据手册中查得。
由公式(1)可知,可调部分实际只有两项:Tflt_CLKB_MIN-Tflt_CLKB_MAX和Tflt_DATA_SETTLE_DELAY_MAX。单从满足建立时间而言,Tflt_CLKA_MIN应尽可能大,而Tflt_CLKB_MAX和Tflt_DATA_SETTLE_DELAY_MAX则要尽可能小。实质上,就是要求接收时钟来得晚一点,数据来得早一点。
1.2 数据保持时间的时序分析
为了成功地将数据锁存到器件内部,数据信号必须在接收芯片的输入端保持足够长时间有效以确保信号正确无误地被时钟采样锁存,这段时间称为保持时间。在公共时钟总线中,接收端缓冲器利用第二个时钟边沿锁存数据,同时在驱动端把下一个数据锁存到数据发送端。因此为了满足接收端保持时间,必须保证有效数据在下一个数据信号到达之前锁存到接收端触发器中,这就要求接收时钟CLKA的延时要小于接收数据信号的延时。由图1中的时序关系图中,可以得到时钟CLKA的延时:
TCLKA_DELAY=TCO_CLKA+Tflt_CLKA
而数据延时:
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA_SWITCH_DELAY
若要满足数据的保持时间,则必须有:
TDATA_DELAY_MIN-TCLKA_DELAY_MAX-Thold-Tmargin>0
展开、整理并考虑时钟抖动Tjitter等因素,可得如下关系:
(TCO_CLKB_MIN-TCO_CLKA_MAX)+(Tflt_CLKB_MIN-Tflt_CLKA_MAX)+TCO_DATA_MIN+Tflt_DATA_SWITCH_DELAY_MIN-Thold-Tmargin-Tjitter>0?2?
式(2)中,第一个括号内仍然是时钟芯片CLOCK BUFF
《高速PCB设计中的时序分析及仿真策略(第2页)》