一种基于二级查表的64B/66B编码器及编码方法技术

技术编号:20369174 阅读:33 留言:0更新日期:2019-02-16 19:37
本发明专利技术公开了一种基于二级查表的64B/66B编码器及编码方法,对大小为2

A 64B/66B Encoder Based on Two-Level Lookup Table and Its Coding Method

The invention discloses a 64B/66B encoder and encoding method based on a two-level look-up table, with a size of 2.

【技术实现步骤摘要】
一种基于二级查表的64B/66B编码器及编码方法
本专利技术属于编解码
,具体涉及一种基于二级查表的64B/66B编码器及编码方法。
技术介绍
64B/66B编码模块是按照编码规则将XGMII输入的64bit数据信息xgmii_txd[63:0]、和8bit控制信息xgmii_txc[7:0]编码成66bit的数据信息,66bit的数据信息包括2bit同步头,8bit块类型及56bit有效负载。,加入2bit的冗余以达到0、1均衡的目的。现有的编码实现方式有两种:查表法和逻辑运算法。查表法是将编码过程抽象成一次查找表映射的过程,该方法电路面积庞大,使用大量的ROM资源;逻辑运算法是将64bit数据划分成8个8bit的窄通道,每个窄通道分别进行译码,该方法是将方法1中272的表格拆分成8个28大小的表格,进行并行译码,该方法相对于查表法来讲查找表小了很多,但是8个大小为256的查找表同时译码对于硬件实现而言仍然很耗费资源。
技术实现思路
本专利技术针对64B/66B编解码实现过程中,硬件开销大、效率低的特点,提出一种关键位置的特征量提取的方法,该方法利用码字的自身特点进行特征量提取,将庞大的查找表缩小成硬件可实现的小的查找表。为达到上述目的,本专利技术所述一种基于二级查表的64B/66B编码装置包括前后两级查找表,第一个查找表根据发送控制字得到一个初步的结果,第二级查找表根据第一个查找表的结果和部分码字的规律进行二级映射,最终得到编码结果。一种基于二级查表的64B/66B编码器,包括第一锁存器模块,一级编码模块,通道划分模块,第二锁存器模块,二级编码模块,数据选择模块和状态机控制模块;其中,第一锁存器模块用于对输入的64bit数据进行缓存,并将缓存的64bit数据发送给第二锁存器模块;一级编码模块用于根据输入的8bit控制信息xgmii_txc译出部分块类型,并产生同步头,将同步头发送给第二锁存器模块,将接收的8bit控制信息txc[7:0]和一级编码结果发送给二级编码模块;通道划分模块用于将输入并行的64bit分成第0至第7共8个通道,每个通道一个字节,并将划分后的8个字节发送给二级编码模块;第二锁存器模块用于时序匹配以及数据缓存,缓存接收到的第一锁存器模块发送的64bit数据以及一级编码模块发送的同步头,并使得第二锁存器模块的输出和二级编码模块的输出同一时刻到达数据选择模块;二级编码模块用于根据一级编码模块的结果block_type,结合通道划分模块输出的第0通道和第3通道的原始码字lane_0[7:0]、lane_3[7:0],得到全部的块类型BlockTypeField,并将通道划分模块输出的8个通道的值根据XGMII控制符映射表进行字节映射,得到编码数据encode;将8bit块类型BlockTypeField、通道0至通道7的编码数据encode和8bit控制信息xgmii_txc发送至数据选择模块;同时将用BlockTypeField产生的块结构字t_blk_type输出至状态机控制模块;数据选择模块根据状态机控制模块输出的使能信号判断接收数据是否输出,如果能输出,就输出66bit带同步头的据编码结果,数据编码结果包括2bit的同步头和64bit的编码数据encode;如果不能输出,就输出错误标识;状态机控制模块用于根据二级编码后得到的块类型来判断码流的合法性,并将判断结果作为控制信号发送至数据选择模块。一种基于二级查表的64B/66B编码方法,包括以下步骤:步骤1、输入的64bit数据信息写入第一锁存器模块中,一级编码模块根据控制信息xgmii_txc确定同步头sync_header_o[1:0];通道划分模块)将输入的64bit数据信息分成8个通道输出至二级编码模块;步骤2、第一锁存器模块中的数据读出,与一级编码模块输出的同步头sync_header_o[1:0]合成66bit数据,并写入第二锁存器模块中;一级编码模块根据输入的控制信息xgmii_txc判断该包数据的类型,并输出块结构block_type和控制信息xgmii_txc;步骤3、二级编码模块根据一级编码模块输出的一级编码模结果block_type和通道划分模块输出的lane_0[7:0]和lane_3[7:0]数据进行二级编码,得到二级编码结果BlockTypeField;并将BlockTypeField映射成相应的块结构字(t_blk_type),然后发送给状态机控制模块,状态机控制模块根据发送状态机判断此时收到的块结构字判断该包数据是否合法,若合法,向数据选择模块输出tx_coded_sel=1,若非法,则tx_coded_sel=0;二级编码模块将通道划分模块输出的8个通道的值根据XGMII控制符映射表进行字节映射,得到编码数据encode;步骤4、数据选择模块根据接收到的tx_coded_sel的值判断是否输出数据,若tx_coded_sel=1,且txc[7:0]=8’b00000000,则该64bit为全数据,则将第二锁存器模块的数据xgmii_txd_dd[65:0]读出,此时sync_header_o[1:0]=xgmii_txd_dd[65:64],encode_o[63:0]=xgmii_txd_dd[63:0],编码完成;若tx_coded_sel=1,txc[7:0]!=8’b00000000,则该64bit不为全数据,则将第二锁存器模块的数据xgmii_txd_dd[65:0]读出,此时sync_header_o[1:0]=xgmii_txd_dd[65:64],txc对应位是1时,该字节为控制字符,输出二级编码模块输入的encode,txc[7:0]对应位是0时该字节为数据字符,输出第二锁存器模块输入的缓存数据对应字节;若tx_coded_sel=0,表示发送帧错误;encode_o[63:0]=0xFEFEFEFE_FEFEFEFE,编码完成。进一步的,步骤2中,查表得到一级编码结果块结构block_type。进一步的,二级编码在控制信息xgmii_txc为11111111、11111000或10001000时,根据块结构block_type和第0通道和第3通道的输入的数据信息确定BlockTypeField。进一步的,步骤2中,数据类型包括S数据类型、T数据类型、D数据类型、E数据类型和C数据类型,其中,S数据类型包括block_type为0x33、0x66和0x78的合法结构块,S数据类型包括block_type为0x87、0x99、0xaa、0xb4、0xcc、0xd2、0xe1和0xff的合法结构块,S数据类型包括同步头为01的数据块结构,E数据类型为非法块结构,C数据类型为其他合法块结构。进一步的,步骤2中,根据控制信息xgmii_txc确定同步头过程为:当控制信息xgmii_txc_i[7:0]=8’b00000000时,同步头为2’b01,否则,同步头为2’b10。与现有技术相比,本专利技术至少具有以下有益的技术效果,本专利技术对大小为272的表格进行关键位置的特征量提取,据此将表格拆解成第一级大小为28的表格,在此基础上以XGMII输入的8bit控制信息xgmii_txc[7:0]本文档来自技高网...

