OTN中ODU1到ODU2复用电路的设计与实现(本期优秀论文)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OTN中ODU1到ODU2复用电路的设计与实现(本期优秀论
文)
杨望明;蒋林;焦晓
【摘要】在光传送网(OTN)中,复用处理电路作为OTN分组交换芯片的一个重要部分,主要完成低阶光通路数据单元(ODU)到高阶ODU的复用过程.在复用过程中,设计了一种基于同时钟源挖均匀时钟缺口的方法产生所需各种频率的时钟,并在此时钟下完成ODU1到ODU2的复用处理电路.通过功能仿真和FPGA验证,该设计能够准确无误地完成ODU1到ODU2的复用.
【期刊名称】《光通信技术》
【年(卷),期】2014(038)010
【总页数】4页(P1-4)
【关键词】光传送网;同时钟源;均匀缺口时钟;复用
【作者】杨望明;蒋林;焦晓
【作者单位】西安邮电大学计算机学院,西安710061;西安邮电大学电子工程学院,西安710061;西安邮电大学计算机学院,西安710061
【正文语种】中文
【中图分类】TN915
0 引言
在OTN中,复用处理电路作为OTN分组交换芯片的一个重要部分,主要完成低
阶ODU到高阶ODU的复用过程。

在ODU1到ODU2复用过程中,存在光通路
数据单元ODUk(k=1,2)等各种可以承载用户信息的数据单元,并且不同的数据单元有着不同的传输速率和时钟。

在硬件设计中,虽然所需的各种时钟可以通过配置锁相环(PLL)来产生,但由于整个设计中所需时钟较多,这样会占用大量的锁相环,对于资源有限的FPGA是一种浪费,并且无法通过分频和倍频的方式产生
一个无规律不循环的小数时钟值。

为了克服上述问题,在ODU1到ODU2复用过程中,本文提出对同一时钟源挖均匀缺口的方式产生所需的各种频率的时钟[1,2],并在此时钟下完成ODU1到ODU2的复用处理。

1 复用电路模块划分
根据复用电路要实现的功能,可以将其划分为两个功能模块:一是时钟产生模块;二是ODU1到ODU2复用映射模块。

图1所示为复用电路的结构框图。

各模块的功能描述如下:
①时钟产生模块。

本模块使用对OTU2工作时钟挖均匀缺口的方式来分别产生ODU1和ODU2两个不同的工作时钟。

②复用映射模块。

本模块将4路ODU1信号复用到1路ODU2信号中,其包括ODU2的开销插入和字节的调整来吸收客户信号的频偏[3]。

图1 复用电路的结构框图
2 复用电路模块设计
2.1 时钟产生器模块设计
2.1.1帧结构
根据G.709协议对OTN帧的定义,光通路传输单元(OTU2)为4行4080列,包括OTU2开销和净荷部分。

净荷部分为ODU2帧信号,开销为OTU2开销和前向纠错码(Forward Error Correction,FEC)。

ODU2帧结构由ODU2开销和
ODU2净荷部分组成,净荷部分为ODU1 帧信号[4]。

根据G.709对映射过程的描述,在ODU1复用映射到ODU2的过程中,总共需要两个时钟,分别是ODU1、ODU2 的工作时钟[4]。

根据 ODUk(k=1,2)和OTU2帧结构的关系,可以通过对OTU2时钟挖均匀缺口的方式来产生 ODUk (k=1,2)的时钟[1,2]。

2.1.2均匀缺口时钟产生原理
图2 ODU2时钟产生原理
图3 ODU1时钟产生原理
①ODU2时钟产生原理。

由于OTU2的帧格式为4行4080列,即4×4080,而ODU2的帧格式为 4行3824列,即4×3824。

由上述帧结构的关系可得,OTU2的产生是在ODU2帧格式后再加4行256列的FEC。

因此,在OTU2的时钟下传输的ODU2数据量和OTU2的数据量之间的关系为:
ODU2/OTU2=3824/4080=239/255。

由此可得,ODU2的时钟频率和OTU2的时钟频率比为239/255。

在进行电路设计时,应该尽量保持时钟缺口的均匀从而可以使数据信息的分布也更加均匀。

图2所示为具有均匀缺口的ODU2时钟产生原理图。

