時鐘是數位電路中所有訊號的參考,特別是在fpga中,時鐘是時序電路的動力,是血液,是核心。沒有時鐘或者時鐘訊號處理不得當,都會影響系統的效能甚至功能,所以在一般情況下,在同乙個設計中使用同乙個時鐘源,當系統中有多個時鐘時,需要根據不同情況選擇不同的處理方法,將所有的時鐘進行同步處理,下面分幾種情況介紹時鐘的同步處理方法。
第一種情況:
當有多個時鐘在同乙個數位電路中,且有乙個時鐘(clk)的速率大於其它時鐘兩倍以上。
這種情況最為簡單,在介面部分就必須要對其他時鐘進行同步化處理,將其處理為與clk同步的時鐘訊號。
這樣處理的好處是:
便於處理電路內部時序;
時鐘間邊界條件只在介面部分電路進行處理。
實質上,時鐘取樣的同步處理方法就是上公升沿提取電路,經過上公升沿提取輸出資訊中,帶有了系統時鐘的資訊,所以有利於保障電路的可靠性和可移植性。
第二種情況:
當系統中所有時鐘沒有乙個時鐘速率達到其他時鐘頻率的兩倍的情況,也就是系統中多個時鐘速率差不多的情況。
這個時候無法滿足取樣定理,所以在介面部分就必須對其他時鐘和資料通過fifo或者dpram進行隔離,並將其他時鐘資訊轉換為和系統時鐘同步的允許訊號。比如在高速的資料採集系統當中,ad的採集時鐘往往比較高,大於系統時鐘的一半以上,這時候採用同步化處理無法滿足時序設計。
第三種情況:
系統中多個時鐘之間存在資料互相取樣。
對於這種情況,可使用兩級觸發器級聯取樣資料,避免亞穩態發生。
第四種情況:
多級時鐘網路處理。
所謂多級時鐘網路是指時鐘經過超過一級的閘電路後連到觸發器的時鐘輸入端。
由於時鐘建立-保持時間的限制,fpga設計中應盡量避免採用多時鐘網路,在設計中必須要將時鐘網路進行簡化,盡量採用使能的方式或者其他簡化的電路結構。
FPGA非同步時鐘設計中的同步策略
1 引言 基於fpga的數字系統設計中大都推薦採用同步時序的設計,也就是單時鐘系統。但是實際的工程中,純粹單時鐘系統設計的情況很少,特別是設計模組與外圍晶元的通訊中,跨時鐘域的情況經常不可避免。如果對跨時鐘域帶來的亞穩態 取樣丟失 潛在邏輯錯誤等等一系列問題處理不當,將導致系統無法執行。本文總結出了...
非同步訊號的去抖電路及同步電路
如果電路有非同步訊號,就可能使電路進入亞穩態,因為非同步訊號可能處於時鐘訊號建立時間以內 即是輸出不確定的狀態。非同步訊號如果是外部的機械輸入,比如鍵盤等,輸入訊號就會產生機械性地振盪,因此首先需要對此類非同步訊號加乙個去抖電路。可採用如下的基於nand鎖存器的開關去抖電路 假設開關從上撥到下,當開...
非同步fifo 跨時鐘域同步(非同步FIFO)
本文使用 zhihu on vscode 創作並發布 之前學習了跨時鐘域下的單bit訊號同步的方法,這些單bit訊號多是作為控制訊號或者標誌訊號來使用,再實際的專案中,處理多bit資料也是十分常見的,即資料的同步。非同步fifo的實現其實本質上和雙口ram是一樣的,其實現思路就是將資料在src cl...