小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

跨時(shí)鐘域信號(hào)同步的IP解決方案

 hycan 2014-04-30
時(shí)鐘域信號(hào)同步的IP解決方案

作者:Rick Kelly,Synopsys研發(fā)經(jīng)理
2009年1月


為了確保擁有多個(gè)異步時(shí)鐘域的系統(tǒng)級(jí)芯片(Soc)能夠可靠運(yùn)行,設(shè)計(jì)人員必須使這些跨越了多個(gè)域的時(shí)鐘和數(shù)據(jù)信號(hào)保持同步。盡管這并不屬于新提出的要求,但隨著多時(shí)鐘域的越來越常見和復(fù)雜化,使得這一要求具備了新的重要意義。大規(guī)模集成加上對(duì)性能的嚴(yán)格要求以及頻率調(diào)節(jié)都導(dǎo)致在許多不同頻率下發(fā)生了很多時(shí)鐘域跨越現(xiàn)象-就像一場(chǎng)數(shù)字化的“完美風(fēng)暴”。


跨時(shí)鐘域(CDC)問題會(huì)以許多種形式出現(xiàn),其評(píng)估難度相當(dāng)高。幸好,Synopsys DesignWare庫(kù)產(chǎn)品提供了許多卓越的CDC解決方案,這些方案應(yīng)用簡(jiǎn)便,設(shè)計(jì)人員只需掌握在何時(shí)以及何處應(yīng)用它們即可。


本文解釋了在時(shí)鐘和數(shù)據(jù)信號(hào)從一個(gè)時(shí)鐘域跨越到另一個(gè)時(shí)鐘域時(shí)所發(fā)生的許多類型的同步問題。在任何情況下,本文所包含的問題都涉及到相互異步的時(shí)鐘域。隨著每一個(gè)問題的提出,本文將概述一個(gè)或多個(gè)DesignWare解決方案。這些主題和解決方案包括:
基本同步 — DW_sync
臨時(shí)事件同步 — DW_pulse_sync, DW_pulseack_sync
簡(jiǎn)單數(shù)據(jù)傳輸同步 — DW_data_sync, DW_data_sync_na, DW_data_sync_1c
數(shù)據(jù)流同步 — DW_fifo_s2_sf, DW_fifo_2c_df, DW_stream_sync
復(fù)位排序 — DW_reset_sync
相關(guān)時(shí)鐘系統(tǒng)數(shù)據(jù)同步 — DW_data_qsync_hl, DW_data_qsync_lh


基本同步問題

當(dāng)來自一個(gè)時(shí)鐘系統(tǒng)的信號(hào)將用作另一個(gè)與其不同步的時(shí)鐘系統(tǒng)的輸入時(shí),就需要對(duì)信號(hào)進(jìn)行同步以達(dá)成。而不進(jìn)行同步就無法達(dá)成時(shí)序收斂。圖1所示為采用一個(gè)單寄存器來同步至目的時(shí)鐘域的異步輸入。



伴隨這種方法會(huì)出現(xiàn)的一個(gè)問題是,當(dāng)一個(gè)觸發(fā)器的數(shù)據(jù)輸入處于邏輯0至邏輯1之間的過渡過程當(dāng)中時(shí),發(fā)給這個(gè)觸發(fā)器時(shí)鐘信號(hào)時(shí)有可能產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。亞穩(wěn)態(tài)現(xiàn)象也有可能發(fā)生在觸發(fā)器的建立時(shí)間或保持時(shí)間出現(xiàn)違反現(xiàn)象時(shí)。解決亞穩(wěn)態(tài)事件使其達(dá)至邏輯1或邏輯0所要求的時(shí)間量取決于建立時(shí)間或保持時(shí)間被違反的嚴(yán)重程度(圖2)。


Clock to Q delay 時(shí)鐘至Q延遲


FF Minimum specs 觸發(fā)器最小規(guī)格


圖2 解決亞穩(wěn)態(tài)事件所用時(shí)間

當(dāng)亞穩(wěn)態(tài)事件持續(xù)時(shí)間長(zhǎng)至足以影響到下一個(gè)邏輯階段時(shí),同步器就發(fā)生了故障。故障間平均時(shí)間(MTBF)通常計(jì)算如下:



其中:
fclk 是采樣時(shí)鐘頻率
fdata 是數(shù)據(jù)變化頻率
tres 是解決亞穩(wěn)態(tài)所允許占用的時(shí)間
T0和T1是與具體觸發(fā)器相關(guān)的常數(shù)(下文將進(jìn)一步敘述)
通常,由于在綜合時(shí)會(huì)嘗試在時(shí)序能夠滿足的條件下縮減門電路數(shù)以節(jié)省占用面積,所以設(shè)計(jì)人員無法控制至下一階段間的時(shí)間預(yù)算。為了保持穩(wěn)定一致的解決用時(shí),設(shè)計(jì)人員可以采用一個(gè)2個(gè)觸發(fā)器組成的序列。但是,這種傳統(tǒng)解決方案肯定會(huì)增加時(shí)延。
在采用2個(gè)觸發(fā)器的解決方案,時(shí)鐘樹就以減去觸發(fā)器FF1的時(shí)鐘至Q延時(shí)后的時(shí)鐘周期以及FF2的建立時(shí)間要求為基礎(chǔ)。



對(duì)于有著相對(duì)較高數(shù)據(jù)傳輸速率的高速應(yīng)用來說,即使兩級(jí)同步器也有可能無法獲得足夠的MTBF,特別是在FPGA實(shí)現(xiàn)方案中。如果加入第3級(jí),則只有在第1級(jí)在亞穩(wěn)態(tài)保持了足夠長(zhǎng)的時(shí)間,導(dǎo)致侵占了FF2的建立時(shí)間的情況下,第2級(jí)才有可能發(fā)生亞穩(wěn)態(tài)事件(圖3)。



圖3 3級(jí)同步器

Sampe MTBF test … MTBF測(cè)試電路示例
Error Counter 錯(cuò)誤計(jì)數(shù)器


采用這一方法,MTBF可計(jì)算為:



T0和T1常數(shù)與所選用的具體觸發(fā)器相關(guān),并有可能從庫(kù)供應(yīng)商處獲得。庫(kù)供應(yīng)商會(huì)采用如圖4所示的電路來測(cè)定這些常數(shù)。錯(cuò)誤計(jì)數(shù)器用于測(cè)量在輸入時(shí)鐘處于某一特定組合的輸入頻率下的MTBF。通過在不同頻率比率下讓此電路運(yùn)行,就可以測(cè)定T0和T1的數(shù)值。



