10G以太网系统中的并行CRC编解码器的设计
模块构造了级联结构的64比特并行CRC编码器。这种级联构造的编码器设计比较简单。其中间节点:
Z1(n)=f(r,d[0:7]n[31,0]
Z2(n)=f(Z1,d[8:15])=f(f(r,d[0:7]),d{8:15])
…(3)
显然(3)还可以进一步化简。冗余的逻辑使得这种级联结构占用芯片面积大,且只能用于低速场合。对(3)进一步化简,可以得到Z2的最简异或表达式。同理可以得到Z3…Z8的表达式。Zl,Z2,…,Z8分别对应8比特、16比特、……、64比特的并行CRC运算表达式。具体表达式限于篇幅不在这里给出。Z8中最长的异或运算表达式有52项参加运算,如果使用4-异或门则只需要用三级,即能在一般CMOS工艺的一级传输延迟时间之内完成。当用于以太网接入系统时,因为以太网帧不一定结束在64比特边界,因此编码器应该有同时计算8、16、24、……、64比特并行编码的能力。具体电路如图3。因为一般情况下大量用到64比特并行编码,因此平时使能信号mux使其他7个编码模块不工作以降低功耗。在帧尾部根据具体情况使用这7个模块进行剩余字节的编码。
3流水线法
矩阵法和代入法本质上都是设计直接并行编码电路的方法,二者的最终效果是一样的。直接并行实现的CRC编码电路控制逻辑比较简单,但是需要进行复杂的组合逻辑运算。为了在更高频率下进行并行CRC编码,可以进一步用流水线的方法简化编码逻辑,所付出的代价是整个帧的处理延迟了8个时钟周期。图4给出了CRC编码的流水线实现。将并行输入的64比特分成7个字节,分别用D0、D1、……、D7表示。P模块(P0~P7)计算形如"Di,O,O,O,O,O,O,O,Di"的序列的CRC,其中Diˊ,是Di位置上的上一次输入。Diˊ的CRC码由端口R[31:0]输入,Di由端口D[7:0]输入,结果由Z[31:0]端口输出。
C模块(C1~C7)的输入是"D0,O,O,O,O,O,O,O,D0'和"D1ˊ,O,O,O,O,O,O,O,D1"的CRC(分别由端口R1和R2输入),输出是"D0ˊ,D1ˊ,O,O,O,O,O,O,D0,D1"CRC。求P的逻辑表达式时,重复应用算法1的推论,可以求出"Diˊ,O,O,O,O,O,O,Di"的CRC码,再应用算法1,就可以求出"Diˊ,O,O,O,O,O,O,O,Di"的CRC码。直接应用算法1可以求出C模块的逻辑表达式。P模块和C模块进行异或运算的长度远小于直接并行CRC电路中的ENC8模块,因此更有利于在高速电路中应用。
410G以太网接入系统中的CRC编解码器设计
10G以太网接人系统所需接口速率高达10Gbps以上。从降低系统功耗和芯片制造成本的角度考虑希望接口能工作在200MHz以下。采用并行化设计虽然可以降低系统时钟频率,但也从以下两方面增加了设计难度。首先,数据通路的并行程度越高,对它的控制就越复杂。系统采用8字节并行数据通路,则发送的以太网帧可能在8个并行字节中的任意一个位置上结束,控制逻辑的设计就必须考虑所有这些可能性并逐一做出相应的处理。其次,系统中的CRC编码器、扰码器等的设计须采用并行算法。为了满足IEEE802.3协议对以太网帧CRC编码的要求,实际的编解码器模块还需要能对输入输出信号进行任意字节数的求反运算。考虑到10G接入系统的复杂性,该模块功能应该高度集成化,以 《10G以太网系统中的并行CRC编解码器的设计(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/144946.html
Z1(n)=f(r,d[0:7]n[31,0]
Z2(n)=f(Z1,d[8:15])=f(f(r,d[0:7]),d{8:15])
…(3)
显然(3)还可以进一步化简。冗余的逻辑使得这种级联结构占用芯片面积大,且只能用于低速场合。对(3)进一步化简,可以得到Z2的最简异或表达式。同理可以得到Z3…Z8的表达式。Zl,Z2,…,Z8分别对应8比特、16比特、……、64比特的并行CRC运算表达式。具体表达式限于篇幅不在这里给出。Z8中最长的异或运算表达式有52项参加运算,如果使用4-异或门则只需要用三级,即能在一般CMOS工艺的一级传输延迟时间之内完成。当用于以太网接入系统时,因为以太网帧不一定结束在64比特边界,因此编码器应该有同时计算8、16、24、……、64比特并行编码的能力。具体电路如图3。因为一般情况下大量用到64比特并行编码,因此平时使能信号mux使其他7个编码模块不工作以降低功耗。在帧尾部根据具体情况使用这7个模块进行剩余字节的编码。
3流水线法
矩阵法和代入法本质上都是设计直接并行编码电路的方法,二者的最终效果是一样的。直接并行实现的CRC编码电路控制逻辑比较简单,但是需要进行复杂的组合逻辑运算。为了在更高频率下进行并行CRC编码,可以进一步用流水线的方法简化编码逻辑,所付出的代价是整个帧的处理延迟了8个时钟周期。图4给出了CRC编码的流水线实现。将并行输入的64比特分成7个字节,分别用D0、D1、……、D7表示。P模块(P0~P7)计算形如"Di,O,O,O,O,O,O,O,Di"的序列的CRC,其中Diˊ,是Di位置上的上一次输入。Diˊ的CRC码由端口R[31:0]输入,Di由端口D[7:0]输入,结果由Z[31:0]端口输出。
C模块(C1~C7)的输入是"D0,O,O,O,O,O,O,O,D0'和"D1ˊ,O,O,O,O,O,O,O,D1"的CRC(分别由端口R1和R2输入),输出是"D0ˊ,D1ˊ,O,O,O,O,O,O,D0,D1"CRC。求P的逻辑表达式时,重复应用算法1的推论,可以求出"Diˊ,O,O,O,O,O,O,Di"的CRC码,再应用算法1,就可以求出"Diˊ,O,O,O,O,O,O,O,Di"的CRC码。直接应用算法1可以求出C模块的逻辑表达式。P模块和C模块进行异或运算的长度远小于直接并行CRC电路中的ENC8模块,因此更有利于在高速电路中应用。
410G以太网接入系统中的CRC编解码器设计
10G以太网接人系统所需接口速率高达10Gbps以上。从降低系统功耗和芯片制造成本的角度考虑希望接口能工作在200MHz以下。采用并行化设计虽然可以降低系统时钟频率,但也从以下两方面增加了设计难度。首先,数据通路的并行程度越高,对它的控制就越复杂。系统采用8字节并行数据通路,则发送的以太网帧可能在8个并行字节中的任意一个位置上结束,控制逻辑的设计就必须考虑所有这些可能性并逐一做出相应的处理。其次,系统中的CRC编码器、扰码器等的设计须采用并行算法。为了满足IEEE802.3协议对以太网帧CRC编码的要求,实际的编解码器模块还需要能对输入输出信号进行任意字节数的求反运算。考虑到10G接入系统的复杂性,该模块功能应该高度集成化,以 《10G以太网系统中的并行CRC编解码器的设计(第4页)》