由原理图可知,ODU2的时钟有效周期个数为15×15+14=15×(16-1)+(15-1)=239,即得到的缺口数为15+1=16;而使用的参考时钟的时钟总节拍数为255,即时钟有效周期个数与缺口个数之和。

②ODU1时钟产生原理。

与ODU2时钟产生原理相同,从去映射的角度考虑,ODU1帧是从ODU2帧去映射得到的,则ODU1帧与ODU2帧相比少了开销部分的16列,那么在OTU2的时钟下传输的ODU1数据量和OTU2的数据量之间的关系为:ODU1/OTU2=3808/4080=238/255。

由此推断,ODU1的时钟频率和OTU2的时钟频率比为238/255。

图3所示为具有均匀缺口的ODU1时钟产生原理图。

从图3可知,ODU1的时钟有效周期个数为15×15+13=15×(16-
1)+(15-2)=238,即得到的缺口数为15+2=17;而使用的参考时钟的时钟总节拍数为255,即时钟有效周期个数与缺口个数之和。

2.2 复用映射模块设计
在图1所示的复用电路框图中,复用映射模块包括FIFO、count、JC产生以及数据处理等子模块。

各子模块的功能描述如下:
①FIFO模块。

FIFO深度为64 words,宽度为8bits,用来存储ODU1数据,并
为JC(判断调整字节,justification byte)产生模块提供所需的读数据端深度指
示信号(rdusedw)。

图4 ODU2时钟缺口产生仿真波形图
②count模块。

产生ODU2数据的行列指示信号及复帧定位信号(mfas)。

根据ODU信号的帧格式(4×3824),将行计数设置为2位,列计数设置为12位,
复帧计数设置为8位。

行计数从0计数到第3,共4行,列计数从8开始计数,
每个时钟节拍计数器加8,加到3824时,行计数器加1,列计数器归8;当行计
数为3,列计数为3824,在下个时钟节拍有效沿到来时,mfas加1;当mfas计数为255,行计数为3,列计数为3824,在下个时钟节拍有效沿到来时,复帧归零,重新计数。

③JC产生模块。

根据FIFO读数据端深度指示信号(rdusedw)来产生JC的值,产生一到两个字节的调整字节来吸收客户信号频偏[3]。

当FIFO的rdusedw在[27,37]之间时,则 JC=2'b00;当 rdusedw 小于 27且大于22时进行一个字节的正调整,则JC=2'b11;当rdusedw小于22时,进行两个字节的正调整,即
JC=2'b10;当rdusedw大于37时,进行一个字节的负调整,则 JC=2'b01。

④数据处理单元。

包括读取不同字节数控制器、开销处理以及异步映射处理模块。

对于四路信号的控制调整,需要复帧信号mfas的后两位进行控制,即每四帧进行一次调整。

mfas[1:0]==2'b00,调整的是odu2_1的信息;mfas[1:0]==2'b01,
调整的是odu2_2的信息;mfas[1:0]==2'b10,调整的是odu2_3的信息;
mfas[1:0]==2'b11,调整的是odu2_4的信息。

读出不同字节的数据控制器是由
1个9位的odu2_reg寄存器构成的,根据帧格式、行列指示以及JC调整的不同,其实现方法为:当复用到ODU2数据在第一、二、三行,且列计数为8或16时,此时该控制器不输出数据信息,由开销处理模块(OH_insert)提供给该列开销信息。

当列计数大于16时,若odu2_reg[8]==1'b0,即此寄存器里无数据信息,
此时输出给AMP处理的数据信息直接来自于本模块输入的数据信息;相反,则输出给AMP处理的数据信息为寄存器里的数据信息和本模块输入数据信息的高八位的拼接,即{odu2_reg[7:0],odu2[15:8]},同时,odu2[7:0]又存入寄存器
odu2_reg 的低八位,并令其第9位为1,标志此寄存器存有数据信息。

当复用到ODU2的数据在第四行且列计数为8时,此时该控制器不输出数据信息,由
OH_insert提供给该列开销信息;当列计数为16时,若JC为2'b00、2'b10、
2'b11,则此时该控制器不输出数据信息,由OH_insert提供给该列的开销信息NJO为0。

