跨時鐘域信號同步解決方案_第1頁
跨時鐘域信號同步解決方案_第2頁
跨時鐘域信號同步解決方案_第3頁
跨時鐘域信號同步解決方案_第4頁
跨時鐘域信號同步解決方案_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

千里之行,始于足下。第2頁/共2頁精品文檔推薦跨時鐘域信號同步解決方案跨時鐘域信號同步的IP解決方案

作者:RickKelly,Synopsys研發經理

2009年1月

為了確保擁有多個異步時鐘域的系統級芯片(Soc)可以可靠運行,設計人員必須使這些跨越了多個域的時鐘和數據信號保持同步。雖然這并別屬于新提出的要求,但隨著多時鐘域的越來越常見和復雜化,使得這一要求具備了新的重要意義。大規模集成加上對性能的嚴格要求以及頻率調節都導致在許多別同頻率下發生了非常多時鐘域跨越現象-就像一場數字化的―完美風暴‖。

跨時鐘域(CDC)咨詢題會以許多種形式浮現,其評估難度相當高。幸好,SynopsysDesignWare庫產品提供了許多卓越的CDC解決方案,這些方案應用簡便,設計人員只需掌握在何時以及何處應用它們即可。

本文解釋了在時鐘和數據信號從一具時鐘域跨越到另一具時鐘域時所發生的許多類型的同步咨詢題。在任何事情下,本文所包含的咨詢題都涉及到相互異步的時鐘域。隨著每一具咨詢題的提出,本文將概述一具或多個DesignWare解決方案。這些主題和解決方案包括:

?基本同步—DW_sync

?暫時事件同步—DW_pulse_sync,DW_pulseack_sync

?簡單數據傳輸同步—DW_data_sync,DW_data_sync_na,DW_data_sync_1c

?數據流同步—DW_fifo_s2_sf,DW_fifo_2c_df,DW_stream_sync

?復位排序—DW_reset_sync

?相關時鐘系統數據同步—DW_data_qsync_hl,DW_data_qsync_lh

基本同步咨詢題

當來自一具時鐘系統的信號將用作另一具與其別同步的時鐘系統的輸入時,就需要對信號舉行同步以達成。而別舉行同步就無法達成時序收斂。圖1所示為采納一具單寄存器來同步至目的時鐘域的異步輸入。

伴隨這種辦法會浮現的一具咨詢題是,當一具觸發器的數據輸入處于邏輯0至邏輯1之間的過渡過程當中時,發給那個觸發器時鐘信號時有也許產生亞穩態現象。亞穩態現象也有也許發生在觸發器的建立時刻或保持時刻浮現違反現象時。解決亞穩態事件使其達至邏輯1或邏輯0所要求的時刻量取決于建立時刻或保持時刻被違反的嚴峻程度(圖2)。

ClocktoQdelay時鐘至Q延遲

FFMinimumspecs觸發器最小規格

圖2解決亞穩態事件所用時刻

當亞穩態事件持續時刻長至腳以妨礙到下一具邏輯時期時,同步器就發生了故障。故障間平均時刻(MTBF)通常計算如下:

其中:

fclk是采樣時鐘頻率

fdata是數據變化頻率

tres是解決亞穩態所允許占用的時刻

T0和T1是與具體觸發器相關的常數(下文將進一步敘述)

通常,由于在綜合時會嘗試在時序可以滿腳的條件下縮減門電路數以節約占用面積,因此設計人員無法操縱至下一時期間的時刻預算。為了保持穩定一致的解決用時,設計人員能夠采納一具2個觸發器組成的序列。然而,這種傳統解決方案確信會增加時延。

在采納2個觸發器的解決方案,時鐘樹就以減去觸發器FF1的時鐘至Q延時后的時鐘周期以及FF2的建立時刻要求為基礎。

關于有著相對較高數據傳輸速率的高速應用來講,即使兩級同步器也有也許無法獲得腳夠的MTBF,特殊是在FPGA實現方案中。假如加入第3級,則惟獨在第1級在亞穩態保持了腳夠長的時刻,導致侵占了FF2的建立時刻的事情下,第2級才有也許發生亞穩態事件(圖3)。

圖33級同步器

SampeMTBFtest…MTBF測試電路示例

ErrorCounter錯誤計數器

采納這一辦法,MTBF可計算為:

T0和T1常數與所選用的具體觸發器相關,并有也許從庫供應商處獲得。庫供應商會采納如圖4所示的電路來測定這些常數。錯誤計數器用于測量在輸入時鐘處于某一特定組合的輸入頻率下的MTBF。經過在別同頻率比率下讓此電路運行,就能夠測定T0和T1的數值。

圖4用于測定觸發器常數的電路

參見以下資料,能夠了解更多有關亞穩態和MTBF計算的信息:

?―確保亞穩態不可能破壞您的數字設計方案‖,作者:DeboraGrosse,Unisys,EDN,

1994http:///archives/1994/062394/13df2.htm

?―數字系統亞穩態特性‖,作者:Kleeman&Cantoni,IEEETransactionsonComputers,ol.C-36,No.1,Jan.,1987

?Google:MTBF亞穩態同步

