JP6162429B2 - Hierarchical arithmetic circuit - Google Patents

Hierarchical arithmetic circuit Download PDF

Info

Publication number
JP6162429B2
JP6162429B2 JP2013038151A JP2013038151A JP6162429B2 JP 6162429 B2 JP6162429 B2 JP 6162429B2 JP 2013038151 A JP2013038151 A JP 2013038151A JP 2013038151 A JP2013038151 A JP 2013038151A JP 6162429 B2 JP6162429 B2 JP 6162429B2
Authority
JP
Japan
Prior art keywords
bit
arithmetic circuit
hierarchical
output
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013038151A
Other languages
Japanese (ja)
Other versions
JP2014165892A (en
Inventor
鈴木 孝昌
孝昌 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2013038151A priority Critical patent/JP6162429B2/en
Publication of JP2014165892A publication Critical patent/JP2014165892A/en
Application granted granted Critical
Publication of JP6162429B2 publication Critical patent/JP6162429B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、多ビットの入力データを既約多項式で除算してその余りをCRC(Cyclic Redundancy Check)符号として出力するCRC演算回路に係り、特に全体を階層構造に構成した演算回路に関する。   The present invention relates to a CRC operation circuit that divides multi-bit input data by an irreducible polynomial and outputs the remainder as a CRC (Cyclic Redundancy Check) code, and more particularly to an operation circuit that has a hierarchical structure as a whole.

CRCは、データ伝送の途中で発生するビット誤りを検出する方式の1つであり、元の情報を既約多項式(自分以外で割り切れない多項式)で除算した余りを符号とするものである。このCRCは圧縮(情報のビット数を減らす)ために利用できる。例えば、製造した半導体装置のテスト結果の情報を圧縮して出力するために利用できる。具体的には、例えば、128ビットのテスト結果を8ビットに圧縮して、CRC符号として出力することが行われる。テスト結果に何らかの異常がある場合、この8ビットのCRC符号が期待値と異なった値になるので、128ビットのテスト結果全体に代えて8ビットのCRC符号を出力して、期待値と比較することにより、異常の有無の判断を行うことができる。   CRC is one of the methods for detecting bit errors that occur in the middle of data transmission, and uses a remainder obtained by dividing original information by an irreducible polynomial (a polynomial that is not divisible by others) as a code. This CRC can be used for compression (reducing the number of bits of information). For example, it can be used to compress and output test result information of a manufactured semiconductor device. Specifically, for example, a 128-bit test result is compressed to 8 bits and output as a CRC code. If there is any abnormality in the test result, the 8-bit CRC code is different from the expected value. Therefore, instead of the entire 128-bit test result, an 8-bit CRC code is output and compared with the expected value. Therefore, it can be determined whether there is an abnormality.

例えば、128ビットの入力データを8ビットの既約多項式「X7+X4+1」で除算して8ビットに圧縮したCRC符号を出力させるCRC演算回路は、図4に示すように構成される。SELはセレクタ、FF71〜FF78はシフトレジスタを構成するフリップフロップ、XOR71〜73は排他的論理和回路である。この回路では、シリアルの入力データ128ビット分を入力してシフトさせることにより、8ビットのCRC符号を生成することができる。これに類似の回路として、特許文献1の第3図に、入力データを既約多項式「X6+X+1」で除算するCRC演算回路が記載されている。 For example, a CRC calculation circuit that outputs a CRC code that is obtained by dividing 128-bit input data by an 8-bit irreducible polynomial “X 7 + X 4 +1” and compressing it to 8 bits is configured as shown in FIG. SEL is a selector, FF71 to FF78 are flip-flops constituting a shift register, and XOR71 to 73 are exclusive OR circuits. This circuit can generate an 8-bit CRC code by inputting and shifting serial input data of 128 bits. As a circuit similar to this, FIG. 3 of Patent Document 1 describes a CRC calculation circuit that divides input data by an irreducible polynomial “X 6 + X + 1”.

また、この特許文献1の第1図には、第3図で行われる処理を低速で実現するための構成が記載されている。これは、6ビットのシリアルデータを6ビットのパラレルデータに変換し、6ビットのCRC符号を生成するものであり、論理段数2段の演算回路で構成されている。   Further, FIG. 1 of Patent Document 1 describes a configuration for realizing the processing performed in FIG. 3 at a low speed. This converts 6-bit serial data into 6-bit parallel data to generate a 6-bit CRC code, and is composed of an arithmetic circuit having two logic stages.

特開昭64−7716号公報Japanese Unexamined Patent Publication No. 64-7716

ところが、図4に示したCRC演算回路は、128ビットのデータを処理するために、128クロックサイクルを必要とし、処理に時間がかかる問題がある。また、特許文献1の第1図に示されたCRC演算回路では、段数を2段に少なくできるのは、既約多項式を固定とし、かつ、入力データと同じビット数のCRC符号を生成するからである。任意の既約多項式の利用を可能にし、かつ、入力データより少ないビット数のCRC符号を生成するためには、さらなる処理段数が必要となる。また、この従来技術では、連続的に入力されるシリアルデータを処理することを前提としており、処理しやすいビット数毎にパラレルデータに変換して処理するものであり、大きなビット数のデータが並列に入力される場合の処理については記載されていない。   However, the CRC calculation circuit shown in FIG. 4 requires 128 clock cycles in order to process 128-bit data, and there is a problem that processing takes time. Further, in the CRC calculation circuit shown in FIG. 1 of Patent Document 1, the number of stages can be reduced to two because the irreducible polynomial is fixed and a CRC code having the same number of bits as the input data is generated. It is. In order to make it possible to use an arbitrary irreducible polynomial and to generate a CRC code having a smaller number of bits than input data, an additional number of processing stages is required. In addition, in this prior art, it is assumed that serial data that is continuously input is processed, and is converted into parallel data for each easy-to-process number of bits. There is no description of the process when the input is made to.

本発明の目的は、大きなビット数の並列入力データであっても少ないクロック数で高速にCRC符号を生成できるようにした階層構造の演算回路を提供することである。   An object of the present invention is to provide an arithmetic circuit having a hierarchical structure capable of generating a CRC code at high speed with a small number of clocks even for parallel input data having a large number of bits.

上記目的を達成するために、請求項1にかかる発明の階層構造の演算回路は、m1ビット(m1は3以上の整数)の圧縮対象データが第1入力データとして並列に入力され、n1−1次(n1は2以上でm1より小さい整数)の既約多項式を利用して前記第1入力データを圧縮したn1ビットのCRC符号を並列に出力する第1階層単位演算回路を、複数個備え、全体でm2ビット(m2は3以上の整数)の第1階層出力データを並列に出力する第1階層の演算回路と、前記m2ビットの第1階層出力データの一部であるm3ビット(m3は3以上の整数)の第2入力データが並列に入力され、n2−1次(n2は2以上でm3より小さい整数)の既約多項式を利用して前記第2入力データを圧縮したn2ビットのCRC符号を並列に出力する第2階層単位演算回路を、前記第1階層単位演算回路の数よりも少ない数の複数個備え、当該複数個の第2階層単位演算回路に入力される前記第2入力データは互いに異なり、全体でm4ビット(m4は3以上の整数)の第2階層出力データを並列に出力する第2階層の演算回路と、前記mビットの第階層出力データが第3入力データとして並列に入力され、n3−1次(nは2以上でmより小さい整数)の既約多項式を利用して前記第3入力データを圧縮したnビットのCRC符号を並列に出力する第階層単位演算回路を1個備える、第階層の演算回路と、を備えたことを特徴とする。
請求項2にかかる発明は、請求項1記載の階層構造の演算回路において、クロック信号の第1のエッジで前記第1入力データを保持して前記第1階層単位演算回路に入力する入力側レジスタと、前記クロック信号の次のエッジで前記第2入力データを保持して前記第2階層単位演算回路に入力する第1中間レジスタと、前記クロック信号のさらに次のエッジで前記第階層出力データを保持して前記第階層単位演算回路に入力する第2中間レジスタと、前記クロック信号のさらに次のエッジで前記nビットのCRC符号を保持する出力側レジスタと、をさらに備えることを特徴とする。
請求項3にかかる発明は、請求項1または2記載の階層構造の演算回路において、前記第1階層単位演算回路、前記第2階層単位演算回路および前記階層単位演算回路のそれぞれが、0ビット目からmi−1ビット目の入力データのうちのmi−ni−1ビット目からmi−1ビット目まで(i=1または2または3)が入力され、前記既約多項式の0次からni−1次までのそれぞれの項の係数と前記入力データのmi−1ビット目との積と、前記入力データのmi−ni−1ビット目からmi−2ビット目までのそれぞれとの排他論理和を、0ビット目からni−1ビット目までの出力として出力する第1段の演算回路段と、それぞれが、前段の演算回路段の出力と、前記0ビット目からmi−1ビット目の入力データのうちのmi−ni−kビット目(k=2〜mi−ni)とが入力され、前記既約多項式の0次からni−1次までのそれぞれの項の係数と前記前段の演算回路段のni−1ビット目の出力との積と、前記入力データのmi−ni−kビット目および前記前段の演算回路段の出力の0ビット目からni−2ビット目までのそれぞれとの排他論理和を、0ビット目からni−1ビット目までの出力として出力する第k段目の演算回路段と、を有し、mi−ni段目の演算回路段の出力の前記0ビット目からni−1ビット目までを前記niビットCRC符号として出力することを特徴とする。
請求項4にかかる発明は、請求項1ないし3のいずれかに記載の階層構造の演算回路において、前記複数の第1階層単位演算回路のすべてのm1は互いに等しく、前記第2階層単位演算回路のすべてのm3は互いに等しく、m1およびm3は、前記第3階層単位演算回路のm4と等しく、前記複数の第1階層単位演算回路のすべてのn1は互いに等しく、前記第2階層単位演算回路のすべてのn2は互いに等しく、n1およびn2は、第3階層単位演算回路のn3と等しいことを特徴とする。
請求項5にかかる発明は、請求項4記載の階層構造の演算回路において、前記第1階層演算回路が個の前記1階層単位演算回路を備え、前記第2階層演算回路が2個の前記2階層単位演算回路を備え、前記1階層単位演算回路のそれぞれにおいてm1=n1×2であり、前記2階層単位演算回路のそれぞれにおいてm3=n2×2であり、前記第3階層単位演算回路においてm4=n3×2であることを特徴とする。
To achieve the above object, according to the hierarchical arithmetic circuit of the first aspect of the present invention, compression target data of m1 bits (m1 is an integer of 3 or more) is input in parallel as first input data, and n1 −1 A plurality of first hierarchical unit arithmetic circuits that output in parallel n1 bit CRC codes obtained by compressing the first input data using an irreducible polynomial of the following (n1 is an integer greater than or equal to 2 and less than m1); A first-layer arithmetic circuit that outputs m2-bit (m2 is an integer of 3 or more) first-layer output data in parallel, and m3 bits (m3 is a part of the m2-bit first-layer output data) Second input data of an integer greater than or equal to 3 is input in parallel, and the second input data is compressed using an irreducible polynomial of n2-1 order (n2 is an integer greater than or equal to 2 and less than m3). Output CRC code in parallel A plurality of second hierarchical unit arithmetic circuits having a number smaller than the number of the first hierarchical unit arithmetic circuits, and the second input data input to the plurality of second hierarchical unit arithmetic circuits are different from each other. an operation circuit of the second hierarchy and the second hierarchy output data of the total m4 bits (m4 is an integer of 3 or more) and outputs in parallel, the second layer output data of the m 4 bits inputted in parallel as the third input data A third layer for outputting in parallel n 3 -bit CRC codes obtained by compressing the third input data using an irreducible polynomial of n 3-1 order (n 3 is an integer greater than or equal to 2 and less than m 4 ) And a third level arithmetic circuit including one unit arithmetic circuit.
According to a second aspect of the present invention, in the hierarchical arithmetic circuit according to the first aspect, an input-side register that holds the first input data at the first edge of the clock signal and inputs the first input data to the first hierarchical unit arithmetic circuit When the clock signal of the next and the first intermediate register to enter holds the second input data to said second hierarchical unit arithmetic circuits at the edge, further wherein the second layer output data at the next edge of the clock signal wherein a second intermediate register for input to the third hierarchical unit arithmetic circuit holding an output-side register for holding further CRC code of the n 3 bits at the next edge of the clock signal, further comprising a a And
Such invention in claim 3, the arithmetic circuit of the hierarchical structure of claim 1 or 2, wherein the first layer unit arithmetic circuits, each of the second hierarchical unit arithmetic circuit and the third hierarchical unit arithmetic circuit, 0 Of the input data from the bit to the mi-1 bit, the data from the mi-ni-1 bit to the mi-1 bit (i = 1, 2 or 3 ) are input, and the 0th to ni of the irreducible polynomial are input. Exclusive OR of the product of the coefficient of each term up to −1 order and the mi−1 bit of the input data and each of the mi−ni−1 bit to mi−2 bit of the input data Are output as outputs from the 0th bit to the (ni-1) th bit, respectively, the output of the previous operation circuit stage and the input from the 0th bit to the (mi-1) th bit. Mi of the data -Ni-k-th bit (k = 2 to mi-ni) is input, the coefficients of the terms of the irreducible polynomial from the 0th order to the ni-1th order and ni-1 of the preceding arithmetic circuit stage. The exclusive OR of the product of the output of the bit and the mi-ni-k bit of the input data and the 0th to ni-2th bits of the output of the preceding arithmetic circuit stage is 0 A k-th arithmetic circuit stage that outputs as an output from the bit to the ni-1 bit, and outputs from the 0th bit to the ni-1 bit of the output of the mi-ni arithmetic circuit stage. Are output as the ni-bit CRC code.
According to a fourth aspect of the present invention, in the hierarchical arithmetic circuit according to any one of the first to third aspects, all m1 of the plurality of first hierarchical unit arithmetic circuits are equal to each other, and the second hierarchical unit arithmetic circuit Are equal to each other, m1 and m3 are equal to m4 of the third hierarchical unit arithmetic circuit, all n1 of the plurality of first hierarchical unit arithmetic circuits are equal to each other, and all n2 are equal to each other, n1 and n2 are characterized n3 and equal Ikoto third layer unit arithmetic circuit.
According to a fifth aspect of the present invention, in the arithmetic circuit having the hierarchical structure according to the fourth aspect, the first hierarchical arithmetic circuit includes four one-layer unit arithmetic circuits, and the second hierarchical arithmetic circuit includes two of the two hierarchical arithmetic circuits. A two-layer unit arithmetic circuit, wherein each of the one-layer unit arithmetic circuits is m1 = n1 × 2, each of the two-layer unit arithmetic circuits is m3 = n2 × 2, and in the third-layer unit arithmetic circuit, It is characterized by m4 = n3 × 2 .

本発明によれば、大きなビット数の並列入力データであっても少ないクロック数で高速にCRC符号を生成できる。また、任意の既約多項式を入力可能であるので、多種の既約多項式に対応できる。また、同一構成の単位演算回路を複数使用した階層構造とすることができるので、入力ビット数の増大に対して容易に対応することができる。   According to the present invention, a CRC code can be generated at high speed with a small number of clocks even for parallel input data having a large number of bits. In addition, since any irreducible polynomial can be input, it can correspond to various irreducible polynomials. In addition, since a hierarchical structure using a plurality of unit arithmetic circuits having the same configuration can be used, it is possible to easily cope with an increase in the number of input bits.

本発明の実施例のCRC演算回路の単位演算回路の回路図である。It is a circuit diagram of the unit arithmetic circuit of the CRC arithmetic circuit of the Example of this invention. 本発明の実施例のCRC演算回路の回路図である。It is a circuit diagram of the CRC arithmetic circuit of the Example of this invention. 図1の単位演算回路において、既約多項式が「X7+X4+1」のときの単位演算回路の回路図である。2 is a circuit diagram of a unit arithmetic circuit when the irreducible polynomial is “X 7 + X 4 +1” in the unit arithmetic circuit of FIG. 1. FIG. 既約多項式が「X7+X4+1」のときの従来のCRC演算回路の回路図である。It is a circuit diagram of a conventional CRC arithmetic circuit when the irreducible polynomial is “X 7 + X 4 +1”.

図1に本発明の実施例の階層構造の演算回路の単位演算回路10を示す。この単位演算回路10は、16ビットの入力データを圧縮して8ビットのCRC符号を出力するCRC(24,16)回路であり、共通クロックの立上りに同期して16ビットの入力データDin[15:0]を取り込む16個の入力側レジスタを構成するフリップフロップFF1〜FF16と、64個のアンド回路AND1〜AND64と、64個の排他的論理和回路XOR1〜XOR64から構成される。   FIG. 1 shows a unit arithmetic circuit 10 of a hierarchical arithmetic circuit according to an embodiment of the present invention. The unit arithmetic circuit 10 is a CRC (24, 16) circuit that compresses 16-bit input data and outputs an 8-bit CRC code. The unit arithmetic circuit 10 synchronizes with the rising edge of the common clock, and the 16-bit input data Din [15 : 0], 16 flip-flops FF1 to FF16 constituting the input side register, 64 AND circuits AND1 to AND64, and 64 exclusive OR circuits XOR1 to XOR64.

1段目の演算回路11は、アンド回路AND1〜AND8と排他的論理和回路XOR1〜XOR8により構成されている。アンド回路AND1〜AND8は、最高次の入力データDin[15]と、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)とのそれぞれの積を演算する。排他的論理和回路XOR1〜XOR8は、そのアンド回路AND1〜AND8の出力データと入力データDin[7]〜Din[14]とのそれぞれの排他的論理和を演算する。   The first stage arithmetic circuit 11 includes AND circuits AND1 to AND8 and exclusive OR circuits XOR1 to XOR8. The AND circuits AND1 to AND8 include the highest order input data Din [15] and the coefficients (a, b, c, d, e, f, g, Each product with h) is calculated. The exclusive OR circuits XOR1 to XOR8 calculate the exclusive OR of the output data of the AND circuits AND1 to AND8 and the input data Din [7] to Din [14].

