JP2014165892A - Hierarchically structured arithmetic circuit - Google Patents

Hierarchically structured arithmetic circuit Download PDF

Info

Publication number
JP2014165892A
JP2014165892A JP2013038151A JP2013038151A JP2014165892A JP 2014165892 A JP2014165892 A JP 2014165892A JP 2013038151 A JP2013038151 A JP 2013038151A JP 2013038151 A JP2013038151 A JP 2013038151A JP 2014165892 A JP2014165892 A JP 2014165892A
Authority
JP
Japan
Prior art keywords
bit
arithmetic circuit
output
input data
hierarchical
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.)
Granted
Application number
JP2013038151A
Other languages
Japanese (ja)
Other versions
JP6162429B2 (en
Inventor
Takamasa Suzuki
孝昌 鈴木
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

Abstract

PROBLEM TO BE SOLVED: To generate a CRC code at high speed in fewer clocks even from input data of more bits.SOLUTION: A hierarchically structured arithmetic circuit includes: two unit arithmetic circuits 10C each for dividing sixteen-bit parallel input data by a seventh-order irreducible polynomial and outputting the remainder as a parallel eight-bit CRC code; one unit arithmetic circuit 10D for dividing a total of sixteen-bit CRC code output from the two unit arithmetic circuit 10C by the seventh-order irreducible polynomial and outputting the remainder as a parallel eight-bit CRC code; and a register 20 for holding the parallel eight-bit CRC code output from the one unit arithmetic circuit 10D.

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以上の整数)の圧縮対象データが入力データとして並列に入力され、n1次(n1は2以上でm1より小さい整数)の既約多項式を利用して前記入力データを圧縮したn1ビットのCRC符号を並列に出力する第1階層単位演算回路を、複数個備え、全体でm2ビット(m2は3以上の整数)の第1階層出力データを並列に出力する第1階層の演算回路と、前記m2ビットの第1階層出力データが入力データとして並列に入力され、n2次(n2は2以上でm2より小さい整数)の既約多項式を利用して該第1階層出力データを圧縮したn2ビットのCRC符号を並列に出力する第2階層単位演算回路を1個備える、第2階層の演算回路と、を備えたことを特徴とする。
請求項2にかかる発明は、請求項1記載の階層構造の演算回路において、クロック信号の第1のエッジで前記入力データを保持して前記第1階層単位演算回路に入力する入力側レジスタと、前記クロック信号の次のエッジで前記第1階層出力データを保持して前記第2階層単位演算回路に入力する中間レジスタと、前記クロック信号のさらに次のエッジで前記n2ビットのCRC符号を保持する出力側レジスタと、をさらに備えることを特徴とする。
請求項3にかかる発明は、請求項1または2記載の階層構造の演算回路において、前記第1階層単位演算回路および第2の階層単位演算回路のそれぞれが、0ビット目からmi−1ビット目の入力データのうちのmi−ni−1ビット目からmi−1ビット目まで(i=1または2)が入力され、前記既約多項式の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およびn1のそれぞれが互いに等しく、かつ、前記第2階層単位演算回路のm2およびn2のそれぞれと互いに等しいことを特徴とする。
請求項5にかかる発明は、請求項4記載の階層構造の演算回路において、前記第1階層演算回路が2個の前記1階層単位演算回路を備え、前記1階層単位演算回路のそれぞれにおいてm1=n1×2であり、前記第2階層単位演算回路においてm2=n2×2であることを特徴とする。
In order to achieve the above object, according to the hierarchical structure of the invention according to claim 1, m1 bit (m1 is an integer of 3 or more) compression target data is input in parallel as input data, and n1 order (n1 is There are provided a plurality of first layer unit arithmetic circuits for outputting in parallel n1 bit CRC codes obtained by compressing the input data using an irreducible polynomial of 2 or more and an integer less than m1, and a total of m2 bits (m2 Is an arithmetic circuit of the first hierarchy that outputs the first hierarchy output data of 3 or more in parallel, and the m2-bit first hierarchy output data is inputted in parallel as input data, and the n2 order (n2 is 2 or more) A second-layer arithmetic circuit including one second-layer unit arithmetic circuit that outputs in parallel n2-bit CRC codes obtained by compressing the first-layer output data using an irreducible polynomial of When, Characterized by comprising.
The invention according to claim 2 is the hierarchical arithmetic circuit according to claim 1, wherein the input side register that holds the input data at the first edge of the clock signal and inputs the input data to the first hierarchical unit arithmetic circuit; An intermediate register that holds the first layer output data at the next edge of the clock signal and inputs it to the second layer unit arithmetic circuit, and holds the n2-bit CRC code at the next edge of the clock signal And an output side register.
According to a third aspect of the present invention, in the arithmetic circuit having the hierarchical structure according to the first or second aspect, each of the first hierarchical unit arithmetic circuit and the second hierarchical unit arithmetic circuit includes the 0th bit to the mi-1th bit. Are input from the mi-ni-1 bit to the mi-1 bit (i = 1 or 2), and the coefficients of the terms of the irreducible polynomial from the 0th order to the ni-1th order. And the mi-1 bit of the input data and the exclusive OR of the mi-ni-1 bit to the mi-2 bit of the input data, respectively, from the 0th bit to the ni-1 bit A first arithmetic circuit stage to be output as an output up to the first, each of which is the output of the previous arithmetic circuit stage and mi-ni-k bits of the input data from the 0th bit to the mi-1th bit Eye (k = 2 to mi-n ), And the product of the coefficients of the terms 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, and mi of the input data -Exclusive-OR with the ni-k bit and the 0th to ni-2th bits of the output of the preceding arithmetic circuit stage is output as the output from the 0th bit to the ni-1th bit. K-th arithmetic circuit stage, and outputs from the 0th bit to the ni-1th bit of the output of the mi-ni-th logic circuit stage as the ni-bit CRC code. To do.
According to a fourth aspect of the present invention, in the arithmetic circuit having the hierarchical structure according to any one of the first to third aspects, all of m1 and n1 of the plurality of first hierarchical unit arithmetic circuits are equal to each other, and The second hierarchical unit arithmetic circuit is equal to each of m2 and n2.
According to a fifth aspect of the present invention, in the hierarchical arithmetic circuit according to the fourth aspect, the first hierarchical arithmetic circuit includes two of the one hierarchical unit arithmetic circuits, and each of the one hierarchical unit arithmetic circuits includes m1 = n1 × 2 and m2 = n2 × 2 in the second hierarchical unit arithmetic circuit.

本発明によれば、大きなビット数の並列入力データであっても少ないクロック数で高速に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 1 clock is required 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以上の整数)の圧縮対象データが入力データとして並列に入力され、n1次(n1は2以上でm1より小さい整数)の既約多項式を利用して前記入力データを圧縮したn1ビットのCRC符号を並列に出力する第1階層単位演算回路を、複数個備え、全体でm2ビット(m2は3以上の整数)の第1階層出力データを並列に出力する第1階層の演算回路と、
前記m2ビットの第1階層出力データが入力データとして並列に入力され、n2次(n2は2以上でm2より小さい整数)の既約多項式を利用して該第1階層出力データを圧縮したn2ビットのCRC符号を並列に出力する第2階層単位演算回路を1個備える、第2階層の演算回路と、
を備えたことを特徴とする階層構造の演算回路。
Data to be compressed of m1 bits (m1 is an integer of 3 or more) is inputted in parallel as input data, and the input data is compressed using an irreducible polynomial of n1 order (n1 is an integer of 2 or more and smaller than m1). A first layer operation circuit that includes a plurality of first layer unit operation circuits that output n1 bit CRC codes in parallel, and outputs m2 bit (m2 is an integer of 3 or more) first layer output data in parallel. Circuit,
The m2-bit first layer output data is inputted in parallel as input data, and the first layer output data is compressed using an irreducible polynomial of n2 order (n2 is an integer greater than or equal to 2 and smaller than m2). A second-layer arithmetic circuit comprising one second-layer unit arithmetic circuit that outputs the CRC codes of
An arithmetic circuit having a hierarchical structure characterized by comprising:
クロック信号の第1のエッジで前記入力データを保持して前記第1階層単位演算回路に入力する入力側レジスタと、前記クロック信号の次のエッジで前記第1階層出力データを保持して前記第2階層単位演算回路に入力する中間レジスタと、前記クロック信号のさらに次のエッジで前記n2ビットのCRC符号を保持する出力側レジスタと、をさらに備えることを特徴とする請求項1記載の階層構造の演算回路。   An input-side register that holds the input data at the first edge of the clock signal and inputs it to the first hierarchy unit arithmetic circuit, and holds the first hierarchy output data at the next edge of the clock signal. 2. The hierarchical structure according to claim 1, further comprising: an intermediate register that is input to a two-layer unit arithmetic circuit; and an output-side register that holds the n2-bit CRC code at a further next edge of the clock signal. Arithmetic circuit. 前記第1階層単位演算回路および第2の階層単位演算回路のそれぞれが、
0ビット目からmi−1ビット目の入力データのうちのmi−ni−1ビット目からmi−1ビット目まで(i=1または2)が入力され、前記既約多項式の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記載の階層構造の演算回路。
Each of the first hierarchical unit arithmetic circuit and the second hierarchical unit arithmetic circuit includes:
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 or 2) are inputted, and the 0th order of the irreducible polynomial is changed to ni- Exclusive OR of the product of the coefficient of each term up to the first order and the mi-1 bit of the input data and each of the mi-ni-1 bit to the mi-2 bit of the input data A first arithmetic circuit stage that outputs as outputs 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 logic circuit stage of the mi-ni stage is output as the ni-bit CRC code.
前記複数の第1階層単位演算回路のすべてのm1およびn1のそれぞれが互いに等しく、かつ、前記第2階層単位演算回路のm2およびn2のそれぞれと互いに等しいことを特徴とする請求項1ないし3のいずれかに記載の階層構造の演算回路。   4. All of m1 and n1 of the plurality of first hierarchical unit arithmetic circuits are equal to each other, and are equal to each of m2 and n2 of the second hierarchical unit arithmetic circuit. A hierarchical arithmetic circuit according to any one of the above. 前記第1階層演算回路が2個の前記1階層単位演算回路を備え、
前記1階層単位演算回路のそれぞれにおいてm1=n1×2であり、前記第2階層単位演算回路においてm2=n2×2であることを特徴とする請求項4記載の階層構造の演算回路。
The first hierarchical arithmetic circuit includes two one-layer unit arithmetic circuits,
5. The hierarchical arithmetic circuit according to claim 4, wherein m1 = n1 × 2 in each of the one hierarchical unit arithmetic circuits and m2 = n2 × 2 in the second hierarchical unit arithmetic circuit.
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 true JP2014165892A (en) 2014-09-08
JP6162429B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049057A (en) * 2015-08-17 2015-11-11 中国航天科技集团公司第九研究院第七七一研究所 CRC (Cyclic Redundancy Check)-32 checking circuit facing 128-bit parallel input

