两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置及其方法

文檔序號:6558469閱讀:144來源:國知局
專利名稱:一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,特別是一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置及其方法。
背景技術(shù)
在大多數(shù)系統(tǒng)中,數(shù)據(jù)在不同單板之間的傳輸采用串行方式,而不同單板之間為異步時(shí)鐘。但是,即使不同單板的異步時(shí)鐘是同源的,但由于它們是經(jīng)過不同的鎖相環(huán)(PLL)或者不同的途徑得到的,各自的時(shí)鐘信號抖動(dòng)(Jitter)是不同的,而且在任何一個(gè)短時(shí)間內(nèi)它們都會存在頻差,只是從長時(shí)間的統(tǒng)計(jì)結(jié)果來看是同步到時(shí)鐘源上的,因此不同單板的兩個(gè)時(shí)鐘在一定時(shí)間內(nèi)會出現(xiàn)相位漂移,相位漂移的最大值取決于時(shí)鐘源、PLL等部件的質(zhì)量。
目前絕大多數(shù)的系統(tǒng)都是使用先進(jìn)先出存儲器(FIFO)來實(shí)現(xiàn)在兩個(gè)時(shí)鐘域之間傳遞數(shù)據(jù)。典型的FIFO為一個(gè)雙口訪問的存儲器,如圖1所示,F(xiàn)IFO包括存儲單元、寫地址計(jì)數(shù)器、讀地址計(jì)數(shù)器、寫地址格雷碼發(fā)生器、讀地址格雷碼發(fā)生器以及清空檢測和溢出檢測邏輯。其中存儲單元用來緩存數(shù)據(jù),可以采用隨機(jī)存取存儲器(RAM)或者寄存器實(shí)現(xiàn),它的深度決定了FIFO能夠容忍的最大時(shí)鐘抖動(dòng)、相位漂移以及頻率波動(dòng);寫地址計(jì)數(shù)器和讀地址計(jì)數(shù)器用來產(chǎn)生訪問存儲單元的地址,它們?yōu)檠h(huán)計(jì)數(shù)器,即地址計(jì)數(shù)到存儲單元的最大地址后從0開始重新計(jì)數(shù);寫地址格雷碼發(fā)生器和讀地址格雷碼發(fā)生器,在每寫入一個(gè)數(shù)據(jù)或者讀出一個(gè)數(shù)據(jù)時(shí)就將寫地址格雷碼和讀地址格雷碼增加1,并將寫地址格雷碼或讀地址格雷碼輸入清空檢測和溢出檢測邏輯;清空檢測和溢出檢測邏輯根據(jù)寫地址格雷碼和讀地址格雷碼以及即將發(fā)生的讀寫操作來判斷FIFO是否發(fā)生了被清空或者溢出了,發(fā)出清空指示或溢出指示的信號,讀寫控制端則根據(jù)這些信號作出相應(yīng)的操作,如停止寫或者停止讀。
FIFO可以在頻率發(fā)生偏差或讀寫時(shí)鐘的抖動(dòng)和相位漂移時(shí),將數(shù)據(jù)穩(wěn)定地從一個(gè)時(shí)鐘域傳到另一個(gè)時(shí)鐘域上。但當(dāng)FIFO的讀、寫端口中任一端口發(fā)生異常導(dǎo)致讀、寫地址發(fā)生跳變時(shí),F(xiàn)IFO是不能夠檢測出來的,也不可能調(diào)整數(shù)據(jù)在FIFO的傳輸延遲,因此FIFO不能滿足對傳輸延遲誤差敏感的應(yīng)用場合。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置,其目的在于,實(shí)現(xiàn)數(shù)據(jù)在異步時(shí)鐘域之間穩(wěn)定傳輸?shù)耐瑫r(shí),有效地控制傳輸延遲誤差。本發(fā)明的另一個(gè)目的在于提供一種在異步時(shí)鐘域傳輸數(shù)據(jù)的方法。
根據(jù)上述目的,本發(fā)明提供了一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置,該裝置包括存儲單元,用于緩存數(shù)據(jù);寫數(shù)據(jù)端,用于在寫使能信號有效時(shí)將數(shù)據(jù)緩存在存儲單元中;數(shù)據(jù)就緒指示信號發(fā)生電路,用于在寫使能信號有效時(shí)產(chǎn)生數(shù)據(jù)就緒指示信號;沿檢測電路,用于檢測數(shù)據(jù)就緒指示信號發(fā)生電路產(chǎn)生的數(shù)據(jù)就緒指示信號的邊沿,在檢測到所述數(shù)據(jù)就緒指示信號的邊沿時(shí)產(chǎn)生數(shù)據(jù)指示信號;包括第一計(jì)數(shù)器的相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器,用于根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位,并在第一計(jì)數(shù)器的相位達(dá)到預(yù)先設(shè)定的相位時(shí)產(chǎn)生數(shù)據(jù)采集使能信號;讀數(shù)據(jù)端,用于根據(jù)相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器產(chǎn)生的數(shù)據(jù)采集使能信號從存儲單元讀取數(shù)據(jù);其中寫數(shù)據(jù)端、數(shù)據(jù)就緒指示信號發(fā)生電路工作在數(shù)據(jù)隨路時(shí)鐘域,沿檢測電路、相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器、以及讀數(shù)據(jù)端工作在系統(tǒng)工作時(shí)鐘域。
該裝置進(jìn)一步包括位于數(shù)據(jù)就緒指示信號發(fā)生電路與沿檢測電路之間的信號延遲電路,用于將所述數(shù)據(jù)就緒指示信號鎖存至少兩個(gè)時(shí)鐘周期后輸入所述沿檢測電路。
所述信號延遲電路由多個(gè)串連的D觸發(fā)器組成。
所述數(shù)據(jù)就緒指示信號發(fā)生電路包括第一選擇器、第二選擇器、D觸發(fā)器和延時(shí)器。其中,第一選擇器的1輸入端被輸入0,0輸入端與所述D觸發(fā)器的輸出端相連,控制端與所述延時(shí)器的輸出端相連,輸出端與第二選擇器的0輸入端相連;第二選擇器的1輸入端被輸入1,0輸入端被與第一選擇器的輸出端相連,控制端被輸入寫使能信號,輸出端與所述D觸發(fā)器的D輸入端相連;所述D觸發(fā)器的D輸入端與第二選擇器的輸出端相連,輸出端與所述沿檢測電路、第一選擇器的0輸入端以及所述延時(shí)器的輸入端相連;所述延時(shí)器的輸入端與所述D觸發(fā)器的輸出端相連,輸出端與第一選擇器的控制端相連。
所述延時(shí)器由多個(gè)串連的D觸發(fā)器組成,或者為等待多個(gè)時(shí)鐘周期輸出信號的計(jì)數(shù)器。
所述相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器進(jìn)一步包括第三選擇器、第四選擇器、第五選擇器、第一D觸發(fā)器、第二D觸發(fā)器以及第二計(jì)數(shù)器。其中,第三選擇器的1輸入端被輸入1,0輸入端與第一D觸發(fā)器的輸出端相連,控制端被輸入所述數(shù)據(jù)指示信號,輸出端與第一D觸發(fā)器的D輸入端相連;第四選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端被輸入0,控制端與第一計(jì)數(shù)器的輸出端相連,輸出端與第五選擇器的輸入端相連;第五選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端與第四選擇器的輸出端相連,控制端與第一D觸發(fā)器的輸出端相連,輸出端與第一計(jì)數(shù)器的清零端相連;第一D觸發(fā)器的D輸入端與第三選擇器的輸出端相連,輸出端與第三選擇器的0輸入端、第五選擇器的控制端以及第一計(jì)數(shù)器的使能端相連;第二D觸發(fā)器的D輸入端與第一計(jì)數(shù)器的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與第二計(jì)數(shù)器的清零端相連;第一計(jì)數(shù)器的清零端與第五選擇器的輸出端相連,使能端與第一D觸發(fā)器的輸出端相連,輸出端與第四選擇器的控制端以及第二D觸發(fā)器的D輸入端相連,第一計(jì)數(shù)器的輸出端輸出數(shù)據(jù)采集使能信號;第二計(jì)數(shù)器的清零端與其輸出端以及第二D觸發(fā)器的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與其清零端相連。
所述存儲單元為隨機(jī)存取存儲單元或寄存器。
本發(fā)明還提供了一種在異步時(shí)鐘域傳輸數(shù)據(jù)的方法,其中發(fā)送方位于數(shù)據(jù)隨路時(shí)鐘域,接收方位于系統(tǒng)工作時(shí)鐘域并包括第一計(jì)數(shù)器,該方法包括以下步驟A.發(fā)送方在寫使能信號有效時(shí),將數(shù)據(jù)緩存在存儲單元中,同時(shí)產(chǎn)生一個(gè)數(shù)據(jù)就緒指示信號并發(fā)送給接收方;B.接收方在檢測到所述數(shù)據(jù)就緒指示信號邊沿時(shí)產(chǎn)生數(shù)據(jù)指示信號;C.根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位,并在第一計(jì)數(shù)器的相位達(dá)到設(shè)定相位時(shí)從存儲單元讀取數(shù)據(jù)。
步驟B前進(jìn)一步包括將所述數(shù)據(jù)就緒指示信號鎖存一個(gè)以上時(shí)鐘周期的步驟。
步驟C中所述根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位的步驟包括判斷數(shù)據(jù)指示信號到達(dá)時(shí)第一計(jì)數(shù)器當(dāng)前相位是否等于其最大相位,在不等于的情況下,判斷所述當(dāng)前相位與最大相位的相差絕對值是否大于1,如果大于1,則在下一個(gè)數(shù)據(jù)指示信號到達(dá)時(shí),觸發(fā)所述第一計(jì)數(shù)器重新計(jì)數(shù),如果小于等于1,則在連續(xù)多個(gè)數(shù)據(jù)指示信號到達(dá)時(shí)所述第一計(jì)數(shù)器當(dāng)前相位與其最大相位的差值保持不變的情況下,觸發(fā)所述第一計(jì)數(shù)器重新計(jì)數(shù)。
步驟C中所述在第一計(jì)數(shù)器的相位達(dá)到設(shè)定相位時(shí)從存儲單元讀取數(shù)據(jù)的步驟包括在第一計(jì)數(shù)器的相位到達(dá)預(yù)先設(shè)定的相位時(shí)產(chǎn)生數(shù)據(jù)采集使能信號;根據(jù)所述數(shù)據(jù)采集使能信號從存儲單元讀取數(shù)據(jù)。
從上述技術(shù)方案中可以看出,由于本發(fā)明采用傳遞數(shù)據(jù)指示信號的方式來實(shí)現(xiàn)異步時(shí)鐘域時(shí)間數(shù)據(jù)相位的鎖定,從而實(shí)現(xiàn)數(shù)據(jù)在異步時(shí)鐘域之間穩(wěn)定地傳輸,并且將傳輸延遲誤差控制在接收方的一個(gè)時(shí)鐘周期內(nèi),這樣只需要通過提升接收方系統(tǒng)工作時(shí)鐘的頻率就能有效地降低誤差的絕對值。與現(xiàn)有技術(shù)的FIFO相比,不需要復(fù)雜的格雷碼轉(zhuǎn)換以及溢出清零判斷,實(shí)現(xiàn)比較簡單。


