FPGA研發(fā)之道(22)-交換矩陣
如果在FPGA設計中,需要多端口,大數據量的交換,那么交換矩陣則是一個(gè)不錯的實(shí)現方案。交換矩陣使用的目的主要有幾個(gè),一,靈活的端口轉發(fā)。通過(guò)交換矩陣靈活實(shí)現數據流的靈活交換,減少外部負責控制。 二,高效的轉發(fā)效率,交換矩陣能夠實(shí)現通常單一總線(xiàn)不能達到的轉發(fā)效率,滿(mǎn)足高吞吐量的系統的需要。三,系統設計以交換矩陣為中心,便于IP集成和模塊復用。
本文引用地址:http://dyxdggzs.com/article/266274.htm交換矩陣的實(shí)現方案較為復雜,最早的交換沿襲了共享總線(xiàn)式的架構,因此對于某個(gè)端口需要傳輸,則其他端口只能阻塞,等待總線(xiàn)空閑后再進(jìn)行傳輸。而交換矩陣則是一個(gè)全互聯(lián)的結構。如下圖所示,如有4個(gè)輸入,4個(gè)輸出的交換矩陣,可認為是一個(gè)4端口的交換單元,每個(gè)端口包含一個(gè)發(fā)送接口和一個(gè)接收模塊,如端口0就包含發(fā)送模塊m0和接收模塊s0。

假設每路傳輸的速率為N,則整個(gè)交換矩陣的傳輸速率為4N。如何實(shí)現一個(gè)簡(jiǎn)單的交換矩陣。首先可以將整速率個(gè)設計分割。將整個(gè)設計分割為接受和發(fā)送兩個(gè)模塊。整個(gè)交換單元可以劃分為四個(gè)部分,分別是,發(fā)送模塊,仲裁模塊,交換模塊,接收模塊。
(1) 發(fā)送模塊,首先根據某端口接收數據后,根據該數據幀要轉發(fā)的端口,發(fā)起請求信號。
(2) 仲裁模塊:根據請求信號,接收模塊的忙閑狀態(tài),及各發(fā)送模塊的優(yōu)先級,確定當前的響應信號,如果當前的接收模塊忙(上次傳輸未完成),則需要阻塞,等待上次傳輸完成(復雜的設計,可以保證高優(yōu)先級能夠打斷當前傳輸,直接傳輸高優(yōu)先級數據流,高優(yōu)先級完成后,再恢復原有傳輸,但這種方式設計較為復雜,仿真驗證的難度也較大,不建議使用)。
(3) 交換模塊:根據仲裁信號確定發(fā)送模塊轉發(fā)的端口,交換模塊本質(zhì)上是多選一的MUX,而MUX的選擇信號,則是由仲裁模塊來(lái)進(jìn)行選擇。
(4) 接收模塊:接收交換模塊交換后的數據流,向仲裁模塊返回當前模塊的忙閑狀態(tài)(正在接收傳輸信號,為忙狀態(tài),而當前無(wú)傳輸狀態(tài),則為閑狀態(tài))。
仲裁模塊的仲裁機制,一般可以使用簡(jiǎn)單的round-robin的設計,即輪流最高優(yōu)先級。也可以通過(guò)設計帶加權的優(yōu)先級,保證更高優(yōu)先級的端口優(yōu)先進(jìn)行傳輸。
仲裁模塊的仲裁設計可以分為多種,一種是整個(gè)交換矩陣使用同一個(gè)仲裁單元,每個(gè)發(fā)送模塊只使用一個(gè)請求信號及請求端口號連接到仲裁模塊。這種設計對整個(gè)仲裁模塊設計難度較大。另一種設計,如下圖所示,即每個(gè)接收單元,配置一個(gè)仲裁模塊,和一個(gè)交換模塊。而每個(gè)發(fā)送模塊根據要發(fā)送的端口,使用多個(gè)發(fā)送的請求信號。此種設計便于系統擴展,也可簡(jiǎn)化設計。

不僅是用于高速多端口轉發(fā)的數據流傳輸采用交換矩陣?,F在,大多高速總線(xiàn)機制(如N主設備,M從設備之間進(jìn)行數據的交換)也采用類(lèi)似交換矩陣式的結構,每個(gè)從設備的連接都是多個(gè)主設備通過(guò)MUX來(lái)進(jìn)行連接,這樣保證多個(gè)主設備訪(fǎng)問(wèn)不同從設備時(shí),可以實(shí)現并行的數據交換(如主設備M0訪(fǎng)問(wèn)從設備S1,主設備M1訪(fǎng)問(wèn)從設備S2,可以同時(shí)進(jìn)行總線(xiàn)操作)。這是單一競爭式總線(xiàn)所不能達到的優(yōu)勢,但是,設計占用的邏輯量也會(huì )增加。性能的增加帶來(lái)的負面影響通常就是邏輯的增加。
交換矩陣通常在基于數據包轉發(fā)的FPGA設計應用中,交換矩陣的交換靈活性增加,也會(huì )增加設計復雜度,如果對于傳輸效率不需太多的需求,可以采用系統復用的方式(前文介紹),通過(guò)一個(gè)復用模塊輪流接收各個(gè)發(fā)送端口的數據流,,再根據端口轉發(fā)到各個(gè)從設備中,此種方式設計簡(jiǎn)單,但是此復用模塊則會(huì )成為系統的瓶頸。根據系統的設計需求,選擇適合的設計,達到性能和邏輯方面的平衡,是體現FPGA設計藝術(shù)之一。
fpga相關(guān)文章:fpga是什么
評論