色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的IPV6數字包的拆裝實現

          基于FPGA的IPV6數字包的拆裝實現

          作者: 時間:2008-11-28 來源:網絡 收藏

          基于FPGA的IPV6數字包的拆裝實現

            2 數據包的重新封裝

            用實現數據包的重新封裝,同時是通過控制幾個的數據輸入輸出來實現的,同部的重新封裝單元電路的物理連接如圖3所示,其4的作用是緩存密碼芯片送出的加解密處理后的數據;5的作用是緩存重新封裝后的數據;FIFO3與拆分單元共用,作用是緩用IPV6數據包頭。

            圖中的FIFO4和FIFO5也都是由Xilinx公司的開發(fā)工具ISE6.1自帶的Core IP生成的,其中FIFO4是異步FIFO,輸入時鐘為50MHz,輸出時鐘為62.5MHz,輸入輸出數據寬度都是66bit;FIFO5是同步FIFO,工作時鐘為62.5MHz,輸入輸出數據寬度都是66bit。

            密碼芯片對數據進行加/解密處理完畢之后,在送出處理數據前,首先向外部系統發(fā)送一64bit長的連接指令,指明處理數據所用的加解密算法和數據長度。例如,在對數據進行2DES加密處理的情況下,接收指令格式(16位制)如圖4所示,其中高56位為指令編碼,低8位為將要輸出的處理數據的長度。

          基于FPGA的IPV6數字包的拆裝實現

            因此,在接收處理數據時,首先判斷是否有接收指令,如果有接收搦令,則其接收指令中的數據長度放寄存器中進行寄存,并設定計數器COUNTER2開始計數。當0COUNTER2=數據長度時,則令FIFO4的寫使能WR_EN4有效;當COUNTER2為其它值時,WR_EN4無效。當0COUNTER2數據長度時,將“11”寫入DIN4(65~64),將64bit處理數據寫入DIN4(63~0);當COUNTER2=數據長度時,即接收到最后一周期的處理數據時,將“01”寫入DIN4(65~64),將64bit處理數據寫入DIN4(63~0),并將COUNTER2清零。這樣,密碼芯片處理后的數據就按格式要求緩存到FIFO4中了。

            這時,包頭已經緩存到FIFO3中了,處理后的數據已經按格式要求緩存到FIFO4中了,最后要做的就是控制FIFO3和FIFO4,把一個完整的IPV6數據包寫入FIFO5中。具體做法是:設定計數器COUNTER3,當FIFO3和FIFO4都非空時,COUNTER3開始計數。當COUNTER3>0時,將FIFO5的寫使能信號WR_EN5置為有效;當COUNTER3=0時,WR_EN5置為無效。當0COUNTER36時,令FIFO3的讀使能RD_EN3有效,FIFO3將輸出數據DOUT3(65~0)寫入FIFO5的輸入端DIN5(65~0);當COUNTER3>l=6時,令RD_EN3無效,RD_EN4有效,將FIFO4的輸出數據DOUT4(65~0)寫入FIFO5的輸入端DIN5(65~0),直到DOUT4(65~64)=“01”時,將COUNTER3清零,RD_EN4置為無效。這樣,一個完整的IPV6數據包就重封裝在FIFO5中了,當判斷到FIFO5非空間,就可以令RD_EN5有效,向外輸出處理后的完整的IPV6數據包了。

          基于FPGA的IPV6數字包的拆裝實現

            從上述討論可以看出,本課題在中采用了五個FIFO,并設定了三個計數器控制這五個FIFO的輸入輸出來實現對IPV6數據包的拆分和重新封裝??偟膩砜矗麄€FPGA設計思路巧妙,電路結構簡單,達到了預期的處理速度。圖5是整個測試系統在對1024字節(jié)的IPV6數據包進行拆包、送密碼芯片加密。重裝封裝處理后測試儀控制軟件界面上顯示的收包數據統計。從該圖可以看出,整個系統對IPV6數據包的處理速度達到了2.372Gbit/s,而這樣的處理速度用軟件是不可能達到的。


          上一頁 1 2 3 下一頁

          關鍵詞: FPGA IPV6 FIFO

          評論


          相關推薦

          技術專區(qū)

          關閉