張 琴,楊 瑩,楊燦美,林福江
(1.中國科學技術大學 信息科學技術學院,安徽 合肥 230027;2.中國科學技術大學 先進技術研究院,安徽 合肥 230027)
?
一種新的10GBASE-KR物理編碼子層的變速箱設計
張琴1,楊瑩1,楊燦美2,林福江1
(1.中國科學技術大學 信息科學技術學院,安徽 合肥 230027;2.中國科學技術大學 先進技術研究院,安徽 合肥 230027)
摘要:10GBASE-KR變速箱的功能是實現156.25 MHz下66 bit數據與644.53 MHz下16 bit數據之間的通信。該文在深入研究萬兆以太網物理編碼子層(Physical Coding Sublayer ,PCS)的功能以及變速箱原理的基礎上,提出一種新的變速箱實現方法,將其分成讀寫數據轉換和異步FIFO(First In First out)兩個模塊,完成發送通道和接收通道的設計。該方法有效減少了存儲器的數目,使存儲器數目由原來的528個減少到82個。本設計使用Verilog硬件描述語言,采用ModelSim進行功能仿真,并利用EDA(Electronic Design Automation)工具完成邏輯綜合。仿真結果表明,該方法實現了變速箱的功能要求,并具有面積小、速度快的特點。
關鍵詞:變速箱;萬兆以太網;PCS;邏輯綜合
引用格式:張琴,楊瑩,楊燦美,等. 一種新的10GBASE-KR物理編碼子層的變速箱設計[J].微型機與應用,2016,35(13):31-33,36.
0引言

圖1 PCS層功能結構圖
變速箱的功能是在保證數據率不變的前提下,完成高速信號與低速信號之間的通信,廣泛應用于高速通信系統中。萬兆以太網作為以太網領域的先進技術,具有工作速率快、可靠性高、應用范圍廣的特點,有著廣泛的發展前景。本文根據10GBASE-KR協議標準,設計了一種新的物理編碼子層(PCS)變速箱實現方法,有效地簡化了電路的復雜度。
1PCS層的功能與結構
PCS層位于媒體訪問控制子層(MAC)與物理介質連接子層(PMA)之間,通過XGMII接口和PMA服務接口與上下層實現通信[1]。PCS層的結構圖如圖1所示。由圖可知,PCS層由發送通道和接收通道構成,發送通道將XGMII傳輸的72 bit(兩路32 bit的TXD和4 bit的TXC)數據轉換成16 bit的數據發送到PMA層,包括CRC8插入模塊、64 B/66 B編碼器、擾碼器和變速箱;接收通道接收PMA傳輸的16 bit的數據并轉換為72 bit(兩路32 bit的RXD和4 bit的RXC)數據,包括CRC8移除模塊、64 B/66 B解碼器、解擾碼器和變速箱。整個PCS層以及XGMII接口的時鐘頻率為156.25 MHz,PMA層的時鐘頻率為644.53 MHz[2]。
2變速箱原理及傳統設計方法
由PCS層結構圖可知,變速箱位于擾碼器/解擾碼器和PMA層之間,完成156.25 MHz的低速信號與644.53 MHz的高速信號間的通信。
發送通道中,變速箱的輸入為由擾碼器輸出的64 bit數據和64 B/66 B編碼器輸出的2 bit同步頭構成的66 bit數據,輸出是16 bit數據,并發送到PMA層;接收通道中,變速箱輸入為PMA傳輸的16 bit數據,輸出66 bit數據,并將同步后的64 bit數據傳送到解擾碼器以及將2 bit同步頭傳送到64 B/66 B解碼器。
變速箱完成數據率為10.312 5 Gb/s信號間的傳輸,實現156.25 MHz下66 bit數據與644.53 MHz下16 bit數據的轉換。
傳統的變速箱結構圖如圖2和圖3所示[3]。圖2為發送通道變速箱結構圖,其中,1 T~8 T是8個存儲單元,深度為66 bit,總共528 bit的存儲單元,每個存儲單元對應每個時鐘周期的輸入數據,然后通過數據選擇器在輸出時鐘有效沿到來時選擇一路數據輸出。該結構實現的是8個66 bit數據轉換為33個16 bit數據。

圖2 傳統發送通道變速箱結構圖

圖3 傳統接收通道變速箱結構圖

