999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SRIO交換芯片的DSP接口設計

2019-08-27 10:03:22李靜靜
火控雷達技術 2019年2期

李靜靜 張 楠

(西安電子工程研究所 西安 710100)

0 引言

隨著高速信號處理器和嵌入式信號處理系統的快速發展,信號處理芯片與芯片之間、板卡與板卡之間的數據通信量越來越大,對傳輸速率和帶寬的要求也越來越高,因此構建高速可靠的交換網絡也勢必成為必然。在目前通用的DSP+FPGA架構的信號處理平臺上,SRIO作為完全的點對點拓撲結構的標準協議,非常適合用于構建板內及板間的交換網絡[1]。

CPS1848是美國IDT公司推出的第二代RapidIO交換芯片,符合RapidIO 2.1規范,具有18個端口(Port),對外提供48路全雙工高速串行通道(Lane),峰值吞吐量可達240Gbps,是目前較先進的RapidIO交換芯片[2]。CPS1848每個端口都可以靈活配置成1x、2x、4x三種模式,端口速率支持1.25Gbps、2.5Gbps、3.125Gbps、5.0Gbps、6.25Gbps 5種模式,而且芯片支持遠距離傳輸,是板間互連的理想選擇[3]。

TMS320C6678是TI公司推出的單片8核DSP芯片,整個芯片提供320G MAC定點計算或者160G FLOP浮點計算能力,提供多種多核之間的信息和數據交換方式,如EDMA、MessageQ Queue和QMSS等,具有高速運算能力的同時集成了多種對外數據交換接口,是目前應用較為廣泛的信號處理芯片[4]。本文基于某“雙DSP板+FPGA板”信號處理平臺,研究了基于SRIO交換芯片的DSP接口設計。

1 接口設計

本節以某“雙DSP板+FPGA板”信號處理平臺為例,給出了DSP處理器SRIO接口的基本配置方法,并提供了DSP端對SRIO交換芯片的路由配置方法。

“雙DSP板+FPGA板”信號處理平臺架構框圖如圖1所示,該平臺主要由3片DSP處理器TMS320C6678、1片SRIO交換芯片CPS1848和1片FPGA處理器組成。其中DSP0主要用作控制處理,與板內FPGA的通信采用SRIO直連,而DSP1、DSP2、FPGA用作運算處理,通過交換芯片CPS1848實現雙DSP板內兩片DSP之間的SRIO互連,以及雙DSP板與FPGA板間的SRIO互連。

鑒于DSP編程方便快捷且有成熟穩定的維護包(Maintenance Package),DSP端在配置與維護自身SRIO接口的同時,也提供了對CPS1848的配置與維護,而FPGA端則可保持原來的SRIO直連配置不變。

圖1 信號處理平臺架構框圖

1.1 基本配置

通過CPS1848進行SRIO互連的DSP芯片,其接口的基本配置與片間直連有諸多相同的地方,在此不再贅述。由于橋接到了交換芯片上,DSP端SRIO接口的設計必須參考CPS1848的配置約束,這里重點對端口速率、通道模式以及設備ID號三方面進行說明。

首先是SRIO的端口速率。TMS320C6678的端口速率原本有1.25Gbps、2.5Gbps、3.125Gbps、5.0Gbps 4種模式可選[5],由于SRIO鏈路兩端節點的工作速率必須相匹配,因此DSP端需要考慮CPS1848的配置速率。CPS1848的初始工作速率由管腳Speed Select(SPD[2:0])決定,具體設置如表1所示。本平臺的硬件板卡在設計成型時,管腳的配置電阻就已經決定了端口的初始速率,雖然可以通過軟件代碼修改端口速率,但如果沒有特殊需求,建議用戶還是采用默認的配置速率。

表1 CPS1848端口速率配置表

Value on the Pins (SPD2,SPD1,SPD0)Port Rate (Gbaud)0001.250012.501X5.0100Reserved1013.12511X6.25

其次是SRIO的通道模式。與端口速率類似,SRIO通道模式的配置也與硬件板卡的設計相關。以本平臺為例,DSP端SRIO的4個Lane都連接到了CPS1848上,原則上來說通道模式在1x、2x、4x中可選,但是以4x模式速率最優,因此建議用戶把SRIO的通道模式配置成4x模式。

最后需要重點說明一下設備ID號的配置。設備ID號是SRIO收發數據時的重要參數,可使用16位數字ID或8位數字ID表示,但要求每個設備ID號不能重復。以本平臺為例,3片DSP、1片FPGA、1片CPS1848共5個器件,需要配置5個不同的設備ID號,注意CPS1848需要占用一個設備ID號。由于CPS1848的路由表配置與設備ID號相關,而路由表配置是有一定參照約束的,具體約束要求如表2所示,因此橋接到CPS1848上的DSP1、DSP2、FPGA三個設備ID號不能隨意設置,需要滿足表2的約束要求。

