发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种OTN系统中高吞吐量FEC编码器的硬件实现方法及系统,本发明在实现整个FEC编码器高吞吐量的同时,降低了RS(255,239)编码器实现时的并行度,节省了整个FEC编码器实现的硬件资源,不仅实现规模较小,而且不需要进行补零和去零操作,保证了RS(255,239)并行编码对数据的处理能力,便于人们使用。
为达到以上目的,本发明提供的OTN系统中高吞吐量FEC编码器的硬件实现方法,包括以下步骤:
S1:将OTN系统中上游模块输入的多拍位宽为W1的传输数据拼接在一起,组成一拍位宽为W2的整合数据,转到步骤S2;
所述W1为OTN系统实现时所需的位宽,所述W2为适合FEC编码器并行实现的位宽,W2>W1,W2为128的整数倍,W2=16·8·H,H为RS(255,239)编码器的并行度,H为整数,RS(255,239)为里德所罗门码,码字长度为255个码元,其中信息码元有239个,校验码元有16个;
S2:将每拍整合数据进行解间插交织处理,每拍整合数据均分为16个RS码字的信息码元,转到步骤S3;
S3:通过16路并行度为H的RS(255,239)编码器,分别对16个RS码字的信息码元进行编码,得到16个RS码字的校验码元,将每个码字的信息码元和校验码元组合,得到16个编码后的RS码字,转到步骤S4;
S4:将16个编码后的RS码字按照与步骤S2中解间插交织处理对应的方式,进行间插交织处理,组成位宽为W2的光通路传送单元OTUk数据,转到步骤S5;
S5:将每拍位宽为W2的OTUk数据进行位宽变换-缩位处理,形成多拍位宽为W1的OTUk数据,完成整个FEC编码,结束。
在上述技术方案的基础上,步骤S1具体包括以下步骤:将输入的位宽为W1的传输数据分为两拍数据:当前拍数据和前一拍数据;通过计数器产生范围在0~5之间的计数值,根据不同的计数值产生相应的掩膜图案和互补掩膜图案;将掩膜图案和当前拍数据进行按位与操作,得到第一中间数据;将互补掩膜图案和前一拍数据进行按位与操作,得到第二中间数据;将第一中间数据和第二中间数据进行按位异或,得到位宽为W2的整合数据。
在上述技术方案的基础上,步骤S3中所述对16个RS码字的信息码元进行编码,具体包括以下步骤:每个码字包括239个信息码元,将每个码字分为两部分:第一部分为第1~79拍数据,每拍数据均包括3个信息码元;第二部分为第80拍数据,第80拍数据包括2个信息码元;对第1~79拍数据均进行并行度为3的编码,对第80拍数据进行并行度为2的编码。
本发明提供的OTN系统中高吞吐量FEC编码器的硬件实现系统,该系统包括顺次相连的位宽变换-并位模块、解间插交织模块、RS(255,239)并行编码模块、间插交织模块和位宽变换-缩位模块;
所述位宽变换-并位模块用于:将OTN系统中上游模块输入的多拍位宽为W1的传输数据拼接在一起,组成一拍位宽为W2的整合数据;
所述W1为OTN系统实现时所需的位宽,所述W2为适合FEC编码器并行实现的位宽,W2>W1,W2为128的整数倍,W2=16·8·H,H为RS(255,239)编码器的并行度,H为整数;
所述解间插交织模块用于:将每拍整合数据进行解间插交织处理,每拍整合数据均分为16个RS码字的信息码元;
所述RS(255,239)并行编码模块用于:通过16路并行度为H的RS(255,239)编码器,分别对16个RS码字的信息码元进行编码,得到16个RS码字的校验码元,将每个码字的信息码元和校验码元组合,得到16个编码后的RS码字;
所述间插交织模块用于:将16路经过编码后的RS码字间插交织形成位宽为W2的光通路传送单元OTUk数据;
所述位宽变换-缩位模块:将每拍位宽为W2的OTUk数据进行位宽变换-缩位处理,形成多拍位宽为W1的OTUk数据。
在上述技术方案的基础上,所述位宽变换-并位模块包括第一数据存储模块、第二数据存储模块、数据延时模块、计数模块、掩膜图案产生模块、互补掩膜图案产生模块、第一按位与模块、第二按位与模块和按位异或模块;
所述第一数据存储模块用于:存储当前拍数据;
所述数据延时模块用于:对位宽为W1的传输数据进行延时后输入至第二数据存储模块;
所述第二数据存储模块用于:存储模块存储经延时模块进入的前一拍数据;
所述计数模块用于:产生范围在0~5之间的计数值;
所述掩膜图案产生模块用于:根据不同的计数值产生相应的掩膜图案;
所述互补掩膜图案产生模块:根据不同的计数值产生相应的互补掩膜图案;
所述第一按位与模块用于:将掩膜图案和当前拍数据进行按位与操作,得到第一中间数据;
所述第二按位与模块用于:将互补掩膜图案和前一拍数据进行按位与操作,得到第二中间数据;
所述按位异或模块用于:将第一中间数据和第二中间数据进行按位异或,得到位宽为W2的整合数据。
在上述技术方案的基础上,所述RS(255,239)并行编码模块对16个RS码字的信息码元进行编码时,每个码字包括239个信息码元,将每个码字分为两部分:第一部分为第1~79拍数据,每拍数据均包括3个信息码元;第二部分为第80拍数据,第80拍数据包括2个信息码元;对第1~79拍数据均进行并行度为3的编码,对第80拍数据进行并行度为2的编码。
与现有技术相比,本发明的优点在于:
(1)本发明使用时,将OTN系统实现要求的位宽W1转换成16路RS(255,239)编码器易于实现的最小位宽W2,并且不要求W22能被W1整除。与现有技术中实现规模比较庞大,硬件资源需求较大的FEC编码器相比,本发明在实现整个FEC编码器高吞吐量的同时,降低了RS(255,239)编码器实现时的并行度,节省了整个FEC编码器实现的硬件资源,实现规模较小,便于人们使用。
(2)本发明对每拍384bits数据的16个RS码字进行编码时,将每个码字分成两部分进行处理:第一部分为第1~79拍数据,每拍数据包括3个信息码元,对第1~79拍数据均进行并行度为3的编码;第二部分为第80拍数据,仅包括2个信息码元,对第80拍数据进行并行度为2的编码。与现有技术中进行补领操作相比,本发明在实现整个FEC编码器高吞吐量的同时,不需要进行补零和去零操作,保证了RS(255,239)并行编码对数据的处理能力,便于人们使用。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图2所示,本发明实施例中的OTN系统中高吞吐量FEC编码器的硬件实现方法,包括以下步骤:
S1:将OTN系统中上游模块输入的多拍位宽为W1的传输数据拼接在一起,组成一拍位宽为W2的整合数据。W1为OTN系统实现时所需的位宽,W2为适合FEC编码器并行实现的位宽,W2>W1,W2为128的整数倍,W2=16·8·H,(H为RS(255,239)编码器的并行度,H为整数),转到步骤S2。
由于传输数据的位宽W1为整个OTN系统实现的位宽,而W1不一定为128的整数倍,因此需要将W1扩展为W2。
S2:将每拍整合数据根据G.709协议的规定进行解间插交织处理,每拍整合数据均分为16个RS码字的信息码元,转到步骤S3。
S3:通过16路并行度为H的RS(255,239)编码器,分别对16个RS码字的信息码元进行编码,得到16个RS码字的校验码元,将每个码字的信息码元和校验码元组合,得到16个编码后的RS码字,转到步骤S4。
S4:将16个编码后的RS码字按照与步骤S2中解间插交织处理对应的方式,进行间插交织处理,组成位宽为W2的OTUk(Optical Channel TransportUnit,光通路传送单元)数据,转到步骤S5。
S5:将每拍位宽为W2的OTUk数据进行位宽变换-缩位处理,形成多拍位宽为W1的OTUk数据;至此,完成整个FEC编码,结束。
步骤S1具体包括以下步骤:将输入的位宽为W1的传输数据分为两拍数据:当前拍数据和前一拍数据;通过计数器产生范围在0~5之间的计数值,根据不同的计数值产生相应的掩膜图案和互补掩膜图案。将掩膜图案和当前拍数据进行按位与操作,得到第一中间数据;将互补掩膜图案和前一拍数据进行按位与操作,得到第二中间数据;将第一中间数据和第二中间数据进行按位异或,得到位宽为W2的整合数据。
步骤S3中对16个RS码字的信息码元进行编码,具体包括以下步骤:每个码字包括239个信息码元,将每个码字分为两部分:第一部分为第1~79拍数据,每拍数据均包括3个信息码元;第二部分为第80拍数据,仅包括2个信息码元。对第1~79拍数据均进行并行度为3的编码,对第80拍数据进行并行度为2的编码。
参见图3所示,本发明实施例中的OTN系统中高吞吐量FEC编码器的硬件实现系统,包括顺次相连的位宽变换-并位模块、解间插交织模块、RS(255,239)并行编码模块、间插交织模块和位宽变换-缩位模块。
位宽变换-并位模块用于:将OTN系统中上游模块输入的多拍位宽为W1的传输数据拼接在一起,组成一拍位宽为W2的整合数据。
参见图4所示,位宽变换-并位模块包括第一数据存储模块、第二数据存储模块、数据延时模块、计数模块、掩膜图案产生模块、互补掩膜图案产生模块、第一按位与模块、第二按位与模块和按位异或模块。
第一数据存储模块用于:存储当前拍数据。
数据延时模块用于:对位宽为W1的传输数据进行延时后输入至第二数据存储模块。
第二数据存储模块用于:存储模块存储经延时模块进入的前一拍数据。
计数模块用于:产生范围在0~5之间的计数值。
掩膜图案产生模块用于:根据不同的计数值产生相应的掩膜图案。
互补掩膜图案产生模块:根据不同的计数值产生相应的互补掩膜图案。
第一按位与模块用于:将掩膜图案和当前拍数据进行按位与操作,得到第一中间数据。
第二按位与模块用于:将互补掩膜图案和前一拍数据进行按位与操作,得到第二中间数据。
按位异或模块用于:将第一中间数据和第二中间数据进行按位异或,得到位宽为W2的整合数据。
解间插交织模块用于:将每拍整合数据根据G.709协议的规定进行解间插交织处理,每拍整合数据均分为16个RS码字的信息码元。
RS(255,239)并行编码模块用于:通过16路并行度为H的RS(255,239)编码器,分别对16个RS码字的信息码元进行编码,得到16个RS码字的校验码元,将每个码字的信息码元和校验码元组合,得到16个编码后的RS码字。
RS(255,239)并行编码模块对16个RS码字的信息码元进行编码时,每个码字包括239个信息码元,将每个码字分为两部分:第一部分为第1~79拍数据,每拍数据均包括3个信息码元;第二部分为第80拍数据,仅包括2个信息码元。对第1~79拍数据均进行并行度为3的编码,对第80拍数据进行并行度为2的编码。
间插交织模块用于:将16路经过编码后的RS码字,根据G.709协议的规定,间插交织形成位宽为W2的OTUk数据;
位宽变换-缩位模块用于:将每拍位宽为W2的OTUk数据进行位宽变换-缩位处理,形成多拍位宽为W1的OTUk数据。
下面以采用每拍处理位宽为320bits数据的OTN系统为例,详细说明本发明的方法和系统,本发明方法的步骤如下:
步骤S10:对输入的每拍320bits未编码数据进行位宽变换并位处理,将每拍320bits的数据转换成每拍384bits的数据,转到步骤S20。
因为320和384的最小公倍数为1920,所以1920/320=6拍320bits的数据量在位宽为384bits时,只需要用5拍,因此,转成384bits位宽的数据每隔5拍需要停1拍,以保持与320bits位宽数据的速率一致。
参见图5所示,步骤S10中对于320bits位宽的数据,需要存储2拍的数据才能凑成1拍384bits的数据,同时还剩下一部分数据,因此,可以先将320bits位宽的数据存储两拍,即当前拍和前一拍的数据。
为方便表述,在图5中将320bits的数据每拍都分成5块,每块64bits,图5中为第1拍数据的5个分块,为第2拍数据的5个分块,后面的数据依次类推。由于转变成384bits位宽数据就需要6个数据分块,因此可以将320bits的数据存储两拍,即当前拍数据和前一拍数据,然后按照图5所示的规律,选取这两拍数据合适的部分拼成一拍完整、连续的384bits数据。
步骤S10具体包括以下步骤:
S101:通过寄存器将输入的320bits位宽数据存储为两拍:前一拍数据din_prior和当前拍数据din_cur,转到步骤S102。
S102:使用一个计数范围在0~5的计数器cnt,参见图5所示,根据cnt的不同取值分别对应选取din_prior和din_cur中的不同位置的数据块,与“0”数据块拼接得到图5中箭头右边两个384bits位宽的数据:第一中间数据和第二中间数据,转到步骤S103。
S103:将第一中间数据和第二中间数据进行按位异或,得到转换后的384bits位宽的数据,转到步骤S104。
S104:cnt给出表明转换后的384bits位宽数据是否有效的指示信号:cnt值为0时,384bits位宽数据是全为0,无效;cnt值为其他数值时,384bits位宽数据是有效。
S20:参见图6所示,将并位处理得到的每拍384bits数据进行解间插交织处理,每拍384bits数据分为16个RS码字,每个码字每拍为24bits数据(3个字节),转到步骤S30。
S30:通过16路RS(255,239)编码器对每拍384bits数据的16个RS码字进行编码,转到步骤S40。
由于16个RS码字每拍数据位宽为24bits,因此需要RS(255,239)编码器每拍能处理3个码元(每个码元为1个字节),即并行度为3的并行编码。
参见图7所示,步骤S30具体包括以下步骤:将每个239码元的码字分为两部分:第一部分为第1~79拍数据,每拍数据均包括3个信息码元;第二部分为第80拍数据,仅包括2个信息码元。对第1~79拍数据均进行并行度为3的编码,对第80拍数据进行并行度为2的编码。
S40:将编码后的16个RS码字按照与步骤S20对应的方式进行间插交织处理,组成384bits位宽的编码后数据,转到步骤S50。
S50:对编码后的每拍384bits数据进行位宽变换-缩位处理,转变成每拍320bits的数据,从而得到最终的编码结果。
采用每拍处理位宽为320bits数据的OTN系统的OTN系统中高吞吐量FEC编码器的硬件实现系统,包括顺次相连的位宽变换-并位模块、解间插交织模块、RS(255,239)并行编码模块、间插交织模块和位宽变换-缩位模块。
位宽变换-并位模块的工作过程为:将输入的320bits位宽数据分为两拍数据:当前拍数据和前一拍数据,第一数据存储模块存储当前拍数据,第二数据存储模块存储经数据延时模块进入的前一拍数据。
计数模块产生范围在0~5之间的计数值;掩膜图案产生模块根据不同的计数值产生相应的掩膜图案,互补掩膜图案产生模块根据不同的计数值产生相应的互补掩膜图案。
第一按位与模块将掩膜图案和320bits位宽数据的当前拍数据进行按位与操作,得到384bits位宽数据的第一中间数据;第二按位与模块将互补掩膜图案和320bits位宽数据的前一拍数据进行按位与操作,得到384bits位宽数据的第二中间数据。
按位异或模块将第一中间数据和第二中间数据进行按位异或,得到384bits位宽的数据。
解间插交织模块用于:将变换为384bits位宽的数据,根据G.709协议的规定,解间插交织为16路RS码字。
RS(255,239)并行编码模块包括16路并行度为3的RS(255,239)编码器,每路RS(255,239)编码器为1路RS码字进行编码。
参见图8所示(图8中的各参数含义参见专利CN102882534A中的描述),对于RS(255,239)在并行度H=3下的实现,前237个码元使用图8中虚线以上的并行度H=3的电路进行运算;最后的2个码元则使用虚线以下的并行度H=2的电路进行运算。
参见图8所示,虚线上方的部分采用并行度H=3的反馈回路结构,一共有3个反馈回路,其中第一回路由6个D触发器、5个GF(28)上的两输入加法器、18个GF(28)上的常系数乘法器以及6个GF(28)上的三输入加法器共同组成了6级的LFSR(线性反馈移位寄存器),而第二和第三回路的级数则为5级。当输入为RS码字的前237个码元时,每次可以同时送入3个信息码元,记为m(2)、m(1)、m(0),这三个码元分别与3组常系数(每组16个系数)依次相乘,得到的结果每3个一组送至GF(28)上的五输入加法器求和,这些和值作为LFSR的反馈输入引入到整个编码结构中。
当前面的237个码元全部送入LFSR回路去之后,虚线上方的电路停止工作,同时将此时电路中的16个D触发器状态值传递给虚线下方电路相应的D触发器,接着虚线下方的并行度H=2的反馈回路结构开始工作,将虚线上方反馈回路的最后状态作为本结构的初始值,将最后的2个信息码元读取进来,从而得到最终的校验码元。并行度H=2的反馈回路结构中一个有2个反馈回路,其中每个回路的级数均为8,构成与前面描述的并行度H=3的结构类似。
间插交织模块用于:将16路经过编码后的RS码字,根据G.709协议的规定,间插交织组成384bits位宽的编码后数据,即为解间插交织模块的逆过程。
位宽变换-缩位模块用于:对编码后的每拍384bits数据进行位宽变换-缩位处理,转变成每拍320bits的数据,从而得到最终的编码结果。位宽变换-缩位模块为位宽变换并位模块的逆变换。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。