【技术保护点】
1.一种基于二级查表的64B/66B编码器,其特征在于,包括第一锁存器模块(1),一级编码模块(2),通道划分模块(3),第二锁存器模块(4),二级编码模块(5),数据选择模块(6)和状态机控制模块(7);其中,第一锁存器模块(1)用于对输入的64bit数据进行缓存,并将缓存的64bit数据发送给第二锁存器模块(4);一级编码模块(2)用于根据输入的8bit控制信息xgmii_txc译出部分块类型,并产生同步头,将同步头发送给第二锁存器模块(4),将接收的8bit控制信息txc[7:0]和一级编码结果发送给二级编码模块(5);通道划分模块(3)用于将输入并行的64bit分成第0至第7共8个通道,每个通道一个字节,并将划分后的8个字节发送给二级编码模块(5);第二锁存器模块(4)用于时序匹配以及数据缓存,缓存接收到的第一锁存器模块(1)发送的64bit数据以及一级编码模块(2)发送的同步头,并使得第二锁存器模块(4)的输出和二级编码模块(5)的输出同一时刻到达数据选择模块(6);二级编码模块(5)用于根据一级编码模块(2)的结果block_type,结合通道划分模块(3)输出的第0通道和第3通道的原始码字lane_0[7:0]、lane_3[7:0],得到全部的块类型Block TypeField,并将通道划分模块(3)输出的8个通道的值根据XGMII控制符映射表进行字节映射,得到编码数据encode;将8bit块类型Block Type Field、通道0至通道7的编码数据encode和8bit控制信息xgmii_txc发送至数据选择模块(6);同时将用Block Type Field产生的块结构字t_blk_type输出至状态机控制模块(7);数据选择模块(6)根据状态机控制模块(7)输出的使能信号判断接收数据是否输出,如果能输出,就输出66bit带同步头的据编码结果,数据编码结果包括2bit的同步头和64bit的编码数据encode;如果不能输出,就输出错误标识;状态机控制模块(7)用于根据二级编码后得到的块类型来判断码流的合法性,并将判断结果作为控制信号发送至数据选择模块(6)。...