若JC为2'b01,odu2_reg[8]==1'b0,即此寄存器里无数据信息,则从本模块输出的数据信息为本模块输入数据信息的高8位,作为NJO的填充信息输送给OH-insert。

若odu2_reg[8]==1'b1,则输出给OH-insert的数据信息NJO为寄存器里的数据信息odu2_reg[7:0],同时给odu2_reg[8]置1'b0,标志
此时寄存器里无数据信息。

当列计数为 24、JC为 2'b00、2'b01时,当
odu2_reg[8]==1'b0,即此寄存器里无数据信息,此时输出给AMP处理的数据
信息{PJO1,PJO2}直接来自于本模块输入的数据信息;相反,则输出给AMP处理
的数据信息{PJO1,PJO2}为寄存器里的数据信息和本模块输入数据信息的高八位的拼接,即{odu2_reg[7:0],odu2[15:8]},同时,odu2[7:0]又存入寄存器odu2_reg 的低八位,并令其第9位为1'b1,标志此寄存器存有数据信息。

当列计数为24,若JC为2'b10,此时该控制器不输出数据信息,由AMP处理模块提供给该列的
数据信息{PJO1,PJO2}为16'd0。

当列计数为24,若 JC为2'b11、
odu2_reg[8]==1'b0,即此寄存器里无数据信息,此时输出给AMP处理模块的信息{PJO1,PJO2}为8'd0和本模块输入数据信息的高八位的拼接,即
{8'd0,odu2[15:8]},同时,odu2[7:0]又存入寄存器odu2_reg的低八位,并令其第9位为1'b1,标志此寄存器存有数据信息。

相反,则输出给AMP处理的数据信息{PJO1,PJO2}为{8'd0,odu2_reg[7:0]},并将寄存器的标志位置odu2_reg[9]令为1'b0;若列计数大于24时,若odu2_reg[8]==1'b0,即此寄存器里无数据信息,此时输出给AMP处理的数据净荷信息直接来自于本模块输入的数据信息;相反,则输出给AMP处理的数据净荷信息为寄存器里的数据信息和本模块输入数据信息的高八位的拼接,即{o du2_reg[7:0],odu2[15:8]},同时,odu2[7:0]又存入寄存器odu2_reg的低八位,并令其第9位为1'b1,标志此寄存器存有数据信息。

图5 ODU1时钟缺口产生仿真波形图
3 实验结果及分析
本设计采用verilog HDL描述电路,用Modelsim SE 10.1c进行功能仿真。

图4所示为ODU2时钟缺口产生仿真波形图,从图中可以看出,当column计数为4080时,count_gap计数器的值为256,符合时钟产生原理中的描述。

图6 复用映射模块仿真波形图
图5所示为ODU1时钟缺口产生仿真波形图,从此图中可以看出,当column计数为4080时,count_gap计数器的值为272,符合时钟产生原理中的描述。

图6所示为ODU1复用到ODU2的仿真波形图,从图中可以看出,在第一行的前六列为帧头8282826f6f6f,第七列为 mfas,并且ODU1能够按照规定格式间插到ODU2中。

图7所示为ODU1到ODU2复用电路基于Altera Stratix IV EP4SGX230系列开
发板的综合结果,可以看出本设计的资源使用情况。

图7 综合结果
4 结束语
本文根据G.709对ODUk(k=1,2)帧格式的定义,设计并实现了ODU1到ODU2的复用电路。

通过功能仿真和FPGA验证,本设计能够准确地完成ODU1数据到ODU2数据的复用。

基于同时钟源产生的其它时钟,消除了多时钟之间的时钟偏移,同时也减少了FPGA中锁相环的使用。

参考文献:
[1]ITU-T Rec.G.709/Y.1331,Interface for the optical transport
network(OTN)[S].2009.
[2]焦晓,蒋林.OTN中ODU0到ODU1映射电路的设计与实现[J].光通信研究,2013,(6):15-17.
[3]田小平,蔡龙.光传送网中映射及去映射电路的一种设计[J].电子科技,2013,(7):151-153.
[4]李勇.OTN客户信号的映射和复用及其调整率分析[J].光通信研究,2004,(3):18-21.。

相关文档
最新文档