新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > FPGA研發(fā)之道(22)-交換矩陣

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

作者: 時(shí)間:2014-12-02 來源:網(wǎng)絡(luò) 收藏

  如果在設(shè)計(jì)中,需要多端口,大數(shù)據(jù)量的交換,那么則是一個(gè)不錯(cuò)的實(shí)現(xiàn)方案。使用的目的主要有幾個(gè),一,靈活的端口轉(zhuǎn)發(fā)。通過靈活實(shí)現(xiàn)數(shù)據(jù)流的靈活交換,減少外部負(fù)責(zé)控制。 二,高效的轉(zhuǎn)發(fā)效率,交換矩陣能夠?qū)崿F(xiàn)通常單一總線不能達(dá)到的轉(zhuǎn)發(fā)效率,滿足高吞吐量的系統(tǒng)的需要。三,系統(tǒng)設(shè)計(jì)以交換矩陣為中心,便于IP集成和模塊復(fù)用。

本文引用地址:http://m.butianyuan.cn/article/266274.htm

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

  

 

  假設(shè)每路傳輸?shù)乃俾蕿镹,則整個(gè)交換矩陣的傳輸速率為4N。如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的交換矩陣。首先可以將整速率個(gè)設(shè)計(jì)分割。將整個(gè)設(shè)計(jì)分割為接受和發(fā)送兩個(gè)模塊。整個(gè)交換單元可以劃分為四個(gè)部分,分別是,發(fā)送模塊,仲裁模塊,交換模塊,接收模塊。

  (1) 發(fā)送模塊,首先根據(jù)某端口接收數(shù)據(jù)后,根據(jù)該數(shù)據(jù)幀要轉(zhuǎn)發(fā)的端口,發(fā)起請(qǐng)求信號(hào)。

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

  (3) 交換模塊:根據(jù)仲裁信號(hào)確定發(fā)送模塊轉(zhuǎn)發(fā)的端口,交換模塊本質(zhì)上是多選一的MUX,而MUX的選擇信號(hào),則是由仲裁模塊來進(jìn)行選擇。

  (4) 接收模塊:接收交換模塊交換后的數(shù)據(jù)流,向仲裁模塊返回當(dāng)前模塊的忙閑狀態(tài)(正在接收傳輸信號(hào),為忙狀態(tài),而當(dāng)前無傳輸狀態(tài),則為閑狀態(tài))。

  仲裁模塊的仲裁機(jī)制,一般可以使用簡(jiǎn)單的round-robin的設(shè)計(jì),即輪流最高優(yōu)先級(jí)。也可以通過設(shè)計(jì)帶加權(quán)的優(yōu)先級(jí),保證更高優(yōu)先級(jí)的端口優(yōu)先進(jìn)行傳輸。

  仲裁模塊的仲裁設(shè)計(jì)可以分為多種,一種是整個(gè)交換矩陣使用同一個(gè)仲裁單元,每個(gè)發(fā)送模塊只使用一個(gè)請(qǐng)求信號(hào)及請(qǐng)求端口號(hào)連接到仲裁模塊。這種設(shè)計(jì)對(duì)整個(gè)仲裁模塊設(shè)計(jì)難度較大。另一種設(shè)計(jì),如下圖所示,即每個(gè)接收單元,配置一個(gè)仲裁模塊,和一個(gè)交換模塊。而每個(gè)發(fā)送模塊根據(jù)要發(fā)送的端口,使用多個(gè)發(fā)送的請(qǐng)求信號(hào)。此種設(shè)計(jì)便于系統(tǒng)擴(kuò)展,也可簡(jiǎn)化設(shè)計(jì)。

  

 

  不僅是用于高速多端口轉(zhuǎn)發(fā)的數(shù)據(jù)流傳輸采用交換矩陣?,F(xiàn)在,大多高速總線機(jī)制(如N主設(shè)備,M從設(shè)備之間進(jìn)行數(shù)據(jù)的交換)也采用類似交換矩陣式的結(jié)構(gòu),每個(gè)從設(shè)備的連接都是多個(gè)主設(shè)備通過MUX來進(jìn)行連接,這樣保證多個(gè)主設(shè)備訪問不同從設(shè)備時(shí),可以實(shí)現(xiàn)并行的數(shù)據(jù)交換(如主設(shè)備M0訪問從設(shè)備S1,主設(shè)備M1訪問從設(shè)備S2,可以同時(shí)進(jìn)行總線操作)。這是單一競(jìng)爭(zhēng)式總線所不能達(dá)到的優(yōu)勢(shì),但是,設(shè)計(jì)占用的邏輯量也會(huì)增加。性能的增加帶來的負(fù)面影響通常就是邏輯的增加。

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

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA 交換矩陣

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