文獻(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í)也是國際標(biāo)準(zhǔn)組織(ISO)唯一授權(quán)的嵌入式互連技術(shù)標(biāo)準(zhǔn)。RapidIO互連接口延時(shí)小、吞吐量高,在電子對抗、聲納以及雷達(dá)等軍用設(shè)備中應(yīng)用廣泛[1]。控制符作為協(xié)議的重要組成部分,主要用于鏈路維護(hù),包定界,錯(cuò)誤報(bào)告以及錯(cuò)誤恢復(fù)等,是進(jìn)行正常通信必不可少的信息單元,在RapidIO端點(diǎn)設(shè)備和交換設(shè)備中均發(fā)揮不可替代作用,占據(jù)重要的地位[2]。本文針對RapidIO_2.2規(guī)范,提出一種快速正確產(chǎn)生控制符的設(shè)計(jì)實(shí)現(xiàn)方法[3]。仿真結(jié)果表明,在滿足控制條件的情況下,下一周期即可產(chǎn)生正確的控制符,達(dá)到了設(shè)計(jì)的預(yù)期目的。
1 控制符格式的介紹
控制符分為長控制符和短控制符,長短控制符的格式分別如圖1所示,其中(a)為短控制符格式,(b)為長控制符格式??刂品袃蓚€(gè)字段,一個(gè)是stype0字段,一個(gè)是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è)計(jì)
綜上可知,控制符主要由三個(gè)部分構(gòu)成,分別為stype0、stype1和CRC,其中CRC為鏈路檢錯(cuò)機(jī)制[2],這里不予討論,stype0和stype1分別為控制符的兩個(gè)域。parameter0和parameter1配合stype0一起工作,根據(jù)stype0的功能產(chǎn)生對應(yīng)的字段,用于指示鏈路的各種狀態(tài)信息;cmd則配合stype1一起工作,根據(jù)stype1的功能產(chǎn)生對應(yīng)的cmd字段,用于鏈路各種控制功能。基于此,本設(shè)計(jì)將stype0和stype1兩個(gè)域拆分為stype0 function generator和stype1 function generator,兩個(gè)域分別設(shè)計(jì)分別產(chǎn)生對應(yīng)的控制符。對于stype0 function generator來說,首先根據(jù)鏈路控制信號(hào)產(chǎn)生stype0的類型,然后根據(jù)stype0的類型選擇并產(chǎn)生對應(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)生對應(yīng)的字段,然后根據(jù)鏈路IDLE的使用情況產(chǎn)生長控制符或短控制符[5],最后通過控制符選擇模塊發(fā)送出去。本設(shè)計(jì)結(jié)構(gòu)框圖如圖2所示[6],下面對框圖中每個(gè)模塊的作用進(jìn)行闡述。
(1)Initialization sequence:初始化序列模塊用于初始化序列及初始化鏈路。當(dāng)端口完成初始化以后要對鏈路進(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)生對應(yīng)的parameter0字段和parameter1字段。若控制信號(hào)無效,即不需要產(chǎn)生特定的控制符時(shí),status即為默認(rèn)的stype0控制符。
(3)Stype1 function generator:Stype1是功能字段,此模塊用于產(chǎn)生stype1功能字段并且根據(jù)功能字段產(chǎn)生對應(yīng)的cmd字段。若控制信號(hào)無效,即不需要產(chǎn)生特定的控制符時(shí),NOP為默認(rèn)的stype1控制符。
(4)Short control symbol creation:在IDLE1(短空閑序列)置位的情況下,根據(jù)控制信號(hào)產(chǎn)生對應(yīng)的短控制符。
(5)Long control symbol creation:在IDLE2(長空閑序列)置位的情況下,根據(jù)控制信號(hào)產(chǎn)生對應(yīng)的長控制符。
(6)Control symbol selector:根據(jù)鏈路上IDLE1和IDLE2的使用情況,選擇合適的控制符。長短控制符在鏈路上的使用情況是依據(jù)IDLE(空閑序列)的使用情況而定的。當(dāng)鏈路使用IDLE1時(shí),此時(shí)傳輸控制符為短控制符,當(dāng)鏈路使用IDLE2時(shí),傳輸控制符為長控制符。而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)生對應(yīng)字段,最后將設(shè)計(jì)的結(jié)果拼接、選擇進(jìn)而發(fā)送,可以達(dá)到快速正確產(chǎn)生控制符的目的,并且可以連續(xù)地產(chǎn)生不同的控制符。
3 仿真測試
將本文中控制符產(chǎn)生的設(shè)計(jì)進(jìn)行仿真測試,仿真結(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)生長控制符仿真測試圖。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控制符,本仿真圖以第一種情況為例。對于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位的包定界符;長控制符為64位,其中頭部和尾部各自包含一個(gè)包定界符。
4 結(jié)論
本文針對RapidIO_2.2協(xié)議進(jìn)行開發(fā),設(shè)計(jì)并且實(shí)現(xiàn)了控制符的產(chǎn)生。根據(jù)控制符的特點(diǎn),對其不同的功能字段進(jìn)行拆分,采用流水線的設(shè)計(jì)思想,流水產(chǎn)生各個(gè)字段最后拼接發(fā)送。仿真結(jié)果表明,本設(shè)計(jì)可以快速正確地產(chǎn)生對應(yī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.