圖4 用于測(cè)定觸發(fā)器常數(shù)的電路

參見以下資料,可以了解更多有關(guān)亞穩(wěn)態(tài)和MTBF計(jì)算的信息:
“確保亞穩(wěn)態(tài)不會(huì)破壞您的數(shù)字設(shè)計(jì)方案”,作者:Debora Grosse, Unisys, EDN, 1994 http://www./archives/1994/062394/13df2.htm
“數(shù)字系統(tǒng)亞穩(wěn)態(tài)特性”,作者:Kleeman & Cantoni, IEEE Transactions on Computers, ol. C-36, No. 1, Jan., 1987
Google:MTBF亞穩(wěn)態(tài)同步
另一個(gè)基本同步問題涉及到掃描測(cè)試。掃描鏈經(jīng)常采用保持鎖存以確保在時(shí)鐘域之間實(shí)現(xiàn)正確的掃描切換。如果在掃描測(cè)試排序時(shí),讓最后一個(gè)掃描輸入循環(huán)后面直接跟一個(gè)捕獲循環(huán),且讓兩者的時(shí)鐘均由測(cè)試時(shí)鐘來驅(qū)動(dòng),則有可能無法正確捕獲到跨越時(shí)鐘域的功能信號(hào)(圖5)。在源側(cè)域之間插入一個(gè)鎖存器能夠提供1/2時(shí)鐘周期的延遲,確保了掃描測(cè)試期間的正確捕獲操作,從而解決了這個(gè)問題。在不處于掃描模式時(shí),可由一個(gè)復(fù)用器將這個(gè)鎖存器旁路,實(shí)現(xiàn)正常功能運(yùn)行。另一種解決方案是在較小型的時(shí)鐘域之間插入一個(gè)負(fù)邊沿觸發(fā)器。



圖5a – 掃描測(cè)試中不受控制的偏移有可能導(dǎo)致跨域捕獲發(fā)生違反


圖 5b – 在域之間復(fù)用一個(gè)鎖存器可以確保1/2時(shí)鐘周期的保持


圖5c – 一個(gè)負(fù)邊沿D觸發(fā)器也可保持1/2時(shí)鐘周期的保持圖5 跨時(shí)鐘域掃描測(cè)試問題

對(duì)于基本同步來說,設(shè)計(jì)人員可以使用DesignWare的DW_sync組件,此組件有以下參數(shù):


寬度
f_sync_type:級(jí)數(shù)
tst_mode:0 => 無保持,1=> 鎖存,2 => 負(fù)邊沿觸發(fā)器
verif_en (下文討論;不影響綜合)
在以f_sync_type參數(shù)指定了級(jí)數(shù)后,將獲得如圖6所示的配置方式之一。



圖6 采用DW_sync組件時(shí)可能的級(jí)數(shù)同步臨時(shí)事件

有些時(shí)間,您需要在一個(gè)時(shí)鐘域內(nèi)設(shè)置邏輯電路以告知另一個(gè)異步時(shí)鐘域內(nèi)的邏輯電路,有某一特定事件已經(jīng)發(fā)生。一種方法是采用如圖7所示的方案,其中通過門選復(fù)位來清空源域內(nèi)的脈沖。


圖7a – 較差的設(shè)計(jì)方案


圖7b – 較好但仍存在門選復(fù)位


圖7c – 更好的設(shè)計(jì)方案,但仍不是最佳方案
圖7 另一個(gè)時(shí)鐘域內(nèi)事件的通知邏輯

在使用一個(gè)高電平有效的脈沖作為跨時(shí)鐘域事件的信號(hào)時(shí),這個(gè)脈沖的寬度必須足以確保采樣操作的完成,而且必須在脈沖之間存在明顯的無信號(hào)時(shí)間。為了避免采用脈沖拉伸機(jī)制,您可以使用不歸零(NRZ)信號(hào)發(fā)生方式,而不要使用歸零(RZ)信號(hào)發(fā)生方式。圖8所示為clk_d域是如何在后一種類型的信號(hào)下捕獲變化的,這是一種在許多狀況下難于采用的方法。



Event in clk_s:clk_s內(nèi)的事件
Return to …:Clk_d內(nèi)捕獲的歸零信號(hào)
Captured in…:在clk-d內(nèi)捕獲的信號(hào)


圖8 NRZ信號(hào)發(fā)生方式的優(yōu)點(diǎn)

為了簡(jiǎn)化時(shí)鐘域之間的脈沖傳遞,可采用DW_pulse_sync雙時(shí)鐘脈沖同步器(圖9)。標(biāo)為“clk_s”的虛線框內(nèi)的邏輯電路運(yùn)行在clk_s(源)時(shí)鐘域下,而標(biāo)為“clk_d”的虛線框內(nèi)的邏輯電路運(yùn)行在clk_d(目的)時(shí)鐘域內(nèi)。在域之間采用NRZ信號(hào)可以實(shí)現(xiàn)更高的事件處理流量,而且由于無需反饋,所要求的邏輯電路也較少。



Register…:可以通過parameter, reg_event在器件外配置寄存器
NRZ…:跨域的NRZ信號(hào)
Multiple…:多寄存器同步器
History…:用于檢測(cè)變化的歷史寄存器


圖9 DW_pulse_sync雙時(shí)鐘脈沖同步器

Multiple …:多寄存器同步器
Multiple …:多寄存器同步器
Busy state…:忙碌狀態(tài)
NRZ feedback ack_delay=1:NRZ反饋ack_delay=1:



Multiple …:多寄存器同步器
Multiple …:多寄存器同步器
Busy state…:忙碌狀態(tài)
NRZ feedback ack_delay=1:NRZ反饋ack_delay=1:


圖10 加了確認(rèn)的DW_pulseack_sync脈沖同步器

如果需要反饋,則可以采用DW_pulseack_sync,這是一種帶有確認(rèn)的脈沖同步器。如圖10所示,這個(gè)IP產(chǎn)品提供了一個(gè)NRZ反饋信號(hào),能夠比無確認(rèn)版本提供更高的事件處理流量。DW_pulseack_sync還提供了可配置的標(biāo)志寄存器和反饋延時(shí)。


同步數(shù)據(jù)總線

在從一個(gè)時(shí)鐘域跨越至另一個(gè)時(shí)鐘域時(shí),在目的時(shí)鐘對(duì)接近過渡狀態(tài)的總線進(jìn)行采樣時(shí),數(shù)據(jù)總線上有可能出現(xiàn)瞬時(shí)虛假數(shù)值(圖11)。例如,一條從11011001變?yōu)?1011010的8位總線上有3個(gè)位發(fā)生了改變。在所涉及的偏移存在時(shí)序上不確定性的情況下,就有會(huì)看到8個(gè)可能出現(xiàn)的數(shù)值: the initial value (11011001), the final value (01011010) and six possible intermediate values ( 11011000, 11011011, 11011010, 01011001, 01011000 and 01011011).



