国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

跨時鐘域傳遞位數(shù)據(jù)的同步方法

2020-10-12 09:20高煥琦岳亞杰高俊鋒
現(xiàn)代計算機 2020年24期
關(guān)鍵詞:觸發(fā)器電平脈沖

高煥琦,岳亞杰,高俊鋒

(哈爾濱理工大學(xué)軟件與微電子學(xué)院,哈爾濱150080)

0 引言

隨著微電子制造工藝技術(shù)的不斷發(fā)展,數(shù)字集成電路(Integrated Circuit,IC)的集成度也越來越高。為了提高電子產(chǎn)品的競爭力,降低產(chǎn)品的開發(fā)成本,數(shù)字集成電路芯片集成的功能也越來越多,逐漸向著系統(tǒng)級芯片(System on Chip,SoC)的趨勢發(fā)展[1]。系統(tǒng)級芯片也被稱為片上系統(tǒng),它是將各種不同功能的模塊集成到一塊芯片上。從設(shè)計角度上來說,片上系統(tǒng)的內(nèi)部結(jié)構(gòu)非常復(fù)雜。為了滿足不同功能模塊的工作需求,片上系統(tǒng)中的時鐘信號源通常被劃分為若干個時鐘域(Clock Domain,CD)。通常情況下,功能模塊不同,它們工作的時鐘信號也不相同[2]。截至目前,采用單時鐘域的片上系統(tǒng)已經(jīng)非常少見,通常它的內(nèi)部都集成了多種時鐘域[3]。不同時鐘域之間,時鐘信號既可能是相關(guān)的,也可能是互不關(guān)聯(lián)的。如果兩種時鐘信號之間存在數(shù)據(jù)傳遞通道,那么就會存在跨時鐘域(Clock Domain Crossing,CDC)問題[4]。

如果數(shù)字信號在跨越不同時鐘信號傳遞的時候,它就會被對方時鐘域視為異步信號。如果不能很好地對這種異步信號進行處理,那么它就會產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象,嚴重影響電路系統(tǒng)的可靠性和穩(wěn)定性。隨著大規(guī)模集成電路的設(shè)計越來越復(fù)雜,跨時鐘域傳遞數(shù)據(jù)信號的現(xiàn)象也越來越常見。因此,研究數(shù)據(jù)信號在不同時鐘域之間的傳遞問題,已經(jīng)成為數(shù)字集成電路系統(tǒng)設(shè)計者普遍關(guān)注的熱點問題之一[5]。根據(jù)國內(nèi)外的研究文獻和工程實踐經(jīng)驗,保持數(shù)據(jù)同步能夠在很大程度上保證數(shù)據(jù)接收的準確性,這也是保障系統(tǒng)可靠性和穩(wěn)定性的必要條件。

在片上系統(tǒng)設(shè)計中,跨時鐘域傳遞位數(shù)據(jù)的情況最普遍,這也是處理多數(shù)據(jù)信號跨時鐘域傳遞的技術(shù)基礎(chǔ)。因此,本文以位信號為研究對象,探討跨時鐘域傳遞位數(shù)據(jù)問題的根源。在此基礎(chǔ)上,根據(jù)實際應(yīng)用的不同情況,探索各種可行的解決方案。

1 跨時鐘域傳遞數(shù)據(jù)的電路模型

在數(shù)字集成電路系統(tǒng)中,無論在片上系統(tǒng)內(nèi)部模塊之間,還是在片上系統(tǒng)與外部設(shè)備之間,往往都需要進行通訊[6]。模塊A 向模塊B 傳送數(shù)字信號A,同時接收來自模塊B 的數(shù)字信號B,如圖1 所示。在大多數(shù)情況下,模塊A 和模塊B 屬于不同功能的模塊,且工作在不同的時鐘域。

眾所周知,數(shù)字信號的存儲和傳遞都是由觸發(fā)器來完成。無論數(shù)字信號在兩個模塊之間的傳遞過程有多么復(fù)雜,它最終都是通過兩個觸發(fā)器來完成數(shù)據(jù)交接。因此,跨時鐘域傳遞數(shù)據(jù)的問題可以通過兩個觸發(fā)器的電路模型來描述,如圖2 所示。在本質(zhì)上,研究解決跨時鐘域傳遞數(shù)據(jù)的問題就轉(zhuǎn)化為解決兩個觸發(fā)器在不同時鐘信號下傳遞數(shù)據(jù)的問題。

