專利名稱:Sdh幀頭檢測及數(shù)據(jù)重排電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到SDH系統(tǒng)中對輸入碼流信號進行幀頭檢測及數(shù)據(jù)重排電路,主要適應(yīng)于SDH系統(tǒng)中集成電路芯片內(nèi)部幀頭檢測及數(shù)據(jù)重排結(jié)構(gòu)設(shè)計范圍。屬于SDH寬帶通信技術(shù)領(lǐng)域。
背景技術(shù):
SDH作為一種全新的網(wǎng)絡(luò)傳輸體制,自從20世紀80年代出現(xiàn)以來,SDH網(wǎng)絡(luò)以其靈活性和方便性等各個方面的優(yōu)越性,迅速成為通信網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)。隨著超大規(guī)模集成電路和SDH技術(shù)的不斷發(fā)展,SDH系統(tǒng)正朝著大容量、高速率、高集成度方向發(fā)展,SDH系統(tǒng)的集成化發(fā)展為集成電路芯片設(shè)計提出了更高要求。
SDH系統(tǒng)通常接收串行碼流的輸入信號,但系統(tǒng)內(nèi)部對SDH數(shù)據(jù)的處理是以字節(jié)為基本單位進行的,所以通常需要對輸入碼流按一定格式進行串并轉(zhuǎn)換,然后在進行各項業(yè)務(wù)處理操作。所謂對輸入碼流按一定格式進行的串并轉(zhuǎn)換,也就是通過對輸入碼流中的數(shù)據(jù)幀頭格式進行檢測來完成數(shù)據(jù)的串并轉(zhuǎn)換。
對于輸入接口為2.5G/s的串行信號,其串并轉(zhuǎn)換后字節(jié)方式的速率是311.04Mbyte/s,該速率屬于高速率信號。在集成電路設(shè)計中為了降低工作速率,可以采用16位并行字方式速率,即155.520Mword/s速率。
當輸入為2.5G/s的串行信號時,通常采用3字節(jié)方式(24個數(shù)據(jù)位)來檢測數(shù)據(jù)的幀頭位置。即采用連續(xù)的24個數(shù)據(jù)位與幀頭格式進行比較,兩者相同時即可認為該24個數(shù)據(jù)位是幀頭標識字,同時以此數(shù)據(jù)位為轉(zhuǎn)換點進行數(shù)據(jù)的串并轉(zhuǎn)換。由于采用此方式需要緩存三組輸入數(shù)據(jù),同時對緩存數(shù)據(jù)進行16種方式的數(shù)據(jù)排列,在每一種數(shù)據(jù)排列中進行連續(xù)的24個數(shù)據(jù)特征位的查找比較操作,所以實現(xiàn)這樣功能需用大量的硬件電路。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種SDH幀頭檢測及數(shù)據(jù)重排電路,通過使用少量的硬件電路完成SDH幀頭檢測及數(shù)據(jù)重排電路設(shè)計,從而可以簡化系統(tǒng)電路結(jié)構(gòu)、降低系統(tǒng)電路功耗、提高系統(tǒng)工作可靠性。
本發(fā)明的基本功能是對用16位并行方式表示的串行輸入STM-16的SDH碼流,能夠完成碼流的幀頭檢測及數(shù)據(jù)重排,指示出幀頭的當前位置,輸出經(jīng)過重排后的16位并行STM-16的SDH碼流。
本發(fā)明技術(shù)解決方案SDH幀頭檢測及數(shù)據(jù)重排電路,包括24位數(shù)據(jù)緩沖器、數(shù)據(jù)重排、多路選擇器、檢測幀頭1、檢測幀頭2和數(shù)據(jù)輸出控制,輸入端口的16位STM-16的SDH并行碼流data_in連接到24位數(shù)據(jù)緩沖器的輸入端,24位數(shù)據(jù)緩沖器的輸出數(shù)據(jù)word_shift[23:0]、word_shift[15:0]分別連接到數(shù)據(jù)重排和檢測幀頭1的輸入端;輸入端口檢測信號search連接到多路選擇器、檢測幀頭1和檢測幀頭2的輸入端;檢測幀頭1的輸出find_a1[7:0]連接到多路選擇器和檢測幀頭2的輸入端;檢測幀頭2的輸出find_a1_dly2[7:0]連接到多路選擇器的輸入端;多路選擇器的輸出cross_bar[7:0]連接到數(shù)據(jù)重排的輸入端;數(shù)據(jù)重排的輸出data_buf[15:0]連接到數(shù)據(jù)輸出控制和檢測幀頭2的輸入端;檢測幀頭2(align_hd2)的輸出msb_sel連接到數(shù)據(jù)輸出控制的輸入端;檢測幀頭2的輸出b_a1a2和數(shù)據(jù)輸出控制的輸出data_out分別連接到輸出端口上;輸入端口信號reset、enable、clock是電路的共用輸入信號。
該發(fā)明的特點是采用事務(wù)處理流水線思想設(shè)計實現(xiàn)了SDH碼流幀頭檢測及數(shù)據(jù)重排電路。使用該發(fā)明電路可以明顯簡化電路設(shè)計的復(fù)雜度、降低電路功耗、提高系統(tǒng)工作可靠性。試驗結(jié)果表明采用本發(fā)明的幀頭檢測及數(shù)據(jù)重排電路比一般設(shè)計電路規(guī)模減少50%。
附圖是SDH幀頭檢測及數(shù)據(jù)重排電路結(jié)構(gòu)框圖。
具體實施例方式 傳統(tǒng)的硬件電路設(shè)計通常采用電路圖方式來詳細描述電路的設(shè)計結(jié)構(gòu)。用電路圖方式描述硬件電路的結(jié)構(gòu)是硬件設(shè)計的第二代設(shè)計工具,隨著科學技術(shù)的迅猛發(fā)展,硬件描述語言(HDL)已經(jīng)成為第三代硬件設(shè)計工具。所以該電路采用verilog硬件描述語言加以實施。
1.電路端口說明 表1電路端口信號說明 端口信號名稱端口方向信號描述 reset IN 電路復(fù)位信號,低電平有效。
clock IN 電路工作時鐘信號。
enable IN 電路工作使能信號,低電平有效。
search IN 尋找?guī)^指示信號,高電平有效。
data_in[15:0] IN 16位并行輸入數(shù)據(jù)。
data_out[15:0] OUT 16位并行輸出數(shù)據(jù)。
b_a1a2 OUT 當前幀頭位置指示信號,高電平 有效。
2.電路的verilog硬件描述語言 ∥-------------------------verilog HDL-------------------∥ module word_align (clock,reset,enable,search,data_in,data_out,b_a1a2); inputclock,reset,enable,search; input[15:0]data_in;<!-- SIPO <DP n="3"> --><dp n="d3"/> output [15:0]data_out; output b_a1a2; parameter A1_byte=8′hf6,A2_byte=8′h28, A1A2_byte=16′hf628,A2A2_byte=16′hf628; ∥-------------------24位數(shù)據(jù)緩沖器(buff_reg)-----------------∥ reg [23:0]word_shift; always@(posedge clock or negedge reset) begin if(-reset) word_shift[15:0]<=16′h0; else if(enable)word_shift[15:0]<=data_in; end always@(posedge clock or negedge reset) begin if(-reset) word_shift[23:16]<=8′h0; else word_shift[23:16]<=word_shift[7:0]; end ∥----------------檢測幀頭1(align_hd1)------------------∥ reg [7:0]find_a1; always@(posedge clock or negedge reset) begin if(-reset) find_a1<=8′h00; else if(search) begin find_a1[7]<=(word_shift[15:8]==A1_byte); find_a1[6]<=(word_shift[14:7]==A1_byte); find_a1[5]<=(word_shift[13:6]==A1_byte); find_a1[4]<=(word_shift[12:5]==A1_byte); find_a1[3]<=(word_shift[11:4]==A1_byte); find_a1[2]<=(word_shift[10:3]==A1_byte); find_a1[1]<=(word_shift[9:2]==A1_byte); find_a1
<=(word_shift[8:1]==A1_byte);<!-- SIPO <DP n="4"> --><dp n="d4"/> end else find_a1<=8′h00; end ∥----------------數(shù)據(jù)重排(d_arrange)-------------------∥ reg [15:0] data_buf; wire[7:0] cross_bar; always@(posedge clock or negedge reset) begin if(-reset) data_buf<=16′h00; else if(cross_bar[7]) data_buf<=word_shift[23:8]; else if(cross_bar[6]) data_buf<=word_shift[22:7]; else if(cross_bar[5]) data_buf<=word_shift[21:6]; else if(cross_bar[4]) data_buf<=word_shift[20:5]; else if(cross_bar[3]) data_buf<=word_shift[19:4]; else if(cross_bar[2]) data_buf<=word_shift[18:3]; else if(cross_bar[1]) data_buf<=word_shift[17:2]; else if(cross_bar
) data_buf<=word_shift[16:1]; end ∥----------------檢測幀頭2(align_hd2)--------------------∥ reg[7:0] find_a1_dly1, find_a1_dly2; fega1a2_style_dly1; regmsb_sel; wire align_a1; wire a1a2_style,a2a2_style; wirebyte_rdy; always@(posedge clock or negedge reset) begin if(-reset)find_a1_dly1<=8′h00; else find_a1_dly1<=find_a1; end always@(posedge clock or negedge reset) begin if(-reset) find_a1_dly2<=8′h00; else if(byte_rdy)find_a1_dly2<=find_a1_dly1; end<!-- SIPO <DP n="5"> --><dp n="d5"/> assign align_a1 =(|find_a1_dly1); assign a1a2_style=search&align_a1&(data_buf==16′hf628); assign a2a2_style=search&align_a1&(data_buf==16′h2828); assign byte_rdy =(a1a2_style|a2a2_style); assign b_a1a2=a2a2_style|a1a2_style_dly1; always@(posedge clock or negedge reset) begin if(-reset)a1a2_style_dly1<=1′b0; else a1a2_style_dly1<=a1a2_style; end always@(posedge clock or negedge reset) begin if(-reset) msb_sel<=1′b1; else if(b_a1a2) msb_sel<=-a1a2_style_dly1; end ∥----------------多路選擇器(mul_sel)----------------------∥ assign cross_bar[7:0]=(search)?find_a1[7:0] find_a1_dly2[7:0]; ∥----------------數(shù)據(jù)輸出控制(ctrl_out)-------------------∥ reg [7:0]data_buf_mid; always@(posedge clock or negedge reset) begin if(-reset) data_buf_mid<=8′h00; else data_buf_mid<=data_buf[7:0]; end assign data_out=(msb_sel)?data_buf {data_buf_mid,data_buf[15:8]}; endmodule ∥-------------------------verilog HDL----------------------∥ 3.電路工作原理說明 24位數(shù)據(jù)緩沖寄存器(buff_reg)對輸入的并行數(shù)據(jù)data_in進行數(shù)據(jù)緩存,并將緩存后的數(shù)據(jù)word_shift[23:0]輸出給檢測幀頭1(align_hd1)和數(shù)據(jù)重排(d_arrange)分別用于幀頭前8位數(shù)據(jù)檢測和數(shù)據(jù)的重排操作。
由輸入端口檢測信號search控制對幀頭的檢測操作。當檢測信號有效時,由檢測幀頭1(align_hd1)對輸入數(shù)據(jù)word_shift[15:0]進行8位特征數(shù)據(jù)的連續(xù)搜尋操作,并將搜尋結(jié)果值find_a1[7:0]輸出給多路選擇器(mul_sel)和檢測幀頭2(align_hd2)。
當檢測信號search有效時,多路選擇器(mul_sel)輸出來源于檢測幀頭1(align_hd1)的find_a1[7:0]信號;當檢測信號search無效時,多路選擇器(mul_sel)輸出來源于檢測幀頭2(align_hd2)的find_a1_dly2信號。
由輸入信號cross_bar[7:0]控制對輸入數(shù)據(jù)word_shift[23:0]的重排,重排后的數(shù)據(jù)data_buf[15:0]輸出到數(shù)據(jù)輸出控制(ctrl_out)和檢測幀頭2(align_hd2)。
當檢測信號search有效時,若檢測幀頭1(align_hd1)在數(shù)據(jù)中搜尋出滿足8位特征數(shù)據(jù)時,則其輸出的find_a1[7:0]將控制數(shù)據(jù)重排(d_arrange)以該8位特征數(shù)據(jù)位為切割點進行數(shù)據(jù)的重排操作,并輸出重排后的數(shù)據(jù)data_buf[15:0]。
檢測幀頭2(align_hd2)對緊接此8位特征數(shù)據(jù)后的16位數(shù)據(jù)進行幀頭的比較確認操作(幀頭共有24位特征數(shù)據(jù),可以分為前8位和后16位特征數(shù)據(jù)),比較結(jié)果相同時,則檢測幀頭2(align_hd2)確認已經(jīng)找到24位的幀頭特征數(shù)據(jù),同時輸出控制信號find_a1_dly2[7:0]到多路選擇器(mul_sel),輸出控制信號msb_sel到數(shù)據(jù)輸出控制(ctrl_out)和輸出幀頭位置指示端口信號b_a1a2。
數(shù)據(jù)輸出控制(ctrl_out)在msb_sel信號控制下,實現(xiàn)對輸入數(shù)據(jù)data_buf[15:0]的分時輸出操作。
4.電路應(yīng)用效果 本發(fā)明實際應(yīng)用在“寬帶電路交換核心芯片(DXC160)”項目的電路設(shè)計中。此項目通過采用本發(fā)明電路代替原來的幀頭檢測及數(shù)據(jù)重排電路,使得現(xiàn)在設(shè)計電路比原來的設(shè)計電路減少了50%的電路規(guī)模,明顯簡化了系統(tǒng)電路的結(jié)構(gòu)、降低了系統(tǒng)電路功耗、提高了系統(tǒng)工作的可靠性,取得了很好效果。在40G的SDH交叉設(shè)備上進行的實際應(yīng)用測試,結(jié)果表明該設(shè)計電路的功能完全正確,各項功能及性能指標均符合要求。
本發(fā)明可用于解決多路高速SDH輸入碼流幀頭檢測及數(shù)據(jù)重排的設(shè)計電路。
權(quán)利要求
1、SDH幀頭檢測及數(shù)據(jù)重排電路,其特征在于包括24位數(shù)據(jù)緩沖器(buff_reg)、數(shù)據(jù)重排(d_arrange)、多路選擇器(mul_sel)、檢測幀頭1(align_hd1)、檢測幀頭2(align_hd2)和數(shù)據(jù)輸出控制(ctrl_out),輸入端口的16位STM-16的SDH并行碼流data_in連接到24位數(shù)據(jù)緩沖器(buff_reg)的輸入端,24位數(shù)據(jù)緩沖器(buff_reg)的輸出數(shù)據(jù)word_shift[23:0]、word_shift[15:0]分別連接到數(shù)據(jù)重排(d_arrange)和檢測幀頭1(align_hd1)的輸入端;輸入端口檢測信號search連接到多路選擇器(mul_sel)、檢測幀頭1(align_hd1)和檢測幀頭2(align_hd2)的輸入端;檢測幀頭1(align_hd1)的輸出find_a1[7:0]連接到多路選擇器(mul_sel)和檢測幀頭2(align_hd2)的輸入端;檢測幀頭2(align_hd2)的輸出find_a1_dly2[7:0]連接到多路選擇器(mul_sel)的輸入端;多路選擇器(mul_sel)的輸出cross_bar[7:0]連接到數(shù)據(jù)重排(d_arrange)的輸入端;數(shù)據(jù)重排(d_arrange)的輸出data_buf[15:0]連接到數(shù)據(jù)輸出控制(ctrl_out)和檢測幀頭2(align_hd2)的輸入端;檢測幀頭2(align_hd2)的輸出msb_sel連接到數(shù)據(jù)輸出控制(ctrl_out)的輸入端;檢測幀頭2(align_hd2)的輸出b_a1a2和數(shù)據(jù)輸出控制(ctrl_out)的輸出data_out分別連接到輸出端口上;輸入端口信號reset、enable、clock是電路的共用輸入信號。
全文摘要
SDH幀頭檢測及數(shù)據(jù)重排電路主要適應(yīng)于SDH系統(tǒng)中集成電路芯片內(nèi)部幀頭檢測及數(shù)據(jù)重排結(jié)構(gòu)設(shè)計范圍,屬于SDH寬帶通信技術(shù)領(lǐng)域。本發(fā)明的目的是使用少量的硬件電路完成SDH幀頭檢測及數(shù)據(jù)重排電路設(shè)計。本發(fā)明對用16位并行方式表示的串行輸入STM-16的SDH碼流,采用事務(wù)處理流水線思想實現(xiàn)碼流的幀頭檢測及數(shù)據(jù)重排,指示出幀頭的當前位置,輸出經(jīng)過重排的16位并行STM-16的SDH碼流。通過使用該設(shè)計電路,可以簡化系統(tǒng)電路結(jié)構(gòu)、降低系統(tǒng)電路功耗、提高系統(tǒng)工作可靠性。該發(fā)明可用于解決多路高速SDH輸入碼流幀頭檢測及數(shù)據(jù)重排的設(shè)計電路。
文檔編號H04L12/56GK1655535SQ20051004172
公開日2005年8月17日 申請日期2005年2月25日 優(yōu)先權(quán)日2005年2月25日
發(fā)明者孟李林, 蔣林, 張德慧, 李宥謀, 曾澤滄, 劉釗遠, 趙全良, 申輝, 韓俊剛 申請人:西安郵電學院