2段目の演算回路12は、アンド回路AND9〜AND16と排他的論理和回路XOR9〜XOR16により構成されている。アンド回路AND9〜AND16は、前段の排他的論理和回路XOR8の出力データと、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)とのそれぞれの積を演算する。排他的論理和回路XOR9〜XOR16は、そのアンド回路AND9〜AND16の出力データと入力データDin[6]および前段の排他的論理和回路XOR1〜XOR7とのそれぞれの排他的論理和を演算する。   The second stage arithmetic circuit 12 includes AND circuits AND9 to AND16 and exclusive OR circuits XOR9 to XOR16. The AND circuits AND9 to AND16 include the output data of the exclusive OR circuit XOR8 in the preceding stage and the coefficients (a, b, c, d, e, f, Each product with g, h) is calculated. The exclusive OR circuits XOR9 to XOR16 calculate the exclusive OR of the output data of the AND circuits AND9 to AND16, the input data Din [6], and the exclusive OR circuits XOR1 to XOR7 in the previous stage.

3段目の演算回路13は、アンド回路AND17〜AND24と排他的論理和回路XOR17〜XOR24により構成されている。アンド回路AND17〜AND24は、前段の排他的論理和回路XOR16の出力データと、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)とのそれぞれの積を演算する。排他的論理和回路XOR17〜XOR24は、そのアンド回路AND17〜AND24の出力データと入力データDin[5]および前段の排他的論理和回路XOR9〜XOR15とのそれぞれの排他的論理和を演算する。   The third stage arithmetic circuit 13 includes AND circuits AND17 to AND24 and exclusive OR circuits XOR17 to XOR24. The AND circuits AND17 to AND24 include the output data of the exclusive OR circuit XOR16 in the preceding stage and the coefficients (a, b, c, d, e, f, Each product with g, h) is calculated. The exclusive OR circuits XOR17 to XOR24 calculate the exclusive OR of the output data of the AND circuits AND17 to AND24, the input data Din [5], and the preceding exclusive OR circuits XOR9 to XOR15.