Source…:源總線
Destination clk:目的時(shí)鐘
1st …:第1個(gè)同步寄存器
2nd …:第2個(gè)同步寄存器
Intermediate value:過渡數(shù)值
Intermediate value:過渡數(shù)值


圖11 瞬時(shí)總線數(shù)值

一種在同步數(shù)據(jù)總線時(shí)避免不想要的過渡數(shù)值的方法是,采用一個(gè)帶有確認(rèn)的臨時(shí)事件同步器。這種邏輯可以采用以下次序?qū)缭綍r(shí)鐘邊界的數(shù)據(jù)進(jìn)行同步交換:保持?jǐn)?shù)據(jù),發(fā)送“請(qǐng)接受”,發(fā)回“已接受”,釋放數(shù)據(jù)寄存器。DW_pulseack_sync組件能夠發(fā)送必要的“請(qǐng)接受”和“已接受”事件。
而一種帶確認(rèn)信號(hào)的數(shù)據(jù)總線同步器DW_data_sync能更好地完成此項(xiàng)任務(wù)。此IP消除了過渡虛擬數(shù)據(jù),而且您可以對(duì)其進(jìn)行配置,提供臨時(shí)性的數(shù)據(jù)存儲(chǔ)能力(圖12)。



Optional …:可選用的臨時(shí)數(shù)據(jù)寄存器
Handshake…:同步交換邏輯
Send …:發(fā)送控制


圖12 帶確認(rèn)的DW_data_sync總線同步器確認(rèn)延遲問題

在源時(shí)鐘比目的時(shí)鐘快得并不多(或根本相同)時(shí),提供一個(gè)確認(rèn)信號(hào)的同步器可能會(huì)引發(fā)時(shí)延問題。如果在應(yīng)用當(dāng)中時(shí)延具有關(guān)鍵性的意義,則應(yīng)考慮采用一種“提前”確認(rèn)方式,即通過設(shè)置參數(shù)ack_delay = 0來進(jìn)行配置。
如果源時(shí)鐘比目的時(shí)鐘快出很多,則可以同步確認(rèn)信號(hào),而且數(shù)據(jù)可以在不到目的時(shí)鐘1個(gè)周期內(nèi)的時(shí)間內(nèi)改變。在時(shí)延并非關(guān)鍵性問題時(shí),最好采用默認(rèn)的ack_delay = 1設(shè)置。如果沒有使用延遲,則在本地注釋塊內(nèi)記錄此項(xiàng)附加說明就是一種很好的處理方式。
以下是使用ack_delay = 0的通用規(guī)則[1]:
clk_d的周期不應(yīng)當(dāng)超過clk_s *的周期(r_sync_type – 0.25)
clk_s的頻率不應(yīng)當(dāng)超過clk_d *的頻率(f_sync_type – 0.25)
例如,在 f_sync_type = r_sync_type = 2, Fclk_d = 200 M Hz時(shí)

— Max Fclk_s = Fclk_d * (2 – 0.25)
— Max Fclk_s = 200 M Hz * 1.75 = 350 M Hz


如果確保目的時(shí)鐘速率超過了(Fclk_s * (f_sync_type + 1.25))[2],則可以使用更簡(jiǎn)單的信號(hào)同步體系。在目的時(shí)鐘較快的情況下,可以對(duì)“請(qǐng)接受”事件進(jìn)行同步,并在不到源域1個(gè)時(shí)鐘周期的時(shí)間內(nèi)捕獲數(shù)據(jù)。因此,也就不需要發(fā)回“已接受”事件了。在需要最大程度地減少時(shí)延和/或不必要的邏輯電路時(shí),例如,在對(duì)一個(gè)實(shí)時(shí)時(shí)鐘寄存器進(jìn)行更新并將其內(nèi)容發(fā)送到一個(gè)高速邏輯區(qū)塊時(shí),這種方法就較為實(shí)用。
為了實(shí)現(xiàn)這一方法,可以采用DesignWare的不帶確認(rèn)的數(shù)據(jù)總線同步器DW_ data_sync_na(圖13)。此IP提供了比雙向數(shù)據(jù)同步更高的數(shù)據(jù)吞吐量以及更少的邏輯電路,但請(qǐng)牢記時(shí)鐘頻率要求[2]: Fclk_d ≥ Fclk_s * (f_sync_type + 1.25).



Event …:事件同步邏輯電路


圖13 不帶ac確認(rèn)信號(hào)的DW_data_sync_na總線同步器總線同步的特殊情況

如果在任一時(shí)刻,一條總線上只會(huì)有一個(gè)位發(fā)生改變(也就是格雷碼格雷碼過渡),則簡(jiǎn)單的多寄存器同步絕對(duì)不會(huì)引發(fā)過渡虛假數(shù)據(jù)。而在接近采樣時(shí)鐘時(shí)有一個(gè)位發(fā)生改變時(shí),第一個(gè)捕獲此位的寄存器有可能進(jìn)入亞穩(wěn)態(tài),但這個(gè)位將會(huì)轉(zhuǎn)向新數(shù)值或舊有數(shù)值。
在諸如跨時(shí)鐘域監(jiān)測(cè)計(jì)數(shù)器的應(yīng)用當(dāng)中,格雷碼總線就較為實(shí)用。計(jì)數(shù)器數(shù)值的格雷碼允許您使用較簡(jiǎn)單的同步技巧來在持續(xù)不斷的監(jiān)測(cè)下達(dá)成更低的時(shí)延。
總線同步的另一種特殊情況涉及到一個(gè)您沒有訪問權(quán)的源域clk_s。例如,您有可能要面對(duì)一個(gè)來自于沒有提供源時(shí)鐘的外界源的進(jìn)入芯片內(nèi)的相對(duì)較慢的總線。由于電路板布線時(shí)延有可能導(dǎo)致位與位間的時(shí)序偏移超過單個(gè)時(shí)鐘周期,多寄存器同步就有可能遇到超過一個(gè)時(shí)鐘周期以上的過渡虛假數(shù)值。在這種情況下,您可以使用“歷史寄存器”來檢測(cè)數(shù)據(jù)所發(fā)生的變化,并決定何時(shí)將數(shù)據(jù)傳遞給芯片核心。



