王彥朋 王新剛 王曉君



摘?要:采用 Xilinx 7系列 低 功 耗FPGA芯片,提出一種基于Aurora協議的高速數據傳輸方法,使用VHDL語言進行編程設計,調用Aurora IP核,完成模塊設計和功能仿真驗證,為高速數據的穩定有效傳輸提供了參考,具有一定的工程意義。
關鍵詞:FPGA;高速數據傳輸;Aurora
隨著現代通信技術的日新月異,以往的通信速率已經不能滿足人們需求,更高速度的通信不斷彰顯出來,數據交換和傳輸量的處理復雜程度也不斷提高,這就必須要保證數據的實時性和準確性。[1]在FPGA開發環境中,利用賽靈思公司的高速串行通信數據傳輸協議,來實現數據的高數傳輸;對Aurora核進行深入的分析,完成適合的接口設計,使數據傳輸速率可達Gbps級。
1 Aurora 功能描述及接口設計
Aurora協議是一種可擴展的鏈路層協議,能完成點到點的串行數據傳輸,Aurora 核是 賽靈思公司推出的基于該協議和多吉比特收發器的高速串行設計方案。該核內部實現了Aurora 協議,能為用戶提供靈活實用的接口。利用該核進行數據傳輸,可以省去控制復雜高速I/O接口的麻煩,通過吉比特收發器收發數據,不用再考慮高速串行接口設計相關的編解碼、數據傳輸同步等問題。
Aurora有多個版本,根據編碼方式的差異,普及最廣的為8B10B和64B66B兩種模式,[2]設計采用8B10B模式為設計主版。該核主要功能模塊有:①通道邏輯:負責初始化、驅動GTX或GTH收發器并處理控制字符的編解碼以及錯誤檢測;②全局邏輯:執行通道初始化的綁定和驗證,檢測通道邏輯模塊產生的錯誤;③用戶接收接口:從通道中接收數據并送到用戶程序,執行控制功能。④用戶發送接口:將用戶程序的數據送給通道,執行發送功能。[3]
Aurora接口部分采用流模式接口來設計。流模式接口包括:參考時鐘、復位、接收數據使能信號、接收數據信號、發送數據有效信號、發送數據信號、數據準備信號。處理接口時需注意,數據發送有效信號(s_axi_tx_tvalid)和數據準備信號(s_axi_tx_tready)同時作用時,數據才能正確傳輸。[4]
2 總體方案設計
總體傳輸包括三個大部分,整體發送模塊、Aurora模塊以及整體接收模塊;整體發送模塊包括:轉換模塊、拼接模塊和發送模塊,轉換模塊用來轉換數據位寬和緩存數據,將內部邏輯模塊來的64位數據轉換為16位,拆包模塊負責將收到的數據進行拆包,發送模塊將數據發給Aurora模塊。
整體接收模塊包括:緩存模塊,拼幀模塊和接收模塊;緩存模塊主要用于將從Aurora模塊接收的數據按順序導入,拼幀模塊負責從緩存模塊讀取數據并添加幀頭,接收模塊負責將添加好幀頭的數據轉換成合適的數據位寬并發回內部邏輯進行下一步處理。
3 仿真結果和分析
圖2為發送模塊仿真圖,負責向Aurora模塊發送數據;Rst是系統復位信號,Aurora_clk為時鐘信號,Data_en是數據輸入使能信號,I_data是數據輸入信號,Send_valid是數據輸出使能信號,O_data是數據輸出信號,Ready是Aurora內部的準備信號,并非一直有效,要根據其規律進行處理,才能使數據正確發送。
圖3為接收模塊仿真圖,負責從Aurora模塊接收數據;Rst是系統復位信號,Aurora_clk為時鐘信號,Rcv_valid為輸入有效信號,Rcv_data是數據輸入信號,由圖可以看出接收模塊的時序完全正確,輸出的數據和發送模塊輸入的數據完全相同,驗證系統數據傳輸的正確性。
4 結語
設計在基于FPGA環境下,采用VHDL硬件描述語言進行編程設計,對Aurora 8B10B IP核的結構和接口進行深入分析,給出詳細的接口設計方案,并進行了仿真驗證,實現了數據的高速傳輸,具有很實用的工程價值。
參考文獻:
[1]金冶純.基于FPGA的萬兆網通信協議轉換器設計[D].河北大學,2016.
[2]劉毅夫.萬兆協議轉換系統關鍵技術研究[D].河北科技大學,2019.
[3]任強,姚遠程,秦明偉.片間高速圖像傳輸系統的設計與實現[J].自動化儀表,2018,39(09):34-39.
[4]Aurora 64b/66b Protocol Specification Sp011(v1.2)October 1,2014.