亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于解復(fù)用/復(fù)用方法實(shí)現(xiàn)數(shù)據(jù)同步及其FPGA實(shí)現(xiàn)

        2014-03-16 05:51:46天津中興軟件有限責(zé)任公司周恒箴
        電子世界 2014年7期
        關(guān)鍵詞:雙口計(jì)數(shù)器時(shí)鐘

        天津中興軟件有限責(zé)任公司 周恒箴

        中興通訊股份有限公司 高鳳玲

        1.引言

        隨著數(shù)字系統(tǒng)的規(guī)模越來(lái)越大、復(fù)雜程度越來(lái)越高,兩個(gè)或多個(gè)時(shí)鐘域在邏輯設(shè)計(jì)中的應(yīng)用越來(lái)越多。在不同的時(shí)鐘域中,不可避免地會(huì)遇到數(shù)據(jù)的互相傳遞。由于兩個(gè)不同的時(shí)鐘之間會(huì)存在一定的相位差和短時(shí)的頻率抖動(dòng),為了使數(shù)據(jù)能夠可靠傳輸,在進(jìn)行設(shè)計(jì)時(shí),必須充分考慮時(shí)序?qū)δ艿挠绊?,否則會(huì)照成兩個(gè)時(shí)鐘域之間的數(shù)據(jù)同步失敗。

        將數(shù)據(jù)由異步時(shí)鐘域轉(zhuǎn)換到同步時(shí)鐘域通常采用雙口RAM緩存數(shù)據(jù)的方法來(lái)實(shí)現(xiàn):用異步時(shí)鐘作為雙口RAM的寫時(shí)鐘,寫時(shí)鐘產(chǎn)生雙口RAM的寫地址,由寫時(shí)鐘在一個(gè)端口寫入數(shù)據(jù);再用同步時(shí)鐘作為讀時(shí)鐘,并產(chǎn)生雙口RAM的讀地址,讀時(shí)鐘在另一個(gè)端口讀出數(shù)據(jù);該雙口RAM深度是根據(jù)需要容忍的短時(shí)頻差范圍來(lái)確定。分別將讀寫地址用同步時(shí)鐘采樣并進(jìn)行比較,以判斷讀寫地址之間的距離是否小于可能發(fā)生讀、寫沖突的最小距離,即“危險(xiǎn)距離”[1-2],如果是,則將讀地址跳轉(zhuǎn),轉(zhuǎn)到離當(dāng)前位置最遠(yuǎn)的地址后,再執(zhí)行讀操作;否則不必調(diào)整讀地址,直接執(zhí)行讀操作。這樣讀出來(lái)的數(shù)據(jù)時(shí)穩(wěn)定且正確的,且屏蔽了異步時(shí)鐘和本地同步時(shí)鐘之間的相位差以及短時(shí)的頻率抖動(dòng)。在讀寫指針沖突解決好后,可以有效處理異步時(shí)鐘域的數(shù)據(jù)同步問(wèn)題。上述方法的缺陷在于需要依賴可編程邏輯器件中的RAM資源,此外,同步數(shù)據(jù)的延時(shí)時(shí)間較長(zhǎng),需要根據(jù)雙口RAM設(shè)計(jì)的深度決定。

        本文在FPGA上通過(guò)解復(fù)用、復(fù)用實(shí)現(xiàn)數(shù)據(jù)同步,該方法不僅適用于兩個(gè)同源但傳輸延時(shí)有變化的時(shí)鐘,也可以適用于非同源的異步時(shí)鐘,該方法能減少數(shù)據(jù)傳輸?shù)难訒r(shí)的同時(shí),可以有效地節(jié)省可編程邏輯的資源,不占RAM資源。

        2.FPGA實(shí)現(xiàn)

        FPGA的實(shí)現(xiàn)方法如圖1所示,由解復(fù)用模塊、同步模塊、復(fù)用模塊共3個(gè)功能模塊組成。

        圖1 FPGA實(shí)現(xiàn)流程圖

        解復(fù)用模塊用異步時(shí)鐘對(duì)異步數(shù)據(jù)進(jìn)行1∶N解復(fù)用,使數(shù)據(jù)的速率下降到原來(lái)的1/N,解復(fù)用輸出N路數(shù)據(jù)。并對(duì)異步時(shí)鐘計(jì)數(shù),輸出sync信號(hào)。

        圖2所示是解復(fù)用和復(fù)用實(shí)現(xiàn)數(shù)據(jù)同步的時(shí)序圖,該異步時(shí)鐘采用上升沿處理,在t0時(shí)刻對(duì)輸入數(shù)據(jù)開始解復(fù)用,解復(fù)用后分別在接下來(lái)的t(1)到t(N)的N個(gè)時(shí)鐘周期,分別輸出D0、D1、D2、….DN-1共N路解復(fù)用的數(shù)據(jù)信號(hào),數(shù)據(jù)的寬度為N個(gè)異步時(shí)鐘周期,sync信號(hào)以2N個(gè)異步時(shí)鐘寬度為周期,每N個(gè)異步時(shí)鐘寬度發(fā)生電平跳變,在t0時(shí)刻跳變,和D0位置對(duì)齊。

        圖2 解復(fù)用和復(fù)用實(shí)現(xiàn)數(shù)據(jù)同步的時(shí)序圖

        需要說(shuō)明的是:sync的周期T是N的整數(shù)倍,為了保證同步時(shí)鐘能夠可靠采樣到,推薦sync的脈沖寬度至少大于2個(gè)異步時(shí)鐘周期。

        同步模塊主要是用本地時(shí)鐘對(duì)異步的sync信號(hào)進(jìn)行同步采樣,再對(duì)采樣后的信號(hào)計(jì)數(shù)。首先,解復(fù)用模塊輸出的sync信號(hào)送入同步模塊中進(jìn)行同步處理。同步模塊采用同步時(shí)鐘作為主時(shí)鐘,圖3所示是同步模塊的結(jié)構(gòu)示意圖,sync信號(hào)先送入信號(hào)同步單元內(nèi),信號(hào)同步單元用同步時(shí)鐘的上升沿或者下降沿對(duì)異步sync信號(hào)進(jìn)行采樣,分別輸出同步1拍的信號(hào)sync1和同步2拍后的sync2信號(hào)給判斷模塊單元,用同步時(shí)鐘下降沿采sync信號(hào),在k0時(shí)刻輸出sync1,在k1時(shí)刻輸出sync2。

        其次,判斷模塊單元進(jìn)行跳變沿的判斷:當(dāng)同步時(shí)鐘判斷sync1不等于sync2時(shí),發(fā)出沿觸發(fā)信號(hào)給M位計(jì)數(shù)器單元進(jìn)行計(jì)數(shù),M位計(jì)數(shù)器單元最后再將計(jì)數(shù)器的計(jì)數(shù)結(jié)果送給復(fù)用模塊。圖3所示的y0時(shí)刻出發(fā)信號(hào)給M位計(jì)數(shù)器單元進(jìn)行計(jì)數(shù)。

        M位計(jì)數(shù)器,M的取值為log2N的上取整(即M=┏log2N┐),該M位計(jì)數(shù)器的調(diào)整策略為:

        (1)從0到N-1進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)器記到為N-1時(shí),再跳變?yōu)?。

        (2)在沿觸發(fā)的y0時(shí)刻,如果上一次的計(jì)數(shù)值沒有超過(guò)預(yù)計(jì)的范圍,則不用調(diào)整,繼續(xù)按(1)進(jìn)行計(jì)數(shù),如果超過(guò)預(yù)計(jì)的范圍,則計(jì)數(shù)器清0。例如N=4時(shí),預(yù)計(jì)的范圍為3、0、1,計(jì)數(shù)在此范圍不進(jìn)行調(diào)整,直接加1;如果為2,表示超過(guò)范圍,需要調(diào)整為0。

        復(fù)用模塊采用同步時(shí)鐘作輸入時(shí)鐘,按照同步輸出的同步計(jì)數(shù)器數(shù)值依次對(duì)解復(fù)用數(shù)據(jù)D0D1D2….DN-1進(jìn)行采樣,并N∶1復(fù)用輸出。例如圖2所示,在y1時(shí)刻輸出D0,在y2時(shí)刻輸出D1,在y3時(shí)刻輸出D2,在y(N)時(shí)刻輸出DN-1。

        圖3 同步模塊單元的結(jié)構(gòu)圖

        3.實(shí)驗(yàn)結(jié)果與性能分析

        3.1 實(shí)驗(yàn)過(guò)程

        以下是利用該方法在Altera FPGA器件上設(shè)計(jì)一個(gè)同源的、但有傳輸延時(shí)變化的時(shí)鐘之間的數(shù)據(jù)同步:圖4是利用解復(fù)用/復(fù)用方法實(shí)現(xiàn)數(shù)據(jù)同步過(guò)程的時(shí)序圖。

        圖4 FPGA實(shí)例利用復(fù)用、解復(fù)用實(shí)現(xiàn)數(shù)據(jù)同步過(guò)程時(shí)序圖

        (1)先用異步時(shí)鐘I_clk_wr對(duì)輸入數(shù)據(jù)i_data將進(jìn)行1∶3解復(fù)用,解復(fù)用出8路解復(fù)用后的數(shù)據(jù)S0_i_data、S1_i_data、S2_i_data和1路同步信號(hào)S_sync。

        (2)在同步模塊單元中,信號(hào)同步模塊采用同步時(shí)鐘I_clk_rd的下降沿對(duì)輸入的S_sync進(jìn)行兩次同步,S_sync1和S_sync2。

        判斷模塊進(jìn)行跳變沿的判斷:當(dāng)同步時(shí)鐘判斷S_sync1不等于S_sync2時(shí),發(fā)出沿觸發(fā)信號(hào)給2位計(jì)數(shù)器模塊進(jìn)行計(jì)數(shù)M=┏log23┐=2,S_flag_cnt是3位的計(jì)數(shù)器,該計(jì)數(shù)器的預(yù)計(jì)范圍2,當(dāng)計(jì)數(shù)到2時(shí),再跳變?yōu)?。在輸出觸發(fā)信號(hào)的時(shí)刻需要判斷上一拍的計(jì)數(shù)器是否為2,如果是2,計(jì)數(shù)器變?yōu)?。如果不為2,則計(jì)數(shù)器清0,其他時(shí)刻計(jì)數(shù)器依次累加。

        (3)復(fù)用模塊,采用同步時(shí)鐘I_clk_rd作采樣時(shí)鐘,按照同步計(jì)數(shù)器數(shù)值依次對(duì)解復(fù)用數(shù)據(jù)S0_i_data、S1_i_data、S2_i_data進(jìn)行采樣,并3∶1復(fù)用輸出,圖4中的O_data為復(fù)用的輸出數(shù)據(jù)。

        3.2 與利用DPRAM IPcore方法實(shí)現(xiàn)的數(shù)據(jù)同步功能對(duì)比

        調(diào)用Altera的DPRAM IPcore生成雙口RAM濾波器模塊[8],設(shè)計(jì)一個(gè)位寬為8bit,深度為32字節(jié)的雙口RAM,與上述方法進(jìn)行仿真對(duì)比,如圖5所示,O1_data是利用復(fù)用、解復(fù)用方法實(shí)現(xiàn)數(shù)據(jù)同步的輸出結(jié)果,O2_data是利用DPRAM IPCORE輸出的結(jié)果,對(duì)比數(shù)據(jù),說(shuō)明兩種方法的輸出數(shù)據(jù)一致。

        圖5 與調(diào)用DPRAM IPCORE方法進(jìn)行數(shù)據(jù)同步的結(jié)果對(duì)比

        3.3 FPGA資源和系統(tǒng)時(shí)鐘速度的對(duì)比

        上述的查階躍響應(yīng)法的實(shí)例只需要寄存器單元就可以實(shí)現(xiàn),如果采用Altera Cyclone IV系列器件,型號(hào)為EP4CGX150(該器件具有149,760LEs(邏輯單元)和6,480Kbit嵌入式存儲(chǔ)器[9]),編譯工程進(jìn)行對(duì)比,該方法只需要使用92LEs;而采用Altera DPRAM IPcore實(shí)現(xiàn),需要占用32 LEs、256Memory Bits和1個(gè)M9K。如果輸入數(shù)據(jù)的位寬比較大,節(jié)約RAM的優(yōu)勢(shì)更加明顯。因此,采用解復(fù)用/復(fù)用方法實(shí)現(xiàn)的數(shù)據(jù)同步,可以節(jié)省FPGA的RAM資源。

        4.結(jié)束語(yǔ)

        從仿真和實(shí)驗(yàn)結(jié)果可以看出,解復(fù)用、復(fù)用實(shí)現(xiàn)數(shù)據(jù)同步的方法不僅可以適用于非同源的異步時(shí)鐘,也可以適用于同源但有傳輸延時(shí)變化的時(shí)鐘,這種方法能有效地減少數(shù)據(jù)傳輸?shù)难訒r(shí),如實(shí)例中延時(shí)小于3個(gè)時(shí)鐘周期;同時(shí)采用寄存器實(shí)現(xiàn),有效地節(jié)省可編程邏輯的資源,不占RAM資源。

        [1]莫毅群,方有綱,王峰.一種可編程邏輯器件實(shí)現(xiàn)數(shù)據(jù)交換的方法及其結(jié)構(gòu)[P].CN200510130524.3,2005-12-14.

        [2]孟慶鋒.一種將異步時(shí)鐘域轉(zhuǎn)換成同步時(shí)鐘域的方法[P].中國(guó).CN03153668.9,2003-8-19.

        [3]傅仙偉,趙翠芳,張長(zhǎng)江.基于FPGA的高速采樣系統(tǒng)實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(6):19-21.

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

        [5]陳立萬(wàn),黃青龍,劉萬(wàn)里.基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,34(3):359-362.

        [6]柳震,郭黎利,王鵬宇.通信數(shù)據(jù)同步中基于FPGA的一種有限任意長(zhǎng)FIFO的生成辦法[J].自動(dòng)化技術(shù)與應(yīng)用,2011(3):40-42.

        [7]廖艷,王廣君,高楊.FPGA異步時(shí)鐘設(shè)計(jì)中的同步策略[J].自動(dòng)化技術(shù)與應(yīng)用,2006,25(1):67-68.

        [8]Altera Corporation.Internal Memory(RAM and ROM)User Guide[M].2012.11:Chapter 3.

        [9]Altera Corporation.Cyclone Device Handbook[M].2012,10,Volume 1.

        猜你喜歡
        雙口計(jì)數(shù)器時(shí)鐘
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        別樣的“時(shí)鐘”
        雙口形式的戴維寧定理在電路分析中的應(yīng)用
        古代的時(shí)鐘
        雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
        有趣的時(shí)鐘
        時(shí)鐘會(huì)開“花”
        計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
        雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
        雙口RAM在無(wú)人機(jī)三余度飛控計(jì)算機(jī)數(shù)據(jù)交換中的應(yīng)用
        国产色婷婷久久又粗又爽| 亚洲精品国偷拍自产在线观看蜜臀 | 中文字幕一区日韩精品| 午夜男女爽爽爽在线视频| 亚洲两性视频一三区| 亚洲熟妇夜夜一区二区三区| 小黄片免费在线播放观看| 亚洲精品国产第一区二区| av永久天堂一区二区三区| 亚洲av无码精品色午夜果冻不卡| 国产精品一区二区三区精品| 国产一区二区三区涩涩涩| 亚洲视频在线观看一区二区三区| 日本精品少妇一区二区三区| 国产人妻人伦精品1国产盗摄| 欧美色色视频| 精品蜜桃视频在线观看| 久久老熟女一区二区三区福利| 久久亚洲中文字幕精品一区 | 啪啪视频一区二区三区入囗| 日韩精品极品在线观看视频| 桃色一区一区三区蜜桃视频| 18国产精品白浆在线观看免费 | 嗯啊哦快使劲呻吟高潮视频| 亚洲www视频| 亚洲精品女人天堂av麻| 91超精品碰国产在线观看| 我把护士日出水了视频90分钟| 乌克兰少妇xxxx做受6| 日本女同伦理片在线观看| 国产亚洲中文字幕一区| 亚洲欧美v国产一区二区| 午夜精品久久久久久久久久久久| 中文字幕亚洲人妻系列| 日韩日本国产一区二区| 国产精品蝌蚪九色av综合网| 女人让男人桶爽30分钟| 亚洲VA中文字幕欧美VA丝袜| 玖玖资源网站最新网站| 美女下蹲露大唇无遮挡| 女人被狂躁高潮啊的视频在线看|