邏輯設計方法學 3 門控時鐘

2021-08-10 20:22:59 字數 2748 閱讀 4145

對於每乙個暫存器,都需要有時鐘輸入端,如果在一些對設計功耗要求比較高的地方,保持設計準確後的功耗控制便是頭等大事。為了分析如何減少功耗,首先要來分析功耗主要由哪些部分組成。

在絕大多數的設計中,功耗主要由三部分組成

在每個時鐘沿變化的組合邏輯所產生的功耗(由於觸發器驅動這些組合邏輯)

由觸發器產生的功耗(即使在觸發器的輸入和內部狀態沒有發生變化,該功耗依然存在)

設計中時鐘樹產生的功耗

由於時鐘樹幾乎消耗了整個晶元功耗的一半左右,甚至於更多,因此在上述三部分中,控制時鐘樹的功耗就顯得尤為重要。對時鐘樹進行門控能大幅度降低觸發器的功耗。門控時鐘可以存在於時鐘樹的根部、末端、或者中間的任何位置。如果我們能有一種方法直接控制時鐘樹的根部,以使整個時鐘樹在電路不工作的時候都關閉,這樣更能在根源上將功耗降到最低。

那麼什麼是門控時鐘呢?顧名思義就是利用邏輯門技術控制時鐘的通斷。那麼熟悉邏輯電路設計的設計者馬上就會想到以下的問題:

帶著以上三個問題,來詳細地分析門控時鐘。

下圖1是乙個帶門控時鐘的三位計數器:

圖 1 門控時鐘計數器

通過上圖可以看出,除了把門控時鐘器件插入時鐘網路中,該電路與傳統的計數器電路的實現方式是完全相同的。這樣只有在inc輸入為高電平時才由時鐘驅動觸發器。當inc輸入為低電平時,觸發器無時鐘輸入,觸發器的輸出保持為原來的值。利用這樣的方法,就可以減少時鐘對功耗的消耗。

不含鎖存器的門控時鐘電路是最簡單的門控時鐘,它由乙個簡單的與門/或門就可以完全實現(「與」門或「或」門使用哪個取決於觸發器的活躍沿),如圖2所示

圖 2 不帶鎖存器的門控時鐘

從上面這張圖能看出來一些問題,不含有鎖存器的門控時鐘電路,雖然實現比較簡單,但是我們無法確定en的持續時間,如果en的持續時間小於t/2(t位clk的週期),那麼就會產生門控無效的問題。為了避免過早截斷時鐘脈衝或誤產生多個時鐘脈衝(或時鐘上的毛刺),正確的操作強制要求使能訊號(en)從時鐘活躍沿(本例為上公升沿)起持續到時鐘不活躍沿(本例為時鐘下降沿)止為乙個常量

圖3說明了未滿足上述要求而是產生的時鐘過早被截斷的情況。這種限制使得在基於單時鐘觸發器的設計中不適合使用不含鎖存器的門控時鐘。

圖 3 生成時鐘過早地終止

基於鎖存器的門控時鐘是想設計中加入了乙個電平敏感的鎖存器,以在時鐘活躍沿和不活躍沿之間保持使能訊號不變,這樣就無須依靠門控電路本身來滿足這一要求了。如圖4所示

圖 4 基於鎖存器的時鐘門控電路

由於鎖存器能捕捉到使能訊號並使它保持到產生完整的時鐘脈衝,因為使能訊號只需要在時鐘活躍沿附近保持穩定即可。但不需要考慮是否違反建立時間(setup)和保持時間(hold)。使用這種技術,每次只需要改變門的乙個輸入端來開啟或關閉時鐘就能保證電路的輸出不含有任何毛刺或者尖峰脈衝了。

需要注意的是:在上圖的例子中,使用「與」門控制在上公升沿有效的時鐘,對於在下降沿有效的時鐘,使用「或」門進行控制,並用正沿觸發的鎖存器寄存使能訊號

在使用這一設計方法的時候,必須注意時鐘的占空比以及使能訊號邏輯的延遲,因為使能訊號必須在半時鐘週期產生(即大於半個時鐘週期)。在產生使能訊號的邏輯比較複雜或者時鐘占空比失衡的時候,就會發生問題(時鐘占空比不為50%也可能會遇到類似的問題)。即使這樣,但與其他產生門控時鐘的方式引入的問題相比較,關注占空比和邏輯延遲的工作量是可以接受的,並且這兩個量相對也是比較好控制的。

為了保證較高的生產缺陷覆蓋率,有必要保證在使用掃瞄方法學時門控時鐘電路是完全可控和可觀察的。加入控制訊號,使得設計中所有觸發器不管使能值是多少都能被時鐘驅動,這樣就能使掃瞄鏈按照正常方式移動掃瞄資料了。

該訊號可以在鎖存器前先與使能訊號進行一次「或」操作,並可將該訊號連線到指示進入掃瞄測試中的測試模式訊號上,或連線到只在掃瞄移位時有效的掃瞄使能訊號上。

修改後的電路如圖5所示,大多數的asic生產商提供「門控時鐘單元」作為標準單元庫中的一部分。

圖 5 標準時鐘門控單元

對設計的特殊部分使用門控訊號能提高能效。與門控時鐘的概念相似,門控訊號減少了與時鐘無關訊號的變化。最常見的例子是解碼器使能。

在位址解碼機制中,位址訊號會在所有目標模組解碼器中變化。解碼器輸入端的切換行為會導致大量的門翻轉。可以用使能或選擇訊號阻止切換行為的傳播,但是可能會使邏輯變得稍複雜。

圖 6 帶使能端的解碼器

經過上面的分析,再來看在開篇的時候所提出的三個問題:

回答完這三個問題,我們就對門控電路有了乙個比較清晰的理解。

[1] mohit arora.硬體架構的藝術.機械工業出版社. 28-32

邏輯設計方法學 5 控制時鐘偏移

整個晶元中時鐘訊號到達時間的差異成為時鐘偏移,即clock skew。在時序設計的時候,滿足暫存器的建立時間和保持時間的要求是最基本的設計原則。在相鄰的暫存器之間的資料傳輸延遲,與時鐘偏移應該滿足一定的關係,在本節中,我們來詳細地討論其關係。通過圖1來看相鄰暫存器之間傳輸的時候的資料延遲和時鐘偏移,...

邏輯設計方法學 7 跨時鐘域

如果多個時鐘都起源於同一時鐘,並且它們的香味和頻率關係是已知的,那麼這些時鐘可以看成是跨同步時鐘域的時鐘。按照相位和頻率的關係,可以將這些時鐘分成以下型別 假定兩個時鐘之間的相位和時鐘抖動相同,並假定他們之間的路徑已經按同樣的時鐘延遲和偏移引數進行了平衡。除此之外,還假設這兩個時鐘起始處的相位差為零...

邏輯設計方法學 6 多時鐘設計技術

在進行乙個含多個時鐘的設計時,在 和綜合過程中需要遵循一定的準則,這樣會帶來很大的好處。通用的準則如下 xilinx的開發工具vivado有 project mode 和 non project mode 在 non project mode 中,我們經常使用指令碼進行開發。同樣在 的時候,也會編寫...