多時鐘域設計 資料訊號傳輸

2022-06-04 18:27:09 字數 1867 閱讀 2271

一般情況下資料訊號的都是多位的,以資料匯流排的形式傳輸。

同步器只能降低亞穩態傳輸的概率,不能確保正確的同步訊號,使用同步器傳輸多位的資料訊號會增大發生亞穩態的概率。

因此如果簡單的使用多組同步器進行資料訊號跨時鐘域傳輸,可能導致資料訊號中多位資料在傳輸過程中發生錯誤。

使用基於mux的同步器

使用握手訊號

使用fifo

前級時鐘=傳送時鐘=源時鐘;

后級時鐘=取樣時鐘=接收時鐘=目標時鐘;

使用同步器同步valid訊號,作為mux的選通訊號。用於資料傳輸的選通。

根據傳送時鐘端資料訊號的變化速率和取樣時鐘頻率,可以分為一下三種情況。

問題:上公升沿檢測電路檢測的是什麼訊號的上公升沿?檢測非同步時鐘的上公升沿。

使用傳送端的控制訊號進行同步,在取樣到慢時鐘域發出的控制訊號後,接收資料的時鐘沿進行資料取樣。

使用如圖所示的上公升沿檢測訊號ce作為控制訊號(或資料接收的使能訊號)控制資料訊號的傳輸。

由於傳送時鐘比接收時鐘快,對於接收時鐘而言,傳送時鐘相當於窄脈衝。

為避免檢測不到上公升沿,可以結合窄脈衝捕獲電路和上公升沿檢測電路進行邊沿檢測,並將結果作為使效能訊號,但前提是傳送時鐘頻率不能太快。

問題:可能會導致資料取樣不完整,資料丟失的現象。

無法使用握手訊號進行資料傳輸,需要使用fifo。

每次傳輸資料都存在latency,且使用的控制訊號越多,latency越嚴重。

對於許多開放式資料傳遞應用程式,簡單的兩行握手序列就足夠了。傳送方將資料放在資料匯流排上,然後將「req」訊號同步到接收時鐘域。當在目標時鐘域中識別到「 req」訊號時,接收器將資料輸入暫存器中(資料應在目標時鐘域中至少有2/3個取樣時鐘沿保持穩定),然後傳遞「確認」通過同步器向傳送者發出訊號(確認)。當傳送方識別出同步的「 ack」訊號時,傳送方可以傳送新的資料。

fifo設計

同步fifo架構:

如圖所示為同步fifo,dpram(雙端ram)作為fifo的儲存器,允許讀寫同步進行,由狀態模組控制讀寫的指標和fifo的狀態。

同步fifo表示fifo狀態的表示方法

非同步fifo架構:

非同步fifo用於對效能要求較高的設計中,尤其是時鐘延遲比系統資源更為重要的環境中。

可以使用與同步fifo類似的雙端ram和單獨讀寫埠實現,但是要注意產生fifo_empty和fifo_full時要避免出現亞穩態現象。

避免使用二進位制計數器實現指標

在寫請求有效時,寫指標在寫時鐘作用下遞增;在讀請求有效時,讀指標在讀時鐘下遞增。

由於讀寫指標分別與其各自的時鐘同步,彼此之間非同步,使用二進位制計數器實現指標時,可能會導致比較指標值取樣錯誤。

多時鐘域資料同步

對於不同的時鐘域要傳遞資料的話,需要採用一定的手段,來防止資料傳遞時產生亞穩態等問題 1 慢時鐘域向快時鐘域傳遞資料 對於持續時間較短的脈衝一般情況下無法捕捉到,只有脈衝寬度較時鐘週期大才可 捉到,該電路實際上我一般用來作為控制訊號的邊沿檢測,此處為下降沿檢測,把反相器放到q3的輸出即可用來檢測上公...

邏輯設計中多時鐘設計 2

在上個系列中,主要分析了單bit時鐘訊號是如何在多個時鐘域中進行同步的。概括起來只有兩點 一是通過同步器,二是將控制訊號與資料訊號合併成一組 資料 控制 匯流排,經過fifo或ram實現跨時鐘域設計。那麼在這節中,重點來分析跨時鐘域這個概念。通過這節的分析,可以知道那些型別的時鐘,在實際的處理過程中...

設計數字時鐘

設計數字時鐘 40分 題目內容 按照下面要求定義乙個時鐘結構體型別 struct clock typedef struct clock clock 然後,程式設計實現將時鐘模擬顯示在螢幕上。注意 時鐘是24小時的。需要判斷輸入的資料是否合法。輸入樣例1 10,20,3 輸出樣例1 10 20 03 ...