Last value:上一次的數(shù)值
New value:新數(shù)值
Control…:控制狀態(tài)機(jī)
Counter:計(jì)數(shù)器
High count:高位計(jì)數(shù)


圖14 DW_data_sync_1c單時(shí)鐘過濾數(shù)據(jù)總線同步器

針對(duì)這些情況,DesignWare提供了單時(shí)鐘過濾數(shù)據(jù)總線同步器DW_data_sync_1c(圖14)。此同步器可以消除存在高位間時(shí)序偏移特性的數(shù)據(jù)過渡中的過渡數(shù)值。


數(shù)據(jù)傳輸與數(shù)據(jù)流

在跨時(shí)鐘域傳輸數(shù)據(jù)時(shí),請(qǐng)牢記數(shù)據(jù)傳輸與數(shù)據(jù)流之間的差別。在數(shù)據(jù)傳輸當(dāng)中,在典型情況下不會(huì)長(zhǎng)時(shí)間維持背靠背(back-to-back)式的數(shù)據(jù)發(fā)送。數(shù)據(jù)同步設(shè)計(jì)可作為一個(gè)示例,例如采用DW_data_sync的設(shè)計(jì)方案。
而另一方面,數(shù)據(jù)流允許在設(shè)備提供的數(shù)據(jù)存儲(chǔ)能力的限制范圍內(nèi)實(shí)現(xiàn)背靠背式的數(shù)據(jù)發(fā)送,例如采用FIFO。DesignWare Library內(nèi)的雙時(shí)鐘FIFO依賴于雙端口RAM的使用(圖15)。源域內(nèi)的推送邏輯電路負(fù)責(zé)將數(shù)據(jù)寫入到RAM,而目的域內(nèi)的彈出邏輯電路負(fù)責(zé)將數(shù)據(jù)從RAM讀取。



Push logic:推送邏輯電路
Pop logic:彈出邏輯電路
FIFO Controller:FIFO控制器
Push interface:推送接口
Pop interface:彈出接口


圖15 配合雙端口RAM的雙時(shí)鐘FIFO

此設(shè)計(jì)采用了DesignWare組件DW_ffoctl_s2_sf和DW_ffo_s2_sf來實(shí)現(xiàn)一個(gè)帶有狀態(tài)標(biāo)志位的同步(雙時(shí)鐘)FIFO(圖16)。自從1999年建立其體系架構(gòu)以來,這些組件一直在DesignWare Library IP內(nèi)廣受歡迎。



Push logic:推送邏輯電路
Pop logic:彈出邏輯電路
FIFO Controller:FIFO控制器
Push interface:推送接口
Pop interface:彈出接口


圖16 配有狀態(tài)標(biāo)志的DesignWare雙時(shí)鐘FIFO控制器

實(shí)現(xiàn)狀態(tài)標(biāo)志位的另一種方案是采用動(dòng)態(tài)標(biāo)志位的雙時(shí)鐘FIFO,它采用DW_ ffo_2c_df和DW_ffoctl_2c_df組件(圖127)。除了動(dòng)態(tài)標(biāo)志位支持以外,DW_ffoctl_2c_df提供了一些新特色(在DW_ffoctl_s2_sf提供的以外):
支持多RAM配置
來自RAM數(shù)據(jù)的重新定位
從雙側(cè)提供同步FIFO清空功能
提供來自RAM的讀取啟用信號(hào)



Pre-fetch cache:預(yù)取高速緩存
Push interface (…):推送接口(計(jì)數(shù)器和狀態(tài))
Pop …:彈出接口中(計(jì)數(shù)器和狀態(tài))
In-progress logic:順序執(zhí)行邏輯


圖17 配有動(dòng)態(tài)標(biāo)志位的DesignWare雙時(shí)鐘FIFO任意相位相干數(shù)據(jù)流

一些芯片向外部邏輯電路提供了一個(gè)將與數(shù)據(jù)共同返回至芯片的時(shí)鐘(圖18)。在這些應(yīng)用當(dāng)中,如何在最小時(shí)延的情況下讓數(shù)據(jù)流返回至芯片內(nèi)的時(shí)鐘域呢?



Return clock:返回時(shí)鐘
Return …:返回?cái)?shù)據(jù)有效
Return…:返回?cái)?shù)據(jù)
Request clock:請(qǐng)求時(shí)鐘
Request information:請(qǐng)求信息
Master Chip:主芯片
Off-ship logic:芯片外邏輯電路


圖18 與外部邏輯電路來回傳輸?shù)臅r(shí)鐘和數(shù)據(jù)


Event ….:事件同步邏輯電路


圖19 不帶確認(rèn)的DW_data_sync_na數(shù)據(jù)總線同步器

如果數(shù)據(jù)傳輸率足夠低,而且芯片擁有一個(gè)足夠快的內(nèi)部時(shí)鐘(典型情況約為數(shù)據(jù)傳輸率的4倍左右),則可以采用DW_data_sync_na(圖19),并依靠過采樣來可靠地捕獲數(shù)據(jù)。


如果數(shù)據(jù)傳輸率過高,導(dǎo)致不能采用過采樣技巧來可靠處理數(shù)據(jù),則需要采用一種具備某種數(shù)據(jù)存儲(chǔ)能力的方法,例如雙時(shí)鐘FIFO。您可能想要采用DW_ffo_2c_df和AW_ ffo_s2_sf組件,但是,這兩種組件存在著額外邏輯電路的費(fèi)用,還有比采用簡(jiǎn)單數(shù)據(jù)傳輸技巧更高的時(shí)延。
作為FIFO的替代方案,通過一定數(shù)量的DW_data_sync_na-type模塊對(duì)數(shù)據(jù)進(jìn)行解復(fù)用,然后在目的域內(nèi)對(duì)它們進(jìn)行重新復(fù)用,其效果如何呢?圖20所示為這種數(shù)據(jù)流同步器方法的一種實(shí)現(xiàn),即DW_stream_sync。此IP提供了比標(biāo)準(zhǔn)雙時(shí)鐘FIFO解決方案更低的時(shí)延和更少的邏輯電路。



Receive control:接收控制
Send control:發(fā)送控制
To …:至clk_s順序邏輯
To…:至clk_d順序邏輯


圖20 DW流同步數(shù)據(jù)數(shù)據(jù)同步器

