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