以下、同様に、4段目の演算回路14はアンド回路AND25〜AND32と排他的論理和回路XOR25〜XOR32により構成され、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)と、入力データDin[4]と、3段目の演算回路13の排他的論理和回路の出力データを入力して、同様の演算を行う。   Similarly, the fourth-stage arithmetic circuit 14 is composed of AND circuits AND25 to AND32 and exclusive OR circuits XOR25 to XOR32, and the coefficients (a , B, c, d, e, f, g, h), input data Din [4], and output data of the exclusive OR circuit of the third stage arithmetic circuit 13 are input, and the same operation is performed. Do.

また、5段目の演算回路15はアンド回路AND33〜AND40と排他的論理和回路XOR33〜XOR40により構成され、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)と、入力データDin[3]と、4段目の演算回路14の排他的論理和回路の出力データを入力して、同様の演算を行う。   The fifth-stage arithmetic circuit 15 includes AND circuits AND33 to AND40 and exclusive OR circuits XOR33 to XOR40. The coefficients (a, b, c, d, e, f, g, h), the input data Din [3], and the output data of the exclusive OR circuit of the fourth stage arithmetic circuit 14 are input, and the same calculation is performed.

また、6段目の演算回路16はアンド回路AND41〜AND48と排他的論理和回路XOR41〜XOR48により構成され、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)と、入力データDin[2]と、5段目の演算回路15の排他的論理和回路の出力データを入力して、同様の演算を行う。   The sixth stage arithmetic circuit 16 includes AND circuits AND41 to AND48 and exclusive OR circuits XOR41 to XOR48, and the coefficients (a, b, c, d, e, f, g, h), input data Din [2], and output data of the exclusive OR circuit of the fifth stage arithmetic circuit 15 are input, and the same calculation is performed.

