​設計中可能會同時發生setup和hold的violation麼?

時序上很難滿足的那些時序路徑稱為時序關鍵路徑(timing critical paths),可以分為建立(setup)和保持(hold)時序關鍵路徑。

STA工具分別在max和 min條件下,分析setup/hold的違例,即設計中同時發生setup/hold違例可能發生在同一個工作條件下,也可能發生在不同的工作條件下。

下面分別舉例說明這兩種情況:

Case1(在同一個工作條件下,同時發生setup/hold的violation):

​設計中可能會同時發生setup和hold的violation麼?

​設計中可能會同時發生setup和hold的violation麼?

在上面的一條path中,(PS:上面的所有邏輯閘換成其他組合邏輯black box)

IN -> A -> C -> OUT 為hold critical

IN -> B -> C -> OUT 為setup critical

IN -> A -> D-> OUT 為setup critical

IN -> B-> D -> OUT 為setup critical

如果我們要修復IN -> A -> C -> OUT這條路徑的hold time violation,我們可以:

1、在C上插入buffer,但是這會增加B -> C的延時,加劇B ->C的setup violation

​設計中可能會同時發生setup和hold的violation麼?

2、在A 上插入buffer,但是這會增加A -> D的延時,加劇A -> D的setup violation

​設計中可能會同時發生setup和hold的violation麼?

上述就是我們所闡述的同一個工作條件下,同一條路徑,同時發生setup/hold violation的情況。

怎麼修復IN -> A -> C -> OUT這條路徑的hold time violation呢,我們可以:

​設計中可能會同時發生setup和hold的violation麼?

再複製一個與門,在修復IN -> A -> C -> OUT路徑上的hold violation的同時,而沒有增加A -> D和B-C的延時。

Case2(在不同工作條件下,同時發生setup/hold的violation):

標準單元(standard cell)的延遲隨PVT和OCV的變化而變化,cell delay從worst case scenario到best case scenario可能相差2倍。假設,setup/hold time要求也按相同比例縮放。

設計在所有的工作條件下都需要同時滿足setup/hold time要求。這意味著需要在worst case scenario下滿足setup time,並在best case scenario下滿足hold time。

對於下面的示例(F=1。4 GHz,T= 714 ps ):

best case scenario如下圖所示:

​設計中可能會同時發生setup和hold的violation麼?

launch flop的clk-> q delay為100 ps,combinational delay為80 ps,hold time為200 ps。在這種情況下:

Hold slack = Tck->q +Tprop - Thold

Hold slack = 100+ 80 - 200

Hold slack = -20ps

因此,在這種情況下,我們的hold slack是負的。因此,我們需要在保證setup slack為正的情況下,修復hold time violation。

worst case scenario如下圖所示:

​設計中可能會同時發生setup和hold的violation麼?

如果我們假設worst case scenario延時相對於best case scenario延時都按比例縮放2倍,則clk-> q delay為200 ps,combinational delay為160 ps,setup time為400 ps。

Setup slack = Tperiod - (Tck->q +Tprop + Tsetup)

Setup slack =714 - 200 - 160 - 400 = -36 ps

因此,對於相同的時序路徑,setup和hold slack都變為負值。解決方案可以是:

1、利用使用延遲變化較小的cell(或者線延時)。

2、將工作條件(PVT)限制在更窄的範圍內。

3、降低頻率,同時增加data path延時。

等等

對於第3個解決方案,首先,我們需要確保滿足hold time 要求(Hold slack >= 0)。將combinational delay為增加到 100ps。換句話說,worst case scenario下的combinational delay為200 ps(縮放2倍)。

如果setup的餘量為0 ps,則最大工作頻率為:

Tperiod(min) = Tck->q + Tprop +Tsetup

Tperiod(min) = 200+ 200 + 400 = 800 ps (1。25 GHz。)