文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.013
中文引用格式: 馮龍輝,,張興明,,楊鎮(zhèn)西,等. 基于RapidIO控制符產(chǎn)生單元設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2015,,41(11):48-50.
英文引用格式: Feng Longhui,Zhang Xingming,,Yang Zhenxi,,et al. Design and realization of the control symbols module based on RapidIO specification[J].Application of Electronic Technique,2015,,41(11):48-50.
0 引言
RapidIO是一種高性能,、低引腳數(shù)、基于包交換的互連架構(gòu),,是為滿足未來高性能嵌入式系統(tǒng)需求而設(shè)計的一種開放式互連技術(shù)標(biāo)準(zhǔn),,同時也是國際標(biāo)準(zhǔn)組織(ISO)唯一授權(quán)的嵌入式互連技術(shù)標(biāo)準(zhǔn)。RapidIO互連接口延時小,、吞吐量高,,在電子對抗、聲納以及雷達(dá)等軍用設(shè)備中應(yīng)用廣泛[1],。控制符作為協(xié)議的重要組成部分,,主要用于鏈路維護(hù),,包定界,錯誤報告以及錯誤恢復(fù)等,,是進(jìn)行正常通信必不可少的信息單元,,在RapidIO端點設(shè)備和交換設(shè)備中均發(fā)揮不可替代作用,占據(jù)重要的地位[2],。本文針對RapidIO_2.2規(guī)范,,提出一種快速正確產(chǎn)生控制符的設(shè)計實現(xiàn)方法[3]。仿真結(jié)果表明,,在滿足控制條件的情況下,,下一周期即可產(chǎn)生正確的控制符,達(dá)到了設(shè)計的預(yù)期目的,。
1 控制符格式的介紹
控制符分為長控制符和短控制符,,長短控制符的格式分別如圖1所示,其中(a)為短控制符格式,,(b)為長控制符格式,。控制符有兩個字段,,一個是stype0字段,,一個是stype1字段。stype0與parameter0和parameter1配合工作,,構(gòu)成信息字段,,表明端口傳遞各種類型控制符的狀態(tài),其編碼如表1[2]所示,。stype1則與cmd配合工作,,構(gòu)成功能字段,用于鏈路維護(hù)或者傳輸定界的請求等,,其編碼如表2[2]所示,。短控制符有24位,長控制符有48位,,長控制符與短控制符相似,,其對應(yīng)字段的名稱、功能和編碼都相同,,唯一不同的是某些字段的位寬不同,,這里不再贅述。
2 控制符產(chǎn)生的設(shè)計
綜上可知,,控制符主要由三個部分構(gòu)成,,分別為stype0、stype1和CRC,,其中CRC為鏈路檢錯機(jī)制[2],,這里不予討論,,stype0和stype1分別為控制符的兩個域。parameter0和parameter1配合stype0一起工作,,根據(jù)stype0的功能產(chǎn)生對應(yīng)的字段,,用于指示鏈路的各種狀態(tài)信息;cmd則配合stype1一起工作,,根據(jù)stype1的功能產(chǎn)生對應(yīng)的cmd字段,,用于鏈路各種控制功能?;诖?,本設(shè)計將stype0和stype1兩個域拆分為stype0 function generator和stype1 function generator,兩個域分別設(shè)計分別產(chǎn)生對應(yīng)的控制符,。對于stype0 function generator來說,,首先根據(jù)鏈路控制信號產(chǎn)生stype0的類型,然后根據(jù)stype0的類型選擇并產(chǎn)生對應(yīng)的parameter0字段和parameter1字段[4],,stype1 function generator工作機(jī)制與此相同。值得說明的是:status控制符是stype0默認(rèn)的也是常用的控制符,,同時也是鏈路初始化時使用的控制符,;NOP則是stype1默認(rèn)的控制符[2]??刂品怯蓅type0和stype1的任意組合共同構(gòu)成,,例如,當(dāng)stype0要發(fā)送一個包接收控制符PA,,stype1不需要產(chǎn)生特定的控制符時,,則產(chǎn)生NOP,由PA和NOP共同構(gòu)成控制符,。形成的各個控制信號在一定的控制條件下產(chǎn)生對應(yīng)的字段,,然后根據(jù)鏈路IDLE的使用情況產(chǎn)生長控制符或短控制符[5],最后通過控制符選擇模塊發(fā)送出去,。本設(shè)計結(jié)構(gòu)框圖如圖2所示[6],,下面對框圖中每個模塊的作用進(jìn)行闡述。
(1)Initialization sequence:初始化序列模塊用于初始化序列及初始化鏈路,。當(dāng)端口完成初始化以后要對鏈路進(jìn)行初始化,,當(dāng)端口收到連續(xù)的指定數(shù)量無錯誤的狀態(tài)控制符以后,則表明鏈路初始化已經(jīng)完成,。
(2)Stype0 function generator:此模塊用于產(chǎn)生stype0的狀態(tài)信息并且根據(jù)狀態(tài)信息產(chǎn)生對應(yīng)的parameter0字段和parameter1字段,。若控制信號無效,即不需要產(chǎn)生特定的控制符時,,status即為默認(rèn)的stype0控制符,。
(3)Stype1 function generator:Stype1是功能字段,,此模塊用于產(chǎn)生stype1功能字段并且根據(jù)功能字段產(chǎn)生對應(yīng)的cmd字段。若控制信號無效,,即不需要產(chǎn)生特定的控制符時,,NOP為默認(rèn)的stype1控制符。
(4)Short control symbol creation:在IDLE1(短空閑序列)置位的情況下,,根據(jù)控制信號產(chǎn)生對應(yīng)的短控制符,。
(5)Long control symbol creation:在IDLE2(長空閑序列)置位的情況下,根據(jù)控制信號產(chǎn)生對應(yīng)的長控制符,。
(6)Control symbol selector:根據(jù)鏈路上IDLE1和IDLE2的使用情況,,選擇合適的控制符。長短控制符在鏈路上的使用情況是依據(jù)IDLE(空閑序列)的使用情況而定的,。當(dāng)鏈路使用IDLE1時,,此時傳輸控制符為短控制符,當(dāng)鏈路使用IDLE2時,,傳輸控制符為長控制符,。而IDLE的使用情況主要依據(jù)鏈路速率而定,當(dāng)鏈路小于5.5 GB并且收發(fā)兩端不使用自適應(yīng)均衡(Adaptive Equalization,,AE)的情況下,,鏈路使用IDLE1;而鏈路速率大于5.5 GB并且收發(fā)兩端具有AE功能的情況下鏈路使用IDLE2[2],。若鏈路雙方都支持IDLE2且鏈路速率小于5.5 GB時,,也可通過鏈路協(xié)商進(jìn)而使用IDLE2。
綜上所述,,本設(shè)計采用流水線設(shè)計的思想將控制符根據(jù)其不同功能,、不同字段進(jìn)行拆分,拆分后根據(jù)控制條件分別設(shè)計產(chǎn)生對應(yīng)字段,,最后將設(shè)計的結(jié)果拼接,、選擇進(jìn)而發(fā)送,可以達(dá)到快速正確產(chǎn)生控制符的目的,,并且可以連續(xù)地產(chǎn)生不同的控制符,。
3 仿真測試
將本文中控制符產(chǎn)生的設(shè)計進(jìn)行仿真測試,仿真結(jié)果如圖3所示,。其中圖3(a)所示為短控制符的產(chǎn)生,。協(xié)議規(guī)定當(dāng)端口初始化完成以后,在VC=0的情況下,,要連續(xù)發(fā)送16個status控制符以使鏈路初始化,;若VC=1,則要連續(xù)發(fā)送15個status控制符和1個vcstatus控制符來完成鏈路初始化[2]。本次仿真以VC=0為例,,從圖中信號可以看出,,在端口初始化完成以后,連續(xù)發(fā)送了16個status控制符,,從而使得鏈路初始化完成,。
圖3(b)為產(chǎn)生長控制符仿真測試圖。stype0產(chǎn)生的是PA,,stype1產(chǎn)生的是sop,。產(chǎn)生PA的情況有多種,有一個計數(shù)器outstanding_pa_ctr專門計數(shù)未能及時處理發(fā)送的PA的數(shù)目,,當(dāng)鏈路初始化完成以后,,只要outstanding_pa_ctr的值不為零則發(fā)送PA控制符;或者當(dāng)PA的數(shù)目太多超過一定值之后,,亦或buf的狀態(tài)已經(jīng)過期,,都要產(chǎn)生PA控制符,本仿真圖以第一種情況為例,。對于sop的產(chǎn)生也有多種情況,,若sop信號有效,同時配置模塊允許其advance,,此時會產(chǎn)生sop控制符,;若上個周期eop有效,但是下個周期即將到來sop,,此時要把eop重寫為sop,產(chǎn)生sop控制符,。本文以第二種情況為例,。本設(shè)計短控制符為32位,其中頭部包含8位的包定界符,;長控制符為64位,,其中頭部和尾部各自包含一個包定界符。
4 結(jié)論
本文針對RapidIO_2.2協(xié)議進(jìn)行開發(fā),,設(shè)計并且實現(xiàn)了控制符的產(chǎn)生,。根據(jù)控制符的特點,對其不同的功能字段進(jìn)行拆分,,采用流水線的設(shè)計思想,,流水產(chǎn)生各個字段最后拼接發(fā)送。仿真結(jié)果表明,,本設(shè)計可以快速正確地產(chǎn)生對應(yīng)功能的長短控制符,,滿足預(yù)期目標(biāo),為器件的正常通信提供了有力的保障,。
參考文獻(xiàn)
[1] 陳程.串行RapidIO總線在存儲系統(tǒng)中的應(yīng)用研究[D].西安:西安電子科技大學(xué),,2013.
[2] ASSOCIATION R T.RapidIOTM Interconnect Specification Part 6:LP-Serial Physical Layer Specification[D].2011.
[3] 楊卿.RapidIO高速互聯(lián)接口的設(shè)計研究與應(yīng)用[D].成都:電子科技大學(xué),,2009.
[4] 陳宏銘,李蕾,,姚益武,,等.基于AXI總線串行RapidIO端點控制器的FPGA實現(xiàn)[J].北京大學(xué)學(xué)報,2014,,50(4).
[5] 吳峰鋒.一種低時延的串行RapidIO端點設(shè)計方案[J].北京大學(xué)學(xué)報(自然科學(xué)版),,2013,49(4).
[6] 張強(qiáng).串行RapidIO互連系統(tǒng)的設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué),,2013.