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