圖4 發送通道變速箱電路結構圖
圖3為接收通道變速箱結構,其中,1 T~33 T是33個存儲單元,深度為16 bit,同樣耗費528 bit的存儲單元,每個存儲單元對應每個時鐘周期的輸入數據,然后通過數據選擇器在輸出時鐘有效沿到來時選擇一路數據輸出。從而實現16 bit數據到66 bit數據的轉換。
這種電路結構耗費的存儲器太多,導致整個電路的面積很大,并且造成很大的延遲。為了保證數據輸出時輸入數據已經穩定建立,數據選擇器的第一次輸出選擇的是第12個16 bit,還需人為加入17.05 ns的延遲[3]。另外,這種結構的控制信號不易產生,電路的穩定性大大降低。本文提出一種新的設計方法能夠有效地解決上述問題。
3新的變速箱設計
變速箱的設計難點是輸入數據寬度與輸出數據寬度不成整數倍,所以每次發送或者接收到的數據不能正好全部發完,剩下的數據必須等下一時刻數據到來時再發送。而且每次剩余的數據位置是不固定的。
本文將變速箱分為兩個部分:讀寫數據轉換模塊和異步FIFO模塊。讀寫數據轉換模塊完成數據轉換和處理剩余比特數據問題,異步FIFO模塊完成跨時鐘域的數據傳輸。
發送通道中,本文選用16位的寄存器緩存每次讀取數據所余下的2 bit數據。每次寫操作對應4次讀操作,在第8次寫操作時,16位的寄存器中緩存了16 bit的數據,所以,對應5次讀操作,以實現8個66 bit的寫數據轉換為33個16 bit的讀數據。
本設計難點在于如何設計控制信號。因為每次讀寫操作結束后,余下的2 bit數據在16位寄存器中的位置是不固定的。本文設置了一個與讀時鐘同步的7位計數器,在每次讀操作結束,計數器累加16,同時,設置了一個與讀時鐘同步的模33計數器,控制每33個讀時鐘周期只讀8次。電路結構圖如圖4所示。在PCS時鐘有效沿將輸入的66 bit數據通過異步FIFO與PMA時鐘域同步,并通過模33計數器控制PMA的讀操作,輸出寄存在66位的寄存器中,將其高16 bit寄存到16位的緩存器中。
該方法有效減少了存儲器的數量,由傳統方法的528個存儲器減少到了82個存儲器(66+16=82),降低了異步FIFO的復雜度,并且減少了整個電路的面積。使用Verilog HDL[4]語言描述,部分關鍵代碼如下:
always @ (*)
case(counter)
7′d0:tx _group= shift_reg2[15: 0];
7′d2:tx _group={shift_reg1[1:0],shift_reg2[15:2]};
7′d4:tx _group={shift_reg1[3:0],shift_reg2[15: 4]};
7′d6:tx _group={shift_reg1[5:0],shift_reg2[15: 6]};
7′d8:tx _group={shift_reg1[7: 0],shift_reg2[15: 8]};
接收通道中,設置4個16位寄存器級聯,將每個寄存器的輸出與輸入拼接構成66 bit數據。設計難點同樣在于如何設計控制信號。4個16 bit數據只能組成64 bit數據,需要拼接2 bit數據,而這2 bit數據的位置是不確定的,另外寫時鐘頻率比讀時鐘頻率快很多,直接利用異步FIFO將導致FIFO總是寫滿狀態。
本文設置了一個與寫時鐘同步的模33計數器,控制選擇正確的66 bit的拼接數據,同時控制每33個寫時鐘周期只寫8次數據,輸入到異步FIFO中,避免了由于寫時鐘頻率比讀時鐘頻率快很多而導致FIFO總是寫滿的情況。電路結構如圖5所示。在PMA時鐘有效沿,計數器開始計數,生成的控制信號作為8選1 MUX的選擇信號,選擇正確的信號作為異步FIFO的寫信號。同時,模33計數器開始計數,控制寫使能信號的產生,控制異步FIFO的寫操作,輸出正確的66 bit信號。本文中的異步FIFO均采用傳統的異步FIFO設計結構[5],利用2級D觸發器級聯,并采用格雷碼完成寫地址與讀時鐘以及讀地址與寫時鐘的同步,避免電路出現亞穩態。與傳統設計方法相比,本設計有效地降低了電路的復雜度和整個電路的面積。部分關鍵代碼為:

圖6 發送通道變速箱仿真結果圖

圖7 接收通道變速箱仿真結果圖

