CN1655535A - Sdh帧头检测及数据重排电路 - Google Patents
Sdh帧头检测及数据重排电路 Download PDFInfo
- Publication number
- CN1655535A CN1655535A CNA2005100417241A CN200510041724A CN1655535A CN 1655535 A CN1655535 A CN 1655535A CN A2005100417241 A CNA2005100417241 A CN A2005100417241A CN 200510041724 A CN200510041724 A CN 200510041724A CN 1655535 A CN1655535 A CN 1655535A
- Authority
- CN
- China
- Prior art keywords
- data
- frame head
- input
- align
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
SDH帧头检测及数据重排电路主要适应于SDH系统中集成电路芯片内部帧头检测及数据重排结构设计范围,属于SDH宽带通信技术领域。本发明的目的是使用少量的硬件电路完成SDH帧头检测及数据重排电路设计。本发明对用16位并行方式表示的串行输入STM-16的SDH码流,采用事务处理流水线思想实现码流的帧头检测及数据重排,指示出帧头的当前位置,输出经过重排的16位并行STM-16的SDH码流。通过使用该设计电路,可以简化系统电路结构、降低系统电路功耗、提高系统工作可靠性。该发明可用于解决多路高速SDH输入码流帧头检测及数据重排的设计电路。
Description
技术领域
本发明涉及到SDH系统中对输入码流信号进行帧头检测及数据重排电路,主要适应于SDH系统中集成电路芯片内部帧头检测及数据重排结构设计范围。属于SDH宽带通信技术领域。
背景技术
SDH作为一种全新的网络传输体制,自从20世纪80年代出现以来,SDH网络以其灵活性和方便性等各个方面的优越性,迅速成为通信网络的骨干网络。随着超大规模集成电路和SDH技术的不断发展,SDH系统正朝着大容量、高速率、高集成度方向发展,SDH系统的集成化发展为集成电路芯片设计提出了更高要求。
SDH系统通常接收串行码流的输入信号,但系统内部对SDH数据的处理是以字节为基本单位进行的,所以通常需要对输入码流按一定格式进行串并转换,然后在进行各项业务处理操作。所谓对输入码流按一定格式进行的串并转换,也就是通过对输入码流中的数据帧头格式进行检测来完成数据的串并转换。
对于输入接口为2.5G/s的串行信号,其串并转换后字节方式的速率是311.04Mbyte/s,该速率属于高速率信号。在集成电路设计中为了降低工作速率,可以采用16位并行字方式速率,即155.520Mword/s速率。
当输入为2.5G/s的串行信号时,通常采用3字节方式(24个数据位)来检测数据的帧头位置。即采用连续的24个数据位与帧头格式进行比较,两者相同时即可认为该24个数据位是帧头标识字,同时以此数据位为转换点进行数据的串并转换。由于采用此方式需要缓存三组输入数据,同时对缓存数据进行16种方式的数据排列,在每一种数据排列中进行连续的24个数据特征位的查找比较操作,所以实现这样功能需用大量的硬件电路。
发明内容
本发明的目的是提供一种SDH帧头检测及数据重排电路,通过使用少量的硬件电路完成SDH帧头检测及数据重排电路设计,从而可以简化系统电路结构、降低系统电路功耗、提高系统工作可靠性。
本发明的基本功能是对用16位并行方式表示的串行输入STM-16的SDH码流,能够完成码流的帧头检测及数据重排,指示出帧头的当前位置,输出经过重排后的16位并行STM-16的SDH码流。
本发明技术解决方案:SDH帧头检测及数据重排电路,包括24位数据缓冲器、数据重排、多路选择器、检测帧头1、检测帧头2和数据输出控制,输入端口的16位STM-16的SDH并行码流data_in连接到24位数据缓冲器的输入端,24位数据缓冲器的输出数据word_shift[23:0]、word_shift[15:0]分别连接到数据重排和检测帧头1的输入端;输入端口检测信号search连接到多路选择器、检测帧头1和检测帧头2的输入端;检测帧头1的输出find_a1[7:0]连接到多路选择器和检测帧头2的输入端;检测帧头2的输出find_a1_dly2[7:0]连接到多路选择器的输入端;多路选择器的输出cross_bar[7:0]连接到数据重排的输入端;数据重排的输出data_buf[15:0]连接到数据输出控制和检测帧头2的输入端;检测帧头2(align_hd2)的输出msb_sel连接到数据输出控制的输入端;检测帧头2的输出b_a1a2和数据输出控制的输出data_out分别连接到输出端口上;输入端口信号reset、enable、clock是电路的共用输入信号。
该发明的特点是采用事务处理流水线思想设计实现了SDH码流帧头检测及数据重排电路。使用该发明电路可以明显简化电路设计的复杂度、降低电路功耗、提高系统工作可靠性。试验结果表明:采用本发明的帧头检测及数据重排电路比一般设计电路规模减少50%。
附图说明
附图是SDH帧头检测及数据重排电路结构框图。
具体实施方式
传统的硬件电路设计通常采用电路图方式来详细描述电路的设计结构。用电路图方式描述硬件电路的结构是硬件设计的第二代设计工具,随着科学技术的迅猛发展,硬件描述语言(HDL)已经成为第三代硬件设计工具。所以该电路采用verilog硬件描述语言加以实施。
1.电路端口说明
表1:电路端口信号说明
端口信号名称 | 端口方向 | 信号描述 |
reset | IN | 电路复位信号,低电平有效。 |
clock | IN | 电路工作时钟信号。 |
enable | IN | 电路工作使能信号,低电平有效。 |
search | IN | 寻找帧头指示信号,高电平有效。 |
data_in[15:0] | IN | 16位并行输入数据。 |
data_out[15:0] | OUT | 16位并行输出数据。 |
b_a1a2 | OUT | 当前帧头位置指示信号,高电平有效。 |
2.电路的verilog硬件描述语言
∥-------------------------verilog HDL-------------------∥ module word_align (clock,reset,enable,search,data_in, data_out,b_a1a2); input clock,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位数据缓冲器(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[0]<=(word_shift[8:1]==A1_byte); <!-- SIPO <DP n="4"> --> <dp n="d4"/> end else find_a1<=8′h00; end ∥----------------数据重排(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[0]) data_buf<=word_shift[16:1]; end ∥----------------检测帧头2(align_hd2)--------------------∥ reg [7:0] find_a1_dly1, find_a1_dly2; feg a1a2_style_dly1; reg msb_sel; wire align_a1; wire a1a2_style,a2a2_style; wire byte_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]; ∥----------------数据输出控制(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位数据缓冲寄存器(buff_reg)对输入的并行数据data_in进行数据缓存,并将缓存后的数据word_shift[23:0]输出给检测帧头1(align_hd1)和数据重排(d_arrange)分别用于帧头前8位数据检测和数据的重排操作。
由输入端口检测信号search控制对帧头的检测操作。当检测信号有效时,由检测帧头1(align_hd1)对输入数据word_shift[15:0]进行8位特征数据的连续搜寻操作,并将搜寻结果值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]控制对输入数据word_shift[23:0]的重排,重排后的数据data_buf[15:0]输出到数据输出控制(ctrl_out)和检测帧头2(align_hd2)。
当检测信号search有效时,若检测帧头1(align_hd1)在数据中搜寻出满足8位特征数据时,则其输出的find_a1[7:0]将控制数据重排(d_arrange)以该8位特征数据位为切割点进行数据的重排操作,并输出重排后的数据data_buf[15:0]。
检测帧头2(align_hd2)对紧接此8位特征数据后的16位数据进行帧头的比较确认操作(帧头共有24位特征数据,可以分为前8位和后16位特征数据),比较结果相同时,则检测帧头2(align_hd2)确认已经找到24位的帧头特征数据,同时输出控制信号find_a1_dly2[7:0]到多路选择器(mul_sel),输出控制信号msb_sel到数据输出控制(ctrl_out)和输出帧头位置指示端口信号b_a1a2。
数据输出控制(ctrl_out)在msb_sel信号控制下,实现对输入数据data_buf[15:0]的分时输出操作。
4.电路应用效果
本发明实际应用在“宽带电路交换核心芯片(DXC160)”项目的电路设计中。此项目通过采用本发明电路代替原来的帧头检测及数据重排电路,使得现在设计电路比原来的设计电路减少了50%的电路规模,明显简化了系统电路的结构、降低了系统电路功耗、提高了系统工作的可靠性,取得了很好效果。在40G的SDH交叉设备上进行的实际应用测试,结果表明该设计电路的功能完全正确,各项功能及性能指标均符合要求。
本发明可用于解决多路高速SDH输入码流帧头检测及数据重排的设计电路。
Claims (1)
1、SDH帧头检测及数据重排电路,其特征在于:包括24位数据缓冲器(buff_reg)、数据重排(d_arrange)、多路选择器(mul_sel)、检测帧头1(align_hd1)、检测帧头2(align_hd2)和数据输出控制(ctrl_out),输入端口的16位STM-16的SDH并行码流data_in连接到24位数据缓冲器(buff_reg)的输入端,24位数据缓冲器(buff_reg)的输出数据word_shift[23:0]、word_shift[15:0]分别连接到数据重排(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]连接到数据重排(d_arrange)的输入端;数据重排(d_arrange)的输出data_buf[15:0]连接到数据输出控制(ctrl_out)和检测帧头2(align_hd2)的输入端;检测帧头2(align_hd2)的输出msb_sel连接到数据输出控制(ctrl_out)的输入端;检测帧头2(align_hd2)的输出b_a1a2和数据输出控制(ctrl_out)的输出data_out分别连接到输出端口上;输入端口信号reset、enable、clock是电路的共用输入信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100417241A CN100336370C (zh) | 2005-02-25 | 2005-02-25 | Sdh帧头检测及数据重排电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100417241A CN100336370C (zh) | 2005-02-25 | 2005-02-25 | Sdh帧头检测及数据重排电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1655535A true CN1655535A (zh) | 2005-08-17 |
CN100336370C CN100336370C (zh) | 2007-09-05 |
Family
ID=34894448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100417241A Expired - Fee Related CN100336370C (zh) | 2005-02-25 | 2005-02-25 | Sdh帧头检测及数据重排电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100336370C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238436A (zh) * | 2010-04-23 | 2011-11-09 | 中兴通讯股份有限公司 | 一种光传输中数据处理的方法和装置 |
CN101162958B (zh) * | 2006-10-11 | 2012-04-18 | 中兴通讯股份有限公司 | 一种sdh传输系统中定位帧头信号的采样方法 |
CN101605012B (zh) * | 2009-07-02 | 2013-10-16 | 中兴通讯股份有限公司 | 一种实现同步数字体系帧头定位的方法及装置 |
CN108512533A (zh) * | 2017-02-28 | 2018-09-07 | 爱思开海力士有限公司 | 半导体器件 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923653A (en) * | 1995-04-21 | 1999-07-13 | Tektronix, Inc. | SONET/SDH receiver processor |
CN1140072C (zh) * | 1999-12-10 | 2004-02-25 | 深圳市中兴通讯股份有限公司 | 一种基于64Kbps数据交换的SDH开销处理装置 |
-
2005
- 2005-02-25 CN CNB2005100417241A patent/CN100336370C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162958B (zh) * | 2006-10-11 | 2012-04-18 | 中兴通讯股份有限公司 | 一种sdh传输系统中定位帧头信号的采样方法 |
CN101605012B (zh) * | 2009-07-02 | 2013-10-16 | 中兴通讯股份有限公司 | 一种实现同步数字体系帧头定位的方法及装置 |
CN102238436A (zh) * | 2010-04-23 | 2011-11-09 | 中兴通讯股份有限公司 | 一种光传输中数据处理的方法和装置 |
CN108512533A (zh) * | 2017-02-28 | 2018-09-07 | 爱思开海力士有限公司 | 半导体器件 |
Also Published As
Publication number | Publication date |
---|---|
CN100336370C (zh) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1457993B1 (en) | Multiport memory architecture, devices and systems including the same, and methods of using the same | |
US20180157616A1 (en) | Clock gating circuit | |
EP2360548A2 (en) | Method and device for clock gate controlling | |
CN1655535A (zh) | Sdh帧头检测及数据重排电路 | |
CN1688980A (zh) | 具有内部行高速缓存的内存集线器及访问方法 | |
CN102156753A (zh) | 面向固态硬盘文件系统的数据页缓存方法 | |
KR101748329B1 (ko) | 칩 간 메모리 인터페이스 구조 | |
CN105786741B (zh) | 一种soc高速低功耗总线及转换方法 | |
CN1848689A (zh) | 一种降低模拟数字转换系统工作噪声的电路 | |
CN111832240B (zh) | Fifo数据传输方法及fifo存储装置 | |
CN114610483A (zh) | 一种基于npu+fpga架构的vpx型异构加速模块 | |
US7254647B2 (en) | Network for decreasing transmit link layer core speed | |
CN1420457A (zh) | 高阶合成方法以及高阶合成装置 | |
CN1848065A (zh) | 一种异构双系统总线的对象存储控制器 | |
CN103997355B (zh) | 一种插值滤波方法及插值滤波器 | |
CN113806277B (zh) | 基于srio协议的fpga与dsp的数据传输系统 | |
CN207586908U (zh) | 一种高速扩容存储模块 | |
CN106341153A (zh) | 一种高速收发器 | |
JP7149987B2 (ja) | データ伝送装置、データ処理システム、データ処理方法及び媒体 | |
CN205228473U (zh) | 一种基于现场可编程门阵列的微型导航计算机 | |
CN106959933B (zh) | 一种总线扩展系统及总线控制的方法 | |
CN1655487B (zh) | 高速异步时分交换电路 | |
CN112637197A (zh) | 一种基于hdlc控制器的多通路复用 | |
CN101562820A (zh) | 一种移动通信系统接收信号码功率的测量装置 | |
CN115766576B (zh) | 一种面向基于维度拆分式路由器的片上网络的角路由器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070905 Termination date: 20100225 |