圖2 跨時鐘域數(shù)據(jù)傳遞的電路模型

顯而易見,如果觸發(fā)器A 和觸發(fā)器B 的時鐘都來自相同的時鐘源或同一個時鐘域,那么就不存在跨時鐘域傳遞數(shù)據(jù)的問題。因此,跨時鐘域傳遞數(shù)據(jù)的問題根源是時鐘信號之間存在顯著差異。根據(jù)時鐘差異的不同特點,跨時鐘域的問題又可近一步劃分為同步跨時鐘域(Synchronous Clock Domain Crossings,SCDC)和異步跨時鐘域(Asynchronous Clock Domain Crossings,ACDC)兩種情況。

所謂同步跨時鐘域,它是指觸發(fā)器的時鐘信號之間存在某種同步關(guān)系,即兩者時鐘信號之間是相關(guān)的,存在著固定的頻率和相位關(guān)系。例如,一個時鐘與它自身的分頻時鐘就具有固定的相位關(guān)系,在它們之間傳遞數(shù)據(jù)就屬于同步跨時鐘域的情況。與之對應(yīng),如果觸發(fā)器的時鐘信號之間沒有必然的聯(lián)系,那么就無法預(yù)知兩者之間的關(guān)系,在它們之間傳遞數(shù)據(jù)就屬于異步跨時鐘域的情況。對于絕大多數(shù)集成電路系統(tǒng)設(shè)計而言,異步跨時鐘域的情況非常普遍。因此,異步跨時鐘域數(shù)據(jù)傳遞的處理方法是本文的重點研究內(nèi)容。

2 跨時鐘域傳遞數(shù)據(jù)問題的提出

在圖2 的電路模型中,假定Aclk 與Bclk 來自不同時鐘域,如果觸發(fā)器A 輸出的信號data 到達觸發(fā)器B的時間沒有滿足觸發(fā)器B 的時序要求,例如建立時間(Setup Time,Tsu)或保持時間 Hold Time,Th),那么輸出信號Bdata 就會出現(xiàn)一種界于邏輯1 和邏輯0 之間的狀態(tài)[7]。這種狀態(tài)就被稱為亞穩(wěn)態(tài),亞穩(wěn)態(tài)現(xiàn)象如圖3 所示。導(dǎo)致亞穩(wěn)態(tài)現(xiàn)象發(fā)生的根本原因是觸發(fā)器B不能對輸入數(shù)據(jù)data 進行有效采樣。換句話說,當(dāng)數(shù)據(jù)data 尚未保持穩(wěn)定時,觸發(fā)器B 采樣的值是無效的。

圖3 亞穩(wěn)態(tài)現(xiàn)象

亞穩(wěn)態(tài)現(xiàn)象發(fā)生的幾率決定了數(shù)字集成電路系統(tǒng)的可靠性,它可以通過平均無故障時間(Mean Time Between Failures,MTBF)來評估。MTBF 表示觸發(fā)器采樣失敗的時間間隔,它與系統(tǒng)頻率和器件速度密切相關(guān),它的計算方法如公式(1)所示。

其中,fMET是觸發(fā)器能夠在亞穩(wěn)態(tài)輸出而不會引起故障的最長時間,即有效的亞穩(wěn)態(tài)最大分辨時間;fclk是觸發(fā)器的時鐘頻率;fdata是輸入數(shù)據(jù)的變化頻率;C1和C2是與觸發(fā)器相關(guān)的具體參數(shù),它們通常是由觸發(fā)器電氣特性決定的常數(shù),用于表征觸發(fā)器翻轉(zhuǎn)速度的快慢。

由此可見,亞穩(wěn)態(tài)現(xiàn)象是在數(shù)字集成電路系統(tǒng)設(shè)計中無法避免的問題,它是由于觸發(fā)器的固有屬性造成的結(jié)果。如果設(shè)計方案的MTBF 值很大,那么該方案就被認為是可行的,設(shè)計的電路系統(tǒng)在實際工作中能夠正常運行。否則,設(shè)計方案就會因為存在嚴重的亞穩(wěn)態(tài)問題,而導(dǎo)致系統(tǒng)工作不穩(wěn)定,甚至可能無法正常工作。

