新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > FPGA研發之道(22)-交換矩陣

        FPGA研發之道(22)-交換矩陣

        作者: 時間:2014-12-02 來源:網絡 收藏

          如果在設計中,需要多端口,大數據量的交換,那么則是一個不錯的實現方案。使用的目的主要有幾個,一,靈活的端口轉發。通過靈活實現數據流的靈活交換,減少外部負責控制。 二,高效的轉發效率,交換矩陣能夠實現通常單一總線不能達到的轉發效率,滿足高吞吐量的系統的需要。三,系統設計以交換矩陣為中心,便于IP集成和模塊復用。

        本文引用地址:http://www.104case.com/article/266274.htm

          交換矩陣的實現方案較為復雜,最早的交換沿襲了共享總線式的架構,因此對于某個端口需要傳輸,則其他端口只能阻塞,等待總線空閑后再進行傳輸。而交換矩陣則是一個全互聯的結構。如下圖所示,如有4個輸入,4個輸出的交換矩陣,可認為是一個4端口的交換單元,每個端口包含一個發送接口和一個接收模塊,如端口0就包含發送模塊m0和接收模塊s0。

          

         

          假設每路傳輸的速率為N,則整個交換矩陣的傳輸速率為4N。如何實現一個簡單的交換矩陣。首先可以將整速率個設計分割。將整個設計分割為接受和發送兩個模塊。整個交換單元可以劃分為四個部分,分別是,發送模塊,仲裁模塊,交換模塊,接收模塊。

          (1) 發送模塊,首先根據某端口接收數據后,根據該數據幀要轉發的端口,發起請求信號。

          (2) 仲裁模塊:根據請求信號,接收模塊的忙閑狀態,及各發送模塊的優先級,確定當前的響應信號,如果當前的接收模塊忙(上次傳輸未完成),則需要阻塞,等待上次傳輸完成(復雜的設計,可以保證高優先級能夠打斷當前傳輸,直接傳輸高優先級數據流,高優先級完成后,再恢復原有傳輸,但這種方式設計較為復雜,仿真驗證的難度也較大,不建議使用)。

          (3) 交換模塊:根據仲裁信號確定發送模塊轉發的端口,交換模塊本質上是多選一的MUX,而MUX的選擇信號,則是由仲裁模塊來進行選擇。

          (4) 接收模塊:接收交換模塊交換后的數據流,向仲裁模塊返回當前模塊的忙閑狀態(正在接收傳輸信號,為忙狀態,而當前無傳輸狀態,則為閑狀態)。

          仲裁模塊的仲裁機制,一般可以使用簡單的round-robin的設計,即輪流最高優先級。也可以通過設計帶加權的優先級,保證更高優先級的端口優先進行傳輸。

          仲裁模塊的仲裁設計可以分為多種,一種是整個交換矩陣使用同一個仲裁單元,每個發送模塊只使用一個請求信號及請求端口號連接到仲裁模塊。這種設計對整個仲裁模塊設計難度較大。另一種設計,如下圖所示,即每個接收單元,配置一個仲裁模塊,和一個交換模塊。而每個發送模塊根據要發送的端口,使用多個發送的請求信號。此種設計便于系統擴展,也可簡化設計。

          

         

          不僅是用于高速多端口轉發的數據流傳輸采用交換矩陣。現在,大多高速總線機制(如N主設備,M從設備之間進行數據的交換)也采用類似交換矩陣式的結構,每個從設備的連接都是多個主設備通過MUX來進行連接,這樣保證多個主設備訪問不同從設備時,可以實現并行的數據交換(如主設備M0訪問從設備S1,主設備M1訪問從設備S2,可以同時進行總線操作)。這是單一競爭式總線所不能達到的優勢,但是,設計占用的邏輯量也會增加。性能的增加帶來的負面影響通常就是邏輯的增加。

          交換矩陣通常在基于數據包轉發的設計應用中,交換矩陣的交換靈活性增加,也會增加設計復雜度,如果對于傳輸效率不需太多的需求,可以采用系統復用的方式(前文介紹),通過一個復用模塊輪流接收各個發送端口的數據流,,再根據端口轉發到各個從設備中,此種方式設計簡單,但是此復用模塊則會成為系統的瓶頸。根據系統的設計需求,選擇適合的設計,達到性能和邏輯方面的平衡,是體現設計藝術之一。

        fpga相關文章:fpga是什么




        關鍵詞: FPGA 交換矩陣

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 霍林郭勒市| 民勤县| 张家界市| 洛阳市| 格尔木市| 克什克腾旗| 探索| 乾安县| 社会| 高台县| 上高县| 弋阳县| 清苑县| 德州市| 黄陵县| 枞阳县| 宁波市| 安顺市| 大港区| 旺苍县| 清河县| 慈溪市| 阆中市| 班戈县| 苗栗市| 铜川市| 黄陵县| 巍山| 伊通| 庄浪县| 广安市| 凭祥市| 和平县| 西平县| 松江区| 岱山县| 安康市| 仁化县| 湛江市| 滦南县| 仁怀市|