在現(xiàn)代 ASIC 設計中,多比特觸發(fā)器 (MBFF,multi-bit flip flops) 的使用有所增加,這是由于 MBFF 優(yōu)于單比特觸發(fā)器 (SBFF,single-bit flip flop) 的各種預期的優(yōu)勢。了解多比特觸發(fā)器的設計、它的工作原理以及多位觸發(fā)器相對于單比特觸發(fā)器的優(yōu)點/缺點是什么變得很重要。
使用MBFF的好處
多位觸發(fā)器的主要優(yōu)點如下,這就是為什么現(xiàn)在 MBFF 被廣泛使用的原因:
1、減少面積
2、降低功耗
3、更好的時鐘偏差控制
4、時序改進
所以我們可以說它改善了面積、功耗和時序。
MBFF的內(nèi)部結(jié)構(gòu)
多比特觸發(fā)器的所有優(yōu)點都歸功于它們的架構(gòu)。圖 1 顯示了一個單比特 FF 和一個 二比特 MBFF 原理圖。類似的架構(gòu)也可以用于更高比特的 MBFF。
圖1 MBFF結(jié)構(gòu)
可以注意到,與單比特觸發(fā)器相比,當我們使用多比特觸發(fā)器時,反相器的數(shù)量會減少。當我們使用更大的 MBFF 時,這種減少的效果更加明顯。SBFF 和 MBFF 中的反相器數(shù)量比較如圖 2 所示。
圖2 SBFF 和 MBFF 中使用的反相器數(shù)量
一個 16 比特觸發(fā)器內(nèi)部只使用了 2 個反相器,而 8 個單單比特觸發(fā)器中使用了16 個反相器。8 位 MBFF 的示意圖如圖 3 所示。
圖3 16比特MBFF
由于在 MBFF 的情況下減少了反相器的數(shù)量,因此節(jié)省了時鐘樹的功耗和面積。使用MBFF 轉(zhuǎn)換后觸發(fā)器本身的功能沒有發(fā)生變化。
SBFF在版圖中轉(zhuǎn)換為MBFF
圖4使用SBFF時的placement階段示意圖
圖5 使用MBFF時的place階段示意圖
圖 4 和圖 5 顯示了如何將 SBFF 轉(zhuǎn)換為 MBFF。圖 4 顯示了 MBFF 轉(zhuǎn)換完成前的場景,圖 5 顯示了 MBFF 轉(zhuǎn)換后的場景。在圖 5 中,我們可以看到,代替 8 個不同的 SBFF,只使用了一個 8 位 MBFF。所以 MBFF 通常尺寸更大,并且具有多行的height。
PnR 工具具有將 SBFF 轉(zhuǎn)換為 MBFF 的算法。該工具選擇標準單元庫中可用的等效 MBFF,并針對為轉(zhuǎn)換提供的用戶輸入執(zhí)行轉(zhuǎn)換。這種轉(zhuǎn)換主要發(fā)生在placement。
在EDA工具中打開MBFF優(yōu)化
以INNOVUS為例,在Legacy UI和Common UI中的設置方法如圖6所示。優(yōu)化主要針對Placement & CTS 階段。另外,優(yōu)化前需要讀入MBFF的物理庫、時序庫、功耗庫。
圖6 在EDA工具中打開MBFF優(yōu)化的操作
對于Cadence綜合工具Genus來說,也可使用上述option進行MBFF優(yōu)化,不過對于genus 的Leagcy UI來說,option的command跟Leagcy Innovus不匹配,可以使用如下command:
使用MBFF可能引入的問題
不利于ECO
多比特觸發(fā)器有一個公共時鐘引腳和測試引腳。如果我們只針對 2 或 4 位中的一位,在這些引腳上執(zhí)行 ECO 將很困難。例如,如果我們想在 ECO 階段調(diào)整時鐘偏移以恢復特定位的任何時序違規(guī),那么調(diào)整的額外偏移將影響多位觸發(fā)器的其他位。如果這影響了觸發(fā)器其他位的時序,我們可能需要將這個多位觸發(fā)器分解為單個位觸發(fā)器并進行eco connect和eco route。如果 ECO 僅是metal的,那么找到備用觸發(fā)器(spare reg)并執(zhí)行 ECO 將更加困難。
增加pin density
在設計中使用多比特的一個缺點是引腳密度高。引腳密度不應與引腳數(shù)混淆。盡管與單比特相比,整體上MBFF 的管腳更少(幾乎一半),但 pin 中的本地管腳密度(local pin density)特別高。此外,MBFF 將有更多的引腳布線阻塞和引腳金屬層。下面是2比特和單比特的FF的引腳示意圖。
圖7 MBFF引腳示意圖
圖8 SBFF引腳示意圖
從上圖中可以看出,MBFF使用 Metal 2(紅色層)和Metal 1作為obstruction layer(內(nèi)部走線層),而 SBFF僅使用 Metal 1 作為obstruction layer。
在這里,我們將整個設計劃分為 8.61x8.61 微米的矩形箱。并比較了一個單位矩形(8.610 x 8.610 微米)內(nèi)的pin density,下面是SBFF和MBFF的pin density對比。
圖9 SBFF和MBFF的pin density對比
高引腳密度可能會導致多位觸發(fā)器上的hign local congestion。有不同的方法可以避免此類問題:填充單元填充,實例填充、避免將MBFF在電源帶下方。
IR/EM問題
當 MBFF的時鐘引腳切換時,觸發(fā)器及其內(nèi)部時鐘電路都會消耗電流,即使其中只有一位正在改變狀態(tài)。這可能會導致從電源軌汲取高電流。這需要一個強大的電源網(wǎng)絡并在多位觸發(fā)器周圍添加去耦電容器(Decap cell)。這也意味著多位觸發(fā)器的短路電流要求將高于局部區(qū)域中的單個位觸發(fā)器。
避免 IR/EM 問題的一種方法是在多位觸發(fā)器周圍保留空間,方法是應用填充單元填充(或者加keep-out margin)并在插入Decap期間移除填充。
Conformal檢查
在 RTL 到綜合網(wǎng)表Conformal期間,我們需要指示工具將多位觸發(fā)器拆分為單個位并進行驗證。當多位轉(zhuǎn)換發(fā)生時,這些工具遵循特定的命名約定,帶有前綴和分隔符來識別多位觸發(fā)器。使用這些命名約定,多位觸發(fā)器可以在保形檢查期間分解為單位觸發(fā)器。