• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      多時(shí)鐘域下數(shù)據(jù)傳輸?shù)耐教接?/h1>
      2014-04-29 00:44:03趙文晗
      電子世界 2014年19期

      【摘要】本文針對(duì)多時(shí)鐘域下的片上網(wǎng)絡(luò)在跨時(shí)鐘域傳輸數(shù)據(jù)時(shí)所遇到的問(wèn)題進(jìn)行分析,并探討其解決的方法。同時(shí)對(duì)異步時(shí)鐘的數(shù)據(jù)同步的幾種主要方法(同步器,握手傳輸,格雷碼傳輸?shù)龋┻M(jìn)行仿真驗(yàn)證和功能比較。

      【關(guān)鍵詞】片上網(wǎng)絡(luò);多時(shí)鐘域;數(shù)據(jù)同步法

      1.引言

      片上網(wǎng)絡(luò)是一種新的片上互連結(jié)構(gòu)。使用片上網(wǎng)絡(luò)作為片上互連結(jié)構(gòu)的微系統(tǒng)芯片稱為片上網(wǎng)絡(luò)系統(tǒng)。由于片上網(wǎng)絡(luò)本身就是全局異步而局部同步的,片上網(wǎng)絡(luò)中存在多個(gè)時(shí)鐘域,不同時(shí)鐘域之間采用的是異步通信。數(shù)據(jù)在不同時(shí)鐘域之間傳輸時(shí),由于時(shí)鐘頻率的不同,勢(shì)必會(huì)出現(xiàn)亞穩(wěn)態(tài)等數(shù)據(jù)傳輸錯(cuò)誤的問(wèn)題。

      2.亞穩(wěn)態(tài)現(xiàn)象

      當(dāng)觸發(fā)器或鎖存器無(wú)法在時(shí)序要求的規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)確定的狀態(tài) [1]時(shí)就會(huì)出現(xiàn)亞穩(wěn)態(tài),引起整個(gè)系統(tǒng)的功能混亂,傳輸?shù)臄?shù)據(jù)也會(huì)出現(xiàn)復(fù)寫現(xiàn)象甚至直接丟失數(shù)據(jù)。

      亞穩(wěn)態(tài)出現(xiàn)后,也就意味著觸發(fā)器的輸出達(dá)到一個(gè)穩(wěn)定的低電平或者高電平狀態(tài)所需要的時(shí)間大于從時(shí)鐘到輸出的時(shí)間。觸發(fā)器的輸出在進(jìn)入亞穩(wěn)態(tài)后的這段時(shí)間內(nèi)將在低電平0和高電平1之間來(lái)回一段時(shí)間。此時(shí)既無(wú)法預(yù)測(cè)何時(shí)才能將輸出穩(wěn)定在某一正確的電平上,也無(wú)法預(yù)測(cè)輸出電平。這段時(shí)間稱為判決時(shí)間(Resolution Time),這之后輸出與輸入沒(méi)有必然的聯(lián)系,最后輸出的是0還是1,結(jié)果都是無(wú)法預(yù)測(cè)的。

      亞穩(wěn)態(tài)還會(huì)嚴(yán)重破壞系統(tǒng)的穩(wěn)定性。由于輸出的信號(hào)在穩(wěn)定前出現(xiàn)的固定的某一電壓值,毛刺或振蕩可能會(huì)導(dǎo)致邏輯上的誤判。更嚴(yán)重的是,亞穩(wěn)態(tài)所產(chǎn)生的數(shù)據(jù)傳輸失真還會(huì)使下一級(jí)也產(chǎn)生亞穩(wěn)態(tài),導(dǎo)致連鎖反應(yīng),即亞穩(wěn)態(tài)的傳播,進(jìn)而引起整個(gè)系統(tǒng)的功能混亂,擴(kuò)大故障面。

      另外,處在亞穩(wěn)態(tài)時(shí),電源干擾,環(huán)境噪聲,工作溫度等細(xì)微的擾動(dòng)都有可能造成更惡劣的狀態(tài),這時(shí)系統(tǒng)數(shù)據(jù)傳輸?shù)难舆t增大,狀態(tài)輸出錯(cuò)誤。

      究其因,亞穩(wěn)態(tài)主要是由于保持時(shí)間Thold或建立時(shí)間Tset在第一級(jí)的觸發(fā)器中發(fā)生沖突所導(dǎo)致的。

      對(duì)于使用上升沿觸發(fā)的觸發(fā)器來(lái)說(shuō),Thold就是觸發(fā)器的數(shù)據(jù)端數(shù)據(jù)在時(shí)鐘上升沿到來(lái)之后能夠繼續(xù)保持穩(wěn)定的最小時(shí)間[2]。而Tset則是觸發(fā)器的數(shù)據(jù)端數(shù)據(jù)在時(shí)鐘的上升沿到來(lái)之前保持穩(wěn)定的最小時(shí)間。數(shù)據(jù)的Thold與Tset都是觸發(fā)器的基本參數(shù)。同時(shí)觸發(fā)器還是數(shù)字電路設(shè)計(jì)中最常用的基本時(shí)序元件。為確保觸發(fā)器的正常工作以及操作的可靠性,輸入的信號(hào)必須在其工作過(guò)程中的觸發(fā)器的Tset之前保持穩(wěn)定,并且一直持續(xù)到觸發(fā)器的Thold才能發(fā)生改變,這就是必須滿足的數(shù)據(jù)建立時(shí)間與保持時(shí)間的約束。如果這種約束得不到滿足(如時(shí)序的余量不夠),使電路中的輸入電平無(wú)法上升或下降到所需要的邏輯電平1或0,觸發(fā)器就會(huì)進(jìn)入到某個(gè)不確定的狀態(tài)——亞穩(wěn)態(tài)[3]。如圖1所示:

      圖1 亞穩(wěn)態(tài)產(chǎn)生示意圖

      圖1中,tres為判決時(shí)間,tnet是從第一級(jí)觸發(fā)器輸出端到第二級(jí)觸發(fā)器輸入端的延時(shí),tw表示的是觸發(fā)器的輸入數(shù)據(jù)變化可能導(dǎo)致亞穩(wěn)態(tài)發(fā)生的窗口。這個(gè)窗口由Thold和Tset兩部分組成。tco為輸出相對(duì)于時(shí)鐘沿的一個(gè)延遲時(shí)間,th是觸發(fā)器Thold ,ts表示的是觸發(fā)器的Tset。

      3.多時(shí)鐘域數(shù)據(jù)傳輸?shù)耐椒椒ㄓ懻?/p>

      當(dāng)片上網(wǎng)絡(luò)系統(tǒng)中出現(xiàn)有兩個(gè)甚至兩個(gè)以上的非同源時(shí)鐘時(shí),傳輸數(shù)據(jù)的Tset和Thold都很難得到保證。通常是對(duì)多時(shí)鐘域下各個(gè)模塊之間的接口部分做同步化處理,這樣才能更好的避免亞穩(wěn)態(tài)的出現(xiàn),這就要求同步化所有的非同源時(shí)鐘。

      常用的同步化方案很多,而且各有特點(diǎn)。針對(duì)不同的傳輸數(shù)據(jù)類型,多時(shí)鐘域下的數(shù)據(jù)傳輸應(yīng)該采用不同的傳遞方案,以盡量滿足可靠傳輸?shù)男枰?/p>

      3.1 同步器

      在異步時(shí)鐘域之間,為避免亞穩(wěn)態(tài)的發(fā)生,通常是使用一系列的寄存器鏈來(lái)實(shí)現(xiàn)同步,這類寄存器鏈被稱作同步器。其中寄存器到寄存器路徑上的時(shí)序裕量可以為潛在的亞穩(wěn)態(tài)到達(dá)電路的其他部位提供一些判決時(shí)間,以便能達(dá)到穩(wěn)定的值。這可防止第一級(jí)寄存器中出現(xiàn)的亞穩(wěn)態(tài)在下一級(jí)寄存器里傳播。

      一般來(lái)說(shuō),同步器的功能是對(duì)異步的輸入信號(hào)進(jìn)行采樣,使其產(chǎn)生的輸出信號(hào)能夠滿足系統(tǒng)對(duì)建立時(shí)間和保持時(shí)間的要求,進(jìn)而抑制住亞穩(wěn)態(tài)對(duì)電路的影響。

      對(duì)于控制信號(hào)的多時(shí)鐘域數(shù)據(jù)傳輸來(lái)說(shuō),比較常用的同步策略是兩級(jí)觸發(fā)器同步,即一個(gè)信號(hào)要進(jìn)入下一個(gè)時(shí)鐘域之前,先用下一個(gè)時(shí)鐘域的時(shí)鐘進(jìn)行兩次寄存。這種設(shè)計(jì)也叫做雙跳技術(shù),是其他同步器的基礎(chǔ)。在設(shè)計(jì)時(shí),應(yīng)注意把這兩個(gè)寄存器放置的盡可能的靠近,以確保兩者之間的時(shí)滯最小。從上個(gè)時(shí)鐘域傳來(lái)的異步數(shù)據(jù)不需要通過(guò)時(shí)鐘域間的任何組合邏輯,在離開該時(shí)鐘域后就直接進(jìn)入到兩個(gè)時(shí)鐘域之間的同步器中。這是一個(gè)不容忽視的條件。因?yàn)閿?shù)據(jù)在通過(guò)時(shí)鐘域之間的組合邏輯時(shí),很有可能會(huì)產(chǎn)生各種毛刺等,而這些毛刺很容易被同步器中的寄存器感應(yīng)到,甚至如果有滿足保持時(shí)間/建立時(shí)間的約束的毛刺,同步器中的寄存器很有可能會(huì)把毛刺當(dāng)做正常傳輸?shù)臄?shù)據(jù)而進(jìn)行數(shù)據(jù)采集,這樣在發(fā)送給下一個(gè)時(shí)鐘域時(shí)會(huì)得到一個(gè)完全錯(cuò)誤的數(shù)據(jù)。如圖2所示。

      圖2 兩級(jí)同步器

      在圖2中,左邊所示為異步的輸入端,經(jīng)過(guò)兩級(jí)觸發(fā)器的采樣后,在右邊輸出與時(shí)鐘clock2同步。此時(shí)經(jīng)過(guò)兩級(jí)觸發(fā)器后產(chǎn)生的同步信號(hào)已經(jīng)基本沒(méi)有亞穩(wěn)態(tài)了[4-6]。

      其原因是,經(jīng)過(guò)一個(gè)時(shí)鐘周期后,即使在第一個(gè)觸發(fā)器的輸出端存在有亞穩(wěn)態(tài),但在第二個(gè)觸發(fā)器輸入端的輸入電平,其尚未穩(wěn)定的概率非常小,因此在第二個(gè)觸發(fā)器輸出端基本不會(huì)產(chǎn)生亞穩(wěn)態(tài)。

      可見(jiàn),用兩級(jí)寄存器采樣可有效地減少亞穩(wěn)態(tài)繼續(xù)傳播的概率。但是并不能完全保證第二個(gè)觸發(fā)器輸出的電平就是正確的電平。如上文所述,經(jīng)過(guò)判決時(shí)間(Resolution Time)后的寄存器輸出電平是一個(gè)不確定的穩(wěn)態(tài)值,即是說(shuō)明兩級(jí)觸發(fā)器的處理方法不能完全排除錯(cuò)誤的采樣。這就要求系統(tǒng)對(duì)采樣錯(cuò)誤能夠有一定程度的容忍度,比如有些系統(tǒng)本身就對(duì)錯(cuò)誤的采樣不敏感。但是對(duì)有些比較敏感的系統(tǒng),可以使用糾錯(cuò)編碼的手段完成錯(cuò)誤采樣的糾正。

      同步器使用的觸發(fā)器一般是D觸發(fā)器。使用同步器的目的是采樣異步的輸入信號(hào),并產(chǎn)生同時(shí)滿足同步系統(tǒng)Tset和Thold要求的輸出信號(hào)。

      在涉及多時(shí)鐘域的數(shù)據(jù)傳輸問(wèn)題時(shí),設(shè)計(jì)的基本思路只能是盡可能的減少亞穩(wěn)態(tài)出現(xiàn)的概率。因?yàn)橐胪耆齺喎€(wěn)態(tài)是不可能的。

      如果同步器的設(shè)計(jì)無(wú)法滿足實(shí)際的需求,為了給電路從亞穩(wěn)態(tài)中恢復(fù)過(guò)來(lái)提供時(shí)間,可適當(dāng)?shù)脑黾右恍┩郊拇嫫麈溨械募拇嫫?。一個(gè)有效的數(shù)據(jù)信號(hào)在同步器中只需要通過(guò)兩個(gè)時(shí)鐘周期就可以達(dá)到下一個(gè)時(shí)鐘域。在設(shè)計(jì)時(shí)還要考慮同步延遲對(duì)跨時(shí)鐘域的信號(hào)時(shí)序造成的影響,因同步器降低亞穩(wěn)態(tài)對(duì)電路的影響是以犧牲時(shí)間為代價(jià)的。

      使用上述兩級(jí)同步器法的缺點(diǎn)是一般只應(yīng)用于同步控制信號(hào),例如單根的數(shù)據(jù)傳輸,而且只適合一些不太追求性能的場(chǎng)合。當(dāng)進(jìn)行多位的總線數(shù)據(jù)傳輸時(shí),每一個(gè)數(shù)據(jù)傳輸?shù)较乱患拇嫫鞯臅r(shí)間都無(wú)法同步。于是在通過(guò)二級(jí)寄存器同步后,很有可能出現(xiàn)一些數(shù)據(jù)與前一個(gè)時(shí)鐘域的時(shí)鐘同步時(shí),另一些數(shù)據(jù)則與當(dāng)前時(shí)鐘域的時(shí)鐘同步的情況。這樣傳輸數(shù)據(jù)時(shí)就會(huì)造成數(shù)據(jù)傳輸失真,并出現(xiàn)時(shí)鐘的偏移。如使用兩級(jí)同步器方法從快時(shí)鐘域向慢時(shí)鐘域進(jìn)行傳輸數(shù)據(jù),就會(huì)丟失數(shù)據(jù)。因此這種方法只能用于從慢時(shí)鐘域向快時(shí)鐘域傳輸數(shù)據(jù)。但如是從慢時(shí)鐘域向快時(shí)鐘域傳輸單根的數(shù)據(jù)信號(hào),上述方法則是最適用的,電路結(jié)構(gòu)和代碼的編寫都相對(duì)比較簡(jiǎn)單有效,并且傳輸?shù)男矢摺?/p>

      3.2 握手傳輸

      握手傳輸是一種通用且簡(jiǎn)單的同步策略,是通過(guò)握手信號(hào)來(lái)進(jìn)行不同時(shí)鐘域之間的數(shù)據(jù)傳輸?shù)囊环N方法,能有效的實(shí)現(xiàn)總線數(shù)據(jù)的跨時(shí)鐘域通信。這種方法非常廣泛的應(yīng)用于各類通信系統(tǒng)中,能在避免亞穩(wěn)態(tài)的同時(shí)正確的捕獲總線數(shù)據(jù)。

      使用握手傳輸處理跨時(shí)鐘域下的數(shù)據(jù)傳輸時(shí),雙方都要先等待對(duì)方的信號(hào)響應(yīng)[7-9]之后才能中止或聲明各自的握手信號(hào),并且需要分別用脈沖檢測(cè)的方法對(duì)雙方的握手信號(hào)進(jìn)行同步。

      假設(shè)用握手傳輸?shù)姆绞綇南到y(tǒng)X向系統(tǒng)Y傳送數(shù)據(jù),Req和Ack分別是這兩個(gè)系統(tǒng)使用的握手信號(hào)。但由于這兩個(gè)系統(tǒng)發(fā)送的握手信號(hào),都需要使用另一個(gè)系統(tǒng)的時(shí)鐘來(lái)采樣,這樣兩個(gè)系統(tǒng)的保持時(shí)間和建立時(shí)間都無(wú)法得到滿足,這樣就會(huì)導(dǎo)致亞穩(wěn)態(tài)的出現(xiàn)。因此這種過(guò)于直接的處理跨時(shí)鐘域數(shù)據(jù)傳輸?shù)姆椒ㄊ呛苋菀桩a(chǎn)生亞穩(wěn)態(tài)的。

      這時(shí)就需要把兩個(gè)異步時(shí)鐘域的握手信號(hào)在自己的本地時(shí)鐘域中先進(jìn)行同步,該同步通常是使用兩級(jí)的觸發(fā)器,這樣才能有效的避免亞穩(wěn)態(tài)的出現(xiàn)。做法是,只需對(duì)雙方的請(qǐng)求信號(hào)和應(yīng)答信號(hào)分別進(jìn)行同步和脈沖檢測(cè),就能使每個(gè)時(shí)鐘域都清楚的知道對(duì)方處在什么狀態(tài)。全部的時(shí)序是:在第一個(gè)時(shí)鐘域中最多五個(gè)時(shí)鐘周期,再加上下一個(gè)時(shí)鐘域最多六個(gè)時(shí)鐘周期。但是信號(hào)經(jīng)過(guò)一個(gè)時(shí)鐘域要花費(fèi)兩個(gè)時(shí)鐘周期的時(shí)間,而控制信號(hào)的握手檢測(cè)會(huì)耗費(fèi)雙方較多的時(shí)間。由此,要完成所有的交互,整個(gè)過(guò)程將會(huì)花費(fèi)很多的時(shí)鐘周期,這反而降低了傳輸?shù)乃俾省?/p>

      握手傳輸彌補(bǔ)了同步器傳輸?shù)牟蛔?,滿足了從快時(shí)鐘域向慢時(shí)鐘域進(jìn)行的傳輸,而且多位數(shù)據(jù)的傳輸也可以完成。但是,該方法最大缺點(diǎn)就是延遲。傳輸數(shù)據(jù)時(shí)用到的控制信號(hào)越多,數(shù)據(jù)傳遞過(guò)程中的延遲就越大。并且此法犧牲了快時(shí)鐘域的性能,很難實(shí)時(shí)傳輸數(shù)據(jù),往往傳輸一次數(shù)據(jù)就要用到多個(gè)時(shí)鐘周期,這樣導(dǎo)致的后果是降低了整個(gè)系統(tǒng)的效率。因此,該方法適用于數(shù)據(jù)的可靠性較高、系統(tǒng)結(jié)構(gòu)比較簡(jiǎn)單、從快時(shí)鐘域向慢時(shí)鐘域進(jìn)行多位數(shù)據(jù)的傳輸、而對(duì)傳輸?shù)男阅芤蟛桓叩惹闆r。

      3.3 格雷碼傳輸

      當(dāng)讀寫地址指針在異步時(shí)鐘域間傳輸時(shí),我們采用格雷碼數(shù)據(jù)傳輸?shù)姆绞?,把二進(jìn)制形式的讀寫地址指針轉(zhuǎn)換為格雷碼形式的指針,這樣就能夠進(jìn)一步減小亞穩(wěn)態(tài)發(fā)生的概率。

      格雷碼數(shù)據(jù)傳輸主要是希望在傳輸數(shù)據(jù)遞增或遞減時(shí),利用格雷碼來(lái)保證只有一位數(shù)據(jù)進(jìn)行翻轉(zhuǎn)。這樣再通過(guò)同步器進(jìn)行跨時(shí)鐘域數(shù)據(jù)傳輸時(shí)就不會(huì)有數(shù)據(jù)發(fā)生錯(cuò)誤。格雷碼數(shù)據(jù)傳輸在處理跨時(shí)鐘域數(shù)據(jù)傳輸時(shí)利用了格雷碼對(duì)同步器傳輸方法進(jìn)行了優(yōu)化。

      格雷碼數(shù)據(jù)傳輸先將二進(jìn)制的數(shù)據(jù)均轉(zhuǎn)換為格雷碼后再進(jìn)行跨時(shí)鐘域數(shù)據(jù)傳輸,數(shù)據(jù)通過(guò)多位的觸發(fā)器、同步器被直接傳輸至下一個(gè)時(shí)鐘域,在下一個(gè)時(shí)鐘域里再將數(shù)據(jù)從格雷碼還原成原來(lái)的二進(jìn)制,就可以繼續(xù)使用了。

      同步多個(gè)異步的輸入信號(hào)時(shí),據(jù)實(shí)踐可知,同步一個(gè)異步信號(hào)的幾率遠(yuǎn)遠(yuǎn)小于出現(xiàn)亞穩(wěn)態(tài)的幾率。而格雷碼是最小的距離碼,在遞增或遞減時(shí)只需要改變相鄰碼元中的一位。產(chǎn)生的地址指針如果使用格雷碼來(lái)遞增或遞減,只需用到一個(gè)同步器發(fā)揮同步作用,每次也就只需要改變其中一位。因此有著較小的出現(xiàn)亞穩(wěn)態(tài)或數(shù)據(jù)錯(cuò)誤的概率。這樣,讀/寫地址的多時(shí)鐘域數(shù)據(jù)傳輸往往采用格雷碼,可以十分有效的減少亞穩(wěn)態(tài)的發(fā)生,提高同步的效果。

      由于過(guò)多的計(jì)數(shù)器位數(shù)會(huì)大大增加轉(zhuǎn)化計(jì)數(shù)值的電路規(guī)模,因此格雷碼的方法只能應(yīng)用于位數(shù)不是很高的二進(jìn)制連續(xù)遞增或遞減的計(jì)數(shù)器的傳輸。傳輸速度較高,而且結(jié)構(gòu)簡(jiǎn)單。同時(shí),該方法也適合從慢時(shí)鐘域向快時(shí)鐘域傳輸數(shù)據(jù)的情況。

      4.多時(shí)鐘域同步方法的對(duì)比仿真驗(yàn)證

      此處仿真均使用Multisim 10.0作為仿真軟件。

      4.1 兩級(jí)同步器仿真

      本文在Multisim 10中進(jìn)行原理圖繪制時(shí),Multisim 10不似PSPICE的仿真那樣有專門的時(shí)鐘發(fā)生器8284A。所以使用了信號(hào)發(fā)生器發(fā)送方波以模擬時(shí)鐘信號(hào)。此電路需要三塊D觸發(fā)器芯片,本文選擇了74HC74的D觸發(fā)器芯片。由于74HC74是維持阻塞D觸發(fā)器,即觸發(fā)器除了數(shù)據(jù)輸入端,時(shí)鐘輸入端之外,還帶有SD—L置1端和RD—L復(fù)位置0端。SD—L和RD—L均為低電平有效,且不依賴于時(shí)鐘輸入。因此,要使D觸發(fā)器正常工作,就要把SD—L和RD—L接高電平。

      設(shè)計(jì)方案如圖3所示。

      在多時(shí)鐘域下片上網(wǎng)絡(luò)的實(shí)際應(yīng)用中,時(shí)鐘的單位幾乎都是以MHz計(jì)的,此處為了方便于仿真及結(jié)果的顯示,采用以Hz為單位的信號(hào)進(jìn)行時(shí)鐘的仿真。本文先以測(cè)試信號(hào)200Hz,第一個(gè)時(shí)鐘600Hz,第二個(gè)時(shí)鐘400Hz為基礎(chǔ)仿真。

      將測(cè)試信號(hào)data輸入第一個(gè)觸發(fā)器,與第一個(gè)時(shí)鐘aclk進(jìn)行同步,得到同步信號(hào)adat。圖4即是與第一個(gè)時(shí)鐘同步的波形圖。顯示了與之同步時(shí)的輸入輸出。

      圖4 第一個(gè)時(shí)鐘同步波形圖

      之后,與第一個(gè)時(shí)鐘同步后的信號(hào)adat被送入第二級(jí)的兩個(gè)觸發(fā)器,與第二個(gè)時(shí)鐘bclk進(jìn)行同步。最后得到同步信號(hào)bdat2。圖5即是與第二個(gè)時(shí)鐘同步的波形圖。顯示了同步信號(hào)adat,第二個(gè)時(shí)鐘bclk以及最后同步的輸出bdat2。

      圖5 第二個(gè)時(shí)鐘同步波形圖

      由圖5的仿真可看出,adat的脈沖必須比bclk的脈沖寬,否則同步器不會(huì)接收到正確的信號(hào),也不能進(jìn)行正常的仿真。圖6即是在上圖的數(shù)據(jù)基礎(chǔ)上進(jìn)行了修改,使adat的脈沖寬度小于bclk的脈沖寬度,由此得到的結(jié)果,可以看出,此時(shí)的同步是失敗的。

      圖6 adat 脈沖寬度小于bclk 脈沖寬度的同步波形圖

      對(duì)片上網(wǎng)絡(luò)來(lái)說(shuō),一般都是以MHz作為其時(shí)鐘頻率單位。因此再對(duì)電路賦以高頻率的信號(hào)進(jìn)行仿真。測(cè)試信號(hào),第一個(gè)同步的時(shí)鐘和第二個(gè)時(shí)鐘分別取2MHz,6MHz,4MHz的值。圖7即是在邏輯分析儀里進(jìn)行的仿真。同時(shí)包括了第一次同步和第二次同步的結(jié)果。

      圖7 高頻率仿真結(jié)果

      由圖7可知,在高頻率下的同步不是很規(guī)范,和低頻率的相比有時(shí)間上的延時(shí)。但是總的來(lái)說(shuō)是完成了同步的。

      除了有兩級(jí)同步器這個(gè)基本方法外,還有鎖定同步器和結(jié)繩同步器兩種改進(jìn)的同步方法。

      4.2 鎖定法仿真

      鎖定法仿真相對(duì)兩級(jí)觸發(fā)器仿真更具針對(duì)性。鎖定法是專門針對(duì)從快時(shí)鐘域向慢時(shí)鐘域過(guò)渡的信號(hào)。以測(cè)試信號(hào)來(lái)說(shuō),由于兩個(gè)時(shí)鐘域之間的頻率快慢差異太大,當(dāng)它從快時(shí)鐘域傳遞到慢時(shí)鐘域時(shí),過(guò)快的變化,可能會(huì)導(dǎo)致采樣無(wú)法正常進(jìn)行。

      對(duì)于同步鎖高電平1的鎖定法電路來(lái)說(shuō),使用了二選一的數(shù)據(jù)選擇器,在慢時(shí)鐘域采樣來(lái)自快時(shí)鐘域的測(cè)試信號(hào)前鎖定測(cè)試信號(hào)。而給快時(shí)鐘域輸入一個(gè)理應(yīng)是高電平的值,以此檢驗(yàn)是否能正確的采樣。直至輸出穩(wěn)定的高電平,證明電路穩(wěn)定,采樣能正常進(jìn)行后,再解除鎖定,送入測(cè)試信號(hào)完成同步。如圖8所示。

      本文采用74HC157的四路二選一數(shù)據(jù)選擇器。將理應(yīng)是高電平的一端輸入數(shù)據(jù)選擇器的1A端,而需要同步的測(cè)試信號(hào)輸入1B端。而控制選擇端則是由高電平和一個(gè)開關(guān)連接。經(jīng)試驗(yàn)證明,將開關(guān)斷開時(shí),數(shù)據(jù)選擇器輸出1A端的數(shù)據(jù)。而閉合開關(guān)使之與高電平連通時(shí)選擇1B端。其余的觸發(fā)器均選擇74HC74的D觸發(fā)器芯片。同樣要將SD—L置1端和RD—L復(fù)位置0端接上高電平,以使電路正常運(yùn)行。

      圖8 同步鎖高電平1電路原理圖

      圖9是此電路的電路圖。

      本文選擇模擬輸入200Hz的測(cè)試信號(hào)data和2KHz的第一個(gè)時(shí)鐘信號(hào)以及300Hz的第二個(gè)時(shí)鐘信號(hào)。由于剛開始時(shí)鎖定了測(cè)試信號(hào),所以一開始輸入的是data0。圖10即是此信號(hào)與快時(shí)鐘的同步。顯示了同步時(shí)的輸入輸出波形。

      圖10 鎖定信號(hào)下的快時(shí)鐘同步

      如圖11所示,剛開始data0并沒(méi)有獲得應(yīng)得的高電平,而是不穩(wěn)定的波形,直到穩(wěn)定后才輸出正確的波形。

      之后,一方面dat1通過(guò)了慢時(shí)鐘的兩個(gè)觸發(fā)器得到了輸出,另一方面,這個(gè)輸出又經(jīng)過(guò)兩個(gè)快時(shí)鐘的觸發(fā)器返回,與第一個(gè)快時(shí)鐘輸出dat1的相反值進(jìn)行求或運(yùn)算。得到那個(gè)理應(yīng)是高電平的值繼續(xù)送入快時(shí)鐘中,直到輸出應(yīng)得的高電平。圖11是鎖定信號(hào)時(shí)與慢時(shí)鐘的同步。

      圖11 鎖高信號(hào)下的慢時(shí)鐘同步

      可見(jiàn),一開始得到的輸出并不是應(yīng)得的高電平,直到穩(wěn)定后才會(huì)有高電平輸出。

      輸出穩(wěn)定的高電平后,即可改變控制選擇端——選擇輸入要同步的測(cè)試信號(hào)data。如圖12所示:

      圖12 穩(wěn)定后的快時(shí)鐘同步

      與快時(shí)鐘同步后的信號(hào)dat1繼續(xù)與慢時(shí)鐘進(jìn)行同步。圖13即為dat1與慢時(shí)鐘bclk同步的波形。

      圖13 穩(wěn)定后的慢時(shí)鐘同步

      下面對(duì)此電路進(jìn)行高頻率下的仿真。測(cè)試信號(hào)取2MHz,快慢兩個(gè)時(shí)鐘分別取20MHz和3MHz。圖14是鎖定信號(hào),輸入data0時(shí)的波形圖,包括了第一次同步和第二次同步的輸入輸出波形。

      圖14 高頻率下鎖定信號(hào)時(shí)的仿真結(jié)果

      而圖15則是穩(wěn)定輸出高電平后釋放鎖定,輸入data時(shí)的仿真結(jié)果。

      圖15 高頻率下釋放信號(hào)后的仿真結(jié)果

      如上所述,既然有同步鎖高電平1電路,就會(huì)有同步鎖低電平電路。其原理圖(圖16)和電路圖(圖17)的基本原與和同步鎖高電平1電路一樣,只不過(guò)在鎖定時(shí),不是通過(guò)或門輸入高電平,而是用與門輸入低電平來(lái)進(jìn)行檢驗(yàn)。

      此電路的仿真數(shù)據(jù)均采用同步鎖高電平1電路的數(shù)據(jù)。由于剛開始會(huì)出現(xiàn)采樣錯(cuò)誤,所以此電路同樣是先鎖定測(cè)試信號(hào),即輸入理應(yīng)是低電平的信號(hào)data0。

      若是data0以及輸出都正確的輸出了低電平,那么便表示開始了正確的同步。圖18是data0信號(hào)輸入快時(shí)鐘時(shí)的輸入輸出波形。

      圖18 鎖定信號(hào)下的快時(shí)鐘同步

      圖19是將上圖的輸出dat1輸入到慢時(shí)鐘域時(shí)得到的輸入輸出波形,可以看出,穩(wěn)定后,其輸出dat2最終趨于了低電平。

      得到穩(wěn)定的低電平輸出后,就可控制數(shù)據(jù)選擇器,選擇測(cè)試信號(hào)輸入。

      圖19 鎖定信號(hào)下的慢時(shí)鐘同步

      圖20是改為測(cè)試信號(hào)data輸入后,通過(guò)快時(shí)鐘aclk的輸入輸出波形。圖21是經(jīng)過(guò)了快時(shí)鐘同步后的輸出dat1通過(guò)慢時(shí)鐘bclk同步時(shí)的輸入輸出波形。

      圖20 穩(wěn)定后的快時(shí)鐘同步

      圖21 穩(wěn)定后的慢時(shí)鐘同步

      用與同步鎖高電平1電路相同的數(shù)據(jù)進(jìn)行高頻率下的仿真。即把2MHz、20MHz、3MHz等分別賦值給測(cè)試信號(hào)——快時(shí)鐘和慢時(shí)鐘。圖22和圖23分別是電路在一開始鎖定信號(hào)時(shí)和釋放鎖定后的仿真波形。包括了兩次同步時(shí)的輸入輸出波形。

      圖22 高頻率下鎖定信號(hào)時(shí)的仿真結(jié)果

      圖23 高頻率下釋放信號(hào)后的仿真結(jié)果

      同步低電平0電路和同步鎖高電平1電路一樣,都防止了測(cè)試信號(hào)從快時(shí)鐘域過(guò)渡至慢時(shí)鐘域時(shí)所出現(xiàn)的錯(cuò)誤采樣。而鎖定測(cè)試信號(hào),利用一個(gè)已知的高電平或低電平,去檢測(cè)電路,直至其穩(wěn)定,才將測(cè)試信號(hào)送入電路,就可避免不必要的損失。

      從二者在高頻率下的仿真可見(jiàn),這兩個(gè)電路和兩級(jí)觸發(fā)器一樣都有一些延時(shí)。但是它們都很正確的完成了對(duì)信號(hào)的仿真,且沒(méi)有使用過(guò)多的觸發(fā)器。

      4.3 結(jié)繩法仿真

      結(jié)繩法同樣是解決測(cè)試信號(hào)從快時(shí)鐘域至慢時(shí)鐘域時(shí),信號(hào)變化過(guò)快導(dǎo)致第二個(gè)時(shí)鐘無(wú)法正確采樣到的問(wèn)題。但與鎖定法不同的是,結(jié)繩法是在慢時(shí)鐘采樣信號(hào)時(shí),想辦法使信號(hào)維持更長(zhǎng)的時(shí)間,以便慢時(shí)鐘可以正確的采樣。

      如圖24所示,在時(shí)鐘aclk處,data輸入數(shù)據(jù)選擇器的控制端,通過(guò)data的脈沖不斷選擇高電平和低電平,形成新的波形,即被“結(jié)繩”,延長(zhǎng)了信號(hào),確保下一個(gè)時(shí)鐘能正確采樣。之后,送至兩個(gè)D觸發(fā)器處,使其自然的被時(shí)鐘bclk同步。接著利用異或門,把結(jié)繩后的脈沖還原,再次送入時(shí)鐘bclk中被“結(jié)繩”,其后,再在時(shí)鐘aclk中同步,最后還原。根據(jù)所得波形判斷是否開始了正確的采樣。如圖25所示。

      本文采用200Hz,占空比百分之二十的信號(hào)輸入,兩個(gè)快慢時(shí)鐘分別為1KHz和400Hz。電路繪制時(shí)用到了兩片74HC157的四路二選一數(shù)據(jù)選擇器和若干片D觸發(fā)器。電路中還用到了反相門和異或門。圖26是信號(hào)輸入時(shí)鐘aclk時(shí)被“結(jié)繩”的波形。

      圖26 結(jié)繩法原理波形圖

      圖27是data,out2,out1和out1輸入至?xí)r鐘bclk結(jié)繩后的Q2的波形。就data和out2的對(duì)比來(lái)看,out2剛開始不規(guī)則,規(guī)則后,和最開始輸入的數(shù)據(jù)data是一樣的,這樣便可判斷出data已被正確采樣。同樣的,out1在最開始也是錯(cuò)誤的采樣。直到out2正常輸出后,out1也開始了正確的采樣。

      圖27 結(jié)繩法同步及驗(yàn)證同步波形圖

      同樣的,本文也在高頻率下對(duì)結(jié)繩法進(jìn)行了仿真。其中,測(cè)試信號(hào)為占空比10%的2MHz信號(hào),快時(shí)鐘為10MHz,慢時(shí)鐘則是4MHz的信號(hào)。圖28就是結(jié)繩法的仿真波形,包括輸出以及可驗(yàn)證同步是否正確的信號(hào)。

      圖28 高頻率下的仿真結(jié)果

      可見(jiàn),在高頻率下的仿真和低頻率一樣,因信號(hào)變化太快,在剛開始會(huì)出現(xiàn)錯(cuò)誤采樣出來(lái)的波形,直到out2的輸出和data信號(hào)一致后,就開始了正確的同步。但因結(jié)繩法使用了過(guò)多的觸發(fā)器,便很易出現(xiàn)錯(cuò)誤導(dǎo)致同步失敗。

      4.4 握手傳輸仿真

      當(dāng)幾個(gè)電路不能預(yù)知相互的響應(yīng)時(shí)間時(shí),握手傳輸法能讓數(shù)字電路間實(shí)現(xiàn)有效的通信。

      本文就優(yōu)于全握手(full-handshake)法的部分握手(partial-handshake)法進(jìn)行仿真。

      部分握手法類型使用的是脈沖同步器。脈沖同步器是將需要同步的信號(hào)輸入數(shù)據(jù)選擇器的選擇控制端,使其對(duì)第一個(gè)時(shí)鐘下的D觸發(fā)器的兩個(gè)輸出Q和Q的相反值進(jìn)行不斷的選擇。通過(guò)這樣的不斷選擇,產(chǎn)生波形,然后送入第一個(gè)時(shí)鐘進(jìn)行同步。同步的結(jié)果繼續(xù)進(jìn)入第二個(gè)時(shí)鐘下的同步器同步。由于通過(guò)了數(shù)據(jù)選擇器,送入第一個(gè)時(shí)鐘的信號(hào)已經(jīng)不是原來(lái)需要同步的信號(hào)了。因此,經(jīng)過(guò)第二個(gè)同步器的同步后得到的信號(hào)要通過(guò)一個(gè)時(shí)鐘的延遲,與自身進(jìn)行異或才能得到正確結(jié)果。

      圖29是脈沖同步法的原理圖。

      圖29 脈沖同步法原理圖

      脈沖同步法仿真時(shí)采用的是74HC157的四路二選一數(shù)據(jù)選擇器,以及需要將SD—L置1端和RD—L復(fù)位置0端加上高電平的74HC74D觸發(fā)器。其中,數(shù)據(jù)選擇器使輸入端低電平有效,需要接地。若是將其置高的話,

      所有輸出將會(huì)被強(qiáng)制置低。圖30是脈沖同步法的電路圖。

      本文對(duì)測(cè)試信號(hào)data,第一個(gè)時(shí)鐘aclk,第二個(gè)時(shí)鐘bclk分別用200H(z20%的占空比)、900Hz和500Hz。

      圖31即是電路所有輸入和輸出out的波形圖。

      圖31 脈沖同步法輸入輸出波形圖

      可以看出,上圖的仿真,測(cè)試信號(hào)之間的距離并不小。倘若測(cè)試信號(hào)的脈沖之間相互間隔過(guò)近,則最后同步出來(lái)的輸出信號(hào)的脈沖也會(huì)緊密相連。因此會(huì)導(dǎo)致同步器不能正確的檢測(cè)出每一個(gè)脈沖,甚至把很多個(gè)脈沖識(shí)別成一個(gè)較長(zhǎng)的脈沖。圖32就是改變測(cè)試信號(hào)頻率為2KHz時(shí)得出的波形,顯然同步失敗。

      圖32 過(guò)緊脈沖測(cè)試信號(hào)導(dǎo)致同步失敗

      相應(yīng)的,本文也對(duì)脈沖同步法在高頻率下的同步進(jìn)行仿真。使用的數(shù)據(jù)為2MHz,占空比為百分之十的測(cè)試信號(hào),9MHz的快時(shí)鐘和4MHz的慢時(shí)鐘。

      圖33即是脈沖同步法在高頻率下的仿真結(jié)果。

      圖33 高頻率下的仿真結(jié)果

      如圖33所示,雖然能進(jìn)行仿真,但是在片上網(wǎng)絡(luò)的高頻率下很容易因?yàn)樾盘?hào)過(guò)近的脈沖導(dǎo)致同步器錯(cuò)誤的識(shí)別,最終致使同步失敗。

      5.多時(shí)鐘域同步方法的比較探究

      通過(guò)上述的仿真可以看到,在同步器法中,兩級(jí)觸發(fā)器法可避免一些因?yàn)橛|發(fā)器或者門電路引發(fā)的錯(cuò)誤,過(guò)于簡(jiǎn)單的電路結(jié)構(gòu)使它不能應(yīng)對(duì)較為復(fù)雜的同步,只能應(yīng)用于一些較為簡(jiǎn)單的基礎(chǔ)同步。同時(shí),在同步采樣時(shí)還必須避免被同步信號(hào)的脈沖比時(shí)鐘脈沖小而導(dǎo)致的同步失敗。而鎖定法有兩種,它們的基本原理都是一樣的。為了避免慢時(shí)鐘無(wú)法正確接收信號(hào)而選擇先將信號(hào)鎖定起來(lái),直到確定慢時(shí)鐘能正確同步后再選擇送入信號(hào)。這樣既可清晰明了的判斷出同步正確與否,又可及時(shí)避免同步采樣的錯(cuò)誤,還節(jié)約了資源。而在高頻率的仿真時(shí),除了和兩級(jí)觸發(fā)器一樣有時(shí)間上的延遲,其余都能正確的完成同步。

      結(jié)繩法主要是用來(lái)解決脈沖信號(hào)的同步問(wèn)題。此法通過(guò)延長(zhǎng)脈沖的維持時(shí)間來(lái)避免時(shí)鐘無(wú)法正確同步采樣的問(wèn)題。但在判斷是否開始正確同步時(shí),并沒(méi)有鎖定法那樣的直觀明確,且電路過(guò)于繁瑣,實(shí)現(xiàn)較為復(fù)雜,效率也不高。

      鎖定法和結(jié)繩法都是針對(duì)測(cè)試信號(hào)從快時(shí)鐘域到慢時(shí)鐘域時(shí),變化太快造成的錯(cuò)誤采樣。結(jié)繩法相對(duì)來(lái)說(shuō)較繁瑣,效率不高,使用時(shí)要多斟酌。而對(duì)握手傳輸來(lái)說(shuō),采用的脈沖同步器雖然沒(méi)有同步器方法中的結(jié)繩法這樣繁瑣,但是它去掉了判斷同步正確與否這個(gè)很關(guān)鍵的一環(huán)。在之后高頻率的仿真中也可看到,脈沖同步法很容易出現(xiàn)同步失敗的情況。而且握手傳輸?shù)倪^(guò)程十分繁瑣,每傳輸一次數(shù)據(jù)就要對(duì)所有控制信號(hào)進(jìn)行操作。即使對(duì)整個(gè)過(guò)程進(jìn)行簡(jiǎn)化,也仍然存在較大的耗時(shí)。倘若需要傳輸較多的數(shù)據(jù),效率會(huì)很低。因此握手傳輸和同步器法一樣,比較適合在跨時(shí)鐘域傳輸時(shí)處理單根的信號(hào),例如控制信號(hào)等。

      其實(shí),相比于同步器法和握手傳輸來(lái)說(shuō),異步FIFO有更大的適用性。不僅可以同步多位的數(shù)據(jù)還可以同步?jīng)]有任何關(guān)系的源時(shí)鐘域和目的時(shí)鐘域之間的數(shù)據(jù)交換。對(duì)異步FIFO同步的研究將另作專題詳細(xì)闡述。

      參考文獻(xiàn)

      [1]沈立,等.高速數(shù)字設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004,96-105.

      [2]Packet Communications Reference Architecture V2.0[EB/OL].http://www.ipcc.org,2003.

      [3]彭莉,等.異步FIFO的設(shè)計(jì)與驗(yàn)證[J].計(jì)算機(jī)工程與應(yīng)用,2005(3):98-101.

      [4]袁偉,等.多時(shí)鐘域的異步信號(hào)的參考解決[J].現(xiàn)代電子技術(shù),2006(16):136-138.

      [5]徐翼,等.異步時(shí)鐘域的亞穩(wěn)態(tài)問(wèn)題和同步器[J].《微計(jì)算機(jī)信息,2008(5):271-272.

      [6]杜旭,等.ASIC系統(tǒng)中跨時(shí)鐘域配置模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2004(6):173-177.

      [7]袁偉,等.多時(shí)鐘域的異步信號(hào)的參考解決[J].現(xiàn)代電子技術(shù),2006(16):136-142.

      [8]謝修祥,等.異步多時(shí)鐘系統(tǒng)的同步設(shè)計(jì)技術(shù)[J].電子工程師,2005(5):33-37.

      [9]黃隸凡,等.FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)研究[J].微電子學(xué),2011(2):265-268.

      作者簡(jiǎn)介:趙文晗(1990—),碩士研究生,畢業(yè)于電子科技大學(xué),現(xiàn)供職于四川省興文縣安檢局。

      临武县| 西青区| 登封市| 莎车县| 桦川县| 洪洞县| 亚东县| 清苑县| 宁德市| 佛山市| 绥阳县| 白山市| 广汉市| 五台县| 丰镇市| 文水县| 吉木乃县| 全南县| 南陵县| 察哈| 浠水县| 中超| 石棉县| 大丰市| 安乡县| 武山县| 芦山县| 镇江市| 香河县| 迁西县| 凉山| 望都县| 澳门| 峨眉山市| 泰顺县| 崇明县| 大同市| 兴化市| 萍乡市| 东乡| 临漳县|