また、7段目の演算回路17はアンド回路AND49〜AND56と排他的論理和回路XOR49〜XOR56により構成され、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)と、入力データDin[1]と、6段目の演算回路16の排他的論理和回路の出力データを入力して、同様の演算を行う。   The seventh stage arithmetic circuit 17 is composed of AND circuits AND49 to AND56 and exclusive OR circuits XOR49 to XOR56, and the coefficients (a, b, c, d, e, f, g, h), the input data Din [1], and the output data of the exclusive OR circuit of the sixth stage arithmetic circuit 16 are input, and the same calculation is performed.

また、8段目の演算回路18はアンド回路AND57〜AND64と排他的論理和回路XOR57〜XOR64により構成され、8ビットの既約多項式の0次から7次までの項の係数(a,b,c,d,e,f,g,h)と、入力データDin[0]と、7段目の演算回路17の排他的論理和回路の出力データを入力して、同様の演算を行う。   The eighth-stage arithmetic circuit 18 is composed of AND circuits AND57 to AND64 and exclusive OR circuits XOR57 to XOR64, and the coefficients (a, b, c, d, e, f, g, h), input data Din [0], and output data of the exclusive OR circuit of the seventh stage arithmetic circuit 17 are input, and the same calculation is performed.

このように、図1の単位演算回路10では、フリップフロップFF1〜FF16は入力データDin[0]〜Din[15]を取り込む初段のみであり、8段分の演算回路11〜18ではレジスタを使用しないので、1クロックで処理することが出来、高速化が可能となる。   In this way, in the unit arithmetic circuit 10 of FIG. 1, the flip-flops FF1 to FF16 are only the first stage that takes in the input data Din [0] to Din [15], and the arithmetic circuits 11 to 18 for eight stages use registers. Therefore, processing can be performed with one clock, and the speed can be increased.