3 跨時鐘域傳遞數(shù)據(jù)的處理方法

為了盡可能減少發(fā)生亞穩(wěn)態(tài)的可能性,研究跨時鐘域數(shù)據(jù)傳遞問題的解決方法就顯得尤為重要。對某一個時鐘域來說,它在操作輸入的異步數(shù)據(jù)信號之前,必須首先對異步信號進行同步處理,使異步信號變成本時鐘域的同步信號,然后再對數(shù)據(jù)進行后續(xù)的功能處理。這種處理方法是集成電路設(shè)計中經(jīng)常采用的一種同步處理技術(shù),它能夠在很大程度上減少亞穩(wěn)態(tài)的傳播,增強數(shù)字集成電路系統(tǒng)的可靠性[8-10]??鐣r鐘域傳遞數(shù)據(jù)信號的問題非常復(fù)雜,因此數(shù)據(jù)信號同步處理的方法也不盡相同。根據(jù)跨時鐘域傳遞數(shù)據(jù)的方向,同步處理方法大致分為單向同步和雙向同步[11]。

3.1 單向同步的處理方法

在某個時鐘域電路中,如果該電路僅僅對外部輸入的異步數(shù)據(jù)信號進行同步處理,那么這種情況就屬于單向同步。單向同步的處理方法是一種最基本的同步處理技術(shù),它主要包含了電平同步法、邊沿同步法和脈沖同步法三種方法。

(1)電平同步法

電平同步法也被稱為雙鎖存器法,它的電路原理如圖4 所示。在時鐘域A 中,數(shù)據(jù)信號Adata 經(jīng)過最后一級觸發(fā)器輸出數(shù)據(jù)信號data。數(shù)據(jù)信號data 直接進入時鐘域B,中間不能存在任何組合邏輯電路。接著,在時鐘域B 中連續(xù)使用兩個觸發(fā)器來鎖存data 信號,并將同步后的數(shù)據(jù)信號Bdata 傳遞給時鐘域B 中的后續(xù)電路。

圖4 電平同步法

使用Verilog 硬件描述語言來實現(xiàn)電平同步法的關(guān)鍵代碼如下所示:

當(dāng)某個數(shù)據(jù)信號從慢時鐘域電路向快時鐘域電路傳遞時,它的電路時序仿真如圖5 所示。從本質(zhì)上看,電平同步法并不能完全消除亞穩(wěn)態(tài),而是減少了亞穩(wěn)態(tài)的傳播。理論研究表明:這種同步方法可以將亞穩(wěn)態(tài)的出現(xiàn)幾率降低到很小,使得MTBF 盡可能大,從而提高了系統(tǒng)的可靠性。

圖5 電路時序仿真圖

當(dāng)從快時鐘域電路傳遞數(shù)據(jù)信號到慢時鐘域電路時,由于快時鐘域中信號Adata 的寬度可能小于慢時鐘域電路的一個采樣周期,從而導(dǎo)致數(shù)據(jù)信號Adata不能被來自慢時鐘域電路的時鐘有效采樣。如果快時鐘域電路的時鐘頻率是慢時鐘域電路的時鐘頻率N 倍時,那么快時鐘域電路輸出信號的寬度至少在快時鐘域中保持N 個時鐘周期。

(2)邊沿同步法

在某些實際應(yīng)用中,同步輸出信號Bdata 并不一定與輸入信號Adata 在波形上保持一致,而是一個與數(shù)據(jù)信號Adata 變化保持同步的脈沖信號。在這種情況下,同步處理方法通常采用邊沿同步法,其中上升沿同步的電路原理如圖6 所示。

圖6 邊沿同步法

從圖中可以看出,邊沿同步法是在電平同步法基礎(chǔ)上,對后續(xù)時鐘域電路增加了一部分邊沿處理電路。每當(dāng)Adata 出現(xiàn)上升沿的時候,Bdata 就輸出一個同步脈沖信號。使用Verilog 硬件描述語言來實現(xiàn)邊沿同步法的關(guān)鍵代碼如下所示:

