基于FPGA實現(xiàn)千兆以太網(wǎng)業(yè)務(wù)在SDH上的傳輸
在整個FPGA設(shè)計中,接收端的幀同步模塊是比較重要的,它主要進行GFP幀的幀頭搜索和同步保持處理。同步狀態(tài)轉(zhuǎn)移圖如圖3所示。本文引用地址:http://www.biyoush.com/article/190502.htm
用一個狀態(tài)機表示三種狀態(tài),即搜索態(tài)、預(yù)同步態(tài)和同步態(tài)。在預(yù)同步狀態(tài)和同步狀態(tài)時都只取1幀進行狀態(tài)跳轉(zhuǎn)判斷。狀態(tài)機在FPGA初始化時默認處于搜索狀態(tài),然后在連續(xù)的GFP數(shù)據(jù)流中進行幀頭的搜索判斷,將連續(xù)的數(shù)據(jù)流在每個時鐘周期按字節(jié)存入緩存器中,在每個時鐘周期進行4 B的擾碼判斷,即連續(xù)的4個字節(jié)與擾碼序列“B6AB31E0”進行異或,得到的4 B數(shù)據(jù)中前2個字節(jié)根據(jù)擾碼多項式G(x)=X16+X12 +X5+1生成2個字節(jié)的校驗值,然后與后2個字節(jié)進行比較,如果一致則表示找到了幀頭,進入到預(yù)同步態(tài)。在預(yù)同步態(tài)繼續(xù)在一幀幀頭的相應(yīng)時刻進行幀頭的判斷,如果正確則跳轉(zhuǎn)到同步態(tài),否則重新跳轉(zhuǎn)到搜索態(tài),繼續(xù)尋找?guī)^。如果進入到同步態(tài),和預(yù)同步態(tài)一樣,也在一幀幀頭的相應(yīng)時刻進行判斷,如果正確則繼續(xù)保持在同步態(tài),否則跳轉(zhuǎn)到搜索態(tài),重新在數(shù)據(jù)流中進行幀頭的搜索。只有在處于同步狀態(tài)時才能繼續(xù)對數(shù)據(jù)進行后續(xù)處理。
在SDH和GFP協(xié)議的成幀解幀里都要進行擾碼和解擾處理。SDH的擾碼多項式為G(x)=X7+X6+1,GFP對核心頭部PLI的擾碼多項式為G(x)=X16 +X12+X5+1,GFP凈負荷域的擾碼多項式為G(x)=x43+1。這些擾碼器都為串行擾碼器,對于GE這種速率的數(shù)據(jù)如果也采用串行處理方式的話,FPGA內(nèi)部是無法實現(xiàn)的。經(jīng)過轉(zhuǎn)換處理,可以將串行擾碼器變?yōu)椴⑿袛_碼器再進行擾碼,即可降低處理速度,滿足時序要求。
2 仿真綜合及實現(xiàn)
本設(shè)計采用VHDL硬件描述語言,使用的是XILINX公司帶有高速SERDES接口的SPARTAN-6芯片,利用ISE 12.1和仿真軟件進行了綜合和仿真。由于FPGA的內(nèi)部資源較為豐富,本身自帶的IP核具有可靠性、方便性和靈活性的特點。時鐘部分使用了XIUNX芯片內(nèi)部的DCM時鐘管理模塊,雙端口RAM以及FIFO緩存器都使用了FPGA的內(nèi)部IP核資源。高速數(shù)據(jù)接口部分使用的是芯片內(nèi)部的GTP模塊,去掉了外部高速接口轉(zhuǎn)換芯片,簡化了電路板的設(shè)計,不但提高了設(shè)計效率,也提高了系統(tǒng)設(shè)計的穩(wěn)定性。
圖4和圖5表示的是對EOS數(shù)據(jù)進行VC-4-7V虛級聯(lián)后的部分時序仿真圖。
圖4中,data_frm_state信號表示的是幀同步狀態(tài)機。在數(shù)據(jù)流中,狀態(tài)機一開始處于hunt狀態(tài),一旦找到幀頭,則進入到presync狀態(tài);如果幀頭檢測沒有錯誤,則繼續(xù)跳轉(zhuǎn)到sync狀態(tài);如果幀頭判斷正確,那么狀態(tài)機就一直保持在sync狀態(tài)。
圖5中,s_datain信號表示的是解碼前的數(shù)據(jù),s_dataout信號表示的是根據(jù)擾碼多項式G(x)=X43+1解擾后的數(shù)據(jù)。
3 結(jié)語
綜上所述,利用FPGA可以實現(xiàn)千兆以太網(wǎng)MAC幀在SDH數(shù)據(jù)幀中的封裝和映射,配合外圍接口電路的使用,可以實現(xiàn)GE在STM-16中的傳輸。EOS技術(shù)既增強了以太網(wǎng)傳輸的覆蓋范圍,也豐富了SDH設(shè)備的傳輸接口,極大地方便了用戶的使用。同時,利用FPGA進行設(shè)計,大大縮短了開發(fā)的周期,也便于以后的升級和維護。
評論