圖1為現(xiàn)有技術(shù)中FIFO的結(jié)構(gòu)示意圖。
圖2為本發(fā)明實(shí)施例中裝置的結(jié)構(gòu)示意圖。
圖3為本發(fā)明實(shí)施例中各信號的時(shí)序圖。
圖4為本發(fā)明實(shí)施例的裝置中相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下舉實(shí)施例對本發(fā)明進(jìn)一步詳細(xì)說明。
參考圖2,本發(fā)明采用的裝置包括寫數(shù)據(jù)端、存儲單元、數(shù)據(jù)就緒指示信號發(fā)生電路、信號延遲電路、沿檢測電路、相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器、以及讀數(shù)據(jù)端。其中,發(fā)送方的寫數(shù)據(jù)端和數(shù)據(jù)就緒指示信號發(fā)生電路工作在數(shù)據(jù)隨路時(shí)鐘域Clk_in,接收方的信號延遲電路、沿檢測電路、相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器、以及讀數(shù)據(jù)端都工作在系統(tǒng)工作時(shí)鐘域Clk_sys。下面分別介紹各部分的結(jié)構(gòu)及功能。
寫數(shù)據(jù)端包括一個(gè)D觸發(fā)器,在寫使能信號Data_wt_en有效時(shí),寫入數(shù)據(jù)Data_in,即將數(shù)據(jù)緩存在存儲單元中。
存儲單元為RAM或者寄存器,用來緩存從寫數(shù)據(jù)端輸入的數(shù)據(jù),并由讀數(shù)據(jù)端讀取輸出這些數(shù)據(jù)。
數(shù)據(jù)就緒指示信號發(fā)生電路,根據(jù)寫使能信號Data_wt_en產(chǎn)生一個(gè)數(shù)據(jù)就緒指示信號Data_rdy,信號Data_rdy用來通知接收方當(dāng)前數(shù)據(jù)已經(jīng)準(zhǔn)備就緒。為了保證在系統(tǒng)工作時(shí)鐘域采集到Data_rdy信號,Data_rdy信號的高低電平脈沖寬度必須大于系統(tǒng)工作時(shí)鐘域中一個(gè)時(shí)鐘周期的寬度。參見圖3,圖3中所示的Data_rdy信號的高低電平脈沖寬度遠(yuǎn)大于系統(tǒng)工作時(shí)鐘域Clk_sys的一個(gè)時(shí)鐘周期的寬度,這樣能保證系統(tǒng)工作時(shí)鐘域的模塊能夠采集到Data_rdy信號。
繼續(xù)參考圖2,該數(shù)據(jù)就緒指示信號發(fā)生電路包括兩個(gè)二選一的選擇器、一個(gè)D觸發(fā)器和一個(gè)延時(shí)器,所述兩個(gè)二選一的選擇器為第一選擇器和第二選擇器。其中,第一選擇器和第二選擇器分別根據(jù)自身控制端的控制信號為0或1,相應(yīng)地輸出0輸入端或1輸入端的信號;D觸發(fā)器在使能端(En端)的輸入信號有效時(shí),輸出D端的輸入,在En端沒有輸入信號時(shí),輸出上一個(gè)時(shí)鐘周期時(shí)的D端輸入信號;延時(shí)器用于將Data_rdy信號延遲N個(gè)時(shí)鐘周期,它可以由N個(gè)串連的D觸發(fā)器構(gòu)成,也可以由等待N個(gè)時(shí)鐘周期后輸出輸入信號的計(jì)數(shù)器實(shí)現(xiàn)。在數(shù)據(jù)就緒指示信號發(fā)生電路中,第一選擇器的1輸入端被輸入0,0輸入端與所述D觸發(fā)器的輸出端相連,控制端與所述延時(shí)器的輸出端相連,輸出端與第二選擇器的0輸入端相連;第二選擇器的1輸入端被輸入1,0輸入端被與第一選擇器的輸出端相連,控制端被輸入寫使能信號,輸出端與所述D觸發(fā)器的D輸入端相連;所述D觸發(fā)器的D輸入端與第二選擇器的輸出端相連,輸出端與所述沿檢測電路、第一選擇器的0輸入端以及所述延時(shí)器的輸入端相連;所述延時(shí)器的輸入端與所述D觸發(fā)器的輸出端相連,輸出端與第一選擇器的控制端相連。
在工作過程中,第一選擇器1輸入端被輸入0,0輸入端被輸入Data_rdy信號,并根據(jù)被計(jì)數(shù)器延遲N個(gè)時(shí)鐘周期的Data_rdy信號的控制向第二選擇器的0輸入端輸出信號,第二選擇器的1輸入端為1,它根據(jù)寫使能信號Data_wt_en向D觸發(fā)器輸出信號,然后D觸發(fā)器向信號延遲電路、第一選擇器的0輸入端以及作為延時(shí)器的計(jì)數(shù)器輸出Data_rdy信號。
信號延遲電路,用于將Data_rdy信號鎖存至少兩個(gè)系統(tǒng)工作時(shí)鐘域時(shí)鐘周期后再輸入沿檢測電路,其目的在于盡可能地減少亞穩(wěn)態(tài)出現(xiàn)的概率。這里的信號延遲電路通過串連的多個(gè)D觸發(fā)器實(shí)現(xiàn)。圖2中所示的信號延遲電路包括3個(gè)D觸發(fā)器,將Data_rdy信號鎖存三個(gè)時(shí)鐘周期后,再輸入到沿檢測電路。
沿檢測電路用于對Data_rdy信號進(jìn)行邊沿檢測,當(dāng)檢測到Data_rdy的上升沿時(shí),產(chǎn)生在系統(tǒng)時(shí)鐘域的數(shù)據(jù)指示信號Data_rdy_sync,Data_rdy_sync信號只有一個(gè)時(shí)鐘周期寬度。本實(shí)施例采用將當(dāng)前Data_rdy信號與一個(gè)時(shí)鐘周期之前的Data_rdy信號相比較的方法對Data_rdy信號進(jìn)行邊沿檢測,即比較信號延遲電路最后一個(gè)D觸發(fā)器之前的信號(一個(gè)時(shí)鐘周期之前的Data_rdy信號)和之后的信號(當(dāng)前Data_rdy信號),顯然在當(dāng)前Data_rdy信號為1、一個(gè)時(shí)鐘周期之前的Data_rdy信號為0時(shí),Data_rdy信號有上升沿,然后根據(jù)該上升沿產(chǎn)生Data_rdy_sync信號,并將Data_rdy_sync信號輸入相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器。
相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器,用于將傳輸遲延控制在一個(gè)時(shí)鐘周期內(nèi),以及產(chǎn)生一個(gè)數(shù)據(jù)采集使能信號Data_sample_en,并將Data_sample_en信號輸入讀數(shù)據(jù)端。如圖3中所示,所產(chǎn)生的Data_sample_en信號剛好在數(shù)據(jù)緩存寄存器信號Data_tmp前后兩個(gè)變化點(diǎn)的中間位置,這樣使得異步時(shí)鐘域間的抖動(dòng)和相位漂移對數(shù)據(jù)傳輸?shù)挠绊戇_(dá)到最小。異步時(shí)鐘域間的抖動(dòng)和相位漂移可以等效為Clk_sys相對于穩(wěn)定不變的Clk_in左右移動(dòng),顯然在數(shù)據(jù)前后變化的中間時(shí)刻采集數(shù)據(jù)能得到最穩(wěn)定的傳輸效果。
如圖4所示,相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器包括計(jì)數(shù)器A(第一計(jì)數(shù)器)、計(jì)數(shù)器B(第二計(jì)數(shù)器)、以及輔助它們實(shí)現(xiàn)功能的三個(gè)二選一的選擇器和兩個(gè)D觸發(fā)器,所述三個(gè)二選一的選擇器為第三選擇器、第四選擇器和第五選擇器,所述兩個(gè)D觸發(fā)器為第一D觸發(fā)器和第二D觸發(fā)器。其中,第三選擇器的1輸入端被輸入1,0輸入端與第一D觸發(fā)器的輸出端相連,控制端被輸入所述數(shù)據(jù)指示信號,輸出端與第一D觸發(fā)器的D輸入端相連;第四選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端被輸入0,控制端與計(jì)數(shù)器A的輸出端相連,輸出端與第五選擇器的輸入端相連;第五選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端與第四選擇器的輸出端相連,控制端與第一D觸發(fā)器的輸出端相連,輸出端與計(jì)數(shù)器A的清零端相連;第一D觸發(fā)器的D輸入端與第三選擇器的輸出端相連,輸出端與第三選擇器的0輸入端、第五選擇器的控制端以及計(jì)數(shù)器A的使能端相連;第二D觸發(fā)器的D輸入端與計(jì)數(shù)器A的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與計(jì)數(shù)器B的清零端相連;計(jì)數(shù)器A的清零端與第五選擇器的輸出端相連,使能端與第一D觸發(fā)器的輸出端相連,輸出端與第四選擇器的控制端以及第二D觸發(fā)器的D輸入端相連,計(jì)數(shù)器A的輸出端輸出數(shù)據(jù)采集使能信號;計(jì)數(shù)器B的清零端與其輸出端以及第二D觸發(fā)器的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與其清零端相連。
計(jì)數(shù)器A在第一個(gè)Data_rdy_sync信號到來時(shí)根據(jù)指示接收數(shù)據(jù)開始的Receive_start信號啟動(dòng)計(jì)數(shù),即清零開始計(jì)數(shù)。如圖4所示,由第三選擇器和第一D觸發(fā)器根據(jù)Data_rdy_sync信號產(chǎn)生上述Receive_start信號,第三選擇器1輸入端被輸入1,0輸入端被輸入Receive_start信號,根據(jù)Data_rdy_sync信號的控制向第一D觸發(fā)器輸入相應(yīng)信號,第一D觸發(fā)器輸出Receive_start信號,該Receive_start信號分別輸入上述第三選擇器的0輸入端、計(jì)數(shù)器A的使能端以及第五選擇器的控制端。
計(jì)數(shù)器A的計(jì)數(shù)周期PH_A等于輸入數(shù)據(jù)的周期對應(yīng)在系統(tǒng)工作時(shí)鐘域上的時(shí)鐘周期數(shù)。計(jì)數(shù)器A還在一個(gè)固定的相位CON_A產(chǎn)生數(shù)據(jù)采集使能信號Data_sample_en,其中CON_A是預(yù)選設(shè)定的,為了滿足前面所述的Data_sample_en在Data_tmp前后兩個(gè)變化點(diǎn)的中間位置的條件,較佳地將CON_A設(shè)定為PH_A的一半左右。并且,計(jì)數(shù)器A還在滿足下面邏輯表達(dá)式(1)的時(shí)候,輸出一個(gè)Phase_error信號,Phase_error信號用于控制將計(jì)數(shù)器A清零。
{(|Cnt_A-PH_A|>1)‖(|Cnt_A-PH_A|=1&&Cnt_B>=CON_B)}&&Data_rdy_sync==1(1)邏輯表達(dá)式(1)中,|Cnt_A-PH_A|>1表示在Data_rdy_sync信號到達(dá)時(shí)如果計(jì)數(shù)器A的相位Cnt_A與計(jì)數(shù)器A的計(jì)數(shù)周期PH_A的相位差的絕對值大于1個(gè)時(shí)鐘周期的情況。|Cnt_A-PH_A|=1&&Cnt_B>=CON_B表示通過計(jì)數(shù)器B對在Data_rdy_sync信號到達(dá)時(shí)計(jì)數(shù)器A的相位Cnt_A與計(jì)數(shù)器A的計(jì)數(shù)周期PH_A的相位差的絕對值等于1個(gè)時(shí)鐘周期的連續(xù)事件進(jìn)行計(jì)數(shù),并且計(jì)數(shù)器B的相位Cnt_B大于等于預(yù)先設(shè)定的CON_B的情況。Data_rdy_sync==1表示當(dāng)前Data_rdy_sync信號有效,即Data_rdy_sync到達(dá)時(shí)。綜上,邏輯表達(dá)式(1)表示滿足發(fā)生上述兩個(gè)情況之一并且Data_rdy_sync有效的情形。
參考圖4,Phase_error信號將計(jì)數(shù)器A清零是通過第四選擇器和第五選擇器實(shí)現(xiàn)的,第四選擇器的1輸入端被輸入Data_rdy_sync、0輸入端被輸入0,根據(jù)Phase_error的控制向第五選擇器的1輸入端輸入相應(yīng)信號;第五選擇器的0輸入端被輸入Data_rdy_sync信號,它根據(jù)上述Receive_start信號的控制向計(jì)數(shù)器A的清零端輸入控制信號,控制計(jì)數(shù)器A進(jìn)行清零。計(jì)數(shù)器A的清零端clr的優(yōu)先級高于使能端en,且高電平有效。
計(jì)數(shù)器B,用來統(tǒng)計(jì)在給定的CON_B個(gè)數(shù)據(jù)樣點(diǎn)的時(shí)間內(nèi)是否所有的Data_rdy_sync到來時(shí)計(jì)數(shù)器A的相位Cnt_A與計(jì)數(shù)器A的計(jì)數(shù)周期PH_A的相位差都等于1,且每一次計(jì)數(shù)器A的值都相等。如果是則計(jì)數(shù)器B不斷累加,直到計(jì)數(shù)器B的值等于預(yù)先設(shè)置的CON_B后停止并將計(jì)數(shù)器A清零,這通過上述的Phase_error信號實(shí)現(xiàn);如果不是則計(jì)數(shù)器B被清零,這通過下面的清零信號實(shí)現(xiàn),即計(jì)數(shù)器B在滿足下面邏輯表達(dá)式(2)的時(shí)候輸出一個(gè)清零信號,該清零信號輸入計(jì)數(shù)器B的清零端,用于將計(jì)數(shù)器B清零。計(jì)數(shù)器B的清零端clr的優(yōu)先級高于使能端en,且高電平有效。
Cnt_A?。紺nt_A_back&&|Cnt_A-PH_A|==1&&Data_rdy_sync==1(2)在邏輯表達(dá)式(2)中,Cnt_A?。紺nt_A_back表示當(dāng)前Data_rdy_sync到達(dá)時(shí)計(jì)數(shù)器A的相位Cnt_A_與上次Data_rdy_sync到達(dá)時(shí)計(jì)數(shù)器A的相位Cnt_A_back不同的情況;|Cnt_A-PH_A|==1表示Data_rdy_sync到達(dá)時(shí)計(jì)數(shù)器A的相位Cnt_A與計(jì)數(shù)器A的計(jì)數(shù)周期PH_A的相位差的絕對值為1的情況;Data_rdy_sync==1表示當(dāng)前Data_rdy_sync信號有效,即Data_rdy_sync到達(dá)時(shí)。綜上,上述邏輯表達(dá)式(2)表示同時(shí)滿足上述兩個(gè)情況并且Data_rdy_sync有效的情形。
相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器的工作過程如下步驟10,計(jì)數(shù)器A在第一個(gè)Data_rdy_sync到來時(shí)啟動(dòng)計(jì)數(shù)。
步驟20,后面每一個(gè)Data_rdy_sync信號到來時(shí),計(jì)數(shù)器A判斷自身的相位是否等于計(jì)數(shù)周期最大值,如果是則表示正常,計(jì)數(shù)器A繼續(xù)計(jì)數(shù);否則執(zhí)行步驟30。
步驟30,計(jì)數(shù)器A判斷自身的相位與計(jì)數(shù)周期最大值的差的絕對值是否大于一個(gè)時(shí)鐘周期,如果大于一個(gè)時(shí)鐘周期,則表明發(fā)生了異常狀態(tài)使得相位有了較大的跳變,那么在下一個(gè)Data_rdy_sync信號到來時(shí)立即更新計(jì)數(shù)器A的相位,即將計(jì)數(shù)器A清零重新計(jì)數(shù),這時(shí)的輸出數(shù)據(jù)的Data_out的間隔發(fā)生改變。如果兩者差的絕對值小于等于一個(gè)時(shí)鐘周期,執(zhí)行步驟40,此時(shí)有兩種可能1、兩個(gè)時(shí)鐘域的時(shí)鐘都處于正常狀態(tài),這個(gè)誤差由于抖動(dòng)引起的;2、兩個(gè)時(shí)鐘域中至少一個(gè)時(shí)鐘的相位發(fā)生了偏移。
步驟40,用計(jì)數(shù)器B統(tǒng)計(jì)連續(xù)一段時(shí)間(即上述CON_B個(gè)數(shù)據(jù)采樣點(diǎn))內(nèi)Data_rdy_sync到達(dá)時(shí)對應(yīng)的計(jì)數(shù)器A的相位是否都等于相同的值,如果是則表示數(shù)據(jù)相位已經(jīng)發(fā)生了改變,并在下一個(gè)Data_rdy_sync到達(dá)時(shí)更新計(jì)數(shù)器A的相位,即清零重新計(jì)數(shù);否則,將計(jì)數(shù)器B清零執(zhí)行步驟2重新開始判斷。
在上述過程中,當(dāng)計(jì)數(shù)器A的相位等于預(yù)先設(shè)置的CON_A時(shí),產(chǎn)生數(shù)據(jù)采集使能信號Data_sample_en,并輸入讀數(shù)據(jù)端。
讀數(shù)據(jù)端在數(shù)據(jù)采集使能信號Data_sample_en有效時(shí),從存儲單元讀取數(shù)據(jù)并輸出。
采用本發(fā)明上述裝置在異步時(shí)鐘域內(nèi)傳輸數(shù)據(jù)的過程如下步驟100,在寫使能信號Data_wt_en有效時(shí),將數(shù)據(jù)緩存在存儲單元中,同時(shí)產(chǎn)生一個(gè)數(shù)據(jù)就緒指示信號Data_rdy并發(fā)送給接收方;
步驟200,接收方對所述數(shù)據(jù)就緒指示信號Data_rdy延遲至少兩個(gè)時(shí)鐘周期后,對其進(jìn)行邊沿檢測,在檢測到所述數(shù)據(jù)就緒指示信號上升沿時(shí)產(chǎn)生數(shù)據(jù)指示信號Data_rdy_sync;步驟300,在所述數(shù)據(jù)指示信號Data_rdy_sync到達(dá)時(shí),判斷此時(shí)計(jì)數(shù)器A的相位Cnt_A與計(jì)數(shù)器A的計(jì)數(shù)周期PH_A的關(guān)系,在計(jì)數(shù)器A相位Cnt_A等于其計(jì)數(shù)周期PH_A的情況下,即兩者差值等于零時(shí),計(jì)數(shù)器A正常計(jì)數(shù),并在計(jì)數(shù)器A的相位達(dá)到預(yù)先設(shè)定相位CON_A時(shí)產(chǎn)生數(shù)據(jù)采集使能信號Data_sample_en;在兩者差值的絕對值大于系統(tǒng)工作時(shí)鐘域一個(gè)時(shí)鐘周期的情況下,在下一個(gè)Data_rdy_sync到達(dá)時(shí)將計(jì)數(shù)器A清零重新計(jì)數(shù)。在此期間內(nèi),在計(jì)數(shù)器A的相位達(dá)到預(yù)先設(shè)定相位CON_A時(shí)產(chǎn)生數(shù)據(jù)采集使能信號Data_sample_en;在兩者差值的絕對值小于等于一個(gè)時(shí)鐘周期的情況下,進(jìn)一步判斷是否在連續(xù)CON_B次Data_rdy_sync信號到達(dá)時(shí)計(jì)數(shù)器A的相位都等于相同的值,如果是,則在下一個(gè)Data_rdy_sync到達(dá)時(shí)將計(jì)數(shù)器A清零重新計(jì)數(shù);否則將計(jì)數(shù)器B清零并執(zhí)行步驟C重新判斷。在此期間內(nèi),在計(jì)數(shù)器A的相位達(dá)到預(yù)先設(shè)定相位CON_A時(shí)產(chǎn)生數(shù)據(jù)采集使能信號Data_sample_en。
步驟400,讀數(shù)據(jù)端根據(jù)所述數(shù)據(jù)采集使能信號從存儲單元讀取數(shù)據(jù)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置,其特征在于,該裝置包括存儲單元,用于緩存數(shù)據(jù);寫數(shù)據(jù)端,用于在寫使能信號有效時(shí)將數(shù)據(jù)緩存在存儲單元中;數(shù)據(jù)就緒指示信號發(fā)生電路,用于在寫使能信號有效時(shí)產(chǎn)生數(shù)據(jù)就緒指示信號;沿檢測電路,用于檢測數(shù)據(jù)就緒指示信號發(fā)生電路產(chǎn)生的數(shù)據(jù)就緒指示信號的邊沿,在檢測到所述數(shù)據(jù)就緒指示信號的邊沿時(shí)產(chǎn)生數(shù)據(jù)指示信號;包括第一計(jì)數(shù)器的相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器,用于根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位,并在第一計(jì)數(shù)器的相位達(dá)到預(yù)先設(shè)定的相位時(shí)產(chǎn)生數(shù)據(jù)采集使能信號;讀數(shù)據(jù)端,用于根據(jù)相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器產(chǎn)生的數(shù)據(jù)采集使能信號從存儲單元讀取數(shù)據(jù);其中寫數(shù)據(jù)端、數(shù)據(jù)就緒指示信號發(fā)生電路工作在數(shù)據(jù)隨路時(shí)鐘域,沿檢測電路、相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器、以及讀數(shù)據(jù)端工作在系統(tǒng)工作時(shí)鐘域。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,該裝置進(jìn)一步包括位于數(shù)據(jù)就緒指示信號發(fā)生電路與沿檢測電路之間的信號延遲電路,用于將所述數(shù)據(jù)就緒指示信號鎖存至少兩個(gè)時(shí)鐘周期后輸入所述沿檢測電路。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述信號延遲電路由多個(gè)串連的D觸發(fā)器組成。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述數(shù)據(jù)就緒指示信號發(fā)生電路包括第一選擇器、第二選擇器、D觸發(fā)器和延時(shí)器,其中,第一選擇器的1輸入端被輸入0,0輸入端與所述D觸發(fā)器的輸出端相連,控制端與所述延時(shí)器的輸出端相連,輸出端與第二選擇器的0輸入端相連;第二選擇器的1輸入端被輸入1,0輸入端被與第一選擇器的輸出端相連,控制端被輸入寫使能信號,輸出端與所述D觸發(fā)器的D輸入端相連;所述D觸發(fā)器的D輸入端與第二選擇器的輸出端相連,輸出端與所述沿檢測電路、第一選擇器的0輸入端以及所述延時(shí)器的輸入端相連;所述延時(shí)器的輸入端與所述D觸發(fā)器的輸出端相連,輸出端與第一選擇器的控制端相連。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述延時(shí)器由多個(gè)串連的D觸發(fā)器組成,或者為等待多個(gè)時(shí)鐘周期輸出信號的計(jì)數(shù)器。
6.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述相位監(jiān)測和數(shù)據(jù)采集相位發(fā)生器進(jìn)一步包括第三選擇器、第四選擇器、第五選擇器、第一D觸發(fā)器、第二D觸發(fā)器以及第二計(jì)數(shù)器,其中,第三選擇器的1輸入端被輸入1,0輸入端與第一D觸發(fā)器的輸出端相連,控制端被輸入所述數(shù)據(jù)指示信號,輸出端與第一D觸發(fā)器的D輸入端相連;第四選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端被輸入0,控制端與第一計(jì)數(shù)器的輸出端相連,輸出端與第五選擇器的輸入端相連;第五選擇器的1輸入端被輸入所述數(shù)據(jù)指示信號,0輸入端與第四選擇器的輸出端相連,控制端與第一D觸發(fā)器的輸出端相連,輸出端與第一計(jì)數(shù)器的清零端相連;第一D觸發(fā)器的D輸入端與第三選擇器的輸出端相連,輸出端與第三選擇器的0輸入端、第五選擇器的控制端以及第一計(jì)數(shù)器的使能端相連;第二D觸發(fā)器的D輸入端與第一計(jì)數(shù)器的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與第二計(jì)數(shù)器的清零端相連;第一計(jì)數(shù)器的清零端與第五選擇器的輸出端相連,使能端與第一D觸發(fā)器的輸出端相連,輸出端與第四選擇器的控制端以及第二D觸發(fā)器的D輸入端相連,第一計(jì)數(shù)器的輸出端輸出數(shù)據(jù)采集使能信號;第二計(jì)數(shù)器的清零端與其輸出端以及第二D觸發(fā)器的輸出端相連,使能端被輸入所述數(shù)據(jù)指示信號,輸出端與其清零端相連。
7.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述存儲單元為隨機(jī)存取存儲單元或寄存器。
8.一種在異步時(shí)鐘域傳輸數(shù)據(jù)的方法,其中發(fā)送方位于數(shù)據(jù)隨路時(shí)鐘域,接收方位于系統(tǒng)工作時(shí)鐘域并包括第一計(jì)數(shù)器,其特征在于,該方法包括以下步驟A.發(fā)送方在寫使能信號有效時(shí),將數(shù)據(jù)緩存在存儲單元中,同時(shí)產(chǎn)生一個(gè)數(shù)據(jù)就緒指示信號并發(fā)送給接收方;B.接收方在檢測到所述數(shù)據(jù)就緒指示信號邊沿時(shí)產(chǎn)生數(shù)據(jù)指示信號;C.根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位,并在第一計(jì)數(shù)器的相位達(dá)到設(shè)定相位時(shí)從存儲單元讀取數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟B前進(jìn)一步包括將所述數(shù)據(jù)就緒指示信號鎖存一個(gè)以上時(shí)鐘周期的步驟。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟C中所述根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位的步驟包括判斷數(shù)據(jù)指示信號到達(dá)時(shí)第一計(jì)數(shù)器當(dāng)前相位是否等于其最大相位,在不等于的情況下,判斷所述當(dāng)前相位與最大相位的相差絕對值是否大于1,如果大于1,則在下一個(gè)數(shù)據(jù)指示信號到達(dá)時(shí),觸發(fā)所述第一計(jì)數(shù)器重新計(jì)數(shù);如果小于等于1,則在連續(xù)多個(gè)數(shù)據(jù)指示信號到達(dá)時(shí)所述第一計(jì)數(shù)器當(dāng)前相位與其最大相位的差值保持不變的情況下,觸發(fā)所述第一計(jì)數(shù)器重新計(jì)數(shù)。
11.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟C中所述在第一計(jì)數(shù)器的相位達(dá)到設(shè)定相位時(shí)從存儲單元讀取數(shù)據(jù)的步驟包括在第一計(jì)數(shù)器的相位到達(dá)預(yù)先設(shè)定的相位時(shí)產(chǎn)生數(shù)據(jù)采集使能信號;根據(jù)所述數(shù)據(jù)采集使能信號從存儲單元讀取數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種在異步時(shí)鐘域傳輸數(shù)據(jù)的裝置以及一種在異步時(shí)鐘域傳輸數(shù)據(jù)的方法。其中發(fā)送方位于數(shù)據(jù)隨路時(shí)鐘域,接收方位于系統(tǒng)工作時(shí)鐘域,所述方法包括以下步驟A.發(fā)送方在寫使能信號有效時(shí),將數(shù)據(jù)緩存在存儲單元中,同時(shí)產(chǎn)生一個(gè)數(shù)據(jù)就緒指示信號并發(fā)送給接收方;B.接收方在檢測到所述數(shù)據(jù)就緒指示信號邊沿時(shí)產(chǎn)生數(shù)據(jù)指示信號;C.根據(jù)所述數(shù)據(jù)指示信號調(diào)整第一計(jì)數(shù)器的相位,并在第一計(jì)數(shù)器的相位達(dá)到預(yù)先設(shè)定的相位時(shí)從存儲單元讀取數(shù)據(jù)。本發(fā)明實(shí)現(xiàn)了數(shù)據(jù)在異步時(shí)鐘域之間穩(wěn)定地傳輸,并且將傳輸延遲誤差控制在接收方的一個(gè)時(shí)鐘周期內(nèi),這樣只需要通過提升接收方系統(tǒng)工作時(shí)鐘的頻率就能有效地降低誤差的絕對值。
文檔編號G06F13/38GK1983225SQ20061007832
公開日2007年6月20日 申請日期2006年5月9日 優(yōu)先權(quán)日2006年5月9日
發(fā)明者吳奇祥 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
康平县| 台江县| 新化县| 榆社县| 曲水县| 札达县| 隆昌县| 漯河市| 卫辉市| 柘城县| 三原县| 长子县| 江陵县| 镇安县| 五常市| 林州市| 南华县| 通许县| 桐城市| 玉溪市| 嵩明县| 安福县| 右玉县| 镇平县| 铁岭县| 佳木斯市| 山东| 芒康县| 定州市| 百色市| 福泉市| 华容县| 太湖县| 富阳市| 浮梁县| 南川市| 犍为县| 招远市| 揭西县| 醴陵市| 新建县|