上升沿同步電路的時序仿真如圖7 所示,從仿真波形上可以看出,邊沿同步法也通常適用于從慢時鐘域電路向快時鐘域電路傳遞數(shù)據(jù)信號的情況。在輸出信號上,邊沿同步法輸出的是同步脈沖信號,而電平同步法出的是同步電平信號。

圖7 電路時序仿真圖

(3)脈沖同步法

從前面的分析可以得知:從快時鐘域電路傳遞數(shù)據(jù)信號到慢時鐘域電路的時候,直接使用電平同步法和邊沿同步法就不能滿足同步處理的前提條件,可能存在采樣失效的問題。為了解決這種問題,必須保證前級時鐘域電路輸出的數(shù)據(jù)信號必須具有足夠長的保持時間,即至少在后級時鐘域電路中保持一個時鐘周期。在這種情況下,通常采用脈沖同步法,它的電路原理如圖8 所示。

圖8 脈沖同步法

從圖中可以看出,脈沖同步法是在邊沿同步法基礎(chǔ)上,對前面時鐘域電路增加了一部分邊沿處理電路。脈沖同步法首先將前級時鐘域電路的觸發(fā)器輸入數(shù)據(jù)Adata 由電平信號處理成一個時鐘周期的脈沖信號,接著對脈沖信號進行翻轉(zhuǎn)鎖存,輸出數(shù)據(jù)Toogle 具有足夠長的數(shù)據(jù)保持時間,使之能夠被后續(xù)時鐘域電路中的時鐘Bclk 進行有效采樣。因此,脈沖同步法并不關(guān)心兩個時鐘域之間的關(guān)系,它可以適用于任何時鐘域之間的數(shù)據(jù)傳遞。使用Verilog 硬件描述語言來實現(xiàn)脈沖同步法的關(guān)鍵代碼如下所示:

脈沖同步電路的時序仿真如圖9 所示,從時序分析可以得出:跨時鐘域信號Adata 相鄰兩個脈沖信號的間隔至少為后續(xù)時鐘域電路的兩個時鐘周期以上。同步輸出數(shù)據(jù)信號Bdata 也是脈沖信號,它與Adata 的變化保持一致。

圖9 電路時序仿真圖

3.2 雙向同步處理方法

所謂雙向同步是指一個時鐘域電路不僅對來自異步時鐘域的數(shù)據(jù)信號進行同步處理,還要向原時鐘域返回同步數(shù)據(jù)信號。據(jù)反饋信號的類型,雙向同步方法主要分為信號同步法和握手同步法兩種類型。從本質(zhì)上說,雙向同步處理方法是建立在單向同步方法的基礎(chǔ)上。

(1)信號同步法

在某些應(yīng)用中,數(shù)據(jù)傳遞之前通常要判斷異步時鐘域電路反饋的狀態(tài)標(biāo)志。只有得到異步時鐘域電路的允許,它才會對數(shù)據(jù)進行同步處理。在同步數(shù)據(jù)輸出之前,向原時鐘域返回數(shù)據(jù)當(dāng)前接收狀態(tài)的標(biāo)識。這種情況通常采用信號同步法,信號同步法的典型應(yīng)用如圖10 所示。

圖10 信號同步法的功能圖

使用Verilog 硬件描述語言來實現(xiàn)信號同步法的關(guān)鍵代碼如下所示:

從功能圖和實現(xiàn)代碼可以分析出:時鐘域A 首先鎖存了Adata 和Alag 的異或值,然后再將它輸出到時鐘域B 進行同步處理。在同步處理過程中,它采用了脈沖同步法。接著時鐘域B 又將同步后的數(shù)據(jù)重新返回到時鐘域A 中,同時設(shè)置對應(yīng)的狀態(tài)標(biāo)識Aflag。在返回狀態(tài)標(biāo)志時,它采用了邊沿同步法,返回一個脈沖信號Aflag。

(2)握手同步法

雖然信號同步法能夠保證時鐘域A 傳遞的數(shù)據(jù)能夠被時鐘域B 正確采樣或有效接收,但是如果時鐘域B 的功能處理電路比較復(fù)雜,可能出現(xiàn)以前接收的數(shù)據(jù)還沒有被完全處理,而即將處理新數(shù)據(jù)的情況。在這種情況下,通常采用握手同步法,它的典型應(yīng)用如圖11 所示。

