《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA實現(xiàn)多DSP系統(tǒng)的數(shù)據(jù)流高效廣播
基于FPGA實現(xiàn)多DSP系統(tǒng)的數(shù)據(jù)流高效廣播
來源:電子技術應用2011年第11期
張建兵,李悅麗,段巧雄
(國防科學技術大學 電子科學與工程學院,湖南 長沙410073)
摘要: 以ADSP-TS201構成的多DSP系統(tǒng)中,鏈路口數(shù)目有限會造成數(shù)據(jù)廣播復雜度的提高。為此提出了一種基于FPGA實現(xiàn)DSP間廣播通信的方案。設計了基于FPGA的鏈路口接收和發(fā)送模塊,采用自定義數(shù)據(jù)報頭,完成了基于令牌和輪詢的數(shù)據(jù)調度狀態(tài)機的設計,實現(xiàn)了DSP之間的一對一、一對多以及多對多的廣播通信。經(jīng)驗證,該廣播通信方法的吞吐率單向可達150 MB/s,雙向可達300 MB/s,數(shù)據(jù)傳輸可靠,具有可擴展性。
中圖分類號: TN914.5
文獻標識碼: A
文章編號: 0258-7998(2011)11-0033-04
Data stream broadcasting efficiently in a multi-DSP system based on FPGA
Zhang Jianbing,Li Yueli,Duan Qiaoxiong
School of Electronic Science and Engineering, NUDT, Changsha 410073,China
Abstract: In a multi-DSP system which uses ADSP-TS201 as a computer node, it is complicated to broadcast a message to each DSP at the same time. A scheme based on FPGA is presented to resolve this problem. At first, the receiving and transmitting modules are designed. Then, by using a custom data header,a poll-token-based state machine is designed to schedule the transmission. As a result, the broadcasting communication from point-to-point, point-to-multipoint and multipoint-to-multipoint are implemented totally. The test results in an FPGA are shown to prove the reliability with a unidirectional throughput of 150 MB/s and a full-duplex throughput of 300 MB/s. The design is scalable and flexible.
Key words : multi-DSP;ADSP-TS201;FPGA;link port


    機載超寬帶合成孔徑雷達(UWB SAR)具有穿透葉簇和淺地表對隱蔽目標探測成像的能力,其軍事應用潛力巨大,是未來雷達的一個發(fā)展方向。但是UWB SAR回波的數(shù)據(jù)量達到數(shù)百萬字節(jié),同時成像所需的運算量達到數(shù)GFLOPS[1]。單片DSP的處理能力明顯不足,所以采用多片高性能的DSP共同完成任務,而如何實現(xiàn)多片DSP間互聯(lián)通信又成為一大難點。本文DSP選用的是ADI公司的ADSP-TS201,但由于TS201鏈路口的數(shù)目有限,無法使所有DSP都直接通過鏈路口相連,所以需要配合其他的方法來解決DSP間的通信問題。參考文獻[2]介紹了如何在8片TS201和1片FPGA組成的系統(tǒng)中用FPGA實現(xiàn)8片DSP的互訪。該設計中,訪問是基于4字命令包,通過讀寫、設備狀態(tài)、目的地址和源地址以及優(yōu)先級等的判斷,完成DSP之間的互訪;FPGA和DSP通過總線的方式連接;FPGA完成原始回波數(shù)據(jù)流的轉發(fā)。其缺點是,通信協(xié)議復雜,必須不停地修改命令包;訪問有固定的優(yōu)先級,有時會很慢,效率低;用總線的方式連接容易產(chǎn)生競爭。
    針對以上問題,本文提出了一種在8片DSP和2片F(xiàn)PGA構成的系統(tǒng)中通過FPGA實現(xiàn)DSP之間廣播通信的方案。由于該系統(tǒng)特殊的拓撲結構,原始回波數(shù)據(jù)流的轉發(fā)已確定為通過TS201的鏈路口完成,而控制數(shù)據(jù)流和運動測量參數(shù)的轉發(fā)以及對DSP程序運行的監(jiān)控卻成為一大瓶頸。為此,本文設計了在其中的一片F(xiàn)PGA內(nèi)實現(xiàn)多DSP間有效互聯(lián)的方案。
