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