對(duì)于DW_stream_sync,深度(depth)參數(shù)控制著解復(fù)用的通道數(shù)量。對(duì)于相干數(shù)據(jù)流來說,可將深度的數(shù)值設(shè)置為(f_sync_type + 2)。
只要您的設(shè)計(jì)滿足以下兩個(gè)條件,就可以將DW_stream_sync用于非相干數(shù)據(jù)流同步:具備了足夠的存儲(chǔ)能力,能夠采集由于時(shí)鐘差別所產(chǎn)生的松馳數(shù)據(jù);以及數(shù)據(jù)流之間的間隙時(shí)間允許DW_stream_sync追上。
增加解復(fù)用通道的數(shù)量可以讓數(shù)據(jù)流在稍慢于數(shù)據(jù)流時(shí)鐘的目的時(shí)鐘下運(yùn)行。在數(shù)據(jù)猝發(fā)時(shí),被數(shù)據(jù)占用的解復(fù)用通道的數(shù)量將逐步增加。在確定所要采種的解復(fù)用通道的數(shù)量時(shí),要考慮到頻率差別以及猝發(fā)規(guī)模。



Bubble …:輸出數(shù)據(jù)內(nèi)的泡沫代表著源時(shí)鐘速率與目的時(shí)鐘速率之間的差別


圖21 無數(shù)據(jù)的數(shù)據(jù)流

在數(shù)據(jù)流傳輸率低于目的時(shí)鐘率時(shí),DW_stream_sync會(huì)偶然生成一個(gè)輸出端沒有數(shù)據(jù)的周期(圖21)。但是,如果正確地設(shè)置了預(yù)填充數(shù)值(通過prefll_lvl參數(shù))以及深度(depth)參數(shù),則DW_stream_sync可以同時(shí)稍微加快和稍微放慢地處理輸入的數(shù)據(jù)流。此項(xiàng)能力對(duì)于提高數(shù)據(jù)源會(huì)在一些較小誤差范圍內(nèi)變動(dòng)時(shí)的互操作性是實(shí)用的。


特殊情況-復(fù)位/清零
DesignWare Library內(nèi)有幾種類型的IP可以幫助您處理跨時(shí)鐘域事件同步時(shí)的特殊問題。這些問題當(dāng)中包括了對(duì)復(fù)位和清零信號(hào)的控制。
如果一個(gè)FIFO控制器的目的側(cè)在源側(cè)之間進(jìn)行了清零和釋放,則目的地有可能依據(jù)舊的指針信息而采取行動(dòng)。您可以通過采用一個(gè)復(fù)位序列同步器DW_reset_sync來防止此類問題的發(fā)生(圖22)。此IP能夠正確地為源域和目的域內(nèi)的邏輯電路的同步清零設(shè)定次序,以確??諣顟B(tài)或閑置狀態(tài)的產(chǎn)生。



Source …:源側(cè)控制
Dest. …:目的側(cè)控制


圖22 DW_reset_sync復(fù)位序列同步器

DW_reset_sync能夠采用源側(cè)或目的側(cè)啟動(dòng)的清零操作來控制源域和目的域的邏輯清零的正確序列。圖23所示是源側(cè)啟動(dòng)方法的時(shí)序,側(cè)圖24所示為目的側(cè)方法。



圖23 DW_reset_sync源側(cè)啟動(dòng)的時(shí)序


圖24 DW_reset_sync目的側(cè)啟動(dòng)的時(shí)序特殊情況-相關(guān)時(shí)鐘系統(tǒng)

一些設(shè)計(jì)采用了源自于同一個(gè)主時(shí)鐘的多個(gè)時(shí)鐘域。如果您通過時(shí)鐘樹限制了時(shí)鐘偏移現(xiàn)象,則可以采用一種高效的方法來跨越這種時(shí)鐘邊界來獲取數(shù)據(jù)。
Source …:源側(cè)捕獲寄存器


(high …):高速域
Destination …:目的側(cè)捕獲寄存器



圖25a – 大于2的時(shí)鐘比率


圖25b-等于2的時(shí)鐘比率

Source …:源側(cè)捕獲寄存器
(high …):高速域
Destination …:目的側(cè)捕獲寄存器


圖25 用于低頻至高頻時(shí)鐘的準(zhǔn)同步數(shù)據(jù)接口DW_data_qsync_lh

具體來說,DW_data_qsync_lh提供了一種可用于低頻至高頻時(shí)鐘的準(zhǔn)同步數(shù)據(jù)接口(圖25)。換句話說,數(shù)據(jù)從較慢的源域發(fā)送至較快的目的域。如果時(shí)鐘比率為2,則目的域的第一個(gè)觸發(fā)器將是一個(gè)負(fù)邊沿觸發(fā)器。否則,所有觸發(fā)器(兩個(gè)域內(nèi))均為正邊沿型。


圖26所示為采用DW_data_qsync_lh進(jìn)行數(shù)據(jù)傳輸時(shí)的時(shí)序。正如此時(shí)序圖所示,IP確保了在時(shí)鐘相關(guān)以及目的時(shí)鐘快于源時(shí)鐘時(shí)的同步數(shù)據(jù)傳輸。



Internal …:內(nèi)部輸入捕獲寄存器
Previous data:以前的數(shù)據(jù)


圖26. DW_data_qsync_lh時(shí)序


圖27a – 時(shí)鐘比率大于2

(low-speed domain):低速域
Control …:控制狀態(tài)機(jī)
Timing reference:時(shí)序基準(zhǔn)



圖27b-等于2的時(shí)鐘比率

圖27 用于低頻至高頻時(shí)鐘的準(zhǔn)同步數(shù)據(jù)接口DW_data_qsync_hl
如果您必須從較快的目的域向較慢的源域傳輸數(shù)據(jù),則采用另一個(gè)IP產(chǎn)品DW_data_qsync_hl可讓您安全地管理好時(shí)序。這個(gè)適用于低頻至高頻時(shí)鐘的準(zhǔn)同步數(shù)據(jù)接口采用了一個(gè)時(shí)序基準(zhǔn)信號(hào)來決定數(shù)據(jù)變化用的正確時(shí)刻(圖27)。如上所示,如果時(shí)序比率為2,則實(shí)現(xiàn)方案采用負(fù)邊沿觸發(fā)器,但在這一情況下,是源域內(nèi)用于采樣來自目的域時(shí)序基準(zhǔn)信號(hào)的觸發(fā)器采用負(fù)邊沿觸發(fā)器。圖28所示為一個(gè)DW_data_qsync_hl運(yùn)行時(shí)的時(shí)序圖。



Previous data:以前的數(shù)據(jù)


圖28. DW_data_qsync_hl時(shí)序CDC收斂問題

在兩個(gè)或多個(gè)信號(hào)只采用多個(gè)寄存器(例如DW_sync)進(jìn)行同步,并且隨后這些信號(hào)在目的時(shí)鐘域內(nèi)組合成單一邏輯表達(dá)時(shí)(圖29),才存在跨時(shí)鐘域收斂的問題。