圖5 接收通道變速箱電路結構圖
always @ (*)
case(rx_fetch_cnt[4:2])
3'd0: rx_pcs_66b={rx_pma_group[1:0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4};
3'd1: rx_pcs_66b={rx_pma_group[3 :0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4[15: 2]};
3'd2: rx_pcs_66b={rx_pma_group[5 :0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4[15: 4]};
3'd3: rx_pcs_66b={rx_pma_group[7 :0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4[15: 6]};
3'd4: rx_pcs_66b={rx_pma_group[9 :0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4[15: 8]};
3'd5: rx_pcs_66b={rx_pma_group[11:0],rx_pma_group1,
rx_pma_group2,rx_pma_group3,rx_pma_group4[15:10]};
4功能仿真與邏輯綜合
本設計通過編寫測試向量采用ModelSim工具完成各個模塊的功能仿真,仿真結果如圖6和圖7所示。圖6中,當輸入信號為A_in時,對應的輸出為A_out;當輸入信號為B_in時,對應的輸出為B_out。圖7中,當輸入信號為A_in時,對應的輸出為A_out;當輸入信號為B_in時,對應的輸出為B_out;當輸入信號為C_in時,對應的輸出為C_out。為了保證信號的穩定性,人為地加入了一定的延遲。從仿真結果可以看出,輸入所對應的輸出都是正確的,表明本設計實現了PCS層發送通道和接收通道的變速箱功能仿真。
另外,本設計采用Synopsys公司的Design Compiler[6]工具完成了邏輯綜合。綜合結果表明設計完全符合PCS變速箱的時序要求。發送和接收電路分別留有4.56 ns、3.92 ns的時鐘裕量,且面積小,分別使用了近1 000個邏輯門;在工作頻率方面,發送電路使用了286個D觸發器,最高寫時鐘頻率分別為232.56 MHz、927.35 MHz,最高讀時鐘頻率分別為961.54 MHz、211.42 MHz,使用了近1 300個邏輯門。與傳統的設計方法[3]相比,面積縮小了近30%,工作速度提高了近50%。
5結論
本文在研究變速箱原理的基礎上,根據其內在的邏輯關系,將電路分成寫數據轉換模塊和異步FIFO兩部分,設計了PCS層發送通道和接收通道的變速箱。完成了功能仿真和邏輯綜合。綜合結果表明,該方法有效地解決了控制信號不易設計和亞穩態的問題,縮小了面積,提高了工作速率。
參考文獻
[1] Vivado design suite user guide: 10 GB Ethernet PCS/PMA v4.0[Z]. PG068 October 2, 2013.
[2] IEEE Std 802.3ap[S]. 2012 Edition.
[3] 敖志剛.萬兆位以太網及其實用技術[M].北京:電子工業出版社,2007.
[4] 夏宇聞.Verilog數字系統設計(第二版)[M].北京:北京航空航天大學出版社,2008.
[5] VERILOG E, CUMMINGS C E. Simulation and synthesis techniques for asynchronous FIFO design[M]. Snug, 2002.
[6] Design compiler user guide[M]. Version H-2013.03
中圖分類號:TP47
文獻標識碼:A
DOI:10.19358/j.issn.1674- 7720.2016.13.010
(收稿日期:2016-03-09)
作者簡介:
張琴(1990-),女,碩士研究生,主要研究方向:數字集成電路設計。
楊瑩(1992-),女,碩士研究生,主要研究方向:數字集成電路設計。
楊燦美(1965-),男,博士,研究員,主要研究方向:SOC架構設計。
A novel kind of the gearbox design of physical coding sublayer in 10GBASE-KR
Zhang Qin1,Yang Ying1,Yang Canmei2, Lin Fujiang1
(1.School of Information Science and Technology, University of Science and Technology of China, Hefei 230026, China;2.Institute of Advanced Technology,University of Science and Technology of China, Hefei 230026,China)
Abstract:The function of gearbox is to achieve the communication between the 66 bit data of 156.25 MHz and 16 bit data of 644.53 MHz in 10GBASE-KR. On the basis of deep research of Physical Coding Sublayer(PCS) function of the 10 Gigabit Ethernet and the theory of gearbox, a kind of gearbox design is given out, which is divided into two modules, the data conversion and asynchronous FIFO(First In First Out), to complete design of the transition and receive channels. It can reduce the number of memory effectively, from 528 to 82. The design uses Verilog hardware description language and adopts ModelSim to implement the functional simulation. What’s more, the logic synthesis is completed with the EDA(Electronic Design Automation) tools. The result shows it can meet the function demand of the gearbox, and it can reduce the area and improve the speed.
Key words:gearbox; 10 Gigabit Ethernet; PCS; logic synthesis