1 系統(tǒng)結構
    本系統(tǒng)中的信號處理板主要用于UWB SAR的實時成像數(shù)據(jù)處理,DSP與FPGA的連接示意圖如圖1所示。DSP2~DSP7主要處理回波數(shù)據(jù)流,成像數(shù)據(jù)處理需要兩塊這樣的板子:一塊做距離向處理,另一塊做方位向處理。FPGA2的主要任務:(1)方便主機通過CPCI總線對DSP進行程序的加載、程序運行的監(jiān)控、數(shù)據(jù)的讀寫和實時運算結果的顯示;(2)在飛行過程中,當飛行的速度、天線的姿態(tài)、工作模式等參數(shù)改變時,可以方便及時地將參數(shù)信息廣播到DSP中。該處理板的具體結構以及各模塊的功能可參見參考文獻[3]。本文的關鍵是如何通過FPGA2實現(xiàn)DSP2~DSP7之間的互聯(lián)通信。由于DSP2與DSP5、DSP3與DSP6、DSP4與DSP7已經(jīng)通過鏈路口兩兩相連,所以它們之間的通信不再需要經(jīng)FPGA2的轉發(fā),故需要與上述6片DSP中某片DSP通過FPGA2實現(xiàn)通信的DSP只有4片,例如對于DSP2,需要通過FPGA2與其通信的4片DSP為DSP3、DSP4、DSP6、DSP7。

    TS201是目前業(yè)界公認的高性能DSP處理器之一,有著很高的數(shù)據(jù)處理速度。FPGA2選擇Xilinx公司的XC4VLX25,該類型的FPGA比較適合邏輯控制和做數(shù)據(jù)接口。TS201共有4個鏈路口,都采用LVDS(Low Voltage Differential Signaling)技術;每個鏈路口包含發(fā)送和接收兩個獨立的通道,每個通道都有4對差分數(shù)據(jù)線、1對差分時鐘、2個控制信號,共24根線;鏈路口在每個通道(發(fā)送或接收)都可以通過1 bit或者4 bit模式進行數(shù)據(jù)通信,本文采用4位通信模式[4]。
2 多DSP數(shù)據(jù)流高效廣播設計
    本設計的總體框圖如圖2所示。對每片DSP,F(xiàn)PGA都有一對完全一樣的接收和發(fā)送模塊,DSP鏈路口發(fā)送來的差分數(shù)據(jù)依次經(jīng)過IBUFDS模塊和IDDR模塊,最后暫存于RAM中。在多個狀態(tài)機的控制調度下,一次或多次將數(shù)據(jù)從RAM中讀出,然后發(fā)送到相應的發(fā)送模塊。要發(fā)送的數(shù)據(jù)先暫存于FIFO中,然后依次經(jīng)過ODDR模塊和OBUFDS模塊發(fā)送到對應的DSP中。

    設計的最大難點在于如何實現(xiàn)數(shù)據(jù)的正確調度而不出現(xiàn)錯發(fā)或漏發(fā)現(xiàn)象,特別是當一片DSP向其他所有DSP廣播數(shù)據(jù)和其他所有DSP同時向一片DSP發(fā)送數(shù)據(jù)時,不出現(xiàn)錯發(fā)或漏發(fā)現(xiàn)象。
2.1 數(shù)據(jù)接收、發(fā)送模塊的設計
    要在FPGA中實現(xiàn)多DSP的互聯(lián)通信網(wǎng)絡,首先必須使FPGA和DSP可以正確地互相收發(fā)數(shù)據(jù)。由于TS201的鏈路口有自己的通信協(xié)議,所以只要在FPGA中編程實現(xiàn)TS201的鏈路口通信協(xié)議,就可以實現(xiàn)FPGA與TS201之間的雙向通信。TS201的具體通信協(xié)議,可參見參考文獻[4]。