本実施例では、例えば入力ビット数が128ビットの場合は、図2に示すように、図1に示した単位演算回路10を10A,10B,10C,10Dのように階層構造に接続して、4段接続とし、128ビット→64ビット→32ビット→16ビット→8ビットの圧縮を行い、最終箇所に8個のフリップフロップで構成された出力レジスタ20を接続する。このとき、1段目の8個の単位演算回路10Aで1クロック、2段目の4個の単位演算回路10Bで1クロック、3段目の2個の単位演算回路10Cで1クロック、4段目の1個の単位演算回路10Dで1クロック、レジスタ20で1クロックが要求されるのみである。よって、合計で5クロックで128ビットの入力データから8ビットのCRC符号を生成することができる。図4で説明したCRC回路が8ビットのCRC符号を生成するために128クロックが必要であったのと比較すると、ほぼ25倍も高速化できる。   In this embodiment, for example, when the number of input bits is 128 bits, as shown in FIG. 2, the unit arithmetic circuits 10 shown in FIG. 1 are connected in a hierarchical structure such as 10A, 10B, 10C, 10D, 4-stage connection is performed, 128 bits → 64 bits → 32 bits → 16 bits → 8 bits are compressed, and an output register 20 composed of 8 flip-flops is connected at the final location. At this time, one clock is generated by eight unit arithmetic circuits 10A in the first stage, one clock is generated by four unit arithmetic circuits 10B in the second stage, and one clock is generated by two unit arithmetic circuits 10C in the third stage. Only one clock is required for the unit arithmetic circuit 10D of the eye and one clock for the register 20. Therefore, an 8-bit CRC code can be generated from 128-bit input data in 5 clocks in total. Compared with the case where 128 clocks are required for the CRC circuit described in FIG. 4 to generate an 8-bit CRC code, the speed can be increased by about 25 times.

