1 千兆以太網設計
1.1 以太網結構
FPGA 得到 204B 解幀後的資料,共 6 路需通過千兆網傳送至上位機完成資料的存儲同時給出性能分析。
TCP/IP 協定架構,由五層組成,自上而下分别為應用層、傳輸層、網絡層、資料鍊路層與實體層。
其中應用層、傳輸層與網絡層,可由軟邏輯實作,由使用者完成。
資料鍊路層多為模數組合電路,該層協定在 FPGA 上可由XILINX 官方提供的三态以太網 MAC 核來完成設計。
實體層可采用外挂的實體層晶片來建構。
傳輸層可以走 TCP 或 UDP 協定,TCP 協定基于三次握手機制,是可靠穩定的傳輸協定,但該協定開銷較大,不便于設計。由于本次設計不要求實時性,是以,為了便于設計采用 UDP 協定。
資料鍊路層交由 MAC IP 核來完成,發送端口主要是完成基于 AXI4-Stream 的以太網幀的建構,而接收接口主要是将來自于 MAC 核的以太網幀進行解析,剝離出使用者真正需要的資料。發送引擎會将使用者的待發送資料轉換成 GMII 幀格式,并添加相應的填充字段,而後由 GMII/MII 子產品進行組幀發送給外挂的 PHY 晶片。
接發送引擎的 GMII/MII 子產品所需要的實體層協定可在配置IP 核時進行配置,選擇基于 RGMII
、GMII 以及 MII 的一種進行建構。接收引擎從 GMII/MII 接口擷取資料,并檢查其是否符合以太網幀格式,删除填充字段,并向接收接口發送資料幀的好壞訓示。最後的管理接口主要是通過 AXI4-Lite 協定完成對該核的線上配置。

1.1.1發送接口
正常的發送幀傳輸時序如圖 4.2 所示。當使用者要發送幀時,将資料加載在tx_axis_mac_tdata 端口上,并拉高 tx_axis_mac_tvalid 信号。MAC 核将通過拉高tx_axis_mac_tready 信号來接受資料的前兩個位元組,然後等待直到 tx_axis_mac_tready再次拉高,發送資料幀的其餘部分。通過在幀的最後位元組上拉高 tx_axis_mac_tlas 信号,進而将幀的結束信号發送給MAC 核心。同時,為了校驗發收雙方以太網幀參數(目标位址 DA,源位址 SA,長
度/類型 L/T 等),會在資料幀的前端将其加載到資料流上。
1.1.2 接收接口
圖 4.3 顯示了正常接收幀的傳輸的時序。使用者必須随時準備接受資料,因為 MAC核内沒有緩沖以允許接收邏輯中存在延遲。幀接收開始後,資料将在連續的有效周期内傳輸到接收邏輯,直到完整幀接收完成時,MAC 核拉高 rx_axis_mac_tlast 信号以訓示傳輸已完成中 rx_axis_mac_tuser
用于訓示在接收過程中發生的錯誤,錯誤的接收時序如圖 4.4 所示。
1.1.3管理接口
管理接口用于配置 MAC 核心,配置位址/幀過濾器,管理中斷及通路統計資訊等,配置過程基于 AXI4-Lite 協定,通過将配置參數加載到 s_axi_wdata[31:0]信号上,而後被讀到 MAC 核中。
紹實體層的設計,在基于 XILINX的 FPGA 的 MAC 與 PHY 之間的連接配接方式主要有兩種方案,一種是基于并行傳輸的GMII 和 RGMII 接口,時鐘頻率較低,工作時鐘為 125MHz,由 PHY 晶片連接配接至 RJ45完成傳輸。另一種是 SGMII 接口,該接口基于高速串行協定,工作時鐘頻率較高,為 625MHz,可不接 PHY 晶片,通過走 GTX 來完成傳輸,但需要連接配接至光子產品來完成設計。
1.2 控制接口設計
将 6 路的 AD 降采樣資料發送至上位機,時鐘為 180MHz,單通道位寬 32bit,每路發送點數為 32768 點。 UDP 幀的資料區域最大為 1500 位元組,為了友善設計定每幀的資料長度為 1024 位元組。 RGMII 的工作時鐘為 125MHz,發送資料位寬為 8bit,ADC 降采樣的采樣頻率為 180MHz
需作跨時鐘域處理。處理方法為将 6 路資料以 180MHz 寫入 6 個深度為 32768 的雙口 RAM
,寫資料位寬為 32bit。寫入完成時,啟動發送子產品,待 UDP 幀頭發送完成時,置高讀使能信号,将連續讀出 1024 位元組資料,此時一個完整的 UDP 包發送完成。
寫入操作為并行操作,即 6 路資料以 start 信号上升沿為基準,同時寫入到 RAM。
讀取操作為從 6 個 RAM 依次讀取,因為要将讀到使用者發送端口進行 UDP 組幀,是以隻能 6 個 RAM 依次讀取。
FIFO 是先進先出的存儲器,有資料線,無位址線,有單獨的空滿标志信号,控制較為簡單,但其容量不如雙口 RAM,由于先進先出這一特點,其更适合用來做資料緩沖。雙口 RAM 的控制複雜些,其資料線和位址線分開需做單獨控制,且有兩套位址線,較 FIFO 來說更為複雜,但其容量較大,可做小批量資料的存儲。