門控時鐘是一種在系統不需要動作時,關閉特定塊的時鐘的方法,目前很多低功耗SoC設計都將其用作節省動態功率的有效技術。在SoC設計中,時鐘門控可以在兩個級別完成:
1. 門控時鐘被設計到SoC架構中,并被編碼為RTL功能的一部分。當這些相關的模塊處于非激活狀態時,它會停止各個模塊的時鐘,從而有效地禁用這些塊的所有功能。由于大的邏輯塊在這些非激活的時鐘周期內都不進行切換和運算操作,因此節省了大量的動態功率。時鐘門控的最簡單和最常見的形式是使用邏輯“與”功能通過控制信號enable選擇性地禁用各個塊的時鐘。
? ? ?
2. 在綜合期間,相關工具自動識別共享公共使能控制信號的觸發器組,并使用它們選擇性地關閉這些觸發器組的時鐘。
這兩種時鐘門控方法最終都將在控制其下游時鐘的時鐘路徑中引入具體物理邏輯門。即使映射到SoC中,這些邏輯門也可能會引入額外的時鐘偏差,并導致設置和保持時間沖突,然而,這可以通過SoC后端STA流程或者其他手段的時鐘樹綜合和布局工具來補償。SoC設計的時鐘樹綜合平衡了源和目的地之間的時鐘緩沖、分段和布線,以確保定時關閉,使這些路徑包括時鐘門控。這在FPGA技術中是不可能的,因此如果SoC設計包含大量門控時鐘或復雜的時鐘網絡,則需要其他一些方法來映射SoC設計。
所有FPGA設備都有專用的低偏斜時鐘樹網絡,稱為全局時鐘。它們的數量有限,但它們可以計時FPGA中的順序資源,頻率為數百兆赫。由于FPGA供應商的精湛設計技術,時鐘網絡在FPGA中的任意兩個目的地之間也只有幾十皮秒的偏差。因此,當我們將設計目標定為FPGA時,始終建議使用這些全局時鐘。然而,FPGA時鐘資源不適合創建大量相對較小的時鐘域,如我們通常在SoC中發現的那樣。相反,FPGA更適合于實現少量的大型同步時鐘網絡,這些網絡可以被認為是整個設備的全局網絡。
全局時鐘網絡非常有用,但可能不夠靈活,無法滿足復雜SoC設計的時鐘需求,尤其是在RTL中執行時鐘門控時。這是因為物理門被時鐘門控過程引入時鐘路徑,并且全局時鐘線不能自然地容納這些物理門。因此,布局布線工具將被迫為具有插入門的時鐘網絡使用其他片上路由資源,通常導致到目標寄存器的不同路徑之間的大的時鐘偏移。
當在SoC中采用架構級時鐘門控時,例如當為時鐘使用粗粒度開關控制以減少動態功耗時,可能會出現這種情況。在這些情況下,可以將門控時鐘的所有負載劃分到同一FPGA中,并從同一時鐘驅動器塊驅動它們。在一些SoC設計中,設計中也可能存在跨時鐘域的設計,即源和目標觸發器由不同相關時鐘驅動的路徑,例如,時鐘和由時鐘路徑中的物理門創建的導出門控時鐘,如圖所示。來自源觸發器的數據很可能比門控時鐘更快/更晚到達目的地觸發器,并且這種競爭條件可能導致定時沖突。
? ? ?
上述競爭條件的解決方案是將基準時鐘和選通與選通時鐘分開。然后將分離的基本時鐘路由到時鐘,并選通到時鐘使能所有順序元件。當時鐘“打開”時,順序元件將被啟用,當時鐘“關閉”時,序列元件將被禁用。通常,許多門控時鐘來自同一基準時鐘,因此將門控與時鐘分離允許單個全局時鐘線用于許多門控時鐘。這樣,功能時鐘路徑中存在的邏輯門被移動到數據路徑中,這消除了時鐘偏移。
這個過程稱為門控時鐘轉換。FPGA中的所有順序元件都有專用的時鐘使能輸入,因此在大多數情況下,門控時鐘轉換可以使用這一點,而不需要任何額外的FPGA資源。然而,手動將門控時鐘轉換為等效啟用是一個困難且容易出錯的過程,盡管如果SoC設計中的時鐘門控都在設計層次結構中的同一位置執行,而不是分散在各個子功能中,則可能會稍微容易一些。
頂層的芯片支持塊可以包括驅動整個SoC所需的所有時鐘生成和時鐘門控。然后,在原型設計期間,可以用其FPGA等效邏輯替換該Chip Support模塊。同時,我們可以手動將時鐘門替換為啟用信號,該啟用信號可以在整個設備中路由。
然后,這將在原始門控時鐘每次上升時僅啟用全局時鐘的單個邊緣。在大多數情況下,由于復雜性,手動操作是不可能的,例如,如果時鐘在RTL中的許多不同的始終或過程塊處被本地門控。在這種情況下,可能是大多數設計流程中的默認情況,可以采用自動門控時鐘轉換。
審核編輯:劉清
-
SoC設計
+關注
關注
1文章
148瀏覽量
18793 -
RTL
+關注
關注
1文章
385瀏覽量
59876 -
門控時鐘
+關注
關注
0文章
27瀏覽量
8961 -
FPGA系統
+關注
關注
0文章
10瀏覽量
7052
原文標題:【芯知識】FPGA原型驗證系統的時鐘門控
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論