図1に示した単位演算回路10を、そのまま、半導体集積回路内に配置し、図2のCRC演算回路を構成することも可能である。この場合には、任意の既約多項式を利用したCRC符号生成を行うことが可能である。しかし、半導体集積回路の設計時に、利用する既約多項式を決定することが可能な場合には、図1の単位演算回路10から、不要な論理要素を省略し、簡素な回路構成で半導体集積回路内に配置することが可能である。   The unit arithmetic circuit 10 shown in FIG. 1 can be arranged as it is in the semiconductor integrated circuit to constitute the CRC arithmetic circuit of FIG. In this case, CRC code generation using an arbitrary irreducible polynomial can be performed. However, if the irreducible polynomial to be used can be determined when designing the semiconductor integrated circuit, unnecessary logic elements are omitted from the unit arithmetic circuit 10 of FIG. Can be placed inside.

図3に、一例として、16ビットの入力データを8ビットの既約多項式「X7+X4+1」で除算して8ビットのCRC符号を出力させるための単位演算回路10’を示す。このときは、a=1,b=0,c=0,d=0,e=1,f=0,g=0,h=1となるので、アンド回路は64個が全て省略され、排他的論理和回路も40個が省略された簡素な回路構成となる。 FIG. 3 shows, as an example, a unit arithmetic circuit 10 ′ for dividing 16-bit input data by an 8-bit irreducible polynomial “X 7 + X 4 +1” and outputting an 8-bit CRC code. At this time, since a = 1, b = 0, c = 0, d = 0, e = 1, f = 0, g = 0, h = 1, all 64 AND circuits are omitted and exclusive. The logical OR circuit also has a simple circuit configuration in which 40 are omitted.

10,10’,10A〜10D:単位演算回路
FF1〜FF16,FF71〜FF78:フリップフロップ
AND1〜AND64:アンド回路
XOR1〜XOR64,XOR71〜XOR73:排他的論理和回路
10, 10 ', 10A to 10D: unit arithmetic circuits FF1 to FF16, FF71 to FF78: flip-flops AND1 to AND64: AND circuits XOR1 to XOR64, XOR71 to XOR73: exclusive OR circuits

Claims (5)

