《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于RapidIO控制符產生單元設計與實現
基于RapidIO控制符產生單元設計與實現
2015年電子技術應用第11期
馮龍輝1,,張興明1,,楊鎮(zhèn)西1,,李沛杰1,,汪 欣2
(1.國家數字交換系統(tǒng)工程技術研究中心,,河南 鄭州450002,;2.珠海高凌有限公司,,河南 鄭州450002)
摘要: 針對RapidIO_2.2協議進行開發(fā),,設計并實現了該協議的控制符產生單元。本設計將控制符根據不同的功能字段拆分,,采用流水線設計的方法將各個字段內部分別流水產生,,最終并行實現。仿真結果表明,,本設計在RapidIO_2.2規(guī)范下,,可以實現正確快速產生控制符的功能,并且能夠連續(xù)產生不同的控制符,。
中圖分類號: TN911
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.013

中文引用格式: 馮龍輝,,張興明,楊鎮(zhèn)西,,等. 基于RapidIO控制符產生單元設計與實現[J].電子技術應用,,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.
Design and realization of the control symbols module based on RapidIO specification
Feng Longhui1,Zhang Xingming1,,Yang Zhenxi1,,Li Peijie1,Wang Xin2
National Digital Switching System Engineering Technological Research Center,,Zhengzhou 450002,,China
Abstract: This paper designs and realizes the control symbols module based on the RapidIO_2.2 specification. Using the method of pipeline, the control symbol is decomposed and created according to the functions of different fields, which can be combined parallelly in the end. The simulation results show that under the RapidIO_2.2 specification our design can create the right control symbols rapidly, and can also create different control symbols continuously.
Key words : RapidIO;control symbols,;pipeline,;parallel

 

0 引言

  RapidIO是一種高性能、低引腳數,、基于包交換的互連架構,,是為滿足未來高性能嵌入式系統(tǒng)需求而設計的一種開放式互連技術標準,同時也是國際標準組織(ISO)唯一授權的嵌入式互連技術標準,。RapidIO互連接口延時小,、吞吐量高,在電子對抗,、聲納以及雷達等軍用設備中應用廣泛[1],。控制符作為協議的重要組成部分,主要用于鏈路維護,,包定界,,錯誤報告以及錯誤恢復等,,是進行正常通信必不可少的信息單元,在RapidIO端點設備和交換設備中均發(fā)揮不可替代作用,,占據重要的地位[2],。本文針對RapidIO_2.2規(guī)范,提出一種快速正確產生控制符的設計實現方法[3],。仿真結果表明,,在滿足控制條件的情況下,下一周期即可產生正確的控制符,,達到了設計的預期目的,。

1 控制符格式的介紹


001.jpg

  控制符分為長控制符和短控制符,長短控制符的格式分別如圖1所示,,其中(a)為短控制符格式,,(b)為長控制符格式??刂品袃蓚€字段,,一個是stype0字段,一個是stype1字段,。stype0與parameter0和parameter1配合工作,,構成信息字段,表明端口傳遞各種類型控制符的狀態(tài),,其編碼如表1[2]所示,。stype1則與cmd配合工作,構成功能字段,,用于鏈路維護或者傳輸定界的請求等,,其編碼如表2[2]所示。短控制符有24位,,長控制符有48位,,長控制符與短控制符相似,其對應字段的名稱,、功能和編碼都相同,,唯一不同的是某些字段的位寬不同,這里不再贅述,。

2 控制符產生的設計



  綜上可知,,控制符主要由三個部分構成,分別為stype0,、stype1和CRC,,其中CRC為鏈路檢錯機制[2],這里不予討論,,stype0和stype1分別為控制符的兩個域,。parameter0和parameter1配合stype0一起工作,,根據stype0的功能產生對應的字段,,用于指示鏈路的各種狀態(tài)信息,;cmd則配合stype1一起工作,根據stype1的功能產生對應的cmd字段,,用于鏈路各種控制功能,。基于此,,本設計將stype0和stype1兩個域拆分為stype0 function generator和stype1 function generator,,兩個域分別設計分別產生對應的控制符。對于stype0 function generator來說,,首先根據鏈路控制信號產生stype0的類型,,然后根據stype0的類型選擇并產生對應的parameter0字段和parameter1字段[4],stype1 function generator工作機制與此相同,。值得說明的是:status控制符是stype0默認的也是常用的控制符,,同時也是鏈路初始化時使用的控制符;NOP則是stype1默認的控制符[2],??刂品怯蓅type0和stype1的任意組合共同構成,例如,,當stype0要發(fā)送一個包接收控制符PA,,stype1不需要產生特定的控制符時,則產生NOP,,由PA和NOP共同構成控制符,。形成的各個控制信號在一定的控制條件下產生對應的字段,然后根據鏈路IDLE的使用情況產生長控制符或短控制符[5],,最后通過控制符選擇模塊發(fā)送出去,。本設計結構框圖如圖2所示[6],下面對框圖中每個模塊的作用進行闡述,。

