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