Citations (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
JPH10209880A (en) * 1997-01-22 1998-08-07 Nec Corp Crc arithmetic circuit
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
US6295626B1 (en) * 1997-10-20 2001-09-25 Nortel Networks Limited Symbol based algorithm for hardware implementation of cyclic redundancy check
US20030200500A1 (en) * 2002-02-15 2003-10-23 Weissinger Steve H. Obtaining cyclic redundancy code

Patent Citations (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
JPH10209880A (en) * 1997-01-22 1998-08-07 Nec Corp Crc arithmetic circuit
US6295626B1 (en) * 1997-10-20 2001-09-25 Nortel Networks Limited Symbol based algorithm for hardware implementation of cyclic redundancy check
US20030200500A1 (en) * 2002-02-15 2003-10-23 Weissinger Steve H. Obtaining cyclic redundancy code

Cited By (2)

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

Also Published As

Publication number Publication date
JP6162429B2 (en) 2017-07-12

Similar Documents

Publication Publication Date Title
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
JP6350111B2 (en) Multiplier circuit and multiplication method thereof
US20220230057A1 (en) Hyperbolic functions for machine learning acceleration
JP4210378B2 (en) Galois field multiplier and Galois field multiplication method
CN110679090B (en) Reduced delay error correction decoding
JP2000004169A (en) Crc operating method and crc arithmetic circuit
JP6162429B2 (en) Hierarchical arithmetic circuit
US11392452B2 (en) Serializing and deserializing stage testing
Patel et al. Design of fast FIR filter using compressor and Carry Select Adder
JP2008187384A (en) Logic circuit
JPH01265332A (en) Production of determinant of crc parallel arithmetic circuit
JP4595055B2 (en) Galois field α multiplication circuit and arithmetic circuit
JPH11237973A (en) Multiplier
JP2007288576A (en) Encoding method of information symbol, device therefor, decoding method of information symbol and decoding device
Shukla LFSR based versatile divider architectures for BCH and RS error correction encoders
JPH0385923A (en) Crc arithmetic system
TWI523437B (en) Encoding and syndrome computing co-design circuit for bch code and method for deciding the same
US11489544B2 (en) Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial
JP4230234B2 (en) Parity prediction circuit for full adder
TWI538414B (en) Method for encoding multi-mode of bch codes and encoder thereof
JP2012238952A (en) Crc arithmetic circuit and processor
JP2018515985A (en) Algorithm construction method in cyclic redundancy check
JP3017203B1 (en) Binary-decimal conversion circuit and method

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