<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > FPGA+DSP的高速通信接口設(shè)計與實現(xiàn)

          FPGA+DSP的高速通信接口設(shè)計與實現(xiàn)

          作者: 時間:2013-12-04 來源:網(wǎng)絡(luò) 收藏
          one; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 20px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋體, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> ?。?) 接收部分:由編碼和緩存兩部分組成。由于鏈路口的數(shù)錯是DDR形式的,不方便數(shù)據(jù)的緩存,本文采用QuartusII Megafunctions中的altddio模塊將上升沿數(shù)據(jù)和下降沿數(shù)據(jù)分開。注意這個模塊的下降沿數(shù)據(jù)輸出會滯后上升沿數(shù)據(jù)1個時鐘周期,輸出時應(yīng)該用鏈路口時鐘信號(LxCLKIN)通過D觸發(fā)器來將數(shù)據(jù)對齊。該模塊的inclock一定要用鏈路口時鐘信號以保證數(shù)據(jù)的正確讀取,如圖2所示。又由于內(nèi)部數(shù)據(jù)是32位的長字,所以寫入接收緩存前應(yīng)該用一組D觸發(fā)器將數(shù)據(jù)進(jìn)行32bit對齊,這里注意鏈路口先傳輸32位數(shù)據(jù)中的低8位。

            FPGA+DSP的高速通信接口設(shè)計與實現(xiàn)

            (2) 控制部分:由令牌轉(zhuǎn)換模塊和控制模塊組成,是整個設(shè)計的核心部分,完成對各部分的控制和與內(nèi)部進(jìn)行通信(通過CTL一組信號)。TS101的鏈路口通信握手是靠兩根時鐘信號驗證令牌指令完成,即當(dāng)發(fā)送端驅(qū)動原本為高的LxCLKOUT信號為低電平,以此作為令牌請求向接收端發(fā)出。如果接收端準(zhǔn)備好接收,則接收端驅(qū)動LxCLKIN為高;如果令牌發(fā)出6個時鐘周期后,LxCLKIN信號仍然為高,則肩動數(shù)據(jù)傳輸(以上時鐘信號都以發(fā)送端視角分析)。本設(shè)計中,令牌轉(zhuǎn)換模塊負(fù)責(zé)驗證令牌和發(fā)送令牌。這里要注意,由于用來驗證令牌低電平個數(shù)的時鐘信號(PLL_32ns)是由時鐘信號(CLK)通過鎖相環(huán)倍頻得到,與鏈路口時鐘異步,故驗證令牌時,當(dāng)計數(shù)器計到5個低電平時即可認(rèn)為已達(dá)成通信握手,否則可能會丟失數(shù)據(jù)。達(dá)成握手后通知控制模塊向接收或發(fā)送緩存輸出控制信號,其中接收控制信號包括寫緩存時鐘和寫使能。發(fā)送控制信號包括讀緩存時鐘、讀使能和DSP中斷信號(DSP_IRQ),其中寫緩存時鐘通過對鏈路口時鐘分頻得到,讀緩存時鐘由鎖相環(huán)倍頻工作時鐘得到。

            (3) 發(fā)送部分:與接收部分類似,也南編碼和緩存兩部分組成,相應(yīng)的設(shè)計基本相同,這里不作過多介紹。由于DSP鏈路口每次傳輸數(shù)據(jù)個數(shù)的最小單位是4個32位字,即8個鏈路時鐘周期,所以發(fā)送時鐘廊該每8個時鐘周期一組,以湊夠128bit,避免傳輸錯誤,其中多余無效的數(shù)據(jù)DSP可以自行舍去。發(fā)送部分采用DSP外部中斷方式而不是鏈路口中斷方式通知DSP接收數(shù)據(jù)。

            TS101的鏈路口通信協(xié)議要求鏈路口接收端在傳輸啟動一個周期后,將其LxCLKOUT拉低,若可以繼續(xù)接收,在下一個周期再將其拉高,以此作為連接測試。實際運行中發(fā)現(xiàn),當(dāng)FPGA接收數(shù)據(jù)時,可將LxCLKOUT信號一直驅(qū)動為高,不必做特殊的連接測試也能正確接收數(shù)據(jù)。另外,發(fā)送鏈路口數(shù)據(jù)時,由于發(fā)送緩存中已經(jīng)對應(yīng)仔好了要發(fā)送的8bit數(shù)據(jù),故可以使用對FPGA時鐘信號(CLK)倍頻得到的PLL_16ns信號來讀發(fā)送緩存,讀出的數(shù)據(jù)即鏈路口發(fā)送數(shù)據(jù),再對PLL_16ns信號的下降沿分頻得到鏈路口的發(fā)送時鐘信號。

            限于篇幅,本文只給出FPCA接收TS101數(shù)據(jù)的時序圖,如圖3所示。LxCLKIN、LxDAT[7..0]是DSP的鏈路口輸出時鐘和數(shù)據(jù),LxCLKOUT是FPGA的回饋準(zhǔn)備好信號。仿真中鏈路口數(shù)據(jù)采用1F-3E(十六進(jìn)制)的32個8bit數(shù)據(jù),即從2221201F到3E3D3C3B的8個32bit數(shù)據(jù);PLL_32ns信號是FPGA內(nèi)部鎖相環(huán)產(chǎn)生的與DSP鏈路口時鐘異步的32ns時鐘信號,用來校驗令牌指令;W_FIFO_EN信號足寫緩存使能信號,當(dāng)令牌驗證后使能接收緩存;DSP_DAT信號是DSP通過鏈路門傳輸?shù)?2bit數(shù)據(jù),通過對鏈路口數(shù)據(jù)的編碼得到;W_BUF_CLK信號由鏈路口時鐘分頻處理得到,將上升沿對應(yīng)的32bit DSP數(shù)據(jù)寫入接收緩存,完成接收過程。

            FPGA+DSP的高速通信接口設(shè)計與實現(xiàn)

            2.3 基于FPGA的TS201鏈路口設(shè)計

            圖4給出了FPGA與TS201進(jìn)行鏈路口通信的設(shè)計框圖。由于TS201的握手信號較多,所以相對TS101的鏈路口設(shè)計容易些。本設(shè)計FPGA時鐘50MHz,TS101核時鐘500MHz,鏈路口時鐘為DSP核時鐘的4分頻,采用4bit方式,單向?qū)嶋H數(shù)據(jù)傳輸速率為125MBps。

            FPGA+DSP的高速通信接口設(shè)計與實現(xiàn)

            TS201的鏈路口數(shù)據(jù)和時鐘采LVDS信號,具有速率高、功耗低、噪聲小的優(yōu)點。Cyclone系列芯片不僅支持LVDS信號,還集成了LVDS轉(zhuǎn)換模塊,這給設(shè)計提供了很大方便。應(yīng)該注意的是,在硬件設(shè)計時LVDS信號兩極的PCB走線要匹配,并且注意匹配電阻網(wǎng)絡(luò)的接入。

            TS201的鏈路口有1bit和4bit兩種傳輸方式,本文以4b

          fpga相關(guān)文章:fpga是什么


          通信相關(guān)文章:通信原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();