Signal A …:信號(hào)A邏輯電路
Signal B …:信號(hào)B邏輯電路
Clk_s …:clk_s域
Multiple …:多寄存器同步器
Logic combines …:組合了來自clk_s域信號(hào)的邏輯電路
Clk_d …:clk_d域


圖29 跨時(shí)鐘域收斂

即使諸如Synopsys的Leda這樣的代碼檢查工具能夠識(shí)別出CDC收斂的實(shí)例,但這些工具卻不能決定這種收斂是否代表著一種功能上的錯(cuò)誤。其潛在問題是,依靠多寄存器同步器的統(tǒng)一均勻時(shí)延的狀態(tài)機(jī)的設(shè)計(jì)有可能在芯片上不能正確運(yùn)行。
正常的仿真并不能揭示出這種問題,因?yàn)槎嗉拇嫫魍狡髟诜抡鏁r(shí)每一次均會(huì)表現(xiàn)出完全相同的時(shí)延。而在真實(shí)情況下,在信號(hào)變化與采樣時(shí)鐘配合起來后,其變化有時(shí)候會(huì)通過N個(gè)時(shí)鐘的N級(jí)同步而傳遞下去,而在其它時(shí)候這些變化要用掉N+1個(gè)時(shí)鐘。除了MTBF非常低以外,這種問題在芯片上發(fā)生得并不頻繁,所以,可能只有在幾周運(yùn)行后才能發(fā)覺。
一種檢測(cè)這種誤采樣問題的方式是在仿真時(shí)采用一種特殊的觸發(fā)器模型(圖30)。但是,正如真實(shí)世界一樣,只有在采樣觸發(fā)器發(fā)生違反現(xiàn)象時(shí),這些仿真才會(huì)顯示出問題,這也是一種極少發(fā)生的現(xiàn)象。您將需要占用大量的仿真時(shí)間才能合理地確認(rèn)沒有收斂問題的存在。



Clock …:時(shí)鐘至Q延遲
+Noise:噪聲
Metastability …:亞穩(wěn)態(tài)觸發(fā)器模型


圖30 用于檢測(cè)誤采樣的觸發(fā)器模型

一種更好的方法是采用一個(gè)包含了一個(gè)復(fù)用器的誤采樣模型。這種方法是基于認(rèn)識(shí)到,在目的邏輯電路對(duì)一個(gè)正在變化的位進(jìn)行采樣時(shí),所捕獲的最終數(shù)值只有可能是兩種可能數(shù)值之一,即:最新輸入數(shù)值或來自以前周期的輸入數(shù)值。而在同步器的第一個(gè)觸發(fā)器前設(shè)置一個(gè)復(fù)用器時(shí),就可以通過控制這個(gè)復(fù)用器來建立誤采樣行為的模型(圖31)。



Missample …:誤采樣控制
Synchronizer input:同步器輸入
History …:歷史寄存器
Two …:兩級(jí)同步
Sychronizer output:同步器輸出


圖31 基于復(fù)用器的誤采樣檢測(cè)

這個(gè)誤采樣方法已經(jīng)內(nèi)嵌于DW_sync組件之內(nèi)以及所有其它采用了DW_sync的DesignWare CDC IP。
在運(yùn)行當(dāng)中,由一個(gè)偽隨機(jī)數(shù)字發(fā)生器來提供對(duì)每一個(gè)同步器輸入位的隨機(jī)控制。對(duì)于Verilog仿真,可定義一個(gè)采用以下特征的宏: vcs +defne+DW_MODEL_MISSAMPLES…
對(duì)于VHDL,采用 …_cfg_sim_ms配置:
對(duì)于U1:DW_sync采用配置dw03.DW_sync_cfg_sim_ms; end for;
您可通過設(shè)置參數(shù)verif_en = 0而按照每一個(gè)實(shí)例的具體情況禁用此項(xiàng)特征。如表1所示,您還有其它兩種verif_en選擇方案。圖32所示為verif_en = 1時(shí)的DW_sync的誤采樣原理框圖。


verif_en數(shù)值 0 1 2
時(shí)延(周期) ?_sync_type ?_sync_type to ?_sync_type + 1 ?_sync_type to ?_sync_type + 3


表1 verif_en參數(shù)的數(shù)值請(qǐng)注意,“?_sync_type”指參數(shù)f_sync_type (適用于源域至目的域的時(shí)延)或r_sync_type(適用于從目的域至源域的時(shí)延)之中任一個(gè)的數(shù)值。


Width:寬度
Width:寬度
To …:至第1級(jí)同步觸發(fā)器
Random …:隨機(jī)數(shù)發(fā)生器
Random …:隨機(jī)數(shù)發(fā)生器


圖32 在verif_en = 1時(shí)的DW_sync誤采樣檢測(cè)

請(qǐng)牢記,在輸入時(shí)序偏移很大時(shí),誤采樣有可能在多個(gè)時(shí)鐘周期內(nèi)持續(xù)存在-只能在使用DW_data_sync_1c的芯片外數(shù)據(jù)同步情況下才可經(jīng)常見到。在設(shè)置verif_en = 2時(shí),DesignWare Library CDC組件可以通過多達(dá)3個(gè)時(shí)鐘周期來“模糊”數(shù)據(jù)過渡現(xiàn)象。圖33所示為這種情況下的誤采樣原理框圖。從4個(gè)可能選項(xiàng)之中選擇2位隨機(jī)數(shù)值,其中包括了串聯(lián)的3個(gè)歷史寄存器。



Width:寬度
Width:寬度
To …:至第1級(jí)同步觸發(fā)器
Random …:隨機(jī)數(shù)發(fā)生器
Random …:隨機(jī)數(shù)發(fā)生器


圖33 在verif_en = 2時(shí)的DW_sync誤采樣檢測(cè)

DW_sync內(nèi)所采用的誤采樣模型也可以用于建立在對(duì)同一時(shí)刻有一個(gè)以上位發(fā)生變化的總線進(jìn)行采樣時(shí)有可能出現(xiàn)的瞬態(tài)虛假數(shù)據(jù)的模型。如果認(rèn)為自己的設(shè)計(jì)不會(huì)受這些虛假數(shù)值的影響,則可以通過采用這種誤采樣建模方法來加強(qiáng)自己的信心。DW_ sync可以隨機(jī)為每一個(gè)總線位選擇舊數(shù)值或新數(shù)值來生成過渡數(shù)值(圖34)。