另一具基本同步咨詢題涉及到掃描測試。掃描鏈經常采納保持鎖存以確保在時鐘域之間實現正確的掃描切換。假如在掃描測試排序時,讓最終一具掃描輸入循環后面直截了當跟一具捕獲循環,且讓兩者的時鐘均由測試時鐘來驅動,則有也許無法正確捕獲到跨越時鐘域的功能信號(圖5)。在源側域之間插入一具鎖存器可以提供1/2時鐘周期的延遲,確保了掃描測試期間的正確捕獲操作,從而解決了那個咨詢題。在別處于掃描模式時,可由一具復用器將那個鎖存器旁路,實現正常功能運行。另一種解決方案是在較小型的時鐘域之間插入一具負邊沿觸發器。

圖5a–掃描測試中別受操縱的偏移有也許導致跨域捕獲發生違反

圖5b–在域之間復用一具鎖存器能夠確保1/2時鐘周期的保持

圖5c–一具負邊沿D觸發器也可保持1/2時鐘周期的保持

圖5跨時鐘域掃描測試咨詢題

關于基本同步來講,設計人員能夠使用DesignWare的DW_sync組件,此組件有以下參數:

?寬度

?f_sync_type:級數

?tst_mode:0=>無保持,1=>鎖存,2=>負邊沿觸發器

?verif_en(下文討論;別妨礙綜合)

在以f_sync_type參數指定了級數后,將獲得如圖6所示的配置方式之一。

圖6采納DW_sync組件時也許的級數

同步暫時事件

有點時刻,您需要在一具時鐘域內設置邏輯電路以告知另一具異步時鐘域內的邏輯電路,有某一特定事件差不多發生。一種辦法是采納如圖7所示的方案,其中經過門選復位來清空源域內的脈沖。

圖7a–較差的設計方案

圖7b–較好但仍存在門選復位

圖7c–更好的設計方案,但仍別是最佳方案

圖7另一具時鐘域內事件的通知邏輯

在使用一具高電平有效的脈沖作為跨時鐘域事件的信號時,那個脈沖的寬度必須腳以確保采樣操作的完成,而且必須在脈沖之間存在明顯的無信號時刻。為了幸免采納脈沖拉伸機制,您能夠使用別歸零(NRZ)信號發生方式,而別要使用歸零(RZ)信號發生方式。圖8所示為clk_d域是怎么在后一種類型的信號下捕獲變化的,這是一種在許多狀況下難于采納的辦法。

Eventinclk_s:clk_s內的事件

Returnto…:Clk_d內捕獲的歸零信號

Capturedin…:在clk-d內捕獲的信號

圖8NRZ信號發生方式的優點

為了簡化時鐘域之間的脈沖傳遞,可采納DW_pulse_sync雙時鐘脈沖同步器(圖9)。標為―clk_s‖的虛線框內的邏輯電路運行在clk_s(源)時鐘域下,而標為―clk_d‖的虛線框內的邏輯電路運行在clk_d(目的)時鐘域內。在域之間采納NRZ信號能夠實現更高的事件處理流量,而且由于無需反饋,所要求的邏輯電路也較少。

Register…:能夠經過parameter,reg_event在器件外配置寄存器

NRZ…:跨域的NRZ信號

Multiple…:多寄存器同步器

History…:用于檢測變化的歷史寄存器

圖9DW_pulse_sync雙時鐘脈沖同步器

Multiple…:多寄存器同步器

Multiple…:多寄存器同步器

Busystate…:忙碌狀態

NRZfeedbackack_delay=1:NRZ反饋ack_delay=1:

Multiple…:多寄存器同步器

Multiple…:多寄存器同步器

Busystate…:忙碌狀態

NRZfeedbackack_delay=1:NRZ反饋ack_delay=1:

圖10加了確認的DW_pulseack_sync脈沖同步器

假如需要反饋,則能夠采納DW_pulseack_sync,這是一種帶有確認的脈沖同步器。如圖10所示,那個IP產品提供了一具NRZ反饋信號,可以比無確認版本提供更高的事件處理流量。DW_pulseack_sync還提供了可配置的標志寄存器和反饋延時。

同步數據總線

在從一具時鐘域跨越至另一具時鐘域時,在目的時鐘對接近過渡狀態的總線舉行采樣時,數據總線上有也許浮現瞬時虛假數值(圖11)。例如,一條從11011001變為01011010的8位總線上有3個位發生了改變。在所涉及的偏移存在時序上別確定性的事情下,就有會看到8個也許浮現的數值:theinitialvalue(11011001),thefinalvalue(01011010)andsixpossibleintermediatevalues(11011000,11011011,11011010,01011001,01011000and01011011).

Source…:源總線

Destinationclk:目的時鐘

1st…:第1個同步寄存器

2nd…:第2個同步寄存器

Intermediatevalue:過渡數值

Intermediatevalue:過渡數值

圖11瞬時總線數值

一種在同步數據總線時幸免別想要的過渡數值的辦法是,采納一具帶有確認的暫時事件同步器。這種邏輯能夠采納以下次序對跨越時鐘邊界的數據舉行同步交換:保持數據,發送―請同意‖,發回―已同意‖,釋放數據寄存器。DW_pulseack_sync組件可以