表2 CPS1848路由參照約束表

Port Value RangeReference ToAllowed in Device Route TableAllowed in Domain Route Table0x00-0x11Port NumbersYesYes0x12-0x3FReservedNoNo0x40-0x67(0x40+Mask Index)Multicast MaskYesNo0x68-0xDCReservedNoNo0xDDForce LocalNoYes0xDEDefault RouteYesYes0xDFNo RouteYesYes0xE0-FFReservedNoNo

1.2 路由配置

前文提到過,CPS1848的配置是在DSP端通過Maintenance包對CPS1848寄存器進行操作實現。DSP在配置路由表之前需要先對CPS1848進行初始化配置,主要包括以下步驟:

1)配置超時寄存器Timeout Control CSR(地址0x000120);

2)配置端口使能寄存器Port {1…17} Control 1 CSR(地址0x00015C + 0x20*port_num);

3)配置端口狀態寄存器Port {1…17} Error and Status CSR(地址0x000158 + 0x20*port_num)。

初始化配置完成后,DSP對路由表的配置主要是通過對Standard Route Table Entries Configuration destID Select CSR寄存器(地址0x000070)和Standard Route Table Entry Configuration Port Select CSR寄存器(地址0x000074)的配置實現的。其中,前者對應與CPS1848連接的每個芯片的設備ID號,后者則對應每個芯片與CPS1848連接通道所映射的端口號。

CPS1848內部端口分為4個象限(Quadrant),端口寬度由管腳Quadrant Config(QCFG[7:0])決定。其中端口0、4、8、12、16屬于Quadrant0,端口寬度由QCFG[1:0]決定;端口1、5、9、13、17屬于Quadrant1,端口寬度由QCFG[3:2]決定;端口2、6、10、14屬于Quadrant2,端口寬度由QCFG[5:4]決定;端口3、7、11、15屬于Quadrant3,端口寬度由QCFG[7:6]決定。文獻[2]給出了CPS1848端口的具體配置,通過查表可獲得通道(Lane)與端口(Port)的映射關系。

以本平臺為例,CPS1848的QCFG[7:0]默認配置為0,而DSP1、DSP2、FPGA配置的通道模式均為4x模式,那么通道與端口號之間就是以4個Lane為間隔進行映射。比如,DSP1連接到CPS1848的Lane 16-19,那么它對應到端口號就是Port 4,以此類推可獲得DSP2和FPGA的端口號。確認完各個芯片所連接的端口號后,DSP通過Maintenance包把對應的設備ID號和端口號寫入CPS1848相應的寄存器,即可完成路由表的配置。

2 鏈路維護

基于DSP的編程優點,在DSP端對SRIO鏈路進行維護是非常便捷有效的方法。本節給出了一種SRIO鏈路的維護方法,以實現數據的可靠傳輸。

在正常情況下,硬件板卡上電后,SRIO鏈路完成初始化配置,各節點間就可以進行正常的數據傳輸。SRIO一次數據傳輸流程為:發送端產生一個請求包給接收端,接收端收到后返還一個響應包給發送端。圖3給出了典型的請求包和響應包的格式,包結構中各段及含義分別是:

1)AckID:表示包的序列號ID;

2)Prio:表示包的優先級;

3)TT:指定Device ID是用8 bit或16 bit表示;

4)Ftype:表示包的類型;

5)Target ID:表示包的目的地址ID;

6)Source ID:表示包的源地址ID;

7)CRC:包結構的校驗保護。

圖2 SRIO請求包和響應包格式

在正常的數據傳輸中,我們一般只需指定發送包的類型、Device ID、源地址和目的地址,而作為物理層字段的AckID字符,由于它的初始值為0,且以増序循環賦值的方式被添加到數據包頭部,在鏈路無異常時不存在失配的情況。然而當SRIO鏈路斷開重連接或者某節點重啟后,各節點的AckID未必能繼續保持一致,此時若不重新匹配AckID就會導致后續傳輸數據失敗。

理論上來說,鏈路某節點AckID的重匹配可以通過修改自身節點的AckID或者修改對端節點的AckID兩種方法實現。以本平臺為例進行說明,DSP1、DSP2、FPGA通過CPS1848的3個端口實現SRIO的互連,DSP1、DSP2和FPGA自身各有AckID,這里稱之為Local AckID,對應CPS1848的3個端口上各有AckID,這里稱之為Remote AckID。前文曾提到CPS1848的配置與維護主要是由DSP實現,因此各節點AckID的重匹配也是由DSP完成。