Source …:源總線
Destination …:目的總線
1st …:第1個(gè)同步寄存器
2nd …:第2個(gè)同步寄存器
Intermediate:過渡數(shù)值
Intermediate:過渡數(shù)值


圖34 能夠捕獲虛假數(shù)值的誤采樣模型

由于誤采樣在實(shí)際運(yùn)行中發(fā)生頻度極低(除非在MTBF非常低的情況下),通常您必須等上很長(zhǎng)時(shí)間才能見到與CDC機(jī)制相關(guān)的問題。此模型采用了DW_sync,通過造成誤采樣行為的頻繁發(fā)生來惡化這種問題。具體來說,在一次誤采樣延時(shí)當(dāng)中,DW_sync的每一位均通過了50%的數(shù)據(jù)過渡現(xiàn)象。這樣,如果在一個(gè)合理數(shù)量的CDC事務(wù)處理內(nèi)對(duì)DW_sync誤采樣建模的系統(tǒng)仿真成功的話,則您可非常確保實(shí)際芯片內(nèi)不會(huì)發(fā)生CDC問題。


工藝映射問題

與CDC同步相關(guān)的另一個(gè)特殊問題是多寄存器同步器向技術(shù)單元的映射。在Design Compiler將兩個(gè)觸發(fā)器映射到一個(gè)目標(biāo)庫(kù)的同一行上時(shí),此工具會(huì)不可避免地選擇能夠滿足時(shí)序限制條件的最小面積的單元,而不是對(duì)同步最好的觸發(fā)器。因此,您通常想要通過手動(dòng)方式或通過腳本方式用已知的“亞穩(wěn)態(tài)強(qiáng)化”觸發(fā)器來替代這些觸發(fā)器。
自DesignCompiler的B-2008.09版本開始,您就可以指定一個(gè)或多個(gè)“亞穩(wěn)態(tài)強(qiáng)化”觸發(fā)器在DesignWare CDC組件向您目標(biāo)技術(shù)的映射中自動(dòng)應(yīng)用了。此項(xiàng)能力是通過將“synlib_preferred_ffs” DC變量賦予技術(shù)單元名稱列表而達(dá)成的。例如,如果您的技術(shù)庫(kù)包含了名稱為FFSYNCFD1和FFSYNCFD2的已認(rèn)定為“亞穩(wěn)態(tài)強(qiáng)化”的兩個(gè)不同觸發(fā)器時(shí),則以下命令將實(shí)現(xiàn)這些單元的正確映射:
set synlib_preferred_ffs “FFSYNCFD1 FFSYNCFD2”
請(qǐng)注意,此DC變量的數(shù)值是一個(gè)單獨(dú)的文本串,則不是一個(gè)Tcl列表,而且此機(jī)制目的只支持單個(gè)觸發(fā)器技術(shù)單元。
對(duì)于B-2008.09前的Design Compiler來說,您可以使用Tcl腳本來查找您設(shè)計(jì)中的DW_sync同步器寄存器,并用用戶指定的觸發(fā)器實(shí)例來替代它們。我們可按您的請(qǐng)求提供示例腳本。


附錄A-采用提前確認(rèn)(ack_delay=0)時(shí)的頻率限制

在采用具備提前確認(rèn)功能的DW_data_sync組件時(shí),設(shè)計(jì)人員需要意識(shí)到,在源時(shí)鐘快至足以對(duì)提前確認(rèn)進(jìn)行同步并且在目的域能夠捕獲到給出確認(rèn)的數(shù)據(jù)之前就更新了數(shù)據(jù)寄存器時(shí),就會(huì)存在運(yùn)行風(fēng)險(xiǎn)。
在源時(shí)鐘校準(zhǔn)至其上升沿緊跟著用于產(chǎn)生提前確認(rèn)信號(hào)的目的時(shí)鐘上升沿時(shí),就會(huì)發(fā)生最差情景下的場(chǎng)景。在這種情況下,第一個(gè)確認(rèn)同步寄存器會(huì)立刻捕獲到這個(gè)確認(rèn)信號(hào),而這個(gè)確認(rèn)信號(hào)才剛剛維持住,而且新數(shù)據(jù)得到最快速的應(yīng)用(由于確認(rèn)信號(hào)的原因)。這種危險(xiǎn)情況以下面的圖中進(jìn)行了說明,圖中采用了一個(gè)位于DW_data_sync內(nèi)帶有提前確認(rèn)(即,ack_delay參數(shù)設(shè)置為零)的兩級(jí)同步(也就是r_sync_type參數(shù)設(shè)置為2)的設(shè)計(jì)方案。



Synchronization ….:在ack_delay=0, r_sync_type=2以及clk_s過快時(shí)的同步危險(xiǎn)情況
Internal …:內(nèi)部確認(rèn)信號(hào)
Internal data to capture:要捕獲的內(nèi)部數(shù)據(jù)
New data:新數(shù)據(jù)


Ack …:clk_s確認(rèn)同步器的第一級(jí)剛剛檢測(cè)到時(shí),確認(rèn)信號(hào)就發(fā)出了(在clk_d內(nèi))
Second …:確認(rèn)同步器的第二級(jí)檢測(cè)到這個(gè)確認(rèn)信號(hào)
Data …:在新數(shù)據(jù)由clk_s取得時(shí),數(shù)據(jù)由clk_d捕獲到


因此,以下公式必須保持為真:


更方便的形式是:


如果時(shí)鐘抖動(dòng)和保持時(shí)間均考慮在內(nèi),則最差情況下的時(shí)序調(diào)校情況會(huì)是,在一個(gè)正在內(nèi)部發(fā)出的確認(rèn)信號(hào)存在clk_d內(nèi)最早的峰值間抖動(dòng)時(shí),與此同時(shí),存在抖動(dòng)的clk_s在最遲可能的峰值間時(shí)刻發(fā)出一個(gè)上升沿。這樣,最遲可能的峰值間抖動(dòng)clk_d就需要發(fā)生在比最早的峰值間抖動(dòng)clk_s更早的位置,且領(lǐng)先幅度至少為寄存器捕獲data_d所要求的保持時(shí)間。



Add …:增加時(shí)鐘抖動(dòng)(不確定性)以及必要的數(shù)據(jù)捕獲保持時(shí)間


Internal …:內(nèi)部確認(rèn)信號(hào)


因此,以下公式必須保持為真:



更方便的形式時(shí):



Internal …:要捕獲的內(nèi)部數(shù)據(jù)
Hold time:保持時(shí)間
New data:新數(shù)據(jù)


因此,以下公式必須保持為真:



采用更方便的形式時(shí):