2.1.1 接收模塊
    FPGA接收模塊如圖3所示。在接收模塊中,先將差分數(shù)據(jù)和差分時鐘分別通過IBUFDS模塊轉換為單端的數(shù)據(jù)和單端時鐘[5];再將該單端數(shù)據(jù)分別送入到4個IDDR,單端時鐘經(jīng)過BUFG模塊后輸出的bufg_clkout作為IDDR的驅動時鐘;最后將IDDR模塊輸出的完整8 bit數(shù)據(jù)存儲在輸入輸出寬度為8 bit的雙端口RAM中。塊發(fā)送完畢,信號bcmpi延遲一個周期后和bufg_clkout一起經(jīng)過一個時鐘選擇器后輸出時鐘mux_clkout作為RAM的寫驅動時鐘。這樣,可以保證寫入RAM的數(shù)據(jù)深度正好是DSP的發(fā)送數(shù)據(jù)長度,而不再需要去考慮數(shù)據(jù)寫入深度控制的問題。

2.1.2 發(fā)送模塊
      FPGA接收模塊如圖4所示。在發(fā)送模塊中,要發(fā)送的數(shù)據(jù)先存于輸入輸出寬度為8 bit的FIFO中,再將FIFO的輸出數(shù)據(jù)依次經(jīng)過4個ODDR和4個OBUFDS,最后得到差分輸出數(shù)據(jù)。在控制模塊CONTROL中,當數(shù)據(jù)全部寫入FIFO、acki有效且FIFO不空時,F(xiàn)IFO讀使能rd_en和clkoe信號有效。將clkoe作為ODDR的正極輸入(負極始終為低電平)得到發(fā)送時鐘[5],再經(jīng) OBUFDS得到差分輸出時鐘。在控制模塊CONTROL中同時會給出塊發(fā)送完畢信號bcmpo。
    在Virtex4中提供了強大的數(shù)字時鐘管理器(DCM),它可以實現(xiàn)延遲鎖相環(huán)、數(shù)字頻率合成器、數(shù)字移相、數(shù)字擴頻等功能。本文用到兩個DCM,其中一個作為倍頻器,將FPGA中的系統(tǒng)時鐘從60 MHz倍頻到150 MHz;另外一個作為移相器,將倍頻后的時鐘移相90°,從而得到需要的0°時鐘clk_0_150 MHz和90°時鐘clk_90_150 MHz(見圖4)。
2.2 數(shù)據(jù)調度狀態(tài)機的設計
    若只完成接收模塊和發(fā)送模塊的設計,則只能實現(xiàn)FPGA與DSP的點對點通信,還不能實現(xiàn)多片DSP之間的互聯(lián)通信,所以還需要有一個數(shù)據(jù)的合理調度過程。
2.2.1 DSP數(shù)據(jù)報頭
    為了使數(shù)據(jù)調度變得容易,本設計定義了DSP發(fā)送數(shù)據(jù)報頭,如圖5所示。位0~7表示信宿,位0為1,表示該數(shù)據(jù)塊請求發(fā)送到CPCI自定義接口,用于板間通信;位1為1,表示請求發(fā)送到9656;位2~7為1,分別表示請求發(fā)送到DSP2~DSP7;若為0,則表示不發(fā)送到任何器件。位8、9、10表示信源,000表示信源為CPCI自定義接口,001表示信源為9656,010~111分別表示信源為DSP2~DSP7;位11~31暫時保留,為以后擴展功能時使用。

    當FPGA接收到來自于DSP的數(shù)據(jù)時,首先要將該數(shù)據(jù)塊的前8 bit提取出來,用以確定目的DSP,并將該8 bit數(shù)據(jù)稱之為請求發(fā)送信號require。
