时序裕量计算之二:Altera计算时序裕量的方法

clip_image002

Altera对Clock Setup Slack和Clock Hold Slack的定义的切入面稍有不同。

一、Clock Setup Slack

          参照前言的图,定义一个符号SR,SR表示 Clock Setup Relationship。

          SR = Latch – Launch – stUn                                                                       (1)

          其中,Latch为Setup Latch Edge,Launch为Setup Launch Edge,考虑最坏的情况,Setup时Latch左偏。

          看上图的r2r,r2r表示数据从某寄存器输入到另一寄存器输入的延时,实际上即Td。

          可以用以下方法推导r2r的计算:

       Launch + uTco + Td-S + r2r = Latch + Td-D – uTsu – stUn,推导可得

       r2r = (Latch – Launch - stUn) + (Td-D – Td-S) – uTsu –uTco                            (2)

          注意这里是uTsu和uTco,待会还会出现Tsu和Tco,这两者是有区别的。uTsu即建立时间,uTco即clock-to-output。

          Altera把Clock Setup Slack定义为:

          Clock Setup Slack = r2r Required(r2rR) – r2r Delay(r2rD)                               (3)

          同时定义 Tcs = Td-D - Td-S                                                                      (4)

          Tcs定义为时钟到目的寄存器与时钟到源寄存器的时间差。

          考虑最坏的情况,Clock Setup Slack的计算如下:

          Clock Setup Slack

       = r2rR – r2rD

       = SR + Tcs(min) – uTsu – uTco – Td(max)                                                      (5)

二、Clock Hold Slack

          把Clock Hold Relationship表示为HR,HR定义为

          HR = Hold Latch Edge – Hold Launch Edge + Hold Uncertainty                          (6)

          考虑最坏的情况,Hold Check是Latch倾向于右偏。

          Altera把Clock Hold Slack定义为:

          Clock Hold Slack = r2rD – r2rR                                                                      (7)

          Hold Check时计算r2rR稍有不同。Hold Check时r2rR应表示为:

          r2r = (Latch – Launch + hdUn) + (Td-D – Td-S) + uThd –uTco                          (8)

          考虑最坏的情况,Clock Hold Slack计算如下:

          Clock Hold Slack

       = r2rD – r2rR

       = Td(min) – HR – Tcs(max) – uThd + uTco                                                        (9)

原文地址:https://www.cnblogs.com/freshair_cnblog/p/2647970.html