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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的IPV6數(shù)字包的分離與封裝的實(shí)現(xiàn)

          基于FPGA的IPV6數(shù)字包的分離與封裝的實(shí)現(xiàn)

          作者: 時(shí)間:2012-05-23 來源:網(wǎng)絡(luò) 收藏

          筆者在參加國家“863”重大專題項(xiàng)目“高速密碼芯片及驗(yàn)證平臺(tái)系統(tǒng)”的過程中,遇到了將數(shù)據(jù)包的包頭和數(shù)據(jù)部分拆開,然后在數(shù)據(jù)部分送密碼芯片進(jìn)行加/解密處理,最后再將處理后的數(shù)據(jù)部分與包頭重新為數(shù)據(jù)包的課題。以往對(duì)IP包進(jìn)行拆裝多利用軟件,但本項(xiàng)目涉及到配合高速密碼芯片(處理速度在2Gbit/s以上)工作的問題,顯然利用軟件IP包的拆裝在速度上達(dá)不到要求。為此,筆者運(yùn)用(型號(hào)為Xilinx公司的XC2VP20-FF86CGB0345)來數(shù)據(jù)包的拆裝。該內(nèi)部邏輯框圖如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/149011.htm

            其工作流程為:2.5GHz的標(biāo)準(zhǔn)數(shù)據(jù)包串行差分信號(hào)通過ROCKETIO高速通道后轉(zhuǎn)換為16位125MHz并行信號(hào),再經(jīng)信號(hào)轉(zhuǎn)換模塊進(jìn)一步轉(zhuǎn)換為66位62.5MHz并行信號(hào)后進(jìn)入FIFO1緩存,然后對(duì)其輸出數(shù)據(jù)進(jìn)行判斷,若是報(bào)頭則送入FIFO3緩存,若是數(shù)據(jù)部分則送入FIFO2緩存,最后將FIFO2數(shù)據(jù)送往密碼芯片進(jìn)行處理;經(jīng)密碼芯片處理的數(shù)據(jù)首先放入FIFO4進(jìn)行緩存,然后控制FIFO3和FIFO4將一個(gè)數(shù)據(jù)包的頭和數(shù)據(jù)寫入FIFO5中,重新成一個(gè)完整的數(shù)據(jù)包;重新的IPV6數(shù)據(jù)包經(jīng)過信號(hào)轉(zhuǎn)換模塊變?yōu)?6位125MHz的并行信號(hào),并通過ROCKETIO高速通道轉(zhuǎn)換為2.5GHz高速串行差分信號(hào)送出。

            可以看出,經(jīng)過以上流程,實(shí)現(xiàn)了一個(gè)數(shù)據(jù)包的拆分和重新封裝。
          1 IPV6數(shù)據(jù)包的拆分

            用P實(shí)現(xiàn)IPV6數(shù)據(jù)包的拆分,主要是通過控制幾個(gè)FIFO的數(shù)據(jù)輸入輸出來實(shí)現(xiàn)的。FPGA內(nèi)部的拆分單元電路的物理連接如圖2所示,其中FIFO的作用是緩存IPV6數(shù)據(jù)包,F(xiàn)IFO2的作用是緩存IPV6數(shù)據(jù)包的數(shù)據(jù)部分,F(xiàn)IFO3的作用是緩存IPV6數(shù)據(jù)包的包頭。

            圖中的三個(gè)FIFO都是由Xilinx公司的開發(fā)工具ISE6.1自帶的Core IP生成的。其中FIFO1和FIFO3是同步FIFO,工作時(shí)鐘為頻率62.5MHz,輸入輸出數(shù)據(jù)寬度都是66bit;FIFO2是異步FIFO,輸入時(shí)鐘頻率為62.5MHz,輸出時(shí)鐘頻率為50MHz(密碼芯片的工作時(shí)鐘頻率為50MHz),輸入輸出數(shù)據(jù)寬度都是64bit。

          基于FPGA的IPV6數(shù)字包的拆裝實(shí)現(xiàn)

            FIFO1的輸入數(shù)據(jù)為IPV6數(shù)據(jù)包??梢钥闯觯摂?shù)據(jù)是以并行的66bit信號(hào)傳輸?shù)?,即每一時(shí)鐘周期并行傳送66bit數(shù)據(jù),其中每個(gè)周期的高兩位(即65位和64位)為數(shù)據(jù)包的頭尾標(biāo)志,這是IPV6路由器內(nèi)部根據(jù)實(shí)際處理需要加上的,“10”表示一個(gè)完整數(shù)據(jù)包的第一周期,“11”表示數(shù)據(jù)包的中間內(nèi)容,“01”表示一個(gè)完整數(shù)據(jù)包的最后一個(gè)周期。因?yàn)镮PV6數(shù)據(jù)包的包頭是固定長(zhǎng)度的,為40字節(jié)(等于5×64bit),故數(shù)據(jù)的前五個(gè)周期為IPV6數(shù)據(jù)包的包頭,包頭后面跟的就是數(shù)據(jù)包的數(shù)據(jù)部分。


          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();