002.jpg

  (1)Initialization sequence:初始化序列模塊用于初始化序列及初始化鏈路,。當端口完成初始化以后要對鏈路進行初始化,當端口收到連續(xù)的指定數量無錯誤的狀態(tài)控制符以后,,則表明鏈路初始化已經完成,。

  (2)Stype0 function generator:此模塊用于產生stype0的狀態(tài)信息并且根據狀態(tài)信息產生對應的parameter0字段和parameter1字段。若控制信號無效,,即不需要產生特定的控制符時,,status即為默認的stype0控制符。

  (3)Stype1 function generator:Stype1是功能字段,,此模塊用于產生stype1功能字段并且根據功能字段產生對應的cmd字段,。若控制信號無效,,即不需要產生特定的控制符時,NOP為默認的stype1控制符,。

  (4)Short control symbol creation:在IDLE1(短空閑序列)置位的情況下,,根據控制信號產生對應的短控制符。

  (5)Long control symbol creation:在IDLE2(長空閑序列)置位的情況下,,根據控制信號產生對應的長控制符,。

  (6)Control symbol selector:根據鏈路上IDLE1和IDLE2的使用情況,選擇合適的控制符,。長短控制符在鏈路上的使用情況是依據IDLE(空閑序列)的使用情況而定的,。當鏈路使用IDLE1時,此時傳輸控制符為短控制符,,當鏈路使用IDLE2時,,傳輸控制符為長控制符。而IDLE的使用情況主要依據鏈路速率而定,,當鏈路小于5.5 GB并且收發(fā)兩端不使用自適應均衡(Adaptive Equalization,,AE)的情況下,鏈路使用IDLE1,;而鏈路速率大于5.5 GB并且收發(fā)兩端具有AE功能的情況下鏈路使用IDLE2[2],。若鏈路雙方都支持IDLE2且鏈路速率小于5.5 GB時,也可通過鏈路協商進而使用IDLE2,。

  綜上所述,,本設計采用流水線設計的思想將控制符根據其不同功能、不同字段進行拆分,,拆分后根據控制條件分別設計產生對應字段,,最后將設計的結果拼接、選擇進而發(fā)送,,可以達到快速正確產生控制符的目的,,并且可以連續(xù)地產生不同的控制符。

3 仿真測試

003.jpg

  將本文中控制符產生的設計進行仿真測試,,仿真結果如圖3所示,。其中圖3(a)所示為短控制符的產生。協議規(guī)定當端口初始化完成以后,,在VC=0的情況下,,要連續(xù)發(fā)送16個status控制符以使鏈路初始化;若VC=1,,則要連續(xù)發(fā)送15個status控制符和1個vcstatus控制符來完成鏈路初始化[2],。本次仿真以VC=0為例,從圖中信號可以看出,,在端口初始化完成以后,,連續(xù)發(fā)送了16個status控制符,,從而使得鏈路初始化完成。

  圖3(b)為產生長控制符仿真測試圖,。stype0產生的是PA,,stype1產生的是sop。產生PA的情況有多種,,有一個計數器outstanding_pa_ctr專門計數未能及時處理發(fā)送的PA的數目,,當鏈路初始化完成以后,,只要outstanding_pa_ctr的值不為零則發(fā)送PA控制符,;或者當PA的數目太多超過一定值之后,亦或buf的狀態(tài)已經過期,,都要產生PA控制符,,本仿真圖以第一種情況為例。對于sop的產生也有多種情況,,若sop信號有效,,同時配置模塊允許其advance,此時會產生sop控制符,;若上個周期eop有效,,但是下個周期即將到來sop,此時要把eop重寫為sop,,產生sop控制符,。本文以第二種情況為例。本設計短控制符為32位,,其中頭部包含8位的包定界符,;長控制符為64位,其中頭部和尾部各自包含一個包定界符,。

4 結論

  本文針對RapidIO_2.2協議進行開發(fā),,設計并且實現了控制符的產生。根據控制符的特點,,對其不同的功能字段進行拆分,,采用流水線的設計思想,流水產生各個字段最后拼接發(fā)送,。仿真結果表明,,本設計可以快速正確地產生對應功能的長短控制符,滿足預期目標,,為器件的正常通信提供了有力的保障,。

參考文獻

  [1] 陳程.串行RapidIO總線在存儲系統(tǒng)中的應用研究[D].西安:西安電子科技大學,2013.

  [2] ASSOCIATION R T.RapidIOTM Interconnect Specification Part 6:LP-Serial Physical Layer Specification[D].2011.

  [3] 楊卿.RapidIO高速互聯接口的設計研究與應用[D].成都:電子科技大學,,2009.

  [4] 陳宏銘,,李蕾,,姚益武,等.基于AXI總線串行RapidIO端點控制器的FPGA實現[J].北京大學學報,,2014,,50(4).

  [5] 吳峰鋒.一種低時延的串行RapidIO端點設計方案[J].北京大學學報(自然科學版),2013,,49(4).

  [6] 張強.串行RapidIO互連系統(tǒng)的設計與實現[D].南京:南京理工大學,,2013.


此內容為AET網站原創(chuàng),未經授權禁止轉載,。