2.2.2 應答請求信號狀態(tài)機
    在2.2.1節(jié)中,提取數(shù)據(jù)報頭的前8 bit,得到一個8 bit require信號。在FPGA的程序中,對應每片DSP本文都設計有一個這樣的狀態(tài)機,用于對其他DSP送來的require信號進行判斷,然后給出相應的應答信號allow,表示允許發(fā)送,其狀態(tài)轉移圖如圖6(a)所示。該狀態(tài)機基于令牌和輪詢的思想,并遵循以下原則:
    (1)按照require1~require4依次輪詢,發(fā)現(xiàn)滿足條件的則給與令牌。
    (2)令牌不能同時擁有,令牌被持有后就將令牌信息置為無效。
    (3)若令牌被持有則輪詢暫停,等待令牌被釋放,即重置為有效。
    (4)當塊發(fā)送完畢信號、bcmpo信號為低電平時,釋放令牌。
    (5)令牌被釋放后則繼續(xù)輪詢尚未持有令牌的,如是重復。
    需要說明的是,當bcmpo為低時雖然也表示數(shù)據(jù)塊發(fā)送完畢,但低電平只維持4個周期,而且當有多片DSP向其中一片DSP發(fā)送數(shù)據(jù)時,bcmpo會被多次拉低來指示某片DSP需要發(fā)送的數(shù)據(jù)已經(jīng)發(fā)送完畢。所以與鏈路口協(xié)議中的bcmpo已經(jīng)不是一回事了,只是重名而已。本設計的令牌為avail。
2.2.3 RAM讀地址狀態(tài)機
    在FPGA的程序中,對應每片DSP本文也有另外一個狀態(tài)機,用于對送來的allow信號進行判斷,給出相對應的RAM的讀地址addrb和FIFO準寫信號wr_en,其狀態(tài)轉移圖如圖6(b)所示。所遵循的原則與2.2.2的狀態(tài)機幾乎一樣。不同的地方在于:
    (1)當對應bcmpi為低電平時,信號ram_rd_en為高(即DSP數(shù)據(jù)發(fā)送完了才能從RAM中讀出數(shù)據(jù)),狀態(tài)機開始工作。
    (2)令牌為flag_tx_achiv信號,addrb等于DSP發(fā)送數(shù)據(jù)深度M時(即在RAM中的數(shù)據(jù)完全讀出后),釋放令牌。
    (3)只有持有令牌期間,對應的信號addrb開始累加,wr_en為高電平。

 

 

2.2.4 FIFO寫使能和輸入數(shù)據(jù)
    對應每片DSP都有這樣一個模塊,用于將輸入的成對信號wr_en和RAM的輸出數(shù)據(jù)ram_dout作出判斷,得到FPGA發(fā)送模塊中FIFO寫使能和輸入數(shù)據(jù)。由于前面狀態(tài)機控制的結果,這里輸入到模塊(與某片DSP相對應)的4個wr_en信號不可能同時為高,所以當某個wr_en為高時,F(xiàn)IFO的寫使能有效,同時將與其成對的數(shù)據(jù)ram_dout作為FIFO的輸入數(shù)據(jù);當wr_en都為低時,F(xiàn)IFO的寫使能無效。
3 實驗結果
    將用Verilog HDL語言編寫的設計程序經(jīng)過綜合、布局布線、產(chǎn)生位數(shù)據(jù)流,最后下載到FPGA芯片(XC4VLX25)中;將TS201鏈路口的接收和發(fā)送程序下載到相應DSP中。在DSP的配合以及在調試工具Xilinx ISE12.2中內(nèi)嵌的邏輯分析儀ChipScope的幫助下,實現(xiàn)了DSP之間的廣播通信(即DSP之間一對一、一對多以及多對多的廣播通信),其數(shù)據(jù)傳輸都可靠。該設計目前要求發(fā)送數(shù)據(jù)長度固定,數(shù)據(jù)單向吞吐率可達150 MB/s,雙向可達300 MB/s。
    本文提出的基于鏈路口及FPGA實現(xiàn)多DSP系統(tǒng)的數(shù)據(jù)流高效廣播的方法,經(jīng)過驗證是完全可行的,且數(shù)據(jù)傳輸可靠。要完成更多DSP間的廣播通信,只需增加狀態(tài)機的狀態(tài)個數(shù),而且可擴展性好,很容易擴展到更多DSP的高效廣播通信中。該類型通信方案經(jīng)過適當?shù)膬?yōu)化,也可以完成大量的原始回波數(shù)據(jù)流的轉發(fā)。在后續(xù)的工作中,將完成CPCI自定義接口以及9656與FPGA2之間的通信,并在DSP的配合下,最終達到上位機與各DSP的互訪,實現(xiàn)控制數(shù)據(jù)流和運動測量參數(shù)實時地傳輸?shù)礁鱾€DSP,并實現(xiàn)在調試時對各個DSP的實時監(jiān)控。