當DSP檢測到鏈路異常時,AckID的重匹配有兩種選擇:一種是DSP向CPS1848發送一個“restart-from-error”命令,獲得其對應端口的Remote AckID,然后用Remote AckID修正自身的Local AckID,從而使鏈路兩端的AckID匹配;另一種是DSP把自身的Local AckID重置為0,然后通過Maintenance包把數值0x81000000寫入端口AckID控制寄存器(地址0x000148 + 0x20*port_num),使對應端口的Remote AckID重置為0,從而使鏈路兩端的AckID匹配。

而當FPGA檢測到鏈路異常時,由于FPGA并不對CPS1848操作,只能通過DSP進行AckID重匹配,此時DSP只剩下修改CPS1848端口AckID一種方法。具體實現過程為:DSP給FPGA一個復位信號,FPGA復位自身的SRIO模塊,與此同時FPGA的Local AckID重置為0,然后DSP通過Maintenance包把數值0x81000000寫入FPGA對應的端口AckID控制寄存器,重置對應端口的Remote AckID,從而完成FPGA端AckID的重匹配。

我們可以通過DSP訪問CPS1848寄存器來實時獲取SRIO的鏈路信息。比如:Port{1…17} Error and Status CSR寄存器(地址0x000158 + 0x20*port_num),可實時監測端口狀態;Lane{1…17}Status CSR寄存器(地址0x002010 + 0x20*lane_num),可實時監測通道狀態。此外,CPS1848還對用戶提供了錯誤事件歷史記錄、包計數器和診斷計數器。當鏈路存在異常時,我們可以訪問相關寄存器獲知Error信息,從而快速有效地定位出鏈路問題來源。

3 結束語

基于SRIO交換網絡的信號處理平臺是現代信號處理系統發展的重要趨勢之一。本文提出的基于SRIO交換芯片的DSP接口設計方法,實現了多片DSP與FPGA之間大量數據實時、高效、可靠地傳輸,同時提出的SRIO鏈路維護及監測方法,也極大保障了傳輸鏈路的可靠性和穩定性。

主站蜘蛛池模板: 99视频全部免费| 在线精品欧美日韩| 欧美日韩高清在线| 欧美亚洲国产日韩电影在线| 五月天丁香婷婷综合久久| 天天躁日日躁狠狠躁中文字幕| AⅤ色综合久久天堂AV色综合 | 国产亚洲一区二区三区在线| 国产网站黄| 欧美亚洲欧美区| 国产一区二区三区免费观看| 欧美精品v欧洲精品| 亚洲国产成人精品青青草原| 免费视频在线2021入口| 美女被躁出白浆视频播放| a级免费视频| 国产精品视频第一专区| 久久这里只有精品66| 欧美亚洲网| 第九色区aⅴ天堂久久香| 99免费在线观看视频| 久久久久久久蜜桃| 亚洲欧美自拍一区| 99久久国产综合精品2023| 91黄视频在线观看| 无码AV高清毛片中国一级毛片| 亚洲制服中文字幕一区二区| 91麻豆精品国产高清在线| 亚洲国产精品国自产拍A| 国产午夜小视频| 国产精品免费p区| 欧洲极品无码一区二区三区| 91在线激情在线观看| 国产另类视频| 99久久国产综合精品2020| 日本在线国产| 精品人妻一区二区三区蜜桃AⅤ| 色综合天天操| 久热中文字幕在线观看| 国产欧美日韩va| 亚洲日韩高清无码| 成人小视频网| 国产超碰一区二区三区| 真实国产乱子伦视频| 国产精品露脸视频| 大学生久久香蕉国产线观看 | 日韩精品亚洲人旧成在线| 欧美日韩国产在线人成app| 国产手机在线ΑⅤ片无码观看| 一级毛片在线直接观看| 曰AV在线无码| 欧美一区二区啪啪| 五月天丁香婷婷综合久久| 福利国产微拍广场一区视频在线| 在线观看免费国产| 美女被操91视频| 色综合中文| 国产午夜一级毛片| 欧美日韩午夜视频在线观看| 亚洲欧美一级一级a| 欧美激情第一欧美在线| 精品人妻系列无码专区久久| 中文字幕中文字字幕码一二区| 欧美区在线播放| 91精品啪在线观看国产| 亚洲欧美不卡视频| www成人国产在线观看网站| 日韩二区三区| 国产成人a毛片在线| 国产激情影院| 激情午夜婷婷| 亚洲国产午夜精华无码福利| 久久久久久久蜜桃| 国产在线拍偷自揄拍精品| 亚洲最猛黑人xxxx黑人猛交| 18禁不卡免费网站| 亚洲三级a| 欧美A级V片在线观看| 亚洲天堂视频网站| 狼友av永久网站免费观看| 欧美乱妇高清无乱码免费| 91久久偷偷做嫩草影院电|