?

一種適用于FPGA系統中的變速箱電路設計

2016-11-15 09:08何光旭雷淑嵐
電子與封裝 2016年10期
關鍵詞:計數器變速箱時鐘

羅  旸,何光旭,雷淑嵐

(中國電子科技集團公司第58研究所,江蘇無錫214072)

一種適用于FPGA系統中的變速箱電路設計

羅旸,何光旭,雷淑嵐

(中國電子科技集團公司第58研究所,江蘇無錫214072)

設計了一種新型變速箱電路,變速箱兩邊采用同一時鐘,不需要額外的時鐘輸入,使用計數器來控制位寬轉變的整個過程,并產生標志位來控制變速箱數據的輸入和輸出。在不改變數據傳輸波特率的情況下,解決在傳輸過程中數據的重復或丟失問題,實現兩邊不同數據位寬的正確轉換。電路適用于在FPGA系統中,模塊之間或者各IP之間的數據位寬不匹配的情況下調整模塊之間的數據位寬,從而實現各內部模塊之間的數據位寬匹配。仿真結果表明,以66位數據轉64位數據為例,在不影響有效數據傳輸速率的情況下,可以在32個時鐘周期內完成數據的無損轉換。

變速箱;標志位控制;高速串行通信;Serdes;FPGA系統

1  引言

隨著FPGA芯片的不斷升級換代,FPGA系統電路的規模越來越大,在系統電路中集成了各種模塊和IP,比如高速端口收發器,FPGA接口的數據寬度大多為2n字節,一般為16位或者32位。

圖1為在FPGA中實現10 GBase-R協議規定的64 B/66 B編碼[1~2],經過擾碼器后的66位信息分為兩部分,一部分是64位有效數據負載信息,還有一部分是2位的同步信息,FPGA接口數據線寬度為32位,其中64位的數據有效負載信息通過FPGA接口的32位數據信號發送,2位同步信息通過2位的控制信號線發送,在發送到Serdes模塊之前,要把數據負載信息和同步信息整合,再進行位寬由多到少的轉換,因為在10 GBase-R的物理層收發器設計過程中,Serdes的并行端數據輸入的位寬數一般不會是66位,且一般都不超過20位,如8位、10位、16位等[3],同樣數據從Serdes模塊發送到FPGA時,也需要進行數據位寬由少到多的轉變[4]。變速箱電路就是實現任意數據位寬之間的轉換,來保證FPGA系統內各模塊之間的無縫連接與正常的數據傳輸功能。

圖1  FPGA實現10 Gbps以太網收發器結構

如果直接根據變速箱兩側的數據輸出和輸入的數據率相等的原理,利用兩個頻率的時鐘對數據位寬直接進行轉換,而不對兩側時鐘或者數據進行任何的控制或者處理,則會出現下面兩種情況:

當變速箱數據輸出的時鐘頻率大于變速箱數據輸入的時鐘頻率,即輸出數據所用的時鐘周期小于輸入數據的寬度時,在數據位寬轉換過程中,在某個時鐘周期下,輸出數據的時鐘會將當前周期下的數據采樣2次,如圖2中的第3和第8時鐘周期,從而造成輸出數據的重復[5~6]。

圖2 同一數據采樣2次

當變速箱數據輸出的時鐘頻率小于變速箱數據輸入的時鐘頻率,即輸出數據所用的時鐘周期大于輸入數據的寬度時,在數據位寬轉換過程中,在某個時鐘周期下,如圖3中的第5和第10個時鐘周期,輸出數據的時鐘會漏采當前周期下的數據,從而影響數據傳輸的正確性。

圖3 數據漏采

針對上述問題,可以通過產生不均等時鐘的辦法來解決:使用電路中固定時鐘源產生兩個基礎時鐘,再通過這兩個基礎時鐘組合成變速箱的輸入時鐘和輸出時鐘,其中組合后的時鐘周期是不均等的,但是其平均周期值是定值,確保變速箱兩邊的傳輸比特率相等。但是這種辦法會需要額外的輸入時鐘,增加整個系統電路設計的額外開銷。在FPGA系統中,由于FPGA用戶可以自己來設計控制邏輯,本文提出一種新的應用于FPGA系統的方法,利用計數器控制位寬轉換的過程,并產生標志位控制變速箱數據的輸入和輸出,可以很好地解決上述問題。在數據位寬由多向少轉變的過程中,通過在某個時鐘周期暫停給變速箱輸入數據,但不停止變速箱的數據輸出;在數據位寬由少向多轉變的過程中,通過在某個時鐘周期暫停給變速箱輸出數據,但不停止變速箱的數據輸入。