發送必要的―請同意‖和―已同意‖事件。

而一種帶確認信號的數據總線同步器DW_data_sync能更好地完成此項任務。此IP消除了過渡虛擬數據,而且您能夠對其舉行配置,提供暫時性的數據存儲能力(圖12)。

Optional…:可選用的暫時數據寄存器

Handshake…:同步交換邏輯

Send…:發送操縱

圖12帶確認的DW_data_sync總線同步器

確認延遲咨詢題

在源時鐘比目的時鐘快得并別多(或全然相同)時,提供一具確認信號的同步器也許會引發時延咨詢題。假如在應用當中時延具有關鍵性的意義,則應思考采納一種―提早‖確認方式,即經過設置參數ack_delay=0來舉行配置。

假如源時鐘比目的時鐘快出非常多,則能夠同步確認信號,而且數據能夠在別到目的時鐘1個周期內的時刻內改變。在時延并非關鍵性咨詢題時,最好采納默認的ack_delay=1設置。假如沒有使用延遲,則在本地注釋塊內記錄此項附加講明算是一種非常好的處理方式。

以下是使用ack_delay=0的通用規則[1]:

?clk_d的周期別應當超過clk_s*的周期(r_sync_type–0.25)

?clk_s的頻率別應當超過clk_d*的頻率(f_sync_type–0.25)

?例如,在f_sync_type=r_sync_type=2,Fclk_d=200MHz時

—MaxFclk_s=Fclk_d*(2–0.25)

—MaxFclk_s=200MHz*1.75=350MHz

假如確保目的時鐘速率超過了(Fclk_s*(f_sync_type+1.25))[2],則能夠使用更簡單的信號同步體系。在目的時鐘較快的事情下,能夠對―請同意‖事件舉行同步,并在別到源域1個時鐘周期的時刻內捕獲數據。所以,也就別需要發回―已同意‖事件了。在需要最大程度地減少時延和/或別必要的邏輯電路時,例如,在對一具實時時鐘寄存器舉行更新并將其內容發送到一具高速邏輯區塊時,這種辦法就較為有用。

為了實現這一辦法,能夠采納DesignWare的別帶確認的數據總線同步器DW_data_sync_na(圖13)。此IP提供了比雙向數據同步更高的數據吞吐量以及更少的邏輯電路,但請牢記時鐘頻率要求[2]:Fclk_d≥Fclk_s*(f_sync_type+1.25).

Event…:事件同步邏輯電路

圖13別帶ac確認信號的DW_data_sync_na總線同步器

總線同步的特別事情

假如在任一時間,一條總線上只會有一具位發生改變(也算是格雷碼格雷碼過渡),則簡單的多寄存器同步絕對不可能引發過渡虛假數據。而在接近采樣時鐘時有一具位發生改變時,第一具捕獲此位的寄存器有也許進入亞穩態,但那個位將會轉向新數值或舊有數值。

在諸如跨時鐘域監測計數器的應用當中,格雷碼總線就較為有用。計數器數值的格雷碼允許您使用較簡單的同步技巧來在持續別斷的監測下達成更低的時延。

總線同步的另一種特別事情涉及到一具您沒有拜訪權的源域clk_s。例如,您有也許要面對一具來自于沒有提供源時鐘的外界源的進入芯片內的相對較慢的總線。由于電路板布線時延有也許導致位與位間的時序偏移超過單個時鐘周期,多寄存器同步就有也許遇到超過一具時鐘周期以上的過渡虛假數值。在這種事情下,您能夠使用―歷史寄存器‖來檢測數據所發生的變化,并決定何時將數據傳遞給芯片核心。

Lastvalue:上一次的數值

Newvalue:新數值

Control…:操縱狀態機

Counter:計數器

Highcount:高位計數

圖14DW_data_sync_1c單時鐘過濾數據總線同步器

針對這些事情,DesignWare提供了單時鐘過濾數據總線同步器DW_data_sync_1c(圖14)。此同步器能夠消除存在高位間時序偏移特性的數據過渡中的過渡數值。

數據傳輸與數據流

在跨時鐘域傳輸數據時,請牢記數據傳輸與數據流之間的差不。在數據傳輸當中,在典型事情下不可能長時刻維持背靠背(back-to-back)式的數據發送。數據同步設計可作為一具示例,例如采納DW_data_sync的設計方案。

而另一方面,數據流允許在設備提供的數據存儲能力的限制范圍內實現背靠背式的數據發送,例如采納FIFO。DesignWareLibrary內的雙時鐘FIFO依靠于雙端口RAM的使用(圖15)。源域內的推送邏輯電路負責將數據寫入到RAM,而目的域內的彈出邏輯電路負責將數據從RAM讀取。

Pushlogic:推送邏輯電路

Poplogic:彈出邏輯電路

FIFOController:FIFO操縱器

Pushinterface:推送接口

Popinterface:彈出接口

圖15配合雙端口RAM的雙時鐘FIFO

此設計采納了DesignWare組件DW_ffoctl_s2_sf和DW_ffo_s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論