一、同步電路
定義:電路中所有受時鐘控制的單元,全部由一個統一的時鐘控制。
優點:在同步設計中,EDA工具可以保證電路系統的時序收斂,避免電路設計中的競爭冒險。
缺點:時鐘樹綜合需要加入大量延遲單元,使電路面積和功耗大大增加。
二、異步電路
定義:電路數據傳輸可以在任一時刻發生,沒有一個統一的時鐘控制。
優點:模塊化特點突出,對信號延遲不敏感,沒有時鐘偏斜問題,低功耗的特性
缺點:設計複雜,缺少相應EDA工具支持
同步電路和異步電路的區別在於電路觸發是否與驅動時鐘同步,從行爲上講,就是所有電路是否在同一時鐘沿下同步地處理數據。(《XilinxFPGA設計權威指南》P86~P91 )
即所說的同一個時鐘域或不同時鐘域,主要是針對時鐘源點來區分的。比如有好幾個時鐘,都是從一個PLL出來的,那這些時鐘的相位和倍數都是可控的,我們認爲它們之間是同步時鐘。
目前大多大規模ASIC和SOC中,都採用全局異步,局部同步的方法。
三、方案概述
四、亞穩態
定義:觸發器無法在規定時間內達到一個可確認的狀態。
無法預測輸出的電平,也無法預測何時輸出才能穩定。
亞穩態無法從根本上消除,但可以採取一定的措施使其造成的影響降低。
五、雙鎖存器
實際上爲兩個觸發器。在一個信號進入另一個時鐘域之前,用兩個鎖存器連續鎖存兩次。
優點:結構簡單,易實現,面積消耗小。
缺點:增加兩級觸發器延時。從快時鐘域到慢時鐘域,易採樣丟失。
適用場景:慢時鐘域轉到快時鐘域。data_delta>clk_slow+2*clk_fast+path_delay,確保所有數據變化均能採集到。
結論:兩級觸發器已經將MTBF變得足夠大,再多觸發器影響電路效率。增加寄存器同步的方法爲降低亞穩態出現的概率。
verilog代碼如下:
六、跨時鐘域電路設計參考書目
1.SOC設計方法與實現(第三版)郭煒等.
2.FPGA深度解析 樊繼明,陸錦宏.