2  標志位控制輸出變速箱的設計思路

在FPGA系統中,變速箱電路主要實現不同數據位寬之間的轉換,變速箱兩端的數據位寬和時鐘頻率在某一實際電路中是確定值。在本設計中,使用計數器電路來控制數據位寬轉換的整個過程,并產生標志位來控制變速箱數據的輸入輸出,在不改變數據傳輸波特率的情況下,實現對數據位寬的無損增加,從而達到系統內部各模塊間的位寬匹配。

為方便闡述,定義變速箱輸入端時鐘周期為T,輸入端位寬為m,輸出端時鐘周期與輸入時鐘相同,輸出端位寬為n,在實際電路中,輸入時鐘和輸出時鐘都是由系統中的固定時鐘源產生,時鐘源的頻率是固定的,變速箱兩端的位寬m、n的值根據具體電路的值確定。一般分為m<n和m>n兩種情況。

圖4 變速箱結構

如圖4所示,當變速箱并行數據輸入位寬m小于輸出位寬n時,在數據位寬轉換的過程中,如果待轉換的數據位寬積累到大于n,就進行數據位寬的轉換,在當前時鐘周期輸出n位寬的數據,否則標志位產生模塊產生輸出數據無效標志位,數據接收模塊通過此標志位確定當前數據無效,等待輸入的并行數據積累到大于n位時再進行數據的轉換。

當變速箱并行數據輸入位寬m大于輸出位寬n時,在數據位寬轉換的過程中,如果在當前時鐘周期,轉換后的數據位寬積累到大于n,就停止進行m位并行數據的輸入,但是在下一個時鐘周期繼續輸出n位寬的數據,并且標志位產生模塊產生輸入數據無效標志位,位寬轉換電路會通過此標志位確定當前輸入數據無效,不將此輸入數據進行數據位寬的轉換。具體的轉換流程如圖5所示。

圖5 變速箱位寬轉變流程圖

3  標志位控制變速箱的實現

接下來具體說明變速箱的實現過程,在FPGA系統中,數據總線的位寬為32位,以10 GBASE-R物理層為例,Serdes的位寬要求為 16 bit,PCS采用64B/66B的編解碼方式,在與Serdes模塊進行數據傳輸過程中,需要通過變速箱模塊實現66 bit到32 bit或者32 bit到66 bit兩種位寬的轉換。

輸入數據的位寬m為66(32+32+2)bit,輸出數據的位寬n為64(32+32)bit。

如圖6所示,位寬轉換前,66位寬的數據由兩個32位數據信息和2位的同步信息組成,轉換后64位寬的數據由兩個32位數據組成。計數器控制著每完成一次數據位寬轉換后累積下來的信息位寬,當計數器計數到31時,當前累積的數據位寬為30位,加上第32個時鐘周期輸入的32位寬的數據信息和2位寬的同步信息,此時正好有64位寬的信息;如果下一個時鐘周期32位寬的數據信息繼續輸入的話,就會造成這32位寬數據信息的丟失;所以在計數器為31時,信息正常輸入,在當前時鐘周期,正常輸出32位寬的信息,并產生低有效的輸入控制信號;在計數器值為32時,在此時鐘周期暫停輸入標志位有效,暫停數據的輸入,正常輸出32位寬的信息數據。

圖6  66位寬轉換為64位寬

同理,當64位寬轉換為66位寬時,當累計的信息位寬和新輸入的數據位寬總和小于66時,此時輸出無效標志位有效,暫停新的信息輸出,等到下一個時鐘周期再正常輸入和輸出信息。

4  變速箱的仿真與性能分析

使用verilog HDL語言對上述變速箱的功能進行描述,搭建驗證平臺,并使用VCS軟件進行仿真,仿真示意圖如圖7所示。

圖7 驗證平臺示意圖

仿真結構圖如圖7所示,pattern_gen模塊產生66 bit的數據,gearbox_1和gearbox_2是例化本變速箱模塊,其中變速箱gearbox_1模塊的輸入數據位寬為32 bit,同步信息位寬為2 bit,輸出數據位寬為32 bit;變速箱gearbox_2模塊的輸入數據位寬為32 bit,輸出數據位寬為66 bit,同步信息位寬為2 bit。在pattern_chk模塊中把pattern_gen模塊產生的66 bit數據延時幾個時鐘周期后和該數據經過變速箱位寬轉變后的66 bit數據相比較。仿真波形見圖8。