m1ビット(m1は3以上の整数)の圧縮対象データが第1入力データとして並列に入力され、n1−1次(n1は2以上でm1より小さい整数)の既約多項式を利用して前記第1入力データを圧縮したn1ビットのCRC符号を並列に出力する第1階層単位演算回路を、複数個備え、全体でm2ビット(m2は3以上の整数)の第1階層出力データを並列に出力する第1階層の演算回路と、
前記m2ビットの第1階層出力データの一部であるm3ビット(m3は3以上の整数)の第2入力データが並列に入力され、n2−1次(n2は2以上でm3より小さい整数)の既約多項式を利用して前記第2入力データを圧縮したn2ビットのCRC符号を並列に出力する第2階層単位演算回路を、前記第1階層単位演算回路の数よりも少ない数の複数個備え、当該複数個の第2階層単位演算回路に入力される前記第2入力データは互いに異なり、全体でm4ビット(m4は3以上の整数)の第2階層出力データを並列に出力する第2階層の演算回路と、
前記mビットの第階層出力データが第3入力データとして並列に入力され、n3−1次(nは2以上でmより小さい整数)の既約多項式を利用して前記第3入力データを圧縮したnビットのCRC符号を並列に出力する第階層単位演算回路を1個備える、第階層の演算回路と、
を備えたことを特徴とする階層構造の演算回路。
Data to be compressed of m1 bits (m1 is an integer greater than or equal to 3) is input in parallel as first input data, and the first order data is obtained using an irreducible polynomial of n1 −1 order (n1 is an integer greater than or equal to 2 and less than m1) . A plurality of first layer unit arithmetic circuits for outputting n1 bit CRC codes in which one input data is compressed in parallel, a plurality of first layer output data of m2 bits (m2 is an integer of 3 or more) are output in parallel. A first level arithmetic circuit that
Second input data of m3 bits (m3 is an integer greater than or equal to 3), which is a part of the m2 bit first layer output data, is input in parallel, and n2-1 order (n2 is an integer greater than or equal to 2 and less than m3). A plurality of second-layer unit arithmetic circuits that output in parallel n2-bit CRC codes obtained by compressing the second input data using an irreducible polynomial of And the second input data input to the plurality of second hierarchical unit arithmetic circuits are different from each other, and the second input data having a total of m4 bits (m4 is an integer of 3 or more) is output in parallel. A hierarchical arithmetic circuit;
The m 4 -bit second- layer output data is input in parallel as third input data, and the third third-order output data is obtained using an irreducible polynomial of n 3−1 order (n 3 is an integer greater than or equal to 2 and less than m 4 ) . comprising one third hierarchical unit arithmetic circuit for outputting a CRC code of n 3 bits obtained by compressing input data in parallel, the arithmetic circuit in the third layer,
An arithmetic circuit having a hierarchical structure characterized by comprising:
クロック信号の第1のエッジで前記第1入力データを保持して前記第1階層単位演算回路に入力する入力側レジスタと、前記クロック信号の次のエッジで前記第2入力データを保持して前記第2階層単位演算回路に入力する第1中間レジスタと、前記クロック信号のさらに次のエッジで前記第階層出力データを保持して前記第階層単位演算回路に入力する第2中間レジスタと、前記クロック信号のさらに次のエッジで前記nビットのCRC符号を保持する出力側レジスタと、をさらに備えることを特徴とする請求項1記載の階層構造の演算回路。 An input side register that holds the first input data at the first edge of the clock signal and inputs the first input data to the first hierarchical unit arithmetic circuit, and holds the second input data at the next edge of the clock signal. a first intermediate register to be input to the second layer unit arithmetic circuit, a second intermediate register for the clock signal further holds the second hierarchical output data at the next edge of the input to the third hierarchical unit arithmetic circuit, 2. The hierarchical arithmetic circuit according to claim 1, further comprising: an output-side register that holds the n 3 -bit CRC code at a next edge of the clock signal. 3 . 前記第1階層単位演算回路、前記第2階層単位演算回路および前記階層単位演算回路のそれぞれが、
0ビット目からmi−1ビット目の入力データのうちのmi−ni−1ビット目からmi−1ビット目まで(i=1または2または3)が入力され、前記既約多項式の0次からni−1次までのそれぞれの項の係数と前記入力データのmi−1ビット目との積と、前記入力データのmi−ni−1ビット目からmi−2ビット目までのそれぞれとの排他論理和を、0ビット目からni−1ビット目までの出力として出力する第1段の演算回路段と、
それぞれが、前段の演算回路段の出力と、前記0ビット目からmi−1ビット目の入力データのうちのmi−ni−kビット目(k=2〜mi−ni)とが入力され、前記既約多項式の0次からni−1次までのそれぞれの項の係数と前記前段の演算回路段のni−1ビット目の出力との積と、前記入力データのmi−ni−kビット目および前記前段の演算回路段の出力の0ビット目からni−2ビット目までのそれぞれとの排他論理和を、0ビット目からni−1ビット目までの出力として出力する第k段目の演算回路段と、を有し、
mi−ni段目の演算回路段の出力の前記0ビット目からni−1ビット目までを前記niビットCRC符号として出力することを特徴とする請求項1または2記載の階層構造の演算回路。
The first layer unit arithmetic circuits, each of the second hierarchical unit arithmetic circuit and the third hierarchical unit arithmetic circuit,
Of the input data from the 0th bit to the mi-1th bit, the data from the mi-ni-1th bit to the mi-1th bit (i = 1, 2 or 3 ) are input, and from the 0th order of the irreducible polynomial Exclusive logic of the product of the coefficient of each term up to the ni-1 order and the mi-1 bit of the input data and each of the mi-ni-1 bit to mi-2 bit of the input data A first arithmetic circuit stage that outputs the sum as an output from the 0th bit to the ni-1th bit;
Each of them receives the output of the preceding arithmetic circuit stage and the mi-ni-k bit (k = 2 to mi-ni) of the input data from the 0th bit to the mi-1 bit, The product of the coefficient of each term of the irreducible polynomial from the 0th order to the ni-1th order and the output of the ni-1 bit of the preceding arithmetic circuit stage, the mi-ni-k bit of the input data, and The k-th operation time for outputting the exclusive OR with the 0th bit to the ni-2th bit of the output of the previous arithmetic circuit stage as the output from the 0th bit to the ni-1th bit. A road step,
3. The hierarchical arithmetic circuit according to claim 1, wherein the output from the 0th bit to the ni−1th bit of the output of the mi-ni-th arithmetic circuit stage is output as the ni-bit CRC code.
前記複数の第1階層単位演算回路のすべてのm1は互いに等しく、前記第2階層単位演算回路のすべてのm3は互いに等しく、m1およびm3は、前記第3階層単位演算回路のm4と等しく、前記複数の第1階層単位演算回路のすべてのn1は互いに等しく、前記第2階層単位演算回路のすべてのn2は互いに等しく、n1およびn2は、第3階層単位演算回路のn3と等しいことを特徴とする請求項1ないし3のいずれかに記載の階層構造の演算回路。 All m1 of the plurality of first hierarchical unit arithmetic circuits are equal to each other, all m3 of the second hierarchical unit arithmetic circuit are equal to each other, m1 and m3 are equal to m4 of the third hierarchical unit arithmetic circuit, all n1 is equal plurality of first hierarchical unit arithmetic circuit, every n2 are equal to each other in the second hierarchical unit arithmetic circuits, n1 and n2, the n3 and equal Ikoto third layer unit arithmetic circuit 4. The hierarchical arithmetic circuit according to claim 1, wherein the arithmetic circuit has a hierarchical structure. 前記第1階層演算回路が個の前記1階層単位演算回路を備え、
前記第2階層演算回路が2個の前記2階層単位演算回路を備え、
前記1階層単位演算回路のそれぞれにおいてm1=n1×2であり、前記2階層単位演算回路のそれぞれにおいてm3=n2×2であり、前記第3階層単位演算回路においてm4=n3×2であることを特徴とする請求項4記載の階層構造の演算回路。
The first hierarchy arithmetic circuit includes four of the one hierarchy unit arithmetic circuits,
The second hierarchy arithmetic circuit includes two of the two hierarchy unit arithmetic circuits,
M1 = n1 × 2 in each of the one hierarchical unit arithmetic circuit , m3 = n2 × 2 in each of the two hierarchical unit arithmetic circuits, and m4 = n3 × 2 in the third hierarchical unit arithmetic circuit. The hierarchical arithmetic circuit according to claim 4.
JP2013038151A 2013-02-28 2013-02-28 Hierarchical arithmetic circuit Active JP6162429B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013038151A JP6162429B2 (en) 2013-02-28 2013-02-28 Hierarchical arithmetic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013038151A JP6162429B2 (en) 2013-02-28 2013-02-28 Hierarchical arithmetic circuit

