循环移位寄存器的改进的进位输出字计算制造技术

技术编号:3422984 阅读:310 留言:0更新日期:2012-04-11 18:40
一种从一个移位寄存器,例如一个CRC编码器,解码器或错误设陷电路计算进位输出字的方法,该移位寄存器在由一个生成程序多项式确定的位置处具有多个反馈抽头,其中长度K的进位输出字由下列公式计算:carryout_word=select_word.top_word_matrixcarryout_word是1xk行矢量,top_word_matrix是从该移位寄存器的顶部的K位计算的,而select.word是从该生成程序多项式确定的一个1xk行矢量。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及对循环移位寄存器的进位输出字计算,例如CRC编码器,解码器和错误设陷电路。这样,附图说明图1表示具有生成多项式的CRC编解码器G(X)=X3+X+1图1(a)表示CRC编码器,而图1(b)表示解码器。在这些电路的一般操作中,移位寄存器的内容(对编码器称为奇偶位,而对解码器称为校正子(syndrome))是按逐位方式移位的。对于校正子计算已提出逐字节地而不是逐位地移位该移位寄存器的内容。其公开在Jack Crenshaw的文章中,该文章发表在“EmbededSystems Programming,January 1992,Pages 34-40”上。在我们的未决(未公布)的专利申请0116157.9中“多位移位”被扩展到处理错误设备和错误检测。此外,建议这些处理以逐字方式而不以逐字节方式执行。该逐字CRC计算包括两个主要步骤,反馈字计算和寄存器内容更新。假定抽头数是L而字长度是K。该反馈字包括在电路左端丢失的第一个K位(见图1)。该反馈字可使用下列等式递归地计算fdbk_wordn=fdbk_wordn-1(fdbk_wordn-1>>tap1)(fdbk_wordn-1>>tap2)……(fdbk_wordn-1>>tapL)n=1,2,3……N取一个解码器例子fdbk_word0=current_syndrome_word,在上述内容中,syndrome_word是该移位寄存器的现存内容,而tapx可确定为相应抽头的阶和该生成程序多项式的最高阶之间的差。例如,给定一个生成程序多项式,G(X)=X6+X5+X3+X2+X1+1,则抽头位置tap0-6被确定为Tap0=0(相应X6),Tap1=1(相应X5)Tap2=3(相应X3),Tap3=4(相应X2)Tap4=5(相应X1),Tap5=6(相应X0)递归数(N)可使用下列等式确定N=(K-1)/tap1在取得该反馈字之后,该校正子字可使用下列公式更新new_sydrome=next_word…… 如下列计算将指出的那样,如果CRC编解码器具有大量反馈抽头,则反馈字的计算可能是费时的而且复杂,并且还占去不少的处理电能。这样,只要这种处理有可能进行得比较快则可能是有益的。事实上,定义“编码器”和“解码器”是有些任意的,因为它能用实例说明该两个移位寄存器在数学上是等效的,参见下列文章Lin/Costello“Error Control codingFundamentals andApplication”Prentice Hall 1983,Pages100 and 101,figs 4.6and 4.7。由于Select_word仅依赖于生成程序多项式,所以可以单独地计算(例如脱机)和储存它,和表示出有效的节省处理电能并因此节省时间。另一方面该top_word_matrix需要按照输入的二进制数据进行计算。在从属权利要求中描述本专利技术的优选特征。给定生成程序多项式,G(X)=X6+X5+X3+X2+X1+1和一个接收到的二进制序列10011101101101如图2中所示,6位校正子是由逐位地计算从而给出结果111101。也可使用逐字节方法计算同样的校正子反馈字节计算使用等式,计算的递归数为Recursion_num=(8-1)/1=7fdbk_word1=fdbk_word0(fdbk_word0>>1)(fdbk_word0>>3)(fdbk_wordn-1>>4)(fdbk_word0>>5)(fdbk_word0>>6)=100111010100111000010011000010010000010000000010=11001111重复以上计算,接着得到下列结果fdbk_word2=10111000,fdbk_word3=11111111,fdbk_word4=10010100,fdbk_word5=11000011,fdbk_word6=10110011,fdbk_word7=11110000fdbk_word=fdbk_word7=11110000置换该fdbk_word于等式中,寄存器内容被更新为new_register_content=next_word=101101000000000000000000000000001000000011000000=11110100该最高有效6位表示新的校正子。该结果准确匹配图2中所指示的结果。如在上例中所表示的,如果一个CRC编解码器包括大量反馈抽头,则进位输出字的计算可能相当地复杂和费时。为加速反馈字的运行时间计算,专利技术了一种新技术,从而能用一个步骤而不是许多递归计算该进位输出字。通常该进位输出字是顶部字的一个函数(见图2),而且可用下列等式描述它们的关系carryout_word=select_word.top_word_matrix这里,carryout_word表示一个1×K行矢量,包括K个反馈位。Top_word_matrix是一个K×K矩阵,其包括K个右移位的顶部字,表示如下 top_word表示一个1×K行矢量。Select_word是可以使用下列等式脱机计算的一个常数1×16行矢量。 m=1,2,3……M,select_word0=generator_polynomial_word M是要求来估算选择字的递归数,它是使用下列等式计算的M=((K-1)/tap1)-1generator_polynomial_word也是代表生成程序多项式的一个1×K行矢量。例如,如果K等于8和生成程序多项式G(X)=X6+X5+X3+X2+X1+1,则generator_polynomial_word被确定为。例2在下列例子中,应用了以上表示的新技术,使得能够仅仅在一个步骤中完成一个逐字节校正子更新给定生成程序多项式,G(X)=X6+X5+X3+X2+X1+1(如例1),则generator_polynomial_word被确定为。使用等式,和,相应于该特定的生成程序多项式的select_word如下计算M=((8-1)/1)-1=6select_word1=[11011110]·1101111001101111001101110001101100001101000001110000001100000001=]]>接着,select_word2=,select_word3=,select_word4=,select_word5=,以及,select_word=select_word6=。使用和例1中相同的接收的序列,10011101101101,使用等式能够仅仅在一个步骤中计算该反馈字。fdbk_word=·1001110101001110001001110001001100001001000001000000001000000001=]]>以上所示结果准确地匹配例1中计算的fdbk_word。已出现一种新技术,允许用一个预计算的select_word仅仅在一个步骤中计算反馈字或更一般地计算一个进位输出字。在逐字CR本文档来自技高网...

【技术保护点】
一种从一个循环移位寄存器计算长度K的进位输出字的方法,该循环移位寄存器在由一个生成程序多项式确定的位置具有反馈抽头,其中该进位输出字是使用下列等式计算的carryout_word=select_word.top_word_matrix 其中top_word_matrix=***其中该top_word包括一个1×K行矢量和其中:select_word↓[m]=generator_polynormial_word.***with m=1,2,3,………M其中 m=1,2,3,……M和M=(K-1/tap↓[1])-1,其中tap↓[1]是在该生成程序多项式中最高和次高阶项的阶之间的差并且〉〉表示在对该移位寄存器的移位方向相反方向的移位。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:匡文韬
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

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

1
相关领域技术
  • 暂无相关专利