參考文獻
[1] 李建陽,王亮,常文革,等.機載UWB SAR實時信號處理算法研究[J].國防科技大學學報,2010(1).
[2] 蘇軍海,王海亮.基于FPGA的多DSP系統(tǒng)通信的實現(xiàn)[J].電子科技,2005(12).
[3] 段巧雄,李悅麗.機載超寬帶合成孔徑雷達實時信號處理板的設計與實現(xiàn)[C].第十一屆雷達學術年會,2010.
[4] 劉書明,羅勇江.ADSP TS201XS系列DSP原理與應用設計[M].北京:電子工業(yè)出版社,2007.
[5] 陳春輝,黃俊,陳亞俊.利用FPGA實現(xiàn)與TS201的Link-Port高速數(shù)據(jù)互聯(lián)[J].信息技術,2007(3):56-58.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
性高湖久久久久久久久| 欧美激情亚洲综合一区| 亚洲国语精品自产拍在线观看| 一区二区三区视频免费在线观看| 亚洲国产精品成人精品| 激情av一区| 国产一区二区| 国产日韩在线视频| 国产情人节一区| 国产精品一区二区三区四区| 国产精品theporn88| 欧美日韩视频在线一区二区 | 国产情人节一区| 国产精品无码永久免费888| 国产精品劲爆视频| 国产精品hd| 国产精品热久久久久夜色精品三区| 欧美网站在线观看| 欧美午夜电影网| 欧美日韩一区二区三区四区五区| 欧美日韩精品系列| 欧美日韩亚洲一区二区三区在线 | 亚洲精品之草原avav久久| 亚洲国产一二三| 91久久精品国产91久久性色| 91久久线看在观草草青青| 亚洲区在线播放| 亚洲美女色禁图| 中日韩视频在线观看| 亚洲一区三区电影在线观看| 亚洲专区一二三| 亚洲免费在线看| 欧美在线一区二区| 久久米奇亚洲| 欧美激情精品久久久久久蜜臀| 欧美精品日韩综合在线| 欧美日韩国产精品自在自线| 欧美特黄一级大片| 国产日韩欧美a| 在线观看欧美日韩| 亚洲巨乳在线| 亚洲综合999| 久久精品免费看| 99精品视频免费观看视频| 亚洲天堂av在线免费| 欧美在线啊v| 欧美成人网在线| 欧美午夜欧美| 黄色成人免费网站| 亚洲精品小视频在线观看| 亚洲制服丝袜在线| 亚洲黄色高清| 亚洲在线视频网站| 久久一区二区三区av| 欧美日韩免费观看中文| 国产农村妇女精品| 亚洲国内精品在线| 亚洲一区精品电影| 亚洲国产成人在线播放| 亚洲无亚洲人成网站77777| 久久九九99视频| 欧美女同视频| 国产亚洲成年网址在线观看| 亚洲缚视频在线观看| 亚洲一区二区三区四区中文| 亚洲成人在线免费| 亚洲一区精品在线| 亚洲激情自拍| 性欧美video另类hd性玩具| 美女性感视频久久久| 国产精品护士白丝一区av| 有坂深雪在线一区| 亚洲午夜在线观看| 亚洲精品中文字| 久久国产天堂福利天堂| 欧美精品九九| 国内精品久久久久久 | av成人天堂| 久久久久久久久久看片| 欧美日韩午夜在线| 国产精品v欧美精品v日韩精品| 一区二区亚洲精品国产| 亚洲一区高清| 99re66热这里只有精品3直播| 久久本道综合色狠狠五月| 欧美日韩免费高清| 伊人久久成人| 亚洲欧美国产精品va在线观看| 亚洲精品视频一区二区三区| 久久精品99无色码中文字幕| 欧美三级在线视频| 亚洲国产精品成人| 久久精品30| 久久成人免费网| 国产精品看片资源| 亚洲精品一区二区三区av| 亚洲成色999久久网站| 日韩午夜激情电影| 久久免费精品视频| 国产精品久久久久久久久久尿| 亚洲国产第一页| 亚洲承认在线| 亚洲精品一品区二品区三品区| 久久激情综合网| 国产精品久久久久影院亚瑟| 亚洲三级毛片| 亚洲精品九九| 美女日韩在线中文字幕| 狠狠色伊人亚洲综合成人| 午夜视频在线观看一区二区| 亚洲永久精品大片| 欧美日韩99| 亚洲人屁股眼子交8| 亚洲黄色毛片| 免费成人你懂的| 激情久久久久久| 欧美中文字幕在线播放| 欧美在线精品一区| 国产精品一区二区女厕厕| 亚洲香蕉网站| 亚洲欧美三级伦理| 国产精品欧美激情| 亚洲影院免费| 久久成人在线| 国产午夜久久久久| 欧美专区福利在线| 狂野欧美一区| 亚洲电影av在线| 一本到高清视频免费精品| 欧美日韩国产综合在线| 99国产精品视频免费观看| 亚洲制服少妇| 国产欧美视频一区二区| 欧美在线观看网站| 免费日本视频一区| 亚洲日本中文| 亚洲综合久久久久| 国产女优一区| 久久黄色影院| 男人天堂欧美日韩| 亚洲国产一区二区三区a毛片| 99精品视频网| 欧美三级资源在线| 亚洲欧美日产图| 久久夜色撩人精品| 亚洲国产天堂久久综合| 日韩午夜免费| 国产精品美女主播在线观看纯欲| 亚洲欧美日韩综合国产aⅴ| 久久久久国产精品www| 精品动漫3d一区二区三区免费| 最新日韩在线| 欧美四级电影网站| 欧美一区二区| 欧美成人午夜免费视在线看片| 日韩视频在线免费| 西瓜成人精品人成网站| 激情成人av| 一区二区三区视频在线观看| 国产精品一区一区三区| 亚洲高清av| 欧美色网在线| 欧美一区二粉嫩精品国产一线天| 男女视频一区二区| 宅男噜噜噜66一区二区| 久久免费观看视频| 日韩视频在线一区| 久久精品成人一区二区三区| 亚洲国产一区二区三区在线播 | 欧美暴力喷水在线| 99re66热这里只有精品4| 小辣椒精品导航| 亚洲国产高清视频| 亚洲欧美国产高清va在线播| 亚洲高清自拍| 亚洲欧美日本国产专区一区| 一区二区亚洲| 亚洲你懂的在线视频| 国内成人在线| 亚洲一区在线播放| 亚洲成人在线| 性久久久久久久久久久久| 最新成人av网站| 欧美一区国产二区| 日韩视频在线观看| 玖玖综合伊人| 亚洲一区二区三区四区在线观看| 免费日韩视频| 亚洲免费视频网站| 欧美精品一区二区三区视频| 欧美伊人久久久久久久久影院| 欧美日韩1080p| 亚洲国产欧美一区| 国产欧美日韩中文字幕在线| 一区二区动漫| 加勒比av一区二区| 久久成年人视频| 一区二区欧美在线| 欧美大片一区二区| 欧美在线视频a|