Publications (2)

Publication Number Publication Date
JP2014165892A JP2014165892A (en) 2014-09-08
JP6162429B2 true JP6162429B2 (en) 2017-07-12

Family

ID=51616075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013038151A Active JP6162429B2 (en) 2013-02-28 2013-02-28 Hierarchical arithmetic circuit

Country Status (1)

Country Link
JP (1) JP6162429B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049057B (en) * 2015-08-17 2018-04-20 中国航天科技集团公司第九研究院第七七一研究所 A kind of 32 checking circuits of CRC towards the input of 128 parallel-by-bits

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647716A (en) * 1987-06-30 1989-01-11 Nec Corp Parallel processing type crc arithmetic circuit
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
JP3269415B2 (en) * 1997-01-22 2002-03-25 日本電気株式会社 CRC operation circuit
US6295626B1 (en) * 1997-10-20 2001-09-25 Nortel Networks Limited Symbol based algorithm for hardware implementation of cyclic redundancy check
US7174498B2 (en) * 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code

Also Published As

Publication number Publication date
JP2014165892A (en) 2014-09-08

Similar Documents

Publication Publication Date Title
JP2010518464A (en) Semiconductor memory device
US9083365B1 (en) Thermometer-code-to-binary encoders
JP4485577B2 (en) Parity generation circuit, component circuit for parity generation circuit, information processing apparatus, and encoder
US9614550B2 (en) Parallel BCH coding circuit, encoder and method
US6295626B1 (en) Symbol based algorithm for hardware implementation of cyclic redundancy check
US6370667B1 (en) CRC operating calculating method and CRC operational calculation circuit
CN110679090B (en) Reduced delay error correction decoding
US20120121081A1 (en) Nonlinear feedback shift register and method for nonlinear signature formation
JP6162429B2 (en) Hierarchical arithmetic circuit
JP6350111B2 (en) Multiplier circuit and multiplication method thereof
JP3606569B2 (en) Decoding circuit, decoding apparatus using the decoding circuit, decoding method, and semiconductor device
JPWO2006022089A1 (en) Multiplier
JP2003283331A (en) Gray code counter
Patel et al. Design of fast FIR filter using compressor and Carry Select Adder
JP3417286B2 (en) Multiplier
TWI523437B (en) Encoding and syndrome computing co-design circuit for bch code and method for deciding the same
Shukla LFSR based versatile divider architectures for BCH and RS error correction encoders
JP2007288576A (en) Encoding method of information symbol, device therefor, decoding method of information symbol and decoding device
JPH0385923A (en) Crc arithmetic system
US11489544B2 (en) Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial
JP4230234B2 (en) Parity prediction circuit for full adder
JP2012238952A (en) Crc arithmetic circuit and processor
JP3552683B2 (en) Signal processing method, signal processing system, program for signal processing, and computer-readable recording medium storing the program
Yang et al. An area-efficient BCH codec with echelon scheduling for NAND flash applications
JP2018515985A (en) Algorithm construction method in cyclic redundancy check

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170615

R150 Certificate of patent or registration of utility model

Ref document number: 6162429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250