圖11 握手同步法的功能圖

使用Verilog 硬件描述語言來實現(xiàn)握手同步法的關(guān)鍵代碼如下所示:

首先,當(dāng)標(biāo)志信號Aflag 為低電平時,時鐘域A 聲明它的請求信號并鎖定Aflag 為高電平。接著時鐘域B 檢測到該請求信號有效后,聲明它的響應(yīng)信號Bstart,并鎖存Bflag 為高電平。當(dāng)時鐘域B 電路完成后續(xù)的功能處理后,返回完成狀態(tài)標(biāo)識Bend,同時清除Bflag 的鎖存標(biāo)志。Bend 被時鐘域A 同步處理為Aend,同時清零Aflag。握手同步法的關(guān)鍵代碼如下所示,其中Astart 和Bend 都必須是各自時鐘域中的脈沖信號。

4 結(jié)語

在大規(guī)模集成電路設(shè)計中,異步電路之間的數(shù)據(jù)通信是一個設(shè)計重點和難點問題。針對不同的應(yīng)用場合,選擇適當(dāng)?shù)耐椒椒ú粌H能有效減少亞穩(wěn)態(tài)問題的傳播,還能顯著降低產(chǎn)品設(shè)計成本。本文以位信號為研究對象,在前人研究的基礎(chǔ)上,總結(jié)歸納了跨時鐘域傳遞位數(shù)據(jù)問題的解決方法,即對跨時鐘域傳遞數(shù)據(jù)進行同步處理。根據(jù)跨時鐘域傳遞數(shù)據(jù)的方向,同步處理方法大致分為單向同步和雙向同步。

電平同步法、邊沿同步法和脈沖同步法是三種基礎(chǔ)的單向同步處理方法。電平同步法連續(xù)使用兩級觸發(fā)器鎖存跨時鐘域的數(shù)據(jù)信號,從而實現(xiàn)數(shù)據(jù)同步。使用這種同步方法的前提條件是輸出數(shù)據(jù)的時鐘域要比接收數(shù)據(jù)的時鐘域更快的時鐘頻率。電平同步法可以降低亞穩(wěn)態(tài)的出現(xiàn)機率,增大MTBF 的數(shù)值,從而提高了系統(tǒng)的穩(wěn)定性和可靠性。邊沿同步法是以電平同步法為核心,通過增加部分后級電路來實現(xiàn)輸出脈沖信號與原數(shù)據(jù)信號在波形變化上保持一致。為了克服電平同步法的使用限制,脈沖同步法在邊沿同步法的基礎(chǔ)上,通過增加部分前級電路來鎖存輸入的脈沖信號,從而使它可以適用于任何時鐘域之間的數(shù)據(jù)傳遞。

信號同步法和握手同步法是兩種具有代表性的雙向同步方法。信號同步法僅僅關(guān)心后續(xù)時鐘域電路是否接收到發(fā)送的數(shù)據(jù),而并不理會后續(xù)時鐘域電路能否及時處理這些數(shù)據(jù)。為了保證數(shù)據(jù)傳遞的準確性和可靠性,握手同步法在信號同步法的基礎(chǔ)上,通過增加處理狀態(tài)標(biāo)志來判斷是否繼續(xù)發(fā)送新數(shù)據(jù)。

猜你喜歡
觸發(fā)器電平脈沖
考慮死區(qū)電壓矢量的三電平變換器模型預(yù)測控制
基于非因果濾波和零點法的近斷層脈沖型地震動識別方法
三電平PWM整流器下的地鐵牽引供電系統(tǒng)探討
配置觸發(fā)器有條件啟動Windows服務(wù)
基于Multisim14.0的雙D觸發(fā)器應(yīng)用與仿真
觸發(fā)器在酒店管理系統(tǒng)中的應(yīng)用
基于直流側(cè)電壓不均衡的CHB多電平逆變器SHEPWM控制技術(shù)
大射電
基于脈沖反射法電纜故障定位脈沖源的設(shè)計
基于電路原理的觸發(fā)器波形分析