為了使用時鐘門控,多電壓域,多閾值庫或電源開關等低功耗策略,工藝庫必須包含支持這些策略的邏輯單元。 支持低功耗設計的一些單元包含以下部分:

1、 Lib庫電源引腳連接定義

在之前的CMOS工藝中,晶元上所有的單元都連接到同一個電源。 工藝庫中不包含單元的電源連接關係,因為所有單元共享相同類型的電源(VDD、VSS)。

然而,當晶元上使用多個電源,就必須指定每一個單元的特定電源連接關係。 對於某些類型的單元,例如level shifter,需要指定相同單元,不同電源引腳的連接關係。

為了描述此類信息,Liberty庫語法已擴展為可以支持電源的連接關係。 這個電源連接關係可以用於綜合、物理實現和驗證工具優化電源設計,合適地連接layout上的電源引腳,並分析使用多個電源電壓的設計行為。

對於沒有電源引腳的舊lib庫,可以在Design Compiler或IC Compiler中通過add_pg_pin_to_lib或add_pg_pin_to_db 命令快速添加電源引腳,從而使庫與UPF電源規範兼容。

2、時鐘門控單元

Power Compiler等綜合工具可以確定時鐘門控的位置,提供最大的功耗降低效益,並可在設計中自動插入時鐘門控電路。

將時鐘門控電路插入現有的時鐘網路可能會引入skew,對時序產生不利影響。 為了讓綜合工具在綜合時考慮這些影響,你可以讓工具使用integrated clock-gating cells。 集成的integrated clock-gating cells時鐘門控電路中的組合和時序電路。 圖1顯示了integrated clock-gating cells的一種實現方式。

時鐘門控單元可以包含任何類型的邏輯,例如多個使能輸入,非同步複位或反向門控時鐘輸出。 Power Compiler可以通過將周圍的邏輯吸收到門控時鐘單元內部來優化使能邏輯。

3、 Level Shifters

在多電壓設計中,信號從一個電壓域穿過另一個電壓域時需要Level Shifter。Level

Shifter作為緩衝器工作,輸入端和輸出端在不同的電壓域。 因此,Level Shifter將信號從一個電壓擺幅轉換到另一個電壓擺幅,同時希望從輸入到輸出具有儘可能小的延遲。 見圖2。

Level Shifter單元的庫描述必須包含有關轉換類型的信息(從高到低,從低到高或兩者都可以),以及所支持的電壓電平,和相應的電源引腳。

Power Compiler和IC Compiler等綜合和物理實現工具可以識別設計中需要進行電平調整的網路,找到庫中可用的合適的Level Shifter單元,將Level Shifter插入網表,放置Level Shifter,並走線信號和電源。

以下圖3顯示了從低到高電平轉換的Level Shifter的lib語法.

4、 Isolation Cells

在使用電源開關的設計中,從可以斷電的電源域跨越到未斷電的電源域的每個邏輯信號都需要Isolation CellsIsolation Cells作為緩衝器工作,但在輸入端斷電的時間內提供恆定的輸出信號。 使能輸入控制單元的操作模式。 見圖4。

以下示例顯示了典型Isolation Cells的lib語法。

可以同時實現level-shifting和isolation功能的單元稱為enable levelshifter cell。 這種類型的單元用於信號從一個電源域穿過的地方另一個電源域,兩個電源域電平不同,並且第一個電源域域可以被斷電。 見圖5。

以下示例顯示典型enable levelshifter cell的lib庫語法。

5、 Power-Switch Cells

在具有電源開關的設計中,需要header和 footer 類型開關給可以斷電的模塊供電。 Header類型電源開關連接power rail 到斷電模塊的電源引腳。 Footer類型電源開關將ground rail連接到斷電模塊的接地電源引腳。輸入邏輯信號控制電源開關。 見圖6。

電源開關單元的庫描述指定控制電源開關的輸入信號,連接到實際power rail和ground rail的引腳,以及提供可開關的電源引腳。

以下示例顯示了典型電源開關單元的lib語法。

6、 Always-On Cells

在電源域被關閉時,可能存在某些特定單元需要持續保持活動狀態的情況,例如retention

registers,isolation cells,retention控制路徑和isolation使能路徑。與普通單元相比,功能相同的always on單元具有備用電源,即使在模塊斷電期間也能連續工作。 見圖7。

以下示例顯示了always-on單元的lib語法。

7、 Retention Register Cells

在具有電源開關的設計中,有幾種不同的方法在掉電之前來保存寄存器狀態,在上電時恢復它們。 一種方法是使用retention registers,這些寄存器可以在其斷電期間通過低泄漏寄存器網路和always-on電源供電保持其狀態。

以下示例顯示典型retention register的lib庫語法。


推薦閱讀:
相关文章