時鐘設計技巧

2021-07-24 07:24:19 字數 1619 閱讀 7810

**:深入淺出玩轉fpga

1、內部邏輯產生的時鐘

若使用組合邏輯的輸出作為時鐘訊號或者非同步復位訊號,必須對有可能出現的問題採取必要的預防措施。在正常的同步設計中,乙個時鐘乙個節拍的資料流控制能夠保證系統持續穩定的工作。但是,組合邏輯產生的時鐘不可避免地會有毛刺出現,如果此時輸入埠的資料正處於變化過程,那麼它將違反建立和保持時間要求,從而影響後續電路的輸出狀態,甚至導致整個系統執行失敗。

對於必須採用內部邏輯做時鐘或者復位訊號的應用,也還是有解決辦法的。在輸出時鐘或者復位訊號之前,再用系統專用時鐘訊號(通常指外部晶振輸入時鐘或者pll處理後的時鐘訊號)打一拍,從而避免組合邏輯直接輸出,達到同步處理的效果。對於輸出的時鐘訊號或復位訊號,最好讓它走全域性時鐘網路,從而減小時鐘網路延時,提公升系統時序效能。

2、分頻時鐘與使能時鐘

設計中往往需要用到主時鐘的若干分頻訊號作為時鐘,即分頻時鐘。對於資源較豐富的fpga,一般都有內嵌的多個pll或者dll專門用於時鐘管理,利用它們就可以很容易地達到多個時鐘的設計,輸出時鐘能夠配置成設計者期望的不同頻率和相位差(相對於輸入時鐘),這樣的時鐘分頻是最穩定的。但是對於某些無法使用pll或者dll資源的器件又該怎麼辦呢?推薦使用「使能時鐘」進行設計,在「使能時鐘」設計中只使用原有的時鐘,讓分頻訊號作為使能訊號來用。

例子:設計需要得到乙個50mhz輸入時鐘的5分頻訊號即10mhz。

如圖2.36所示,使能訊號不直接作為時鐘使用,而是作為資料輸入端的選擇訊號,這樣就避免了使用分頻時鐘。

3、門控時鐘

組合邏輯中多用門控時鐘,一般驅動門控時鐘的邏輯都是只包含乙個與門(或門),如果有其他的附加邏輯,很容易因競爭產生不希望的毛刺。圖2.37,門控時鐘通過乙個使能訊號控制時鐘的開或者關。當系統不工作時可以關閉時鐘,整個系統就處於非啟用狀態,這樣能夠在某種程度上降低系統功耗。

然而,使用門控時鐘並不符合同步設計的思想,它可能會影響系統設計的實現和驗證。單純從功能實現來看,使用使能時鐘替代門控時鐘是乙個不錯的選擇;但是使能時鐘在使能訊號關閉時,時鐘訊號仍然在工作,它無法像門時鐘那樣降低系統功耗。

圖2.38所示,對於上公升沿有效的系統時鐘clk,它的下降沿先把門控訊號(gating signal)打一拍,然後再用這個使能訊號(enable)和系統時鐘(clk)相與後作為後續電路的門控時鐘。

這樣的門控時鐘電路很好地解決了組合邏輯常見的一些問題。它避免了毛刺的出現,同時也有效抑制了亞穩態可能帶來的危害,但是從另乙個方面來說,如果這個設計的系統時鐘(clk)占空比不是很穩定,或者輸出的使能訊號(enable)與時鐘訊號(clk)的邏輯過於複雜(不止這個例子中乙個與門那麼簡單),那麼它也會帶來一些功能或時序上的問題。總的來說,只要設計者控制好這個設計中時鐘的占空比和門控邏輯複雜度,它還是比圖2.37給出的門控時鐘方案更可行。

Hardware 時鐘設計技巧

最近工作涉及到電路的復位和時鐘問題,這裡追根溯源的總結下非同步復位 同步釋放以及電路時鐘設計技巧 基本原則 內部邏輯產生的時鐘 使用門控時鐘 分頻時鐘與使能時鐘module pro input clk,input rst n reg 2 0 count wire clk en reg a reg b...

C 時鐘設計

這學期開設了c 課程,對於已經接觸c 將近一年的人來說,學這個課程是很輕鬆的,當然,對自己的要求也應該更高才是。老師布置的乙個基於窗體的小作業 時鐘設計,本著盡量做好的原則,我花了不少的功夫對我花了極端時間所做的簡單的時鐘做了完善,包括時間和日期的自動變換的正確性,軟體的更加實用性,還為它的數字時鐘...

跨時鐘設計

1 單bit訊號 1 電平訊號 採用兩級暫存器同步,7nm工藝常用 同步暫存器同步 2 3級同步器採用定製的暫存器模組,暫存器之間的延時很低,有效降低了亞穩態傳播概率。2 脈衝訊號 單週期脈衝訊號採用脈衝同步器,首先確保源時鐘的單週期脈衝能被目的時鐘採道,目的時鐘進行取樣後經過組合邏輯產生目的時鐘域...