TWI516896B - 判斷安全地採樣時脈域之訊號的時間的系統與方法 - Google Patents
判斷安全地採樣時脈域之訊號的時間的系統與方法 Download PDFInfo
- Publication number
- TWI516896B TWI516896B TW102139651A TW102139651A TWI516896B TW I516896 B TWI516896 B TW I516896B TW 102139651 A TW102139651 A TW 102139651A TW 102139651 A TW102139651 A TW 102139651A TW I516896 B TWI516896 B TW I516896B
- Authority
- TW
- Taiwan
- Prior art keywords
- phase
- clock domain
- clock
- signal
- estimate
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Description
本發明關於在時脈域之間傳送訊號,更特定而言係關於同步化時脈域。
許多的數位系統具有多重時脈域。因此,當訊號由一時脈域移動到另一者時,它們必須被同步以避免亞穩態與同步的失敗。如果兩個時脈具有固定頻率,該等兩個時脈之間的相位於該等兩個時脈的拍頻(beat frequency)之下有周期性。周期性同步器透過利用這種周期性相位關係的優點可以較為簡單,具有較低的潛時,以及會比必須處理完全非同步訊號的同步器具有較低的失敗機率。
可惜地是,傳統的周期性同步器具有多種限制。例如,大多數既有的系統之訊號係使用非同步先進先出(FIFO,“First-in-first-out”)而與周期性時脈同步。這些會造成FIFO記憶體之很大的面積負擔。因為該FIFO的格雷編碼(Gray-coded)輸入與輸出指標必須透過多個正反器進行同步化來將它們移動橫跨時脈域,該等FIFO亦加上了數個延遲循環。
因此有需要處理關聯於先前技術的這些及/或其它問題。
本發明提供一種用於判斷安全地採樣時脈域之訊號的時間
的系統與方法。在一具體實施例中,一第一時脈域的一相位估計係基於一第二時脈域與該第一時脈域之間的一相對頻率估計來做計算,且基於該相位估計,決定一第一時間,以在該第二時脈域中產生一第一採樣訊號,其中在該第一時間期間,該第一時脈域的一訊號並未改變,使得該訊號能夠由該第二時脈域安全地採樣。此外,計算出一更新的相位估計,並基於該更新的相位估計,決定一第二時間,其中在該第二時間期間,來自該第一時脈域的該訊號正在改變,使得該訊號不能夠由該第二時脈域安全地採樣。於該第二時間期間,在該第二時脈域中維持該第一採樣訊號。
100‧‧‧方法
102‧‧‧作業
104‧‧‧作業
200‧‧‧方法
204‧‧‧作業
206‧‧‧作業
300‧‧‧全數位周期性同步器
400‧‧‧頻率估計器
500‧‧‧相位檢測器
510‧‧‧相位檢測器
520‧‧‧四樣本相位檢測器
530‧‧‧相位檢測器校正器
540‧‧‧相位檢測器
600‧‧‧相位估計器
700‧‧‧衝突檢測器
800‧‧‧二分之一次方衝突檢測器
900‧‧‧順向同步器
1200‧‧‧同步器
1400‧‧‧相位循環
1500‧‧‧先進先出同步器
1600‧‧‧先進先出同步器
1800‧‧‧系統
1801‧‧‧主控處理器
1802‧‧‧通訊匯流排
1804‧‧‧主記憶體
1806‧‧‧圖形處理器
1808‧‧‧顯示器
1810‧‧‧次級儲存器
1905‧‧‧作業
1906‧‧‧作業
1907‧‧‧作業
1908‧‧‧作業
1909‧‧‧作業
1910‧‧‧順向同步器
1911,1912‧‧‧暫存器
1915‧‧‧輸出暫存器
1916‧‧‧選擇單元
1917‧‧‧經選擇的訊號
1930‧‧‧同步器狀態圖
圖1例示根據一具體實施例的一種用於使用一頻率估計來判斷可安全地採樣一時脈域的一訊號的時間之方法。
圖2例示根據另一具體實施例的一種用於使用一相位估計來判斷可安全地採樣一時脈域的一訊號的時間之方法。
圖3例示根據又另一具體實施例的一種用於使用一相位估計來安全地採樣一時脈域的一訊號的全數位周期性同步器。
圖4例示根據又另一具體實施例的一種頻率估計器。
圖5A例示根據另一具體實施例的一種相位檢測器。
圖5B例示根據又另一具體實施例的一種用於分開早期與晚期檢測的相位檢測器。
圖5C例示根據又另一具體實施例的一種四樣本相位檢測器。
圖5D例示根據另一具體實施例的一種相位檢測器校正器。
圖5E例示根據另一具體實施例的一種用於檢測偶數與奇數相位的相位檢測器。
圖6例示根據又另一具體實施例的一種相位估計器。
圖7例示根據又另一具體實施例的一種衝突檢測器。
圖8例示根據另一具體實施例的一種二分之一次方衝突檢測器。
圖9例示根據又另一具體實施例的一種順向同步器。
圖10例示根據圖9所示之該順向同步器的運作的一同步器狀態圖。
圖11例示圖9所示之該順向同步器之運作的時序圖。
圖12例示根據又另一具體實施例的一種具有流程控制的同步器。
圖13例示圖12所示之該具有流程控制的同步器之運作的時序圖。
圖14例示根據另一具體實施例的一相位循環,其顯示出偶數與奇數不讓入內區域,及該偶數暫存器被選擇的一區域。
圖15例示根據另一具體實施例中使用一偶數/奇數順向同步器的一FIFO同步器。
圖16例示根據另一具體實施例的一FIFO同步器,其中保留頭端與尾端指標的偶數與奇數版本另可降低FIFO潛時。
圖17A-D例示根據其它具體實施例的多種相位循環。
圖18例示可以實施多種先前具體實施例之多種架構及/或功能之示例性系統。
圖19A例示根據又另一具體實施例的一種用於使用一相位估計來判斷可安全地採樣一時脈域的一訊號的時間之方法。
圖19B例示根據又另一具體實施例的一種順向同步器。
圖19C例示根據圖19B所示之該順向同步器的運作的一同步器狀態圖。
表1例示以下該等圖面之說明中所參照到的多種符號與訊號名稱,以及這些符號與訊號名稱中至少一部份的示例性數值。
此外,以下包括的該等多種具體實施例的示例係揭示於William J.Dally與Stephen G.Tell發表於2010年的2010 IEEE Symposium on Asynchronous Circuits and Systems的Asynchronous Circuits and Systems國際研討會論文集75-84頁之「偶數/奇數同步器:一種快速全數位式周期性同步器」(The Even/Odd Synchronizer:A Fast,All-Digital,Periodic Synchronizer),其在此完整引述加入做為參照。
圖1例示根據一具體實施例的一種用於使用一頻率估計來判斷可安全地採樣一時脈域的一訊號的時間之方法100。如作業102所示,一第一時脈域的一頻率估計利用一頻率估計器進行計算。在本案中,該第一時脈域可包括任何一種可以採樣一訊號之系統的時脈域(例如具有一特定頻率的時脈)。例如,該第一時脈域可包括一中央處理單元(CPU,“Central processing unit”)、一圖形處理單元(GPU,“Graphics processing unit”)、一記憶體控制器及/或具有一時脈域的任何其它系統之一時脈域。
如上述,該第一時脈域可包括該系統的時脈。另外,該時脈域可在一特定頻率下運作(例如傳送訊號)。為此目的,該第一時脈域的該頻率估計可包括該系統的該時脈之頻率的一估計(例如測量等)。
在一具體實施例中,該頻率估計可利用一對b-位元計數器
進行計算。例如,該等計數器之第一者(以下稱之為該第一計數器)可由該第一時脈域計時,並可計數在該第一時脈域中該時脈的脈衝。另外,該等計數器的第二者(以下稱之為第二計數器)可計數自該第一時脈域採樣一訊號所需要的在一第二時脈域中一時脈的脈衝,並可由該第二時脈域計時。必須注意到該第二時脈域可包括一系統的一時脈域,藉此該第一時脈域的該訊號可被採樣,因此其不同於關聯於該第一時脈域的該系統。例如,該第一時脈域的頻率可以不同於該第二時脈域的頻率。
當該第二計數器到達其終端計數值時,該第一計數器即停止。依此方式,該第一計數器計數脈衝的時間可以等於該第二計數器用來到達該終端計數值的時間。然後該第一計數器的計數值可被記錄在一暫存器中。這種第一計數值可以指示出該第一時脈域的頻率估計。
在另一具體實施例中,該頻率估計可以不需要測量該第一時脈域與該第二時脈域每一者之頻率來進行計算。在這種具體實施例中,該第一時脈域與該第二時脈域可以具有差異為一有理數(rational number)的頻率。例如,該第一時脈域的頻率可等於該第二時脈域的頻率乘以N/D,其中N與D為整數。因此,針對整數N與D,該頻率估計可計算為N除以D(N/D)。
用於計算該頻率估計的該頻率估計器可被包括在一同步器中。例如,該同步器可實施於關聯於該第一時脈域的系統與關聯於該第二時脈域的系統之間,用於同步化該第一時脈域與該第二時脈域之間的訊號(例如用於同步化來自該第一時脈域由該第二時脈域進行的該訊號之採樣)。如下述,這種同步化可基於該經計算的頻率估計來執行。
另外,如作業104中所示,使用該頻率估計決定一時間,,使得該訊號能夠由該第二時脈域安全地採樣,而在該時間中來自該第一時脈域的一訊號並未改變。例如,來自該第一時脈域的一訊號並未改變期間的該時間可包括來自該第一時脈域的該訊號並未改變(例如靜態等)時間中
該第一時脈域的一相位。在另一示例中,來自該第一時脈域的一訊號並未改變期間的該時間可包括關聯於該第一時脈域的一時脈邊緣的一檢測邊緣以外的任何時段。例如,可能知道該訊號同步於該第一時脈域的該時脈之該等邊緣而變化。因此,該檢測範圍可包括結合了該第一時脈域的一時脈邊緣之前的一第一時段與該第一時脈域的該時脈邊緣之後的一第二時段。
在一具體實施例中,來自該第一時脈域的該訊號並未改變期間的時間,可基於辨識出該第一時脈域與該第二時脈域為有理地相關而被判斷出來。該有理關係(rational relationship)可由於該第一時脈域的頻率與該第二時脈的頻率而來,而該第一時脈域的頻率與該第二時脈的頻率皆透過除以一參考頻率然後相乘的相位鎖定迴路(PLL,“Phase-locked-loops”)自一共通晶體參考頻率來產生。
在另一具體實施例中,在辨識出該第一時脈域與該第二時脈域為有理相關時,即自動地判斷出該第一時脈域的該相位並未改變(且因此無法被檢測)或為緩慢地變化。因此,來自該第一時脈域的一訊號並未改變期間的該時間的判斷可以不需要利用該第一時脈域的該相位之估計(例如因此僅利用該第一時脈域的該頻率估計)。
例如,該相位可表示成P=a.b/D,其中「a」為一整數部份,「b」為一分數部份,且D為一有理相關頻率的分母。依此方式,該相位可被檢測出來,且上方(up)與下方(lp)限制可被初始化為以D為比例之該檢測區域的該等界限,如上所述。在一具體實施例中,一第一檢測可以初始化該等相位界限(up與lp)。該等D相對相位可被重複地造訪,其中至少一者被預期會造成一檢測(並因此檢測一可能的衝突)。在沒有檢測的D+1個循環之後,可判斷出該等兩個時脈之間所有D個相對循環不會造成衝突,使得來自該第一時脈域的一訊號並未改變的該時間可被判斷出來,因此該訊號能夠由該第二時脈域安全地採樣。
圖2例示根據另一具體實施例的一種用於使用一相位估計
來判斷可安全地採樣一時脈域的一訊號的時間之方法。如作業202所示,一第一時脈域的一頻率估計利用一頻率估計器進行計算。關於本說明,該頻率估計可依照上述關於圖1的作業102所述的方式進行計算。
另外,如作業204所示,該第一時脈域的一相位估計利用一相位估計器基於該頻率估計進行計算。在一具體實施例中,該第一時脈域的一相位可被檢測出。例如,早期與晚期樣本可能相對於該第二時脈域而來自該第一時脈域。
該等早期與晚期樣本可包括樣本配對(pairs),每一配對由一早期樣本與一晚期樣本所構成。另外,該等早期與晚期樣本可為同步於該第一時脈域之一訊號。如果一對早期與晚期樣本有差異,可判斷出於發生在採取該等早期與晚期樣本的時間之間發生的該檢測區域(例如時間)期間發生一轉換。依此方式,該第一時脈域的一相位可被檢測出。
在另一具體實施例中,該相位估計可基於該相位檢測進行計算。例如,該第一時脈域的該相位之一b-位元運行估計可相對於該第二時脈域來維持。該相位估計可為一b-位元部份,其代表環繞一個單位循環的0與1之間的數值。另外,該相位估計可被重置,以指示出每當該相位依照前述之方式檢測到時,即可安全地由該第一時脈域採樣。
在另一具體實施例中,於檢測時,該第一時脈域的相位必須被設定為f(S+1),其中一額外的循環被加入到S(該同步器的延遲)以預測在其發生之前的一個循環之該相位估計。上述之該第一時脈域的相位可被設定為f(S+1),所以該相位估計預測位在該第二時脈域的下一個上升邊緣處的該第一時脈域的相位。例如,該相位估計可以編碼在該第一時脈域的偶數循環與奇數循環內的該相位。如果未檢測到該相位,該相位估計可於該第二時脈域的每一循環期間以該第一時脈域的該相對頻率被增量。為此目的,可以維持一運行中相位估計。必須注意到除了該頻率檢測器之外,該相位檢測器與該相位估計器亦可被包括在一同步器中。例如,該同步器可實施
於關聯於該第一時脈域的該系統與關聯於該第二時脈域的系統之間,用於同步化該第一時脈域與該第二時脈域之間的訊號(例如用於同步化來自該第一時脈域由該第二時脈域進行的該訊號之採樣)。如下述,這種同步化可基於該經計算的相位估計來執行。
再者,如作業206中所示,使用該相位估計決定一時間,使得該訊號能夠由該第二時脈域安全地採樣,而在該時間中來自該第一時脈域的一訊號並未改變。如上述,該相位估計可指出可安全地由該第一時脈域進行採樣期間的時間(即當來自該第一時脈域的該訊號已知並未改變)。
例如,該相位估計可以預測在該第二時脈域的下一上升邊緣處的該第一時脈域的相位。此可允許該輸入資料的一延遲版本可在該第二時脈域的該上升邊緣對在該不讓入內區域正在轉換中(因此可為正在改變中)的一直接輸入進行採樣之前被採樣。
現在將進行關於多種選擇性架構及特徵來提出更多例示性資訊,藉此前述的架構可根據使用者的需要來實施。必須特別注意到以下的資訊係為了例示性目的而提出,且不應以任何方式視為其限制。任何以下的特徵可以視需要加入或排除所述的其它特徵。
圖3例示根據又另一具體實施例的一種用於使用一相位估計來安全地採樣一時脈域的一訊號的全數位周期性同步器300。選擇性地,全數位周期性同步器300可被實施以執行圖1及/或圖2之方法。但是當然全數位周期性同步器300可實施在任何想要的環境中。亦必須注意到該等前述的定義亦可在下文中來應用。
一任意周期性訊號可藉由測量其頻率與相位而使用整個數位分量來同步化,然後使用此資訊來判斷出何時可安全地利用該接收時脈簡單地採樣該訊號,以及何時直接採樣並不安全,而必須使用一延遲的時脈。藉由使用該頻率與相位,可以避免使用FIFO記憶體。此外,可以降低同步化的延遲(例如藉由避免經由蠻力(brute-force)同步器來同步化格雷編
碼的頭端與尾端指標)。
如果利用一FIFO同步器進行流程控制,該同步器可以取代一蠻力同步器(使用多個串聯的正反器)來用於同步化該等FIFO頭端與尾端指標。此可降低該FIFO同步器的延遲,且避免使用格雷編碼的指標(其另會需要同時維持格雷編碼與二元化指標)。
關於本具體實施例,一進入訊號d可被同步於一傳送時脈(屬於一傳送時脈域)tclk,其具有低於該接收時脈rclk(屬於一接收時脈域)的頻率fR之一固定的頻率fT。此處所述之具體實施例亦可在當fT高於fR時實施。
如所示,一頻率估計方塊使用一對b-位元計數器來測量該傳送時脈的該頻率。該頻率估計方塊輸出一b-位元相對頻率f=fT/fR mod 2f。
一相位檢測方塊記錄該傳送時脈最後一次進入該接收時脈的一檢測區域的時間。當此發生時即輸出一檢測訊號(det)。因為該檢測訊號被同步化,其反映出在S個接收循環之前該傳送時脈的該相位。必須注意到可以利用多個檢測區域與訊號。但是,關於本具體實施例,係假設一單一位元檢測訊號。
一相位估計方塊保留該接收時脈的該相位之一運行估計。其在每次接收到一檢測時設定該相位p為(S+1)f,並針對沒有檢測的rclk的每一循環將該運行相位增加f。
最後,一衝突檢測方塊使用該目前相位估計來判斷何時直接採樣為安全,或是何時需要延遲的採樣。當相位p係在靠近該危險點的一窗中時,衝突訊號c被設定(asserted),其指示一多工器來取樣該近同步輸入的一延遲版本。
該同步器資料路徑接受被同步於tclk的一a位元寬的輸入d1。在圖中,d1由被tclk計時的暫存器F1所產生。選擇性地,暫存器F1
可以不需要為同步器300的一部份。但是,訊號d1可以直接來自於一暫存器而沒有中介的邏輯,做為另一種選項。閂鎖器L1(或一正反器,未示出)採樣在rclk的該下降邊緣上的訊號d1來產生延遲的輸入訊號d2。一多工器當沒有衝突時選擇該直接輸入d1,而當有一衝突時選擇該延遲輸入d2。此選擇的結果dx可保證由暫存器F2安全地採樣,其即產生同步於rclk的一輸出ds。
設定該衝突檢測窗使得採樣在該多工器的經選擇的輸入上為安全。當c被設定且該多工器選擇d2時,由閂鎖器L1在rclk的該下降邊緣上之訊號d1的採樣可保證為安全。當c未被設定(asserted)時,則由暫存器F2在rclk的該上升邊緣上之d1的採樣可保證為安全。
同步器300使用閂鎖器L1來延遲輸入d1半個循環(在clkR的該下降邊緣上採樣)。因此,可以提供pD=0.5的一相位延遲。做為另一選項,可使用不同時序的閂鎖器或暫存器來延遲d1不同的量。做為又另一種選項,可使用一延遲線(例如串聯的偶數個反向器)來延遲訊號d1充足的時間來使得由暫存器F2進行的採樣為安全。這些替代方案可以提供pD不同的數值。
圖4例示根據又另一具體實施例的一種頻率估計器400。選擇性地,頻率估計器400可在圖1-3之功能及架構之環境中實施。但是當然頻率估計器400可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
圖3的同步器仰賴在每一接收時脈循環的結束時具有該傳送時脈相位的一準確估計。此估計藉由先測量該傳送時脈的該相對頻率(如圖3所示),然後使用此頻率估計連同一相位檢測器(如圖5E所示)來產生一相位估計。該相位估計使用區間算術(interval arithmetic)做計算,以維持在該相位上準確的誤差界限。
如圖4所示係提供該頻率測量單元的方塊圖400,其使用一
對計數器來計算f,即該傳送時脈相對於該接收時脈的頻率。該頻率測量程序由一開始訊號st啟始。st的該上升邊緣重置該接收計數器(CR,“Receive counter”)。該開始訊號亦經由一蠻力同步器被傳送到該傳送時脈(tclk)域當中,即產生用於重置該傳送計數器(CT,“Transmit counter”)的訊號stT。
當該接收計數器到達一終端計數時(例如一b=10位元計數器的計數為1023)時,訊號tc被設定,並同步於該tclk域。此同步化的終端計數訊號tcT停止該傳送計數器。該等sp與tc同步器之延遲被平衡,所以來自CT的最終計數反映出於2b個接收時脈(rclk)循環期間發生的tclk循環之數目,即該傳送器的相對頻率f=fT/fR。該終端計數訊號被同步回到該rclk域中,以產生訊號tcTR,其指出該頻率測量f何時預備好,並使其能夠在該結果暫存器(RR,“Result register”)中補捉。
計數器CT產生一b+1位元的結果,所以f產生成模數2。其為一固定點數目,在該二元化點左方有一位元,在其右方有b個位元。計算該傳送頻率估計模數2而非模數1,所以該相位估計器(如以下關於圖5E的說明)可以追蹤該傳送器是在一奇數或偶數時脈循環中。
在圖4的該頻率測量方塊中有三個蠻力同步器。這些同步器僅使用一次,意即當在重置之後測量頻率。所有這些同步器在該關鍵路徑之外,所以它們的延遲可被設定為任意地高,藉以達到一任意低的同步化失敗機率。基本上,四或五個時脈循環的一延遲S足以提供低於10-40的失敗機率。
該開始訊號與終端計數同步器之每一者皆會對該頻率測量引入一個循環的不確定性。因此,該頻率測量方塊的輸出準確地為±1 LSB,即±2-b。
圖5A例示根據另一具體實施例的一種相位檢測器500。選擇性地,相位檢測器500可被實施在圖1-4之功能與架構環境中。例如,該相位檢測器可以包括上述之該相位估計器的一組件。但是當然相位檢測器
500可以實施在任何想要的環境中。亦必須注意到該等前述的定義亦可在下文中來應用。
如所示,關於相位檢測器500所顯示的該相位檢測邏輯可藉由相對於rclk採取與tclk同步的一訊號dT之早期與晚期樣本來運作。如果該等早期與晚期樣本不同,即判斷於該檢測區域期間發生一轉換。正反器F1產生於與每一個循環觸變的tclk同步化的訊號dT。相對於rclk,訊號dT由正反器F3早期地採樣,而由正反器F2晚期地採樣。正反器F2由被T1延遲的一rclk版本來計時,因此在rclk的該上升邊緣之後的時間T1採樣dT。此dT的晚期採樣的結果為訊號dL。正反器F3在利用rclk做採樣之前延遲訊號dT時間T2。該效果相同於在rclk之前的時間T2採樣dT。此早期採樣的結果為訊號dE。
訊號dL與dE為採樣一非同步訊號的結果,因此可以進入一亞穩態。為了允許有時間可確定下來(settle out)任何的亞穩態,這些訊號分別被傳送通過蠻力同步器S1與S2。此即產生該等晚期與早期訊號的延遲與同步版本,即dLS與dES。為了達到有充份低的同步失敗機率,訊號dLS與dES將由dL與dE被延遲rclk的S個(基本上為2到4個)循環。正反器F2與F3可分別視為同步器S1與S2的第一階段,或者這些正反器可被省略,而直接使用該等同步器來採取該等早期與晚期樣本。
互斥或閘X1檢測何時在dLS與dES之間有一差異。此閘的輸出det,當在S個循環之前訊號為真時,訊號dT在相對於rclk的該轉換的該窗[-T2,T1]中已經發生一轉換。依此方式,相位檢測器500可以檢測何時該傳送時脈相位係在範圍[-T2/T,T1/T]中,其中T為該傳送時脈循環。
延遲線T1與T2可藉由串鏈偶數個反向器來實現。這些延遲必須使其足夠大來包括暫存器F2的該不讓入內窗tko=ts+th加上在此不讓入內區域的任一側上的一護衛帶g。依照需要,針對每一延遲線可以使用4到8個扇出的一個(FO1,fan-out of one)反向器。
當此處僅顯示一單一相位檢測器時,必須注意到可以使用兩個相位檢測器,一個在rclk的上升邊緣上,一個在rclk的下降邊緣上。可以使用該等兩個檢測訊號來在當在rclk的上升邊緣上發生一檢測時重置該相位估計到零(加上(S+1)f),而發生在rclk的下降邊緣上時重置到0.5(加上(S+1)f)。此可在當該相位非常緩慢地處理時防止一亞穩態由該延遲的路徑進行採樣。
如以下關於圖5B-D所做的說明,相位檢測器500可被修改來使用多個樣本用以提供一更為準確的相位測量,可以保留在該相位估計上的上限與下限(例如利用區間算術來計算相位)用以允許更為準確地判斷何時一時脈在另一者的「不讓入內」區域中,並可自動地校正來判斷該循環的那一部份正在被檢測。
圖5B例示根據又另一具體實施例的一種用於分開早期與晚期檢測的相位檢測器510。選擇性地,相位檢測器510可實施在圖1-4之功能及架構之環境中。但是當然,相位檢測器510可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文來應用。
如所示,產生有兩個輸出,包括有detE用於檢測何時該傳送相位在[-T2/T,0]的範圍中,以及detL用於檢測何時該相位在範圍[0,T1/T]中。藉由使用detE與detL,基於一經檢測的相位計算出的該相位估計可被更準確地界定。
圖5C例示根據又另一具體實施例的一種四樣本相位檢測器520。選擇性地,四樣本相位檢測器520可實施在圖1-4之功能及架構之環境中。但是當然,四樣本相位檢測器520可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文來應用。
如所示,可以包括額外的延遲線(相對於圖5B中的相位檢測器510)以產生額外的檢測訊號。必須注意到可被包括的額外延遲線的數目可視需要被擴大的任何需要的數目。藉由加入延遲線,可以提供更為準確
的相位資訊。當傳送相位在[-2T2/T,-T2/T]中時,四樣本相位檢測器520產生detLL,而當該相位在[T1/T,2T1/T]中時產生detEE。
當相位被檢測時,該原始的快速周期性同步器可有效地將該相位估計歸零(例如設定該相位為(S+1)f來做為同步化該相位檢測之S個循環的延遲)。該傳送相位在該不讓入內區域中期間的時間可藉由維持在該相位估計上的上限與下限來更為準確地檢測(例如藉由使用區間算術來計算該相位估計)。對於該相位估計的該等更新可使用頻率的界限。因為圖4中該等兩個同步器每一者僅引入一個不確定性的循環,該頻率被限定在範圍[f-1,f+1]內。
表2例示一Verilog碼的示例,其可用於使用圖5B的相位檢測器510來更新上與下相位估計(分別為up與lp)。當然,必須注意到表2所提出的碼僅做為例示性目的,因此不能以任何方式視為限制。
表2所示的碼在一相位檢測上適當的數值設定上限與下限,
然後使用頻率上的界限隨時間地發展它們。使用相位估計的上限與下限指示出當這些界限重疊於該有護衛帶的區域[-c,c]時,該傳送時脈域係在該不讓入內區域中。例如,此可能發生於當該上限或下限在該不讓入內區域中時,或是如果該上限為正而該下限為負時。
表3中所示的最後一個案例涵蓋了該相位區域包括整個不讓入內區域的狀況。表3例示一Verilog碼的示例,其可實施基於有符號的算術用於使用相位估計的上限與下限。當然,必須注意到表3所提出的碼僅做為例示性目的,因此不能以任何方式視為限制。
表4例示一Verilog碼的示例,其可實施基於無符號的算術用於使用相位估計的上限與下限。當然,必須注意到表4所提出的碼僅做為例示性目的,因此不能以任何方式視為限制。
利用表4所示的無符號表示式,相位由0增加到最大時(所有皆為1s),且cneg為對應於-c的一大的正值(接近所有皆為1s)。利用一偶數/奇數同步器(如下述),分開的不讓偶數(koe)與不讓奇數(koo)訊號可依此方式藉由鑑定ko是否由目前的Tx循環為偶數或奇數的方式來產生。
另外,為了判斷T1/T,T2/T等實際的大小等級,除了T(傳送器循環時間)之外,利用了判斷T1與T2的處理變化。此可假設該同步器係在該接收器時脈域中。如果該同步器在該傳送時脈域中(例如估計接收器相位),則係在該接收器循環時間中。
如果該傳送與接收時脈並非有理相關,T1/T(與T2/T)將藉由檢測傳送循環中造成一檢測的該部份來進行測量。此可在當藉由加入兩個
額外的計數器來測量該頻率而完成。如果該等兩個時脈並非有理相關,該接收時脈將一致地採樣該傳送時脈,且此部份可收斂到T1/T(或T2/T)。
圖5D例示根據另一具體實施例的一種相位檢測器校正器530。選擇性地,校正器530可被實施在圖1-5C之功能與架構的環境中。例如,該相位檢測器校正器可為上述之該相位檢測器之一組件。但是當然,校正器530可以實施在任何想要的環境中。亦必須注意到該等前述的定義亦可在下文來應用。
如所示,校正器530測量該檢測區間d。校正器530藉由在計數器CT2到達其終端計數所需要的2b個tclk循環期間,計數det(det=dete | deto)為真期間的tclk循環的數目來運作。此可將2d做為一b位元二元化部份。類似頻率估計,由於該同步器延遲的不確定性,此d的測量之準確度為+/-1。假定有此不確定性,CD(一計數器)的輸出被增加來對2d提供一上限(例如使得在關聯於該相位估計的該檢測區間上的上限被提供來補償同步器延遲)。此時(未示出)可加入一額外的數值來提供護衛帶(例如d的一界限負責電壓與溫度變化,以及用於中頻的抖動),如上所述。將此數目向右偏位一個位元的位置即得到d。此完成訊號指示出d的測量何時可完成。
如果該等時脈並未有理相關,校正器530僅一致地採樣tclk相位。如果它們為有理相關,則該接收時脈重複地造訪在該單元相位循環上相同的D(有理比例的分母)點。如果D足夠大,此即充份。該估計誤差小於1/D。針對小的D,該相位檢測器可使用一獨立的頻率來源做校正(例如一環式振盪器)以驅動該CD計數器。為此目的,校正器530可允許該相位檢測器進行自我校正。
圖5E例示根據另一具體實施例的一種用於檢測偶數與奇數相位的相位檢測器540。選擇性地,相位檢測器540可被實施在圖5A-5D之功能與架構的環境中。但是當然,相位檢測器540可以實施在任何想要的環境中。亦必須注意到該等前述的定義亦可在下文來應用。
相位檢測器540檢測何時在一傳送資料訊號上一轉換會落在環繞該接收時脈邊緣的一±td的窗中。該相位檢測器採樣在每一循環觸變的傳送訊號「even」。此訊號於偶數的tclk循環期間為高,而在奇數的tclk循環期間為低。正反器F2利用提供dL的td所延遲的rclk來採樣「even」,其為在rclk的上升邊緣之後的一「even」td的樣本,即一晚期樣本。由F3產生的一早期樣本dE,其採樣由td延遲的「even。」
如果「even」的一邊緣發生在rclk之前的td與rclk之後的td之間,由F3與F2採樣的該等數值將會不同。該等早期與晚期樣本由分別產生同步化的早期與晚期樣本dES與dLS的一對蠻力同步器來被同步於該接收時脈域。該等同步化的樣本之間的差異由一對及閘檢測到。如果該早期樣本為高而該晚期樣本為低,則檢測到tclk的一偶數邊緣(結束一偶數循環者),且「dete」被設定。如果該早期樣本為低而該晚期樣本為高,則檢測到tclk的一奇數邊緣,且「deto」被設定。
在rclk的每一個循環運作的該相位檢測器中有兩個蠻力同步器。但是類似於在該頻率測量單元中者,這些同步器在該關鍵路徑之外,所以它們的延遲可以較大,而使得該同步化失敗的頻率可任意地小。該採樣正反器加上同步器的4或5個循環之一組合的延遲S基本上可適用於維持一小於10-40Hz的一非常失敗頻率。
為了初始化該相位估計器,如下述,td的數值被限定。當有可能算出td上一最壞情況上限時,如果td的瞬間值被測量,且之後加入一護衛帶到此測量來負責具有溫度與電壓之td的變化時,即可產生更為準確的相位估計。
圖6例示根據又另一具體實施例的一種相位估計器600。選擇性地,相位檢測器600可被實施在圖1-5E之功能與架構的環境中。但是當然,相位估計器600可以實施在任何想要的環境中。亦必須注意到該等前述的定義亦可在下文中來應用。
如所示,相位估計器600藉由相對於rclk保留tclk的該相位之一b-位元運行估計來運作。此估計p為一b-位元部份,其代表環繞一個單位循環的零與一之間的數值。相位估計p在每當該相位檢測邏輯設定det時被重置為(S+1)f,以指示出其已經檢測到在該窗[-T2,T1]中dT的一轉換。當det未被設定(asserted)時,該相位增加f(即每一個rclk循環的tclk之相對頻率)。暫存器pR保留該b-位元運行相位p。如果det被設定,在該相位檢測邏輯中該等同步器的該延遲之前,相位p被重置為(S+1)f,以反映出該相位在S個循環之前為零。當det為低時,藉由在每一個循環將f加入到該運行總和來更新該相位估計。
請注意該預見因子A被設定為S+1,所以該運行相位p預測在rclk的下一個上升邊緣處tclk的相位。此使得圖3中的該多工器被設定成:在rclk的該上升邊緣取樣在該不讓入內區域中轉換的一直接輸入之前,選擇該輸入資料的該延遲版本。
該相位估計的準確性可基於該相位檢測器的該窗與該頻率估計的該準確性。在檢測時,該準確性在初始時可等於該相位檢測器的該窗[-T2,T1]。回應於沒有檢測的每一個循環,在該頻率估計中的該誤差可能為一完整LSB。
圖7例示根據又另一具體實施例的一種衝突檢測器700。選擇性地,衝突檢測器700可實施在圖1-6之功能及架構之環境中進行。但是當然,衝突檢測器700可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
衝突檢測器700包括該命中檢測邏輯的一具體實施例。衝突檢測器700比較該相位P的該運行估計與限制pL及pH。當將p解譯成一無符號數目時,如果p<pL或p>pH,該輸出c將被設定。當相位被解譯成有符號的數目時,此對應於正在該範圍[pH,pL]中(例如環繞0的一窗)的該相位。這個窗可被設定為大於該準確度窗[-N2-(b+1)-T2,N2-(b+1)+T1]。
圖8例示根據另一具體實施例的一種二分之一次方衝突檢測器800。選擇性地,二分之一次方衝突檢測器800可在圖1-7之功能及架構之環境中實施。但是當然,二分之一次方衝突檢測器800可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
當該等限制pL與pH被限定為2-I的型式時,可以使用如圖8所示之該命中檢測邏輯之一較簡單的版本。二分之一次方衝突檢測器800檢測何時p的最有效i個位元皆為0或皆為1。例如,為了檢測p何時在範圍[-1/8,1/8]中,其可判斷何時p的上方3個位元皆為0s或皆為1s。在另一示例中,藉由檢測何時p的上方2個位元皆為0s或皆為1s,即可檢測出p係在範圍[-1/4,1/4]。
表5例示可利用於表6所述之圖3中的全數位近同步同步器300之作業的示例中。必須注意到這些參數與作業示例僅係為了例示性目的提出,因此不應以任何方式視為限制。
如以下表6所示,顯示出該作業示例。該第一行反映出該循環數目,而該第二行顯示出相對於rclk之tclk的實際相位。標示為Det的該行指示出何時該實際相位落在該相位檢測器的檢測窗內。該相位檢測器的實際輸出為晚三個循環,如標示為Del的該行中所反映者。當Del為真時,該相位被設定為4f=0.868,其預測出在下一個循環上的實際相位。標示為p的該行顯示出該實際相位。在該初始檢測時,其完全準確,但可能會有在後續檢測時該檢測窗一樣大的誤差。標示為c的該行顯示出何時該估計的
相位會落在該衝突訊號之內,因此c被設定。請注意到此在該衝突實際發生之前的一個循環來預測到該衝突。最後,標示為ko的該行顯示出何時該實際時脈相位落在該不讓入內窗之內。在發生在該表中之單一案例時,其可由c在前一循環上被設定來正確地預測。
以下提供圖3的全數位近同步同步器300之準確度的分析。該不讓入內窗、該檢測窗與該衝突窗之相對大小可決定該頻率與相位估計所需要的精度b。使得d為該檢測窗的大小、g為該檢測窗與該不讓入內窗之間的該護衛帶,而c為該衝突窗的大小。在以上的示例中,d為0.10、g為0.04而c為0.25。
當決定一準確的相位估計時,該系統可明確地保證一安全的同步化。在該採樣時間,該傳送相位已知為Φ[lp,up],且如果lp[x,1+x),該偶數暫存器可安全採樣。如果該等系統參數b與d被適當地選擇,該系統亦可保證在近同步(plesiochronous)模態下的安全同步化,當不知道一準確的相位估計時,因為其自從lp與up的一檢測到由該臨界值k發散時已經足夠地長。在此近同步案例中,顯示出該頻率的範圍將會使得在一相位檢測針對該同步器係發生在一不讓入內事件之足夠久之前處來保證適當的採樣。
考慮以下f的案例:針對f<g/S(該護衛帶),在一錯誤之前將有一檢測。在此例中,該相位將足夠緩慢地移動到該檢測區域中,其中一檢測將發生在該相位進入該不讓入內窗之前S個循環處,而在一實際衝突發生之前,給我們時間來同步化該檢測、更新該相位估計,並設定(assert)該衝突訊號。
針對g/Sf<d,在每一個N=1/f循環處將有一檢測,每次該相位旋轉環繞該單元循環時至少有一次。所以只要2-b<gck/S,在該相位估計累積過多的誤差之前將會有一檢測。(此處k=0.25為一因子來加入額外的精度)。例如,針對我們的示例之該等數目,我們將gck/S=(0.04)(0.25)(0.25)/4=.000625,且b=11位元為充份的精度。
針對fd,f被表示成具有一限定的分母之一有理分數加上一誤差項f=N/D±e,其中DC=1/d 。如下所示,具有一限定分母之分數序列(稱之為Farey序列)的該等性質可保證eDC<1。在此例中,環繞該相位循環可能有D個點之重複樣式,其在每一個D-循環周期偏位De。此即提供如同f<d相同的兩個案例。
如果De<g/S,每個周期的該相位偏位為足夠地小,在誤差之前將會有檢測,如同當f<g/S時。
如果g/SDe<d,則在每一個1/(D2e)循環發生一檢測,所以如果2-b<gck/S,在我們累積過多的誤差之前將會有一檢測。此處針對b的需求實際上相同於以上g/Sf<d的案例。
我們需要顯示針對f>d>1/C,我們永遠能夠將f表示成f=N/D±e,其中DC與eDC<1。考慮Farey序列F(C),有理數的序列在0與1之間,分母DC。針對來自此組合的兩個相鄰數目,p/q,r/s,永遠會是r/s=(ps+1)/qs,其中q,s<=C及(ps+1)=qr。然後兩個相鄰有理數p/q與r/s之間的距離為1/qs。我們分配在p/q及p/q+1/q(s+q)之間的數值f成為p/q,而數目由r/s-1/s(s+q)到r/s。然後我們知道e=1/q(s+q),eDC=
(1/q(s+q))qC=C/(s+q)<1,因為由於Farey序列的該等性質,所以s+q>C。
同步器參數之間的相依性要求它們以pD,d,c,然後b的順序被選擇。該相位延遲pD的數值在該等其它參數上設定一些限制。如以上示例設定pD=0.5,係以會有些微增加該同步器的平均延遲的代價,來提供最大的彈性。藉由將pD設定為一較小的數值(例如0.1),即可降低延遲。但是,如此會對其餘的參數造成非常緊迫的限制。不論針對pD選擇那一個數值,該相位檢測器可被實施成檢測dT的轉換何時同時發生於相位0與相位pD,且該相位估計器可被實施成根據同時兩個事件來重置其相位估計。當De非常小時,該相位將在一樣本進入任一採樣路徑的該不讓入內區域之前被重置。
該檢測區域的大小d部份地決定了在該相位測量中的該誤差,因此被設定成足夠小,所以該相位估計器能夠準確地區分何時要選擇該直接與經延遲的資料值。一限制為d<pD/2-k,其中k為針對該相位估計器選出的該準確度參數。另一方面,選擇一小的d可造成一小的護衛帶,因此增加了在該等頻率與相位估計器中所利用之位元數目。在一具體實施例中,設定d為大約pD/4,可平衡這兩個限制。因為d由一反向器延遲線決定,其數值將橫跨PVT顯著地改變,因此該同步器被設計成同時在兩個極限端處運作。
誤差之最大容忍度係實現在:當該衝突檢測窗c被設定為pD的一半時。例如,當pD為0.5(如以上的示例),設定c為[-.25,.25]可提供誤差的最大餘裕。該相位可偏離0.25-tko,且該同步器仍可避免採樣一不安全的訊號。另一方面,c設定的很大會造成該延遲的資料訊號的許多「錯誤正向」選擇,其會增加平均的同步器延遲。在一具體實施例中,c被設定為[-.25,.25]或[-.125,.125]。使c為二分之一次方可允許來使用圖8的較簡單的檢測電路。一旦選出pD,d與c,b的最小值即可如上述地選出,所以2-b<gck/S。
選擇性地,圖3的全數位近同步同步器300中較貴的零件可於該同步器之實例之間共享。該頻率估計方塊的一單一副本可於所有同步化tclk與rclk之間的訊號的所有同步器之間共享,其中數值f由一方塊產生,並分散到這兩個時脈域之間所有的同步器中。依類似方式,一單一相位檢測方塊、相位估計方塊與衝突檢測方塊可於共享tclk與rclk之間相同相位關係的一些同步器之間共享。
圖9例示根據又另一具體實施例的一種順向同步器900。選擇性地,順向同步器900可實施在圖1-2與圖4-8之功能及架構之環境中。但是當然,順向同步器900可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
關於本具體實施例,可以避免關聯於採樣該訊號的一延遲版本之限制。為了不使用流程控制而將一多位元訊號由該傳送轉送到該接收時脈域,該傳送時脈在交替的循環上寫入一對暫存器。例如,暫存器E寫入到偶數循環上(於該偶數循環的結束處更新),而暫存器O寫入到奇數循環上。
然後該接收器使用其相位估計來選出可「安全地」在該接收時脈域中採樣(於該目前rclk循環結束處)的該最近寫入的傳送暫存器。該選擇係基於在目前rclk循環p的結束處該預測的tclk相位。在每一個接收時脈上,暫存器O於當該傳送時脈相位在e.x與o.x之間時被選擇,其中e代表該偶數循環,而x為該「不讓入內」餘裕。否則選擇該E暫存器。此同步器的該延遲根據平均為0.5+0.x的相位而在0.x與1.x之間變化。
當本具體實施例關於偶數與奇數時脈循環與兩個暫存器來說明時,必須注意到在其它具體實施例中可以利用任何數目的時脈循環與暫存器。因此,時脈循環可被標示為模數N,且可利用N個暫存器。增加暫存器的數目可允許非常大的不讓入內區域(例如大於一單一UI)。為此原因使用N個暫存器可被同時應用到圖9所示的該順向同步器與以下關於圖
11所述之該流程控制同步器。
如圖9所示且相對於該傳送器側,「tdata」在「tclk」的每一個循環上被交替地寫入到該等E與O暫存器中。在該接收器側,該選擇邏輯判斷要選擇該等兩個暫存器中那一者來在「rdata」上輸出。該選擇邏輯的此決定可基於由該頻率與相位估計邏輯(未示出)所產生的該傳送器時脈之相位估計。此邏輯可產生中間訊號,其指示出該相位何時在該偶數(或奇數)不讓入內區域「tkoe」(「tkoo」)及該傳送器何時在該偶數時脈循環「teven。」
表7顯示能夠用於選擇一訊號的碼之示例。必須特別注意到這些碼係僅係為了例示性目的而提出,且不應以任何方式視為其限制。
因此,關於本具體實施例,該奇數暫存器在當該傳送器在其偶數時脈循環中時(奇數暫存器剛在該奇數時脈循環結束時寫入)被選擇,除非該接收時脈係在該奇數不讓入內區域中,否則選擇該偶數暫存器。
在初始化時,順向同步器900可經過多種不同狀態。表8顯示出順向同步器900於初始化期間的該等選擇性狀態。當然,必須注意到這些狀態僅係為了例示性目的而提出,且不應以任何方式視為其限制。
如關於圖10所述,在重置時,順向同步器900進入該頻率取得(FA)狀態,並啟動其計數器配對來測量「另一個」時脈的頻率。於此狀態期間,順向同步器900檢查是否有一相位檢測(落在該檢測區域中的相位)。
一旦取得頻率,即進入該相位取得(PA)狀態,且順向同步器900等待一相位檢測。此時,一頻率估計f與一相位估計p已被決定,並進入該追蹤狀態(T)。如果並無相位檢測(例如發生一逾時),該等兩個時脈為有理相關(f=N/D)(或近乎有理相關)於一相位偏位,所以該D可命中該相位循環周圍,而遠離該檢測區域。在此例中,進入該M狀態,因為該相位被保證為足夠地慢,使其將在發生一錯誤之前被檢測到。
在該追蹤狀態(T)中,順向同步器900在每一個循環更新該相位估計,並在當順向同步器900檢測到其係在該偶數或奇數不讓入內區域中時採取適當的動作。自從計數最後一次相位檢測的循環數目且當此數目超過一臨界值時,該相位估計不再可靠,且順向同步器900進入該近同步(M)狀態。
如果該相位非常緩慢地漂移(均同步或近同步模數一有理部份),順向同步器900可安全地同步化而不需要預測。在此例中(該M狀態),
順向同步器900簡單地利用一蠻力同步器檢測進入到該檢測區域,並使用足夠大的護衛帶,使得於同步化該檢測所需要的該等數個循環期間不會發生一錯誤。例如,來自該tclk域的該偶數訊號被直接地於在該等E與O暫存器之間拿來選擇。因為該相位足夠緩慢地改變且該護衛帶g=d-x足夠大,此即為安全,所以將在此訊號為不安全之前返回到該T狀態而將發生一相位檢測。請注意在該有理案例中當該相位漂移到該檢測區域中時,可以辨識出一1-of-D檢測樣式(其中D為該有理數分母)。在這種狀況下可以利用在該第一檢測時進入到該T狀態。
在該T狀態中的作業仰賴為固定或近乎固定的頻率。為了安全(例如針對頻率可於短期間中改變的狀況,例如當在電力狀態之間改變時),該頻率測量電路可連續地運作,並將其測量與該目前估計做比較。如果該差異大於一臨界值,順向同步器900可降回到蠻力(B)模態。例如,上述的該FIFO同步器可被調整成:藉由格雷編碼該等指標並平行於該等E/O同步器運作一對蠻力同步器,而相對於該頻率改變模態來工作。當頻率正在變化時,該等同步器切換成使用該等蠻力同步器(B模態)。一旦該等頻率穩定下來,它們改變回到使用該快速周期性同步器(M模態)。
順向同步器900可視需要僅用於該等時脈為周期性或周期性行為偏離明確地發信處(例如一「非周期性」訊號在該等時脈開始無法預期地變化之前觸發蠻力模態)的狀況。依此方式,即可避免對於太慢變化之頻率的檢測,藉此在檢測一變化之前能夠完成該等時脈域之間數個不安全採樣。
如上所述,具有頻率差異為一有理數之兩個時脈域之間的訊號亦可被同步化,即fr=Nft/D,N與D為整數。利用有理的頻率,N,D與該等兩個頻率為有理相關的一指示皆由該系統提供。該等兩個時脈之間的該相位係假設為未知,甚至可以緩慢地變化。
當該等時脈域為有理相關時,不需要進行頻率測量。反之,
f=N/D變成該頻率。此外,該相位可被保持乘以D來進行積分。例如,在一具體實施例中,該相位表示成具有一整數部份a與一分數部份b,所以該相位p=a.b/D。
另外,該相位可依以上關於圖5B-圖E所述來進行檢測。上限與下限up與lp被初始化成比例為D該檢測區域的該等界限。順向同步器900開始於一「初始」狀態。該第一檢測造成轉換到該「鎖定」狀態,並初始化該等相位界限(up與lp)。在該鎖定狀態中,該系統重複地造訪D個相對相位,其中至少一者被預期會造成一檢測(並因此檢測一可能的衝突)。在D+1個沒有檢測的循環之後,進行轉換到該「安全」狀態。
因此可注意到該等兩個時脈之間D個相對相位不會造成衝突,因此其可安全地在所有D個相位中直接地同時取樣偶數與奇數暫存器。在該「鎖定」狀態下,該比例化的相位界限(up與lp)藉由在每一循環加入N-模數D來上漲。在該頻率中沒有不確定性,所以該等界限將不會隨時間發散。
對此,一相位檢測(或在其缺少)能夠用於在當該等時脈域為有理相關時動態地檢測該相位差異。再者,藉由自該估計的相位檢測衝突即可避免使用大小為D的一表格來儲存該衝突樣式,使其亦可避免大的D之區域。
在一具體實施例中,如果兩個時脈之間的該相位緩慢地改變(每個循環為△p,即至少該實際頻率暫時地為ft=Nfr/D+△p),則上述的該系統只要當△p<min((d-k)/2D、(d-k)/2S)時即被實施,其中(d-k)/2為該檢測區域(d)與該不讓入內區域(k)之間該一側的餘裕,D為該有理頻率的分母,而S為該相位檢測器同步器之延遲。此限制可確保進入(最多為D△p的)該檢測區域的第一步驟可能不會穿透到該不讓入內區域中,而且一旦檢測到時,該檢測可在該相位進入該不讓入內區域之前被同步。
對此,該相位估計可用於建構一快速、簡單的順向同步器,
其可將一平行訊號自一周期性時脈域移動到另一者。特定而言,在本具體實施例中,提供一順向同步器來將一平行訊號自該傳送時脈(tclk)域移動到該接收時脈(rclk)域,其方式在同步化失敗中為安全的,但沒有流程控制。另外,此同步器可運用在一FIFO同步器中,以提供同步化與流程控制,如下所述。
圖11例示圖9所示之順向同步器的運作之時序圖。關於本具體實施例,「tclk」快於「rclk」。如所示,該相位估計器訊號(偶數、tkoe與tkoo)反映出該tclk在rclk的下一上升邊緣上將是什麼相位。因此tkoe在所顯示的rclk的第一邊緣上顯示為高,因為rclk的下一邊緣係在tclk的一偶數邊緣的該不讓入內區域中。
如所示,不在一不讓入內區域中的最新寫入的暫存器是永遠被採樣的。rclk的該第一邊緣自暫存器E採樣該數值「a」,因為此邊緣落在tclk的一奇數循環中。該下一邊緣自暫存器O採樣「b」,因為此rclk邊緣係在tclk的該偶數不讓入內區域中。該第三邊緣自暫存器O採樣「d」,因為其落在一偶數tclk循環中。最後,該最後rclk邊緣自暫存器E採樣「e」,因為其落在tclk的該奇數不讓入內區域中。請注意到數值「c」永遠不被採樣,因為tclk快於rclk。為了確定每一數值被準確地採樣一次,其需要具有流程控制的一同步器,如以下關於圖12所述。
圖12例示根據又另一具體實施例的一種具有流程控制的同步器1200。選擇性地,同步器1200可實施在圖1-11之功能及架構之環境中。但是當然,同步器1200可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
關於本具體實施例,可以提供該等兩個時脈域之間的流程控制。例如,頻率與相位估計器同時提供在該傳送器與接收器中。該等相位估計器可被擴充來回報範圍在0-2(在循環中)中的相位,使得它們描述另一個時脈域是否在一偶數或奇數循環上,且在該循環中該時脈在何處。該傳
送器經由一對暫存器(資料暫存器)傳送資料,而該接收器經由一對暫存器(反向觸變暫存器)傳送流程控制資訊。使用該相位估計,該同步器在當另一時脈係在一偶數或奇數循環中該「不讓入內」區域中時進行計算。當在該循環(偶數或奇數)的該不讓入內區域中,在一暫存器被寫入期間,有一協定避免採樣該暫存器。
關於本具體實施例,流程控制係實施在該同步器中。具有流程控制的同步器1200藉由將該傳送器交替地寫入一對暫存器來運作,如以上關於圖9所述,但該傳送器暫停,來避免暫存器由該接收器接受之前覆寫暫存器,並避免當無可用的有效資料時寫入暫存器。該傳送器觸變(toggle)在每一暫存器(順向觸變暫存器)中一位元以發出信號指示出新的資料已經被寫入到該暫存器。該接收器交替地觸變一對流程控制正反器(反向觸變暫存器)以發出信號指示出該傳送器資料被接受。該接收器可以延遲觸變一正反器,因為來自下游流程控制的背向壓力(即一未預備好訊號)。當該接收器已經觸變該相對應流程控制正反器時,該傳送器知道該接收器已經接受一數值。
在一具體實施例中,利用一預備好/有效流程控制協定。該傳送器可選擇性僅在當有可使用的有效資料時更新一傳送暫存器。當兩個暫存器皆滿時,該傳送器發出信號來指示尚未預備好上游。當其已經自該傳送器收到尚未由該下游邏輯接受的新字元時,如同由其預備好輸入所指出,該接收器另外發出信號來指示有效。當該預備好輸入為低時,該接收器可能不會接受來自該傳送器的一有效資料字元。
為了使得該時脈域可安全地交叉,該傳送器經由在該等偶數與奇數時脈循環(分別為tae與tao)上更新的一對暫存器(順向觸變暫存器)傳送該ta暫存器的該觸變位元。同樣地,tb的該觸變位元經由tbe與tbo被傳送,且該等接收觸變暫存器經由rae,rao,rbe與rbo傳送。
該接收器觀看這些同步的觸變位元來判斷何時能安全地採
樣ta或tb。在任一時間點上,該rtptr位元指示出該接收器是否正在期待在ta或tb上其下一個資料字元。在一具體實施例中該下一字元到達ta處,該接收器觀看ta的該觸變位元來察看是否一新的字元已經到達。如果其並不在一不讓入內區域,其直接觀看tat(ta的該觸變位元)。如果其係在該偶數(奇數)不讓入內區域中,其觀看在該奇數(偶數)時脈循環tao(tae)上同步化的tat之版本。
如果看到一觸變,rtptr即被觸變。一第二指標optr驅動該輸出多工器來決定ta或tb那一者被應用到該接收器輸出。此指標在當於該目前暫存器中有有效的資料且該「預備好」輸入為真時即前進,指示出該下游邏輯可接受該資料。當optr前進時,該相對應接收器觸變位元ra或rb被觸變來發信該資料已經被接受。為了完全與空白區別,當rtptr=optr時,一rcount計數器保持已經到達但尚未被送出的該等字元之計數。此計數器在當rtptr前進時增加,而當optr前進時減少。當兩者皆前進時,其維持並不改變。當rcount為零時,該接收器「valid」輸出被設定為低。
圖13例示圖12所示之具有流程控制的該同步器的運作之時序圖。關於本具體實施例,該傳送器之運行快於該接收器。該傳送器在其第一偶數循環上利用「a」寫入「ta」,並在其第一奇數循環上利用「b」寫入「tb」。這些寫入分別藉由觸變「tat」與「tbt」來反應。因為「optr」初始為零,該「a」直接傳播到該輸出,並由rclk的該第一偶數邊緣採樣。在接受「a」之後,rptr前進來選擇「b」(只要其為預備好),且「ra」觸變來發信接受。
該電路依此方式進行使tclk的每一邊緣進入佇列一新的值,而rclk的每一邊緣離開佇列一新的值。請注意填入該等傳送暫存器之進入佇列使得「tready」成為低,直到出現使一值離開佇列(dequeue)的該接收器邊緣。該等不讓入內區域針對該等tready與rvalid訊號需要為足夠大,以在它們個別的時脈邊緣之前穩定下來。在循環5,「tready」在整個循環中維持
低,因為「rb」被觸變來接受「d」係在該不讓入內區域中來引導該傳送器來施加背向壓力,且「d」與「e」的有效周期被擴大到三個循環。相同的事情發生於循環8上「f」的接受。
在該接收時脈的該不讓入內區域中傳送訊號(例如tat於傳送器循環2的結束處上升)與在該傳送時脈的該不讓入內區域中接收訊號(例如rb於接收器循環1的結束處上升)之轉換係使用上述的該簡單順向同步器之變形來處理。此即造成這些轉換在該危險邊緣上被忽略,但接著可在該採樣時脈的下一邊緣上被安全地看見。因此,「tcount」在循環6與9中維持在「2」,即使已經接受一數值,且並無新數值已經到達。該接收發生在該不讓入內區域中,因此在該下一循環之前可能不會被看到。
圖14例示根據另一具體實施例的一相位循環1400,其顯示出偶數與奇數不讓入內區域,及該偶數暫存器被選擇的一區域。選擇性地,偶數/奇數順向同步器相位循環1400可被實施在圖1-13之功能與架構的環境中。例如,相位循環1400可實施在圖9的順向同步器9之環境中。但是當然,相位循環1400可在任何需要的環境中實施。再次地,亦必須注意到前述的定義亦可在下文中來應用。
在本具體實施例中,該傳送器相位在[0,2)的範圍中為一實數,其可在如圖14所示的一相位循環上被看到。奇數時脈循環具有一相位Φ[0,1),而偶數時脈循環具有Φ[1,2)。一奇數(偶數)時脈循環結束在一奇數(偶數)時脈邊緣中,且該訊號偶數於偶數時脈循環期間為高(即當Φ[1,2)時)。為了避免同步失敗,該接收器於該偶數不讓入內周期Φ[2-x,x)期間不會採樣該偶數(E)暫存器,且該O暫存器於該奇數不讓入內周期[1-x,1+x)期間被避免。這些不讓入內周期請參照本圖中利用淡灰色著色。具有寬度2x的該不讓入內窗代表該採樣正反器的該設置與保持窗。這些不讓入內區域的寬度在圖面中被放大。一典型的40nm正反器可能具有大約60ps的一不讓入內窗,或僅為1GHz時脈周期的6%。
為了符合我們選擇可安全地採樣之最新被寫入之暫存器的規則,該選擇邏輯在當Φ[x,1+x)時選擇該偶數(E)暫存器,如圖中暗灰色著色的弧線所示。該E暫存器只要當該相位於Φ=x時清除該偶數不讓入內區域時即被選擇。該E暫存器於參照本圖所示之該大的中灰色弧現期間安全地採樣,即Φ[x,2-x)(每一處除了該偶數不讓入內區域之外)。但是,其僅為該最新被寫入之安全暫存器up,直到Φ=1+x。當Φ[1+x,x)時,該奇數暫存器(O)為該最新被寫入的安全暫存器。
為了確定每一數值僅被準確地採樣一次,需要一具有流程控制的同步器,例如以下參照圖15-16所述之該FIFO同步器。目前已經假設該接收器知道該tclk相位Φ。實務上,該接收器使用tclk相位p的一估計。為了處理該估計誤差ε=|Φ-p|,可加入一護衛帶到該不讓入內區域的檢測,或是該相位估計使用區間算術來計算,如以下參照圖7與表9所述,其提供ε上的一界限。當使用區間算術時,該選擇決定係使用該相位的下限(lp)來完成,因為此永遠會選擇可安全採樣的該最新被寫入的暫存器。
圖15例示根據另一具體實施例中使用一偶數/奇數順向同步器的一FIFO同步器1500。選擇性地,FIFO同步器1500可實施在圖1-14之功能及架構之環境中。但是當然,FIFO順向同步器1500可在任何想要的環境中實施。再次地,亦必須注意到前述的定義亦可在下文中來應用。
必須注意到圖15與16描述一種用於測量該等兩個時脈之相對頻率,並使用此估計來產生具有誤差界限的一相位估計之一具體實施例。如圖15所示,FIFO同步器1500使用兩個E/O同步器來實現。該FIFO使用一雙埠記憶體,其被同步地寫入,並非同步地讀取來保持轉送中的資料。針對小型FIFO,此記憶體被實施成一正反器或閂鎖器陣列。大型FIFO使用一RAM或暫存器檔案巨集。
該FIFO記憶體被寫入,且當輸入有效(ivalid)為真且填滿為假時,該尾端指標在該輸入時脈(iclk)的上升邊緣上遞增。該頭端指標選擇
位在該FIFO的頭端處選擇該數值,並出現在該記憶體的該輸出埠處。該頭端指標當空白為假且輸出忙碌(obusy)為假時,於該輸出時脈(oclk)的該上升邊緣上遞增。該尾端指標與填滿邏輯係在該iclk域中,而該頭端指標與空白邏輯係在該oclk域中。
一對E/O同步器在該等兩個時脈域之間移動該等頭端與尾端指標。一同步器由該iclk域傳送該尾端指標到該oclk域,而一第二同步器由該oclk域傳送該頭端指標到該iclk域。針對該尾端同步器,tclk=iclk且rclk=oclk,而針對該頭端同步器,tclk=oclk且rclk=iclk。這些同步器之每一者包括9中所示的該邏輯,以及如上所述的該頻率與相位估計邏輯。
圖16例示根據另一具體實施例的一FIFO同步器1600,其中保留頭端與尾端指標的偶數與奇數版本另可降低FIFO潛時。選擇性地,FIFO同步器1600可實施在圖1-15之功能及架構之環境中。但是當然,該FIFO同步器1600可在任何想要的環境中實施。再次地,亦必須注意到前述的定義亦可在下文中來應用。
一時脈循環的延遲可藉由保持該等頭端與尾端指標的偶數與奇數版本來避免,如圖16所示。於每一循環期間,該輸入邏輯計算下一個尾端指標,並將其儲存在該ETail暫存器(在偶數循環時)或該OTail暫存器(在奇數循環時)。由ieven(輸入偶數)控制的一多工器永遠選擇該最新被寫入之尾端指標到要被使用做為該寫入位址的該尾端訊號上。由來自一E/O同步器的該選擇訊號osel所控制的一第二多工器選擇可安全地在該下一個輸出時脈的結束處在訊號tailo(在該oclk域中的尾端)上採樣的該最新被寫入的尾端暫存器。
訊號tailo由該輸出邏輯使用來計算填滿,並計算該下一個頭端指標。在運作上,ose1滯緩ieven,使得ieven永遠選擇最新被寫入的尾端指標,而osel在當該最新被寫入的暫存器無法安全地採樣時可選擇較舊的暫存器。依類似方式,該輸出段保留偶數與奇數頭端暫存器,並使用
一對多工器來產生該目前頭端指標(head)與在該輸入時脈域中一版本(headI)。
相較於使用蠻力同步器來在時脈域之間傳送該等頭端與尾端指標的習用方法,使用偶數/奇數同步器可提供較快的速度與簡單性。該FIFO同步器的潛時可被降低,因為該偶數/奇數同步器平均具有一0.5循環的延遲,相較於一蠻力同步器具有一S+0.5循環的延遲(基本上為3.5循環),其中S為一蠻力同步器的該延遲。該設計亦可較簡單,因為該等頭端與尾端指標可被保持在二元化型式。利用習用的蠻力同步器,該等指標要必須格雷編碼過來防止一次改變一個以上的單一位元。
圖17A-D例示根據其它具體實施例的多種相位循環。選擇性地,該等相位循環可被利用在圖1-16之功能及架構之環境中。但是當然,相位循環可被利用在任何想要的環境中。再次地,其亦必須注意到前述的定義亦可在下文中來應用。
為了顯示該同步器為適當地運作,可為(a)檢測將足夠經常地發生使得永遠不會進入近同步模態(即將永遠會有一準確的相位估計),或者(b)當在近同步模態時,一檢測(p[-d,d])發生在一不讓入內區域(p[-x,x])之前至少S+1個循環時。
如圖17A所示,可達成安全的近同步同步化(plesiochronous synchronization)。針對f<fg,在一錯誤之前有一檢測。在此例中,該相位足夠緩慢地移動到該檢測區域中,檢測將發生在該相位進入該不讓入內窗之前至少A個循環處,以提供時間來同步化該檢測、更新該相位估計,並避免採樣該不安全暫存器。亦如所示,該相位(徑線)針對f的小數值而超過八個時脈循環。因為f<fg,該相位在進入該不讓入內區域之前位在該超過A個循環的檢測區域中(在圖中為6)。
圖17B顯示一最大檢測範圍。針對fg f<2d,在每一個N=1/f<A/g循環處發生一檢測,該相位每次旋轉環繞該單元循環時至少有一次。
只要2-b<gk/2A,因為該等相位界限於檢測之間僅發散2-bg/2A,並未進入近同步模態。例如,針對我們的示例之該等數目,我們將gk/2A=(0.1)(0.5)/(2)(4)=.00625,且b=8位元為充份的精度。因為f<2d,該相位不能夠「躍過」該檢測區域,並可保證該相位每次旋轉大約該單元循環時可達成至少一次檢測。因為ffg,此旋轉將發生最多1/fg=A/g個循環。如在本具體實施例中所示,至少每9個循環一檢測。
針對f2d,f被表示成具有一限定的分母之一有理分數加上一誤差項f=N/D±e,其中DC=1/2d 。如下所述,具有一限定分母之分數序列的該等性質(稱之為Farey序列)可保證eDC<1。在此例中,在該相位循環處附近提供D個點之一重複樣式,其在每一個D-循環周期偏位De。此即提供如同f<2d相同的兩個案例。
圖17C顯示具有D=4及小的殘餘頻率De之一近乎有理的案例。如果De<g/A,每個周期之相位偏位將足夠小,使得在錯誤之前有一檢測,相當於在f<g/A時的結果。此在本具體實施例中例示為D=4。事實上,此處的限制簡單許多,因為每次該相位「groups」中之一者前進De時即經過D個循環,只要De<g/ A/D ,在一不讓入內事件之前A個循環有一檢測,其為一較鬆的限制。
圖17D顯示具有D=4及大的殘餘頻率De之一近乎有理的案例。如果g/ADe<2d,則在每一個1/(De)<A/g循環可達成一次檢測,所以如果2-b<gk/2A,在累積過多的誤差之前將發生一檢測。此處針對b的需求實際上相同於上述g/Af<2d的案例。
顯示出針對f>2d>1/C,f能夠永遠表示成f=N/D±e,其中DC與eDC<1。考慮Farey序列F(C),有理數的序列在0與1之間,分母DC。針對來自此組合的兩個相鄰數目,p/q,r/s,此組合永遠會是r/s=(ps+1)/qs的案例,其中q,s<=C及(ps+1)=qr[7]。然後兩個相鄰有理數p/q與r/s之間的距離為1/qs。我們分配在p/q及p/q+1/q(s+q)之間的數值f
成為p/q,而數目由r/s-1/s(s+q)到r/s。然後我們知道e1/q(s+q),eDC(1/q(s+q))qC=C/(s+q)<1,因為由於Farey序列的該等性質,所以s+q>C。
在其它具體實施例中,該等兩個自由同步器參數為d與k。假設一不讓入內區域2x,其為該同步器正反器之一性質,選擇d提供該護衛帶的該數值,g=d-x,其依此決定該等頻率與相位估計所需要之位元數目2-b<gk/2A,所以b>lg(2A/gk)。選擇一小的d,因而一小的護衛帶提供一更為準確的相位估計而降低同步器延遲,但代價是,在該等頻率與相位估計器中需要更多位元為來確保正確的行為。
選擇該k數值可提供一類似的妥協方案。選擇一小的k提供一較低的平均同步器延遲,因為該同步器將較快地進入近同步模態(不具有延遲)。但是,選擇一小的k亦在該等估計中需要更多位元的精度。
在一示例性模擬中,可以建構上述之該周期性同步器的一Verilog RTL模型,並可使用兩個這種同步器來建構如圖15-16所述之一有流程控制的FIFO。在該等相位檢測器中的該等延遲線可依行為來模型化,且所有的正反器可實施有設置與保持時間檢查的一時域。Verilog模擬可在將一個時脈固定於1GHz,而另一個時脈設定為2000個在500Mhz與2GHz之間隨機選擇的頻率來執行。在一具體實施例中,該1GHz時脈的該相位在1600ps範圍之上被緩慢地前後掃過,以每10個循環為1ps的速率改變,以確保所有相對時脈相位皆被測試。有可能於這種模擬期間不會檢測到時序錯誤。
圖18所示為可以實施多種先前具體實施例之多種架構及/或功能之示例性系統1800。如所示,一系統1800之提供包括有至少一主機處理器1801,其連接至一通訊匯流排1802。系統1800亦包括一主記憶體1804。控制邏輯(軟體)及資料係儲存在主記憶體1804中,其型式可為隨機存取記憶體(RAM)。
系統1800亦包括一圖形處理器1806及一顯示器1808,即
一電腦螢幕。在一具體實施例中,圖形處理器1806可包括複數個遮影器模組、一掃描場化模組等。該等前述模組之每一者甚至可位在一單一半導體平台上來形成一圖形處理單元(GPU,“Graphics processing unit”)。
在本說明中,一單一半導體平台可代表一專用單一半導體為主的積體電路或晶片。必須注意到該用語「單一半導體平台」亦可代表多晶片模組,其具有可模擬晶片上作業之增加的連接性,並在利用一習用中央處理單元(CPU)及匯流排實施當中進行實質的改善。當然,多種模組亦可獨立放置或根據使用者的需要而置於多種半導體平台的組合中。
系統1800亦可包括一次級儲存器1810。次級儲存器1810包括,例如硬碟機及/或可移除式儲存驅動器,其代表軟碟機、磁帶機、光碟機等。該可移除式儲存驅動器以熟知的方式讀取及/或寫入一可移除的儲存單元。
電腦程式或電腦控制邏輯演算法可以儲存在主記憶體1804及/或次級儲存器1810中。這些電腦程式在當被執行時可致能系統1800來執行多種功能。記憶體1804,儲存器1810及/或任何其它儲存器皆為電腦可讀取媒體之可能範例。
在一具體實施例中,多種先前圖面之架構及/或功能可實施成主控處理器1801、繪圖處理器1806、能夠同時具有主控處理器1801及繪圖處理器1806之能力中至少一部份的積體電路(未示出)、一晶片組(即設計成以執行相關功能等之單元來工作及銷售的一積體電路群組)、及/或為該目的之任何其它積體電路之內容中。
再者,多種先前圖面之架構及/或功能可實施成一通用電腦系統、電路板系統、專屬於娛樂目的之遊戲主機系統、特定應用系統及/或任何其它想要系統之內容中。例如,系統1800可採用的型式有桌上型電腦、膝上型電腦、及/或任何其它類型的邏輯。另外,系統1800可採取多種其它裝置的型式,其包括但不限於個人數位助理(PDA)裝置、行動電話裝置、電
視等。
另外,雖然未示出,系統1800為了通訊的目的可耦合於一網路(例如電信網路、區域網路(LAN)、無線網路、廣域網路(WAN),像是網際網路、點對點網路、纜線網路等)。
如先前配合圖14所述,當判斷出一準確的相位估計時,該系統明確地保證一安全的同步化。實務上,該接收器使用tclk相位p的一估計。為了處理該估計誤差ε=|Φ-p|,該相位估計可使用先前關於圖7與表9所述之區間算術來計算,其提供在ε上的一界限。當使用區間算術時,該等偶數或奇數暫存器之間的選擇決定係使用該傳送相位(lp)的該下限來完成,因為此將永遠選擇可安全採樣的該最新被寫入的暫存器。亦可計算出該傳送相位(up)的一上限。
表9例示一Verilog碼的示例,其可用於使用圖5E的相位檢測器540來更新上與下相位估計(分別為up與lp)。當然,必須注意到表9所提出的碼僅做為例示性目的,因此不能以任何方式視為限制。
在該採樣時間,該傳送相位已知為Φ[lp,up],且如果lp[x,1+x),該偶數暫存器可安全來採樣。否則,該奇數暫存器可安全地採樣。但是,當up-lp>1-2x,該相位估計不再有用,且該偶數與該奇數暫存器皆無法安全地採樣。並未如前所述在近同步模態下運作該同步器,當up-lp>1-2x時,該同步器設置成不會選擇該偶數或該奇數暫存器,反而在該輸出處維持該先前選擇的樣本。當一臨界數目的rclk循環已經通過而未選擇該偶數或該奇數暫存器時,則該同步器可在近同步模態下運作。
將該先前樣本維持在該同步器的該輸出處而非轉換成在近同步模態下運作,在當針對在該相位估計中產生中介誤差的一或多個時脈循環會增加時脈抖動時,即可允許該同步器在該等傳送與接收時脈域之間轉移訊號而具有較少的延遲。換言之,為有效的一先前採樣的數值被維持,而該相位估計器由造成該等相位估計不準確的一臨時狀況中恢復。該同步器可以追蹤接收時脈循環的數目,其並未選擇該奇數或偶數暫存器來做採樣。雖然該同步器以一奇數暫存器與一偶數暫存器來做說明,可包括有額外的暫存器來儲存相對於該傳送時脈之對應於不同相對相位的訊號。
圖19A例示根據又另一具體實施例的一種用於使用一相位估計來判斷可安全地採樣一時脈域的一訊號的時間之方法。如作業1905所示,在一第二時脈域(tclk)與一第一時脈域(rclk)之間一相對頻率估計利用一頻率估計來計算。關於本說明,該頻率估計可依以上關於圖1的作業102所述之方式來計算。圖4所示之頻率估計器400可用於計算該相對頻率估計f,其指示出該傳送時脈相對於該接收時脈的頻率。在另一具體實施例中,該相對頻率估計可為已知或以某種其它方式決定,在該例中,該相對頻率估計提供於步驟1905中。
另外,如作業1906所示,該第一時脈域的一相位估計利用一相位估計器基於該相對頻率估計進行計算。在一具體實施例中,如先前配合相位檢測器500,510與540,及四樣本相位檢測器520所述,該第一時脈域之一相位可使用早期與晚期樣本來檢測,其可來自相對於該第二時脈域的該第一時脈域。
在另一具體實施例中,該相位估計可基於該相位檢測進行計算。例如,該第一時脈域的該相位之一b位元運行估計可相對於該第二時脈域來維持,如先前配合校正器530所述之測量該檢測區間d。
在另一具體實施例中,於檢測時,該第一時脈域的相位必須被設定為f(S+1),其中一額外的循環被加入到S(該同步器的延遲)以預測在
其發生之前的一個循環之該相位估計。上述之該第一時脈域的相位可被設定為f(S+1),所以該相位估計預測位在該第二時脈域的下一個上升邊緣處的該第一時脈域的相位。例如,該相位估計可以編碼在該第一時脈域的偶數循環與奇數循環內的該相位。如果未檢測到該相位,該相位估計可於該第二時脈域的每一循環期間被增值該第一時脈域的該相對頻率,以維持一運行相位估計。
如作業1907中所示,決定出來自該第一時脈域的一訊號是否可安全地由該第二時脈域採樣,以在該第二時脈中產生一採樣的訊號。當使用順向同步器900且up-lp>1-2x時,該相位估計不再有用,且該偶數與該奇數暫存器皆無法安全地採樣。同樣地,當使用設置成於儲存來自該第一時脈域於不同相位偏位處的該訊號之多個暫存器之間做選擇的一同步器且up-lp>(N-1)-2x,其中N為該等多個暫存器之數目,該相位估計不再有用。
如果在作業1907基於該相位估計,決定出一時間,其中在該時間期間,自該第一時脈域的一訊號未改變,使得該訊號能夠由該第二時脈域安全地採樣,則在作業1908中,來自該第一時脈域的該訊號由該第二時脈域採樣來產生一採樣的訊號。在產生該採樣的訊號之後,該方法回到作業1906,並計算一更新的相位估計。
每次該相位檢測邏輯指示出該tclk的一轉換已經發生在rlk的一個循環之內時,即重置相位估計p。特定而言,該相位估計被重置為[-d,d],而如果檢測到一偶數邊緣,則設定該偶數位元(msb)。然後該相位估計在時間上前進S+1個循環。當尚未發生一轉換時,該相位增加f,其指示出每一個rclk循環的tclk之相對頻率。該傳送相位在該不讓入內區域期間的時間可藉由維持在該相位估計上的上限與下限up與lp來更為準確地檢測,如表9所示。
如果在作業1907中,基於該相位估計判斷出來自該第一時
脈域的該訊號正在改變,使得該訊號不能夠由該第二時脈域安全地採樣,則在作業1909,在該第二時脈域中該採樣的訊號被維持。換言之,來自該第一時脈域的該訊號不被採樣,而在該第二時脈域中被採樣而來自該第一時脈域的該先前採樣的訊號被保留。
圖19B例示根據又另一具體實施例的一種順向同步器1910。必須注意到除了一選擇單元1916之外,一相位檢測器與一相位估計器亦可被包括在順向同步器1910中。例如,順向同步器1910可實施於關聯於該第一時脈域的該系統與關聯於該第二時脈域的該系統之間,用於同步化該第一時脈域與該第二時脈域之間的訊號(例如用於同步化來自該第一時脈域由該第二時脈域的該訊號之採樣)。如下述,這種同步化可基於該經計算的相位估計來執行。
選擇性地,順向同步器1910可實施在圖1-2與圖4-8之功能及架構之環境中。但是當然,順向同步器1910可在任何想要的環境中實施。亦必須注意到該等前述的定義亦可在下文中來應用。
關於本具體實施例,可以避免關聯於採樣該訊號的一延遲版本之限制。為了不使用流程控制而由該傳送時脈域到該接收時脈域轉送一多位元訊號,該傳送時脈在交替的循環上寫入一對暫存器。例如,暫存器1912在偶數循環上被寫入(於該偶數循環的結束處更新),而暫存器1911在奇數循環上被寫入(於該奇數循環的結束處更新)。一偶數輸入訊號在偶數循環上致能暫存器1912,在奇數循環上致能暫存器1911。
該相位估計由選擇單元1916使用來選出可「安全地」在該接收時脈域中採樣(於該目前rclk循環結束處)的該最近寫入的傳送暫存器。該相位估計可以包括該等lp與up值,且當暫存器1912與暫存器1911皆無法「安全地」採樣時,選擇單元1916設定該「None」輸出訊號,且輸出暫存器1915不被致能來採樣該選出的訊號。該選擇係基於在該目前rclk循環的結束處該預測的tclk相位p。在每一接收時脈上,如果該傳送時脈相位係
在e.x與o.x之間,選擇了暫存器1911,其中e代表該偶數循環,而x為該「不讓入內」餘裕。否則選擇暫存器1912。順向同步器1910的該延遲將根據平均為0.5+0.x的相位而在0.x與1.x之間變化。
當本具體實施例關於偶數與奇數時脈循環與兩個暫存器來說明時,必須注意到在其它具體實施例中可以利用任何數目的時脈循環與暫存器。因此,時脈循環可被標示為模數N,且可利用N個暫存器。增加暫存器的數目可允許非常大的不讓入內區域(例如大於一單一UI)。
如圖19B所示且相對於該傳送器側,“tdata”在tclk的每一個循環上被交替地寫入到1912與1911暫存器中。在該接收器側上,選擇單元1916決定該等兩個暫存器中那一者要被選擇輸出該選擇的訊號1917。選擇單元1916可基於由該頻率與相位估計邏輯(未示出)產生的該傳送器時脈之該相位估計的此決定。
圖19C例示根據圖19B所示之該順向同步器的運作的一同步器狀態圖1930。在初始化時,順向同步器1910可經過多種不同狀態。表10顯示出順向同步器1910於初始化期間的該等選擇性狀態。當然,必須注意到這些狀態僅係為了例示性目的而提出,且不應以任何方式視為其限制。
如關於圖19C所述,在重置時,順向同步器1910進入該頻率取得(FA)狀態,並啟動其計數器配對來測量「另一個」時脈的頻率。於在該FA狀態期間,順向同步器1910檢查來判斷在到達一終端計數與該訊號tc被設定之後是否有一相位檢測(相位落到該檢測區域中)。
一旦取得頻率,即進入該相位取得(PA)狀態,且順向同步器1910等待一相位檢測(pd)。此時,已經判斷出一頻率估計f與一相位估計p。如果該訊號能夠被安全地採樣,則無一需要被取消,並進入該追蹤狀態(T)。如果該訊號不能夠被安全地採樣,則無一被設定(asserted),並進入該不做選擇狀態(SN)。當在狀態SN時,如果並無相位檢測(例如發生一逾時),該等兩個時脈為有理相關(f=N/D)(或近乎有理相關)於一相位偏位,所以該D可命中該相位圓圈周圍,而遠離該檢測區域。在此例中,進入該M狀態,因為該相位先行被保證為足夠地慢使其將在發生一錯誤之前被檢測到。當在狀態SN時,如果有一相位檢測,則無一被取消,並進入該狀態T。
在該等狀態T與SN中,順向同步器1910在每一個循環更新該相位估計,並在當順向同步器1910檢測到該相位估計係在一不讓入內區域中時採取適當的動作。自從在狀態SN中計數最後一次相位檢測的循環數目且當此數目超過一預定值時,訊號to被設定(asserted),且該相位估計不再可靠,且順向同步器1910進入該近同步(M)狀態。該等循環的數目可被回報給一軟體驅動器。
在該T狀態中的作業根據為固定或近乎固定的頻率。為了安全(例如針對頻率可於短期間中改變的狀況,例如當在電力狀態之間改變時),該頻率測量電路可連續地運作,並將其測量與該目前估計做比較。如果在一時脈頻率中的改變大於一臨界值,順向同步器1910可以降回到蠻力模態,並進入該蠻力狀態(B)。
順向同步器1910可視需要僅用於該等時脈為周期性處或當明確地發信與周期性行為偏離處(例如一「非周期性」訊號在該等時脈開始無法預期地變化之前觸發蠻力模態)。依此方式,即可避免對於太慢變化之頻率的檢測,藉此在檢測一變化之前能夠完成該等時脈域之間數個不安全採樣。
當多種具體實施例已在上述說明之後,應可瞭解到它們僅係藉由示例來呈現,而非具有限制性。因此,一較佳具體實施例之廣度及範圍並不限於任何上述的範例性具體實施例,但必須僅根據下列申請專利範圍及其同等者來定義。
Claims (20)
- 一種方法,該方法包含:基於一第二時脈域與一第一時脈域之間在一第一時間點上之一相對頻率估計來計算該第一時脈域的一相位估計;基於該相位估計,決定一第一時間,其中在該第一時間期間,從該第一時脈域傳送到該第二時脈域的一訊號並未改變,使得該訊號能夠在該第二時脈域安全地採樣;於該第一時間期間,透過採樣該訊號而在該第二時脈域中產生一第一採樣訊號;根據在一第二時間點上之該相對頻率估計,計算該第一時脈域的一更新的相位估計;基於該更新的相位估計,決定一第二時間,其中在該第二時間期間,來自該第一時脈域的該訊號正在改變使得該訊號不能夠由該第二時脈域安全地採樣;及於該第二時間期間,維持該第一採樣訊號。
- 如申請專利範圍第1項之方法,其中該相位估計為包括一上限與一下限的一區間。
- 如申請專利範圍第2項之方法,其中該決定該第二時間之步驟包括判斷出該上限與該下限之間的一差異超過一臨界值。
- 如申請專利範圍第1項之方法,其中該相位估計於該第二時脈域的複數循環中每一者期間增加。
- 如申請專利範圍第1項之方法,其中該相位估計編碼在該第一時脈域的 偶數循環與奇數循環內的一相位。
- 如申請專利範圍第1項之方法,另包含於該第二時脈域的一循環期間無法檢測到在該第一時脈域中一時脈邊緣,且其中該更新的相位估計之計算包含將該相位估計增加該相對頻率估計。
- 如申請專利範圍第1項之方法,另包含於該第二時脈域的一循環期間檢測到在該第一時脈域中一時脈邊緣,且其中該更新的相位估計之計算包含設定該更新的相位估計等於一檢測區間。
- 如申請專利範圍第1項之方法,另包含增加該訊號不能夠被安全地採樣之循環的一計數。
- 如申請專利範圍第8項之方法,另包含:判斷出該等循環的計數超過一預定值;及在一近同步模態下運作。
- 如申請專利範圍第1項之方法,更包含利用一頻率估計器計算該相對頻率估計,其中該頻率估計器包含一對計數器以計算相對於該第二時脈域之一頻率之該第一時脈域之一頻率,以作為該相對頻率估計。
- 如申請專利範圍第1項之方法,其中該相位估計使用區間算術來計算,藉以維持在關聯於該相位估計的一相位上一準確的誤差界限。
- 如申請專利範圍第1項之方法,其中該第一時脈域在連續的循環上連續地寫入到複數暫存器,且其中該第二時脈域使用該相位估計來選擇該 等複數暫存器中可安全地在該第二時脈域中採樣的一最新被寫入的暫存器。
- 如申請專利範圍第12項之方法,其中該等複數暫存器僅包含兩個暫存器。
- 如申請專利範圍第12項之方法,其中該等交替的循環包括一偶數循環與一奇數循環,使得該等複數暫存器中一第一者於該偶數循環期間被寫入,而該等複數暫存器中一第二者於該奇數循環期間被寫入。
- 如申請專利範圍第1項之方法,其中一FIFO同步器藉由使用複數偶數/奇數同步器來將一尾端指標傳送到一輸出時脈域中及將一頭端指標傳送到一輸入時脈域中來實現。
- 如申請專利範圍第15項之方法,其中一偶數尾端指標、一奇數尾端指要、一偶數頭端指標與一奇數頭端指標之利用係藉由:在一輸入時脈的偶數時脈循環上計算該偶數尾端指標,及在該輸入時脈的奇數時脈循環上計算該奇數尾端指標;及在該輸入時脈的該等偶數時脈循環上儲存該計算出的偶數尾端指標在一偶數尾端暫存器中,且在該輸入時脈的該等奇數時脈循環上儲存該計算出的奇數尾端指標在一奇數尾端暫存器中。
- 一種系統,該系統包含:一相位估計器,其設置成:基於一第二時脈域與該第一時脈域之間在一第一時間點上之一相對頻率估計來計算該第一時脈域的一相位估計,及 根據在一第二時間點上之該相對頻率估計,針對在該第二時脈域中每一循環計算該第一時脈域的一更新的相位估計;及一同步器,其耦接於該相位估計器,並設置成:基於該相位估計,決定一第一時間,其中在該第一時間期間,從該第一時脈域傳送到該第二時脈域的一訊號並未改變,使得該訊號能夠在該第二時脈域安全地採樣,於該第一時間期間,透過採樣該訊號而在該第二時脈域中產生一第一採樣訊號,基於該更新的相位估計,決定一第二時間,其中在該第二時間期間,來自該第一時脈域的該訊號正在改變使得該訊號不能夠由該第二時脈域安全地採樣,及於該第二時間期間,維持該第一採樣訊號。
- 如申請專利範圍第17項之系統,其中該相位估計為包括一上限與一下限的一區間。
- 如申請專利範圍第17項之系統,其中該相位估計於該第二時脈域的複數循環中每一者期間增加。
- 如申請專利範圍第17項之系統,更包含:用一頻率估計器,其中該頻率估計器包含一對計數器以計算相對於該第二時脈域之一頻率之該第一時脈域之一頻率,以作為該相對頻率估計。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/674,864 US8964919B2 (en) | 2009-11-30 | 2012-11-12 | System and method for determining a time for safely sampling a signal of a clock domain |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201439714A TW201439714A (zh) | 2014-10-16 |
TWI516896B true TWI516896B (zh) | 2016-01-11 |
Family
ID=50556037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102139651A TWI516896B (zh) | 2012-11-12 | 2013-10-31 | 判斷安全地採樣時脈域之訊號的時間的系統與方法 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN103812590A (zh) |
DE (1) | DE102013221678B4 (zh) |
TW (1) | TWI516896B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107306178B (zh) | 2016-04-25 | 2021-05-25 | 创意电子股份有限公司 | 时脉数据回复装置与方法 |
US10168731B2 (en) * | 2016-07-13 | 2019-01-01 | Advanced Micro Devices, Inc. | Managing frequency changes of clock signals across different clock domains |
US10164758B2 (en) | 2016-11-30 | 2018-12-25 | Taiwan Semicondcutor Manufacturing Co., Ltd. | Read-write data translation technique of asynchronous clock domains |
CN107734386B (zh) * | 2017-09-13 | 2019-12-17 | 东莞市爱协生智能科技有限公司 | 一种基于mipi协议的视频图像缩小的方法及其系统 |
CN114003530B (zh) * | 2021-10-29 | 2023-04-11 | 上海大学 | 一种基于fpga的串行差分通信数据采集系统及方法 |
CN114422063B (zh) * | 2021-12-13 | 2023-08-29 | 深圳市紫光同创电子有限公司 | 一种时间戳脉冲同步方法 |
TWI826133B (zh) * | 2022-11-21 | 2023-12-11 | 瑞昱半導體股份有限公司 | 資料傳輸裝置與跨時脈領域資料傳輸之方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100A (en) | 1858-04-27 | Dbawee fob closets | ||
WO2002019526A1 (en) | 2000-08-31 | 2002-03-07 | Xilinx, Inc. | Digital clock multiplier and divider with synchronization |
US6759881B2 (en) | 2002-03-22 | 2004-07-06 | Rambus Inc. | System with phase jumping locked loop circuit |
US7636803B2 (en) | 2006-09-28 | 2009-12-22 | Advanced Micro Devices, Inc. | Device and method for transferring data between devices |
KR100929824B1 (ko) | 2008-05-06 | 2009-12-07 | 주식회사 하이닉스반도체 | 반도체 소자 |
CN101923440B (zh) * | 2009-06-15 | 2011-12-14 | 杭州中科微电子有限公司 | 一种高速异步数据采集系统 |
CN201917844U (zh) * | 2010-11-25 | 2011-08-03 | 上海宇芯微电子有限公司 | 一种双时钟切换装置 |
-
2013
- 2013-10-24 DE DE102013221678.5A patent/DE102013221678B4/de active Active
- 2013-10-31 TW TW102139651A patent/TWI516896B/zh active
- 2013-11-11 CN CN201310557158.4A patent/CN103812590A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW201439714A (zh) | 2014-10-16 |
CN103812590A (zh) | 2014-05-21 |
DE102013221678A1 (de) | 2014-05-15 |
DE102013221678B4 (de) | 2024-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516896B (zh) | 判斷安全地採樣時脈域之訊號的時間的系統與方法 | |
US8879681B2 (en) | System and method for determining a time for safely sampling a signal of a clock domain | |
TWI474701B (zh) | 時脈回復電路及並列輸出電路 | |
US9594396B2 (en) | Synchronizing data transfer between a first clock domain and second clock domain | |
US8964919B2 (en) | System and method for determining a time for safely sampling a signal of a clock domain | |
TWI821549B (zh) | 相位預測器及相關使用方法 | |
US11061432B2 (en) | Data handoff between two clock domains sharing a fundamental beat | |
US7287105B1 (en) | Asynchronous-mode sync FIFO having automatic lookahead and deterministic tester operation | |
US9722767B2 (en) | Clock domain bridge static timing analysis | |
TWI494737B (zh) | 變異容忍周期性同步器 | |
US10038450B1 (en) | Circuits for and methods of transmitting data in an integrated circuit | |
US8453043B2 (en) | Built-in bit error rate test circuit | |
US9106235B2 (en) | Mesochronous synchronizer with delay-line phase detector | |
TW201342804A (zh) | 用於平衡高速串列數位介面之信道之間的偏斜之方案 | |
US7876873B2 (en) | Asynchronous ping-pong counter and thereof method | |
US9250859B2 (en) | Deterministic FIFO buffer | |
JPWO2013069173A1 (ja) | 時間差デジタル変換器 | |
JP4917901B2 (ja) | 受信装置 | |
US10033523B1 (en) | Circuit for and method of measuring latency in an integrated circuit | |
TWI229983B (en) | Method and related device for reliably receiving a digital signal | |
TWI475353B (zh) | 時脈產生方法、無參考頻率接收器、以及無晶體振盪器系統 | |
US7321647B2 (en) | Clock extracting circuit and clock extracting method | |
Polzer et al. | Refined metastability characterization using a time-to-digital converter | |
US20080240320A1 (en) | Transmit clock generator | |
JP2016046536A (ja) | Pwm復調回路、ならびに受信装置および伝送システム |