Pclk_d:clk_d的周期
Pclk_s:clk_s的周期
Fclk_d:clk_d的頻率
Fclk_s:clk_s的頻率
r_sync_type:同步級(jí)數(shù)
Jclk_d:Clk_d的峰值間抖動(dòng)
Jclk_s:Clk_s的峰值間抖動(dòng)
Thold:數(shù)據(jù)寄存器的保持時(shí)間要求


這些計(jì)算以下列假設(shè)為基礎(chǔ):
1) 在其抖動(dòng)窗口內(nèi)最遲可能位置處發(fā)生的clk_d的上升沿位于處于其盡早可能位置的clk_s上升沿之后一個(gè)周期的可能性不為零。
2) 發(fā)生在其抖動(dòng)窗口內(nèi)其最早可能位置的clk_s的某個(gè)上升位于其最遲可能位置處的clk_s的上升沿后N個(gè)周期的可能性不為零(其中N為所采用的同步級(jí)數(shù),也就是,N = r_sync_type)。
如果所給出的公式受限過多,而且可以精確地測(cè)定出clk_s和clk_d的最大周期間掉抖動(dòng)時(shí),則可以使用如下的Jclk_s和Jclk_d定義。



附錄B-使用DW_data_sync_na時(shí)的頻率限制在使用DW_data_sync_na時(shí),目的時(shí)鐘的頻率必須快至足以在源時(shí)鐘域可能再次改變其內(nèi)部捕獲數(shù)據(jù)的最早時(shí)刻之前,以“充分的時(shí)間”捕獲來自源時(shí)鐘域的數(shù)據(jù)。
最差情景是,在目的時(shí)鐘校準(zhǔn)至其上升沿緊隨在用于產(chǎn)生內(nèi)部數(shù)據(jù)改變標(biāo)志位的源時(shí)鐘上升沿之后的情況下。在這種情況下,第一個(gè)數(shù)據(jù)標(biāo)志位同步寄存器幾乎失去了對(duì)數(shù)據(jù)標(biāo)志位的捕獲,而且隨后(在目的時(shí)針的3個(gè)周期之后),源域主就再次改變了數(shù)據(jù)。這種危險(xiǎn)狀況在下面的時(shí)序圖內(nèi)用DW_data_sync_na設(shè)計(jì)內(nèi)的兩級(jí)同步(也就是,f_sync_type參數(shù)設(shè)置為2)時(shí)進(jìn)行了說明。


Synchronization ….:在clk_s不夠快時(shí),DW_data_sync_na所發(fā)生的同步危險(xiǎn)
Internal data change flag:內(nèi)部數(shù)據(jù)改變標(biāo)志
Internal …:要捕獲的內(nèi)部數(shù)據(jù)
New data:新數(shù)據(jù)
- Data…:數(shù)據(jù)已在內(nèi)部捕獲,數(shù)據(jù)改變標(biāo)志位切換,指示新數(shù)據(jù)可用
- First ….:數(shù)據(jù)改變標(biāo)志同步器的第一級(jí)幾乎錯(cuò)失掉數(shù)據(jù)標(biāo)志位的改變
First stage …:數(shù)據(jù)改變標(biāo)志同步器的第一級(jí)檢測(cè)到此改變
Second …:數(shù)據(jù)改變標(biāo)志同步器的第二級(jí)檢測(cè)到此改變
Data captured …:數(shù)據(jù)由clk_d所捕獲,同時(shí)新數(shù)據(jù)也由clk_s進(jìn)行了內(nèi)部緩存
如果考慮到時(shí)鐘抖動(dòng)和保持時(shí)間,最差情況下的時(shí)序調(diào)校將是,內(nèi)部數(shù)據(jù)標(biāo)志位的變化發(fā)生在處于其峰值間抖動(dòng)最遲位置的clk_s上升沿,此時(shí)(在同一時(shí)間)有一個(gè)clk_d的上升沿處于其峰值間抖動(dòng)的最早可能位置。這樣,對(duì)于處于其峰值間抖動(dòng)最早可能位置的緊跟著的下一個(gè)clk_s上升沿來說,其發(fā)生時(shí)間就需要比處于峰值間抖動(dòng)最遲可能位置的clk_d上升沿遲出至少寄存器捕獲data_d所要求的保持時(shí)間。



Adding …:添加時(shí)鐘抖動(dòng)(不確定性)以及必要的數(shù)據(jù)捕獲保持時(shí)間
Internal …:內(nèi)部數(shù)據(jù)改變標(biāo)志位
Internal data …:要捕獲的內(nèi)部數(shù)據(jù)
New …:新數(shù)據(jù)
Hold …:保持時(shí)間


因此,如下公式必須保持為真:



更為方便的形式是:



Pclk_d:clk_d的周期
Pclk_s:clk_s的周期
Fclk_d:clk_d的頻率
Fclk_s :clk_s的頻率
f_sync_type :同步級(jí)數(shù)
Jclk_d:Clk_d的峰值間抖動(dòng)
Jclk_s:Clk_s的峰值間抖動(dòng)
Thold :數(shù)據(jù)寄存器的保持時(shí)間要求


這些計(jì)算以下列假設(shè)為基礎(chǔ):


1) 在其抖動(dòng)窗口內(nèi)最早可能位置處發(fā)生的clk_d的上升沿位于處于其最遲可能位置的clk_s上升沿之后一個(gè)周期的可能性不為零。
2) 發(fā)生在其抖動(dòng)窗口內(nèi)其最遲可能位置的clk_d的上升沿位于最早可能位置處的clk_d的上升沿后N個(gè)周期的可能性不為零(其中N為所采用的同步級(jí)數(shù)加1,也就是,N = f_sync_type+1)。
如果所給出的公式受限過多,而且可以精確地測(cè)定出clk_s和clk_d的最大周期間掉抖動(dòng)時(shí),則可以使用如下的Jclk_s和Jclk_d定義。



[1] 此項(xiàng)通用規(guī)劃假設(shè)觸發(fā)器延時(shí)和時(shí)鐘抖動(dòng)在任何時(shí)候都不會(huì)超過clk_d時(shí)鐘周期的1/4以上。有關(guān)此種情形下的更詳細(xì)計(jì)算方式請(qǐng)參見附錄A。[2] 此項(xiàng)通用規(guī)劃假設(shè)觸發(fā)器延時(shí)和時(shí)鐘抖動(dòng)在任何時(shí)候都不會(huì)超過clk_d時(shí)鐘周期的1/4以上。有關(guān)此種情形下的更詳細(xì)計(jì)算方式請(qǐng)參見附錄B。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多