【技术特征摘要】
1.一种基于二级查表的64B/66B编码器,其特征在于,包括第一锁存器模块(1),一级编码模块(2),通道划分模块(3),第二锁存器模块(4),二级编码模块(5),数据选择模块(6)和状态机控制模块(7);其中,第一锁存器模块(1)用于对输入的64bit数据进行缓存,并将缓存的64bit数据发送给第二锁存器模块(4);一级编码模块(2)用于根据输入的8bit控制信息xgmii_txc译出部分块类型,并产生同步头,将同步头发送给第二锁存器模块(4),将接收的8bit控制信息txc[7:0]和一级编码结果发送给二级编码模块(5);通道划分模块(3)用于将输入并行的64bit分成第0至第7共8个通道,每个通道一个字节,并将划分后的8个字节发送给二级编码模块(5);第二锁存器模块(4)用于时序匹配以及数据缓存,缓存接收到的第一锁存器模块(1)发送的64bit数据以及一级编码模块(2)发送的同步头,并使得第二锁存器模块(4)的输出和二级编码模块(5)的输出同一时刻到达数据选择模块(6);二级编码模块(5)用于根据一级编码模块(2)的结果block_type,结合通道划分模块(3)输出的第0通道和第3通道的原始码字lane_0[7:0]、lane_3[7:0],得到全部的块类型BlockTypeField,并将通道划分模块(3)输出的8个通道的值根据XGMII控制符映射表进行字节映射,得到编码数据encode;将8bit块类型BlockTypeField、通道0至通道7的编码数据encode和8bit控制信息xgmii_txc发送至数据选择模块(6);同时将用BlockTypeField产生的块结构字t_blk_type输出至状态机控制模块(7);数据选择模块(6)根据状态机控制模块(7)输出的使能信号判断接收数据是否输出,如果能输出,就输出66bit带同步头的据编码结果,数据编码结果包括2bit的同步头和64bit的编码数据encode;如果不能输出,就输出错误标识;状态机控制模块(7)用于根据二级编码后得到的块类型来判断码流的合法性,并将判断结果作为控制信号发送至数据选择模块(6)。2.一种基于权利要求1所述的编码器的二级查表的64B/66B编码方法,其特征在于,包括以下步骤:步骤1、输入的64bit数据信息写入第一锁存器模块(1)中,一级编码模块(2)根据控制信息xgmii_txc确定同步头sync_header_o[1:0];通道划分模块(3)将输入的64bit数据信息分成8个通道输出至二级编码模块(5);步骤2、第一锁存器模块(1)中的数据读出,与一级编码模块(2)输出的同步头sync_header_o[1:0]合成66bit数据,并写入第二锁存器模块(4)中;一级编码模块(2)根据输入的控制信息xgmii_txc判断该包数据的类型,并输出块结构block_type和控制信息xgmii_txc;步骤3、二级编码模块(5)根据一级编码模块(2)输出的一级编码模结果block_type和通道划分模块(3)输出的lane_0[7:0]和lane...

【专利技术属性】
技术研发人员:哈云雪徐丹妮唐金锋刑宗歧
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1