如圖8所示,仿真分為兩部分:數據寬度66 bit到64 bit的轉換和64 bit到66 bit的轉換。

clk是固定的時鐘源,其周期8 ns,在每一個clk時鐘周期下,傳輸32 bit的數據。在gearbox_1中,66 bit的信息由 32 bit的 gbx_data_in和 2 bit的gbx_header_in組成,64 bit的輸出信息由32 bit信號線gbx_out輸出,gearbox_1中輸出的32 bit信息作為gearbox_2中的輸入,在gearbox_2中經過位寬轉換后由gbx_data_out和gbx_header_out輸出。

圖8 仿真波形圖

在gearbox_1中,可以看到計數器的值為31時,暫停輸入標志位txgearboxready有效,在計數器的值為32時,暫停輸入,此時的輸入保持為上一時鐘周期的值32’h79f和2’b00,在gearbox_2中,當輸出無效標志位rx_data_valid有效時,暫停gbx_data_out的輸出,保持為上一時鐘周期的值32’h79f,由于輸出的2 bit的gbx_header_out只是在高的32位輸出時有效,通過rx_header_valid標志位來控制。

把gearbox_1的66 bit輸入數據延時7個clk時鐘周期后和gearbox_2的66 bit輸出數據一一比較,在result中equal_32b信號為高電平,表明這兩個數據完全相同,說明變速箱在66 bit位寬轉變為64 bit位寬、再由64 bit位寬轉變為66 bit位寬的過程中正確,沒有丟失或重復采樣。

5  結論

在變速箱電路中,通過標志位控制變速箱兩邊的信息輸入和輸出,可以保持變速箱兩邊的數據波特率不變,并且保證在傳輸過程中沒有數據的丟失或重復采樣,可以用于高速的FPGA系統中。

[1]Zhou Qinglun,Li Chunyan,Wang Yong.Hardware Implementationof64B/66BEncoder/Decoderfor10-Gigabit Ethernet[EB/OL].

[2]IEEE Std 802.3ae-2002[S/OL].New Jersey:IEEE,2002[2002-8-30].http://standards.ieee.org.

[3]H-R Lee,M-S Hwang,B-J Lee,Y-D Kim,D Oh,J Kim,S-H Lee,D-K Jeong,and W Kim.A fully integrated 0.13μm CMOS 10Gb Ethernet transceiver with XAUI interface[J].IEEE ISSCC Dig.Tech.Papers,2004,2:170-171.

[4]Virtex-II Pro Platform FPGA User Guide[EB/OL].San Jose:Xilinx,2005[2005-3-23].http://www.xilinx.com.

[5]黃安君,羅旸,雷淑嵐.適用于10 Gbps以太網物理層收發器的變速箱電路設計 [J].電子與封裝,2015,15(1):31-35.

[6]Yongsam Moon,Member,Sang-Hyun Lee,and Daeyun Shim.ADivide-by-16.5Circuitfor10GbEthernet Transceiver in 0.13 μm CMOS[C].IEEE.1175-1179.

Design of Gearbox Circuits for FPGA System

LUO Yang,HE Guangxu,LEI Shulan

(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)

In the paper,a new design of gearbox that adapts the same clock at the both sides instead of involving an extra clock input is presented.It controls the whole process of bit width conversion by counters and produces flag bit to determine the input and output of the gearbox data.The design solves the problem of data repetition and loss during the transmission under fixed baud rate and consequently realizes the perfect conversion between the different bit-wide data.Under the situations when the data bit width are different among modules or IPs,the design is effective in adjusting and matching the data bit widths among modules. The simulation results show that the gearbox completes the data conversion from 66 bits to 64 bits within 32 clock cycles without loss of data rate.

gearbox;flag bit control;high-speed serial communication;Serdes;FPGA

TN402

A

1681-1070(2016)10-0019-04

2016-3-30

羅旸(1982—),男,福建長汀人,畢業于電子科技大學自動化專業,現在中國電子科技集團公司第58研究所從事科研項目技術與管理工作。

猜你喜歡
計數器變速箱時鐘
采用虛擬計數器的電子式膜式燃氣表
別樣的“時鐘”
古代的時鐘
關于74LS90計數器的Multisim仿真分析
帶你走近一個你不知道的自動變速箱
有趣的時鐘
SR620型與53230A型計數器的性能測試
算盤是個“小氣鬼”
時鐘會開“花”
淺析農機用變速箱殼生產工藝的改進
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合