JP2001036414A - Crc符号生成回路及びcrcエラー検出回路 - Google Patents
Crc符号生成回路及びcrcエラー検出回路Info
- Publication number
- JP2001036414A JP2001036414A JP11206526A JP20652699A JP2001036414A JP 2001036414 A JP2001036414 A JP 2001036414A JP 11206526 A JP11206526 A JP 11206526A JP 20652699 A JP20652699 A JP 20652699A JP 2001036414 A JP2001036414 A JP 2001036414A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- remainder
- data
- exclusive
- crc
- 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.)
- Pending
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
(57)【要約】
【課題】 生成多項式をプログラマブルに選択可能な、
複数ビット毎の処理を実現するCRC符号生成回路およ
びCRCエラー検出回路を提供するものである。 【解決手段】 直前までの入力データに対し求められて
いる剰余を入力ビット数分だけシフトした多項式と、入
力複数ビットに対応した多項式とを排他論理和として加
算して得られる多項式を、生成多項式の次数より小さい
多項式部分と、その次数以上の多項式部分とに分割す
る。生成多項式の次数以上の多項式部分を更に分割し、
その分割した多項式部分の係数(0または1)の組み合
わせに対応した(生成多項式で割った)剰余をテーブル
引きにより求める。このテーブル引きによって得られた
(次数以上の分割した多項式部分の)各剰余と、生成多
項式の次数より小さい多項式部分を排他論理和として加
算する。加算して得られた結果が、そのときの入力デー
タまでの剰余となる。以上の処理を、すべてのデータを
入力するまで続けることによって、最終的な剰余が求め
られる。
複数ビット毎の処理を実現するCRC符号生成回路およ
びCRCエラー検出回路を提供するものである。 【解決手段】 直前までの入力データに対し求められて
いる剰余を入力ビット数分だけシフトした多項式と、入
力複数ビットに対応した多項式とを排他論理和として加
算して得られる多項式を、生成多項式の次数より小さい
多項式部分と、その次数以上の多項式部分とに分割す
る。生成多項式の次数以上の多項式部分を更に分割し、
その分割した多項式部分の係数(0または1)の組み合
わせに対応した(生成多項式で割った)剰余をテーブル
引きにより求める。このテーブル引きによって得られた
(次数以上の分割した多項式部分の)各剰余と、生成多
項式の次数より小さい多項式部分を排他論理和として加
算する。加算して得られた結果が、そのときの入力デー
タまでの剰余となる。以上の処理を、すべてのデータを
入力するまで続けることによって、最終的な剰余が求め
られる。
Description
【0001】
【発明の属する技術分野】本発明は、生成多項式をプロ
グラマブルに選択可能な、複数ビット毎の処理を実現す
るCRC符号生成回路およびこれを利用したCRCエラ
ー検出回路に関する。
グラマブルに選択可能な、複数ビット毎の処理を実現す
るCRC符号生成回路およびこれを利用したCRCエラ
ー検出回路に関する。
【0002】
【従来の技術】CRC符号は、通信やデジタルデータ記
録の装置において、受信記録の誤りを検出するために広
く用いられている。このCRC符号(CyclicRe
dundancy Check Code)は、mビット
の冗長ビットを付加することで、mビット以下の全ての
エラーを検出することができ、比較的少ない冗長ビット
を付加することによって高いエラー検出能力をもたせる
ようにしたものである。
録の装置において、受信記録の誤りを検出するために広
く用いられている。このCRC符号(CyclicRe
dundancy Check Code)は、mビット
の冗長ビットを付加することで、mビット以下の全ての
エラーを検出することができ、比較的少ない冗長ビット
を付加することによって高いエラー検出能力をもたせる
ようにしたものである。
【0003】このCRC符号は巡回符号であるため、生
成多項式が決まれば、シフトレジスタと排他的論理和回
路を用いて容易に構成されるものであった。しかしなが
ら、シフトレジスタにシリアルにデータを入力する必要
があり、メモリにパラレルに格納されたデータに対しC
RC符号の付加や複合を行う場合、パラレルに読み出し
たデータをシリアルに変換した後にシフトレジスタと論
理和回路で構成されたCRC演算回路に入力する必要が
あった。そのためにゲート数の増加や、制御回路の複雑
化、回路動作の速度低下などを招来するという問題点が
あった。
成多項式が決まれば、シフトレジスタと排他的論理和回
路を用いて容易に構成されるものであった。しかしなが
ら、シフトレジスタにシリアルにデータを入力する必要
があり、メモリにパラレルに格納されたデータに対しC
RC符号の付加や複合を行う場合、パラレルに読み出し
たデータをシリアルに変換した後にシフトレジスタと論
理和回路で構成されたCRC演算回路に入力する必要が
あった。そのためにゲート数の増加や、制御回路の複雑
化、回路動作の速度低下などを招来するという問題点が
あった。
【0004】これに対して、パラレルデータに対するC
RC符号の生成や検査をゲート数を減少して単純な制御
回路で高速に実施できる回路が考案された。例えば、特
開平4−284541号公報はその一つで8ビット毎に
データ入力し、生成多項式による剰余を求める回路を組
み合わせ回路で構成したCRC検出回路が記載されてい
る。
RC符号の生成や検査をゲート数を減少して単純な制御
回路で高速に実施できる回路が考案された。例えば、特
開平4−284541号公報はその一つで8ビット毎に
データ入力し、生成多項式による剰余を求める回路を組
み合わせ回路で構成したCRC検出回路が記載されてい
る。
【0005】従来の生成多項式を回路で構成しているC
RC検出回路の一例を図5に示す。図において、剰余レ
ジスタ(16ビット(5−4))から、16次の生成多
項式による剰余を上位8ビット、下位8ビットに分割し
て出力し、入力データ(8げーとビット)と排他論理和
をとる(5−1)。排他論理和をとったデータ(8ビッ
ト)を回路で構成されている剰余生成部(5−2)に入
力する。剰余生成部(5−2)から出力されたデータ
(16ビット)の上位8ビットと剰余レジスタの下位8
ビットの排他論理和(5−3)をとる。排他論理和をと
ったデータ(8ビット)を上位8ビット、剰余生成部
(5−2)から出力されたデータ(16ビット)の下位
8ビットとして16ビットデータに戻し、剰余レジスタ
(5−4)に入力する。この処理をすべてのデータを入
力するまで続け、最終的に出力されるデータ(16ビッ
ト(5−5))を調べる事によりCRC検出を行ってい
た。
RC検出回路の一例を図5に示す。図において、剰余レ
ジスタ(16ビット(5−4))から、16次の生成多
項式による剰余を上位8ビット、下位8ビットに分割し
て出力し、入力データ(8げーとビット)と排他論理和
をとる(5−1)。排他論理和をとったデータ(8ビッ
ト)を回路で構成されている剰余生成部(5−2)に入
力する。剰余生成部(5−2)から出力されたデータ
(16ビット)の上位8ビットと剰余レジスタの下位8
ビットの排他論理和(5−3)をとる。排他論理和をと
ったデータ(8ビット)を上位8ビット、剰余生成部
(5−2)から出力されたデータ(16ビット)の下位
8ビットとして16ビットデータに戻し、剰余レジスタ
(5−4)に入力する。この処理をすべてのデータを入
力するまで続け、最終的に出力されるデータ(16ビッ
ト(5−5))を調べる事によりCRC検出を行ってい
た。
【0006】更に、従来技術の資料について簡単に説明
する。
する。
【0007】特開平5−244016号公報は、デジタ
ルデータのエラーチェックのためのCRC符号を計算す
るCRC計算回路の改良に関する。n 次多項式の上位
k項が取り得る全ての式をm次基本式で除算した各剰余
が記録されたメモリと、多項式の上位k項に付加された
各係数に基づいてメモリのアドレスを指定し、対応する
剰余を読み出すアクセス手段と、このアクセス手段で読
み出された剰余を多項式の上位k項を除く下位項に加算
する加算手段とを具備している。
ルデータのエラーチェックのためのCRC符号を計算す
るCRC計算回路の改良に関する。n 次多項式の上位
k項が取り得る全ての式をm次基本式で除算した各剰余
が記録されたメモリと、多項式の上位k項に付加された
各係数に基づいてメモリのアドレスを指定し、対応する
剰余を読み出すアクセス手段と、このアクセス手段で読
み出された剰余を多項式の上位k項を除く下位項に加算
する加算手段とを具備している。
【0008】このような構成によれば、多項式f(x)
の上位k項を基本式P(x)で除算した剰余をメモリか
らアクセスして多項式f(x)の下位項に加えるように
したのでk回のシフト動作が1回のメモリのアクセス動
作に置換されることになり、簡易な構成で、CRC符号
の計算速度を従来に比してk倍に高速化する事ができ
る。
の上位k項を基本式P(x)で除算した剰余をメモリか
らアクセスして多項式f(x)の下位項に加えるように
したのでk回のシフト動作が1回のメモリのアクセス動
作に置換されることになり、簡易な構成で、CRC符号
の計算速度を従来に比してk倍に高速化する事ができ
る。
【0009】特開平6−224783号公報は、ディジ
タル通信方式における受信データの誤り検出および訂正
処理を行う巡回符号化およびCRC装置に関する。従来
の巡回符号化およびCRC処理の処理時間を短縮し、コ
ンピュータの他の処理に対する有効な活用をはかるよう
にしたものである。
タル通信方式における受信データの誤り検出および訂正
処理を行う巡回符号化およびCRC装置に関する。従来
の巡回符号化およびCRC処理の処理時間を短縮し、コ
ンピュータの他の処理に対する有効な活用をはかるよう
にしたものである。
【0010】この発明の構成として、2n個の各のデー
タを前記生成多項式で除算した剰余データから生成され
る剰余テーブルを、剰余テーブルを格納した剰余テーブ
ル記憶手段と、前記剰余テーブルの参照アドレスを生成
する参照アドレス生成手段と、前記参照アドレスに対応
する前記剰余テーブルを読み出す剰余テーブル読み出し
手段と、前記参照アドレス生成手段と前記剰余テーブル
読み出し手段とを予め定めた回数分反復する反復手段と
を具備するものである。
タを前記生成多項式で除算した剰余データから生成され
る剰余テーブルを、剰余テーブルを格納した剰余テーブ
ル記憶手段と、前記剰余テーブルの参照アドレスを生成
する参照アドレス生成手段と、前記参照アドレスに対応
する前記剰余テーブルを読み出す剰余テーブル読み出し
手段と、前記参照アドレス生成手段と前記剰余テーブル
読み出し手段とを予め定めた回数分反復する反復手段と
を具備するものである。
【0011】特開平6―311049号公報は、CRC
符号を算出する生成多項式を回路にて実現させる場合
に、CRC符号算出の対象データを4ビット毎に処理で
きるように少ないデータ処理回数でCRC符号を算出で
きるようにしたものである。したがって、従来の1ビッ
ト毎の処理に比較して4倍以上の速度で処理を行うこと
ができ、更に、ソフトウェアにおいても同様にCRCの
符号化および複合化をプログラムにより高速に処理でき
る。
符号を算出する生成多項式を回路にて実現させる場合
に、CRC符号算出の対象データを4ビット毎に処理で
きるように少ないデータ処理回数でCRC符号を算出で
きるようにしたものである。したがって、従来の1ビッ
ト毎の処理に比較して4倍以上の速度で処理を行うこと
ができ、更に、ソフトウェアにおいても同様にCRCの
符号化および複合化をプログラムにより高速に処理でき
る。
【0012】特開平7−95096号公報は、CRC符
号の生成をパラレルで処理することにより、高速処理を
行うCRC生成装置において、あらゆる生成多項式、入
力データ幅に対応して、CRC符号を生成する事のでき
る汎用性のあるプログラマブル並列CRC生成装置を目
的とするものである。この装置は、生成多項式にもとず
いて、入力データのCRC符号を生成するためのCRC
計算用データ格納部と、所定の生成多項式に対するCR
C符号を生成するためのCRC計算用データをプログラ
マブルにCRC計算用データ格納部に設定するデータ設
定部と、データ設定部によりCRC計算用データ格納部
に設定されたCRC計算用データと入力データからCR
C符号を生成する並列CRC計算部とを具備している。
号の生成をパラレルで処理することにより、高速処理を
行うCRC生成装置において、あらゆる生成多項式、入
力データ幅に対応して、CRC符号を生成する事のでき
る汎用性のあるプログラマブル並列CRC生成装置を目
的とするものである。この装置は、生成多項式にもとず
いて、入力データのCRC符号を生成するためのCRC
計算用データ格納部と、所定の生成多項式に対するCR
C符号を生成するためのCRC計算用データをプログラ
マブルにCRC計算用データ格納部に設定するデータ設
定部と、データ設定部によりCRC計算用データ格納部
に設定されたCRC計算用データと入力データからCR
C符号を生成する並列CRC計算部とを具備している。
【0013】しかし、上記の従来技術では、生成多項式
が特定の1種類に限られるという問題点があった。した
がって、使用する生成多項式が特定されている場合は良
いが、生成多項式が特定出来ない場合には対応すること
が不可能であった。その理由は、生成多項式による剰余
の算出を生成多項式で特定される組み合せ回路で構成し
ていることに依るものであった。
が特定の1種類に限られるという問題点があった。した
がって、使用する生成多項式が特定されている場合は良
いが、生成多項式が特定出来ない場合には対応すること
が不可能であった。その理由は、生成多項式による剰余
の算出を生成多項式で特定される組み合せ回路で構成し
ていることに依るものであった。
【発明が解決しようとする課題】本発明の目的は、以上
の問題を解決する為、使用する生成多項式に応じてテー
ブルの内容を変更する事によって、生成多項式をプログ
ラマブルに選択可能であり、複数ビット毎の処理を実現
するCRC符号生成回路およびCRCエラー検出回路を
提供するものである。
の問題を解決する為、使用する生成多項式に応じてテー
ブルの内容を変更する事によって、生成多項式をプログ
ラマブルに選択可能であり、複数ビット毎の処理を実現
するCRC符号生成回路およびCRCエラー検出回路を
提供するものである。
【課題を解決するための手段】本発明は上記した目的を
達成するため、基本的には、以下に記載されたような技
術構成を提供するものである。
達成するため、基本的には、以下に記載されたような技
術構成を提供するものである。
【0014】即ち、本発明に係るCRC符号生成回路お
よびCRCエラー検出回路の第1の態様は、剰余をラッ
チするmビットの剰余レジスタと、該剰余レジスタの上
位nビットと入力データnビットの排他論理和をとる排
他論理和部と、該排他論理和をとったデータを分割する
分割部と、前記分割されたデータに対応する剰余が格納
されているテーブル、該テーブルから選んだ各各の剰余
の排他論理和をとるExclusive_OR部と、該
Exclusive_OR部から出力されるデータmビ
ットの上位nビットと前記剰余レジスタの下位m−nビ
ットを具備し、前記テーブルを所望の生成多項式に対応
したものと置き換えることにより、プログラマブルに生
成多項式を選択することが可能であるCRC符号生成回
路、により与えられる。
よびCRCエラー検出回路の第1の態様は、剰余をラッ
チするmビットの剰余レジスタと、該剰余レジスタの上
位nビットと入力データnビットの排他論理和をとる排
他論理和部と、該排他論理和をとったデータを分割する
分割部と、前記分割されたデータに対応する剰余が格納
されているテーブル、該テーブルから選んだ各各の剰余
の排他論理和をとるExclusive_OR部と、該
Exclusive_OR部から出力されるデータmビ
ットの上位nビットと前記剰余レジスタの下位m−nビ
ットを具備し、前記テーブルを所望の生成多項式に対応
したものと置き換えることにより、プログラマブルに生
成多項式を選択することが可能であるCRC符号生成回
路、により与えられる。
【0015】また、本発明の第2の態様は、剰余をラッ
チするmビットの剰余レジスタ、該剰余レジスタの上位
nビットを分割する分割部、分割されたデータに対応す
る剰余が格納されているテーブル、該テーブルから選ん
だ各の剰余の排他論理和をとるExclusive_O
R部、該Exclusive_OR部から出力されるm
ビットのデータと、剰余レジスタの下位m−nビットを
上位m−nビット、入力データを下位nビットとするm
ビットのデータとの排他論理和をとる排他論理和部とを
具備し、nビット入力毎にCRC符号を付加された特定
のデータの剰余を順次求め、剰余が0か否かにより割り
切れるかどうかを調べることを特徴とするCRCエラー
検出回路、により与えられる。
チするmビットの剰余レジスタ、該剰余レジスタの上位
nビットを分割する分割部、分割されたデータに対応す
る剰余が格納されているテーブル、該テーブルから選ん
だ各の剰余の排他論理和をとるExclusive_O
R部、該Exclusive_OR部から出力されるm
ビットのデータと、剰余レジスタの下位m−nビットを
上位m−nビット、入力データを下位nビットとするm
ビットのデータとの排他論理和をとる排他論理和部とを
具備し、nビット入力毎にCRC符号を付加された特定
のデータの剰余を順次求め、剰余が0か否かにより割り
切れるかどうかを調べることを特徴とするCRCエラー
検出回路、により与えられる。
【0016】
【発明の実施の形態】複数ビット毎の処理実現のため、
複数ビットのデータを入力毎に、以下の処理を行う。直
前までの入力データに対し求められている剰余を入力ビ
ット数分だけシフトした多項式と、入力複数ビットに対
応した多項式とを加算(排他論理和)して得られる多項
式を、生成多項式の次数より小さい多項式部分と、次数
以上の多項式部分とに分割する。生成多項式の次数以上
の多項式部分を更に分割し、その分割した多項式部分の
係数(0または1)の組み合わせに対応した(生成多項
式で割った)剰余をテーブル引きにより求める。テーブ
ル引きによって得られた(次数以上の分割した多項式部
分の)各剰余と、生成多項式の次数より小さい多項式部
分を加算(排他的論理和)する。加算(排他論理和)し
て得られた結果が、その時の入力データまでの剰余とな
る。以上の処理を、すべてのデータを入力するまで続け
る事によって、最終的な剰余を求める。
複数ビットのデータを入力毎に、以下の処理を行う。直
前までの入力データに対し求められている剰余を入力ビ
ット数分だけシフトした多項式と、入力複数ビットに対
応した多項式とを加算(排他論理和)して得られる多項
式を、生成多項式の次数より小さい多項式部分と、次数
以上の多項式部分とに分割する。生成多項式の次数以上
の多項式部分を更に分割し、その分割した多項式部分の
係数(0または1)の組み合わせに対応した(生成多項
式で割った)剰余をテーブル引きにより求める。テーブ
ル引きによって得られた(次数以上の分割した多項式部
分の)各剰余と、生成多項式の次数より小さい多項式部
分を加算(排他的論理和)する。加算(排他論理和)し
て得られた結果が、その時の入力データまでの剰余とな
る。以上の処理を、すべてのデータを入力するまで続け
る事によって、最終的な剰余を求める。
【0017】上述のテーブルを、所望の生成多項式に対
応したものと置き換えることにより、プログラマブルに
生成多項式を選択することが可能になる。従って、本発
明は、様々な生成多項式を使用する可能性のある汎用プ
ロセッサ等に有効である。
応したものと置き換えることにより、プログラマブルに
生成多項式を選択することが可能になる。従って、本発
明は、様々な生成多項式を使用する可能性のある汎用プ
ロセッサ等に有効である。
【0018】
【作用】以下に、本発明に係るCRC符号生成回路の具
体例を図面を参照して詳細に説明する。
体例を図面を参照して詳細に説明する。
【0019】最初に、多項式表現を定義する。kビット
のデータD(={di(i=0〜k−1)})の多項式
表現D(x)を次式で定義する。
のデータD(={di(i=0〜k−1)})の多項式
表現D(x)を次式で定義する。
【0020】 D(x)=Σdixk−1−i(i=0〜k−1) ここで、CRC符号手法とは、送信すべきnビット
({ai(i=0〜n−1)})データ(これをデータ
Aとする)に冗長なビットとしてCRC符号を付加する
事により、受信側でエラー検出を可能とするものであ
る。
({ai(i=0〜n−1)})データ(これをデータ
Aとする)に冗長なビットとしてCRC符号を付加する
事により、受信側でエラー検出を可能とするものであ
る。
【0021】生成多項式G(x)がm次の場合、CRC
符号はmビットで、データA(nビット)にCRC符号
(mビット)を付加した(m+n)ビット(これをデー
タBとする)を送信する。CRC符号は、データBの多
項式表現B(x)がG(x)で割り切れるように生成さ
れる。実際には、CRC符号は、xmA(x)をG
(x)で割った剰余で与えられる。剰余をR(x)、商
をQ(x)とすると、次式が成り立つ。
符号はmビットで、データA(nビット)にCRC符号
(mビット)を付加した(m+n)ビット(これをデー
タBとする)を送信する。CRC符号は、データBの多
項式表現B(x)がG(x)で割り切れるように生成さ
れる。実際には、CRC符号は、xmA(x)をG
(x)で割った剰余で与えられる。剰余をR(x)、商
をQ(x)とすると、次式が成り立つ。
【0022】 xmA(x)=Q(x)*G(x)+R(x) データAにCRC符号を付加した送信データBの多項式
表現B(x)は、下式のようになり、G(x)で割り切
れる。ここで、R(x)がCRC符号である。
表現B(x)は、下式のようになり、G(x)で割り切
れる。ここで、R(x)がCRC符号である。
【0023】B(x)=xmA(x)+R(x)=Q
(x)*G(x) 受信側でのCRCエラー検出では、受信したデータB1
のG(x)による剰余を求め、剰余が0であることをチ
ェックする。送信エラーがなければ、データB1とデー
タBが等しく剰余が0である。
(x)*G(x) 受信側でのCRCエラー検出では、受信したデータB1
のG(x)による剰余を求め、剰余が0であることをチ
ェックする。送信エラーがなければ、データB1とデー
タBが等しく剰余が0である。
【0024】以下に、本発明の理論について説明する。
【0025】まず、CRC符号生成の理論から説明す
る。
る。
【0026】ここで送信すべきデータAのビット数をL
*nとする。本発明では、データAのCRC符号を求め
る処理、つまりxmA(x)の剰余を求める処理を、デ
ータAのビットをnビット毎に入力しながら逐次的に進
める。
*nとする。本発明では、データAのCRC符号を求め
る処理、つまりxmA(x)の剰余を求める処理を、デ
ータAのビットをnビット毎に入力しながら逐次的に進
める。
【0027】Aのjビット目までのデータをAj(=
{ai},i=0〜j−1)で表す。その多項式表現は
Aj(x)(=Σaixj−1−i(i=0〜j−
1))となる。また、xmAj(x)をG(x)で割っ
た剰余(次数m−1以下の多項式)をRj(x)とす
る。
{ai},i=0〜j−1)で表す。その多項式表現は
Aj(x)(=Σaixj−1−i(i=0〜j−
1))となる。また、xmAj(x)をG(x)で割っ
た剰余(次数m−1以下の多項式)をRj(x)とす
る。
【0028】本発明では、nビット毎に入力し、その時
点までに入力したn*kビットまでのAn*k(x)に
対応するxmAn*k(x)の剰余Rn*k(x)を順
次求め、nビット入力をL回行いA(x)の全ビットが
入力された時点で最終的にx mA(x)の剰余であるC
RC符号が求まるようにしている。
点までに入力したn*kビットまでのAn*k(x)に
対応するxmAn*k(x)の剰余Rn*k(x)を順
次求め、nビット入力をL回行いA(x)の全ビットが
入力された時点で最終的にx mA(x)の剰余であるC
RC符号が求まるようにしている。
【0029】xmAn*k(x)をG(x)で割った商
をQn*k(x)とすると xmAn*k(x)=Qn*k(x)G(x)+ Rn*k(x) [式1 ] と書ける。また、An*(k+1)とAn*kとの関係
は下式のようになる。
をQn*k(x)とすると xmAn*k(x)=Qn*k(x)G(x)+ Rn*k(x) [式1 ] と書ける。また、An*(k+1)とAn*kとの関係
は下式のようになる。
【0030】 An*(k+1)(x)=xnAn*k(x)+Σan*k+ixn-1-i ( i=0〜n−1) [式2] [式1]と[式2]よりxmAn*(k+1)(x)の
剰余Rn*(k+1)(x)は下式のようになる。 Rn*(k+1)(x)≡xnRn*k(x)+Σan*k+ixm+n-1-i ( m od G(x) )[式3] 式[3]の右辺は、次数がn+m−1次となっている。
剰余Rn*(k+1)(x)は下式のようになる。 Rn*(k+1)(x)≡xnRn*k(x)+Σan*k+ixm+n-1-i ( m od G(x) )[式3] 式[3]の右辺は、次数がn+m−1次となっている。
【0031】本発明では、式[3]右辺のG(x)の剰
余であるRn*(k+1)(x)を求める処理を以下のよ
うに行う。
余であるRn*(k+1)(x)を求める処理を以下のよ
うに行う。
【0032】便宜の為、式[3]右辺を xnRn*k(x)+Σan*k+ixm+n-1-i =C
n*(k+1)(x) とする。
n*(k+1)(x) とする。
【0033】xnRn*k(x)は、n+m−1次から
n次までのm個の項を持ち、Σan *k+ix
m+n-1-iは、n+m−1次からm次までのn個の項を
持つ。Cn*( k+1)(x)の計算では、重なる次数の
項の加算(排他論理和)がなされる。
n次までのm個の項を持ち、Σan *k+ix
m+n-1-iは、n+m−1次からm次までのn個の項を
持つ。Cn*( k+1)(x)の計算では、重なる次数の
項の加算(排他論理和)がなされる。
【0034】Cn*(k+1)(x)の項は、nとmの大
小関係により、以下のようになる。
小関係により、以下のようになる。
【0035】 Cn*(k+1)(x)=Σcixm+n-1-i (i=0〜m−1) ( n<mの時) =Σcixm+n-1-i (i=0〜n−1) (n≧mの時) 以下、n<mの場合について説明する。
【0036】Cn*(k+1)(x)を以下のようにm−
1次以下の多項式(Cn*(k+1)(x)_0)とm次以
上の多項式に分割し、m次以上の多項式を更にY個に分
割(C n*(k+1)(x)_1~Cn*(k+1)(x)_Y)
する。(n≧mの時には、xnRn*k(x)のすべて
の項がm次以上なので、m−1次以下の多項式は存在し
ない。)下は、分割の一例である。 Cn*(k+1)(x)_0=Rn*(k+1)(x)_0=Σc
ixm+n−1−i (i=n〜m−1) Cn*(k+1)(x)_1=cm-3xm+2 +cm-2x
m+1 +cm-1xm ( m+2 〜 m次項) Cn*(k+1)(x)_2=cm-5xm+4 +cm-4xm+3
( m+4 , m+3次項) :Cn*(k+1)(x)_Y=c0xm+n-1 +c1x
m +n-2+c2xm+n-3( m+n-1 〜 m+n-3次項) 定義より、 Cn*(k+1)(x)=Cn*(k+1)(x)_0+C
n*(k+1)(x)_1+…+Cn *(k+1)(x)_Y である。
1次以下の多項式(Cn*(k+1)(x)_0)とm次以
上の多項式に分割し、m次以上の多項式を更にY個に分
割(C n*(k+1)(x)_1~Cn*(k+1)(x)_Y)
する。(n≧mの時には、xnRn*k(x)のすべて
の項がm次以上なので、m−1次以下の多項式は存在し
ない。)下は、分割の一例である。 Cn*(k+1)(x)_0=Rn*(k+1)(x)_0=Σc
ixm+n−1−i (i=n〜m−1) Cn*(k+1)(x)_1=cm-3xm+2 +cm-2x
m+1 +cm-1xm ( m+2 〜 m次項) Cn*(k+1)(x)_2=cm-5xm+4 +cm-4xm+3
( m+4 , m+3次項) :Cn*(k+1)(x)_Y=c0xm+n-1 +c1x
m +n-2+c2xm+n-3( m+n-1 〜 m+n-3次項) 定義より、 Cn*(k+1)(x)=Cn*(k+1)(x)_0+C
n*(k+1)(x)_1+…+Cn *(k+1)(x)_Y である。
【0037】Cn*(k+1)(x)_0〜C
n*(k+1)(x)_YをG(x)で割った剰余(m−1
次以下)をRn*(k+1)(x)_0〜R
n*(k+1)(x)_Yとすると、Rn *(k+1)(x)
は、m−1次以下の多項式Rn*(k+1)(x)_0〜R
n*(k+ 1)(x)_Yの加算(排他論理和)したものに
等しいから Rn*(k+1)(x)=Rn*(k+1)(x)_0+R
n*(k+1)(x)_1+…+Rn*(k+1)(x)_Y となる。これを計算し、Rn*(k+1)(x)を求め
る。
n*(k+1)(x)_YをG(x)で割った剰余(m−1
次以下)をRn*(k+1)(x)_0〜R
n*(k+1)(x)_Yとすると、Rn *(k+1)(x)
は、m−1次以下の多項式Rn*(k+1)(x)_0〜R
n*(k+ 1)(x)_Yの加算(排他論理和)したものに
等しいから Rn*(k+1)(x)=Rn*(k+1)(x)_0+R
n*(k+1)(x)_1+…+Rn*(k+1)(x)_Y となる。これを計算し、Rn*(k+1)(x)を求め
る。
【0038】本発明では、Rn*(k+1)(x)_1〜R
n*(k+1)(x)_Yを求める方法としてテーブルを使
用する。
n*(k+1)(x)_Yを求める方法としてテーブルを使
用する。
【0039】以上の処理について情報多項式をすべて入
力(L回)するまで続け、最終的な剰余を求める事によ
ってCRC符号生成が実現される。
力(L回)するまで続け、最終的な剰余を求める事によ
ってCRC符号生成が実現される。
【0040】次にCRCエラー検出の理論について説明
する。ここで受信するCRC符号を付加されたデータB
のビット数をL*nとする。本発明では、データBの剰
余を求める処理を、データBをnビット毎に入力しなが
ら逐次的に進める。Bのjビット目までのデータをBj
(={bi},i=0〜j−1)で表す。その多項式表
現はBj(x)(=Σbixj−1−i(i=0〜j−
1))となる。また、Bj(x)をG(x)で割った剰
余(m−1次以下の多項式)をRj(x)とする。
する。ここで受信するCRC符号を付加されたデータB
のビット数をL*nとする。本発明では、データBの剰
余を求める処理を、データBをnビット毎に入力しなが
ら逐次的に進める。Bのjビット目までのデータをBj
(={bi},i=0〜j−1)で表す。その多項式表
現はBj(x)(=Σbixj−1−i(i=0〜j−
1))となる。また、Bj(x)をG(x)で割った剰
余(m−1次以下の多項式)をRj(x)とする。
【0041】本発明では、nビット入力毎に、Bn*k
の剰余Rn*kを順次求め、nビット入力をL回行いB
の全ビットが入力された時点で最終的な剰余を求め、剰
余が0か否かにより、割り切れるかどうかを調べるもの
である。
の剰余Rn*kを順次求め、nビット入力をL回行いB
の全ビットが入力された時点で最終的な剰余を求め、剰
余が0か否かにより、割り切れるかどうかを調べるもの
である。
【0042】Bn*k(x)をG(x)で割った商をQ
n*k(x)とすると Bn*k(x)=Qn*k(x)G(x)+ Rn*k(x) [式4] と書ける。また、Bn*(k+1)(x)とB
nk(x)との関係は下式のようになる。
n*k(x)とすると Bn*k(x)=Qn*k(x)G(x)+ Rn*k(x) [式4] と書ける。また、Bn*(k+1)(x)とB
nk(x)との関係は下式のようになる。
【0043】 Bn*(k+1)(x)=xnBn*k(x)+Σbn*k+ixn−1−i (i=0〜n−1)[式5] [式4]と[式5]よりBn*(k+1)(x)の剰余Rn*(k+1)(x)は Rn*(k+1)(x)≡xnRn*k(x)+Σbn*k+ixn-1-i (m od G(x)) [式6] となる。
【0044】[式6]右辺は、Rn*kをnビット左シ
フトし空いた右nビットに、入力されたnビットを入れ
たものとなっており、m+n-1次から0次の項まで係数
が1である可能性がある。この点が、CRC符号生成時
と異なるが、Rn*(k+1)(x)を求める処理に関し
ては、CRC符号生成と同様である。CRC符号生成と
同様に、[式6]右辺をm−1次以下の多項式(C
n*(k+1)(x)_0)とm次以上の多項式に分割し、
m次以上の多項式を更にY分割してそれぞれの剰余(R
n*(k+1)(x)_0〜Rn*(k+1)(x)_Y)を求め
る。各々の剰余(R n*(k+1)(x)_0〜R
n*(k+1)(x)_Y)と加算(排他論理和)をとるこ
とでRn*(k+1)(x)が求められる。
フトし空いた右nビットに、入力されたnビットを入れ
たものとなっており、m+n-1次から0次の項まで係数
が1である可能性がある。この点が、CRC符号生成時
と異なるが、Rn*(k+1)(x)を求める処理に関し
ては、CRC符号生成と同様である。CRC符号生成と
同様に、[式6]右辺をm−1次以下の多項式(C
n*(k+1)(x)_0)とm次以上の多項式に分割し、
m次以上の多項式を更にY分割してそれぞれの剰余(R
n*(k+1)(x)_0〜Rn*(k+1)(x)_Y)を求め
る。各々の剰余(R n*(k+1)(x)_0〜R
n*(k+1)(x)_Y)と加算(排他論理和)をとるこ
とでRn*(k+1)(x)が求められる。
【0045】以上の処理を情報多項式がすべて入力する
まで(L回)続け、割り切れるか(最終的な剰余が0)
どうかによってCRCエラー検出を実現する。
まで(L回)続け、割り切れるか(最終的な剰余が0)
どうかによってCRCエラー検出を実現する。
【本発明の実施例】以下に、本発明の具体例を図面を参
照しながら詳細に説明する。まずCRC符号生成回路に
ついて説明する。
照しながら詳細に説明する。まずCRC符号生成回路に
ついて説明する。
【0046】図1は、本発明のCRC符号生成回路の実
施例として生成多項式が次数16ビット、データを8ビ
ット毎に入力し、16次以上の多項式の係数を2ビット
毎に4分割する場合のCRC符号生成回路を示すブロッ
ク図である。本CRC符号生成回路は、剰余をラッチす
る剰余レジスタ(16ビット(1−6));剰余レジス
タの上位8ビットと入力データ(8ビット)の排他論理
和をとる排他論理和部(1−1);排他論理和をとった
データ(8ビット)を分割する分割部(1−2);分割
されたデータに対応する剰余が格納されているテーブル
(1−31〜1−34);テーブルから選んだ各々の剰
余の排他論理和をとるExclusive_OR(1−4);Exclus
ive_ORから出力されるデータ(16ビット)の上位8ビ
ットと剰余レジスタの下位8ビットの排他論理和をとる
排他論理和部(1−5);によって構成される。
施例として生成多項式が次数16ビット、データを8ビ
ット毎に入力し、16次以上の多項式の係数を2ビット
毎に4分割する場合のCRC符号生成回路を示すブロッ
ク図である。本CRC符号生成回路は、剰余をラッチす
る剰余レジスタ(16ビット(1−6));剰余レジス
タの上位8ビットと入力データ(8ビット)の排他論理
和をとる排他論理和部(1−1);排他論理和をとった
データ(8ビット)を分割する分割部(1−2);分割
されたデータに対応する剰余が格納されているテーブル
(1−31〜1−34);テーブルから選んだ各々の剰
余の排他論理和をとるExclusive_OR(1−4);Exclus
ive_ORから出力されるデータ(16ビット)の上位8ビ
ットと剰余レジスタの下位8ビットの排他論理和をとる
排他論理和部(1−5);によって構成される。
【0047】8ビットのデータを入力して、剰余レジス
タ(1−6)のデータ(上位8ビット)と排他論理和
(1−1)をとる。ここで8ビット毎にデータを入力し
ている為、16次以上の多項式の係数は8ビットにな
る。
タ(1−6)のデータ(上位8ビット)と排他論理和
(1−1)をとる。ここで8ビット毎にデータを入力し
ている為、16次以上の多項式の係数は8ビットにな
る。
【0048】排他論理和(8ビット)したデータを分割
部(1−2)に入力する。
部(1−2)に入力する。
【0049】分割部(1−2)は、入力したデータ(8
ビット)を2ビット毎に4分割し、2ビットをそれぞれ
テーブル(1−31)、(1−32)、(1−33)、
(1−34)に出力する。テーブル(1−31)、(1
−32)、(1−33)、(1−34)は2ビットを入
力し、それに対応する剰余(16ビット)をExclusive_
OR(1−4)に出力する。Exclusive_OR(1−4)はテ
ーブル(1−31)、(1−32)、(1−33)、
(1−34)から入力した4個の剰余の排他論理和をと
り出力する。
ビット)を2ビット毎に4分割し、2ビットをそれぞれ
テーブル(1−31)、(1−32)、(1−33)、
(1−34)に出力する。テーブル(1−31)、(1
−32)、(1−33)、(1−34)は2ビットを入
力し、それに対応する剰余(16ビット)をExclusive_
OR(1−4)に出力する。Exclusive_OR(1−4)はテ
ーブル(1−31)、(1−32)、(1−33)、
(1−34)から入力した4個の剰余の排他論理和をと
り出力する。
【0050】2ビット毎に分割しているので、係数の組
み合わせは4通りあるが“00”の剰余は“0”である
為、テーブルに持つ必要がないので、2ビットに対しテ
ーブルは3通り用意する。よってテーブルには、全部で
3*4=12通りの剰余を用意すれば良い事になる。1
ビット毎に分割すると、用意する剰余が最も少なく済む
(この場合では、8通りの剰余を用意する事になる)
が、テーブルから選んだ各々の剰余を排他論理和する回
数が増えることになる。
み合わせは4通りあるが“00”の剰余は“0”である
為、テーブルに持つ必要がないので、2ビットに対しテ
ーブルは3通り用意する。よってテーブルには、全部で
3*4=12通りの剰余を用意すれば良い事になる。1
ビット毎に分割すると、用意する剰余が最も少なく済む
(この場合では、8通りの剰余を用意する事になる)
が、テーブルから選んだ各々の剰余を排他論理和する回
数が増えることになる。
【0051】各々排他論理和をとったデータの上位8ビ
ットと、剰余レジスタ(1−6)のデータ(下位8ビッ
ト)で排他論理和(1−5)をとる。(4分割している
ので、4つの剰余で排他論理和をとる。排他論理和(1
−5)をとったデータを上位8ビット、各々排他論理和
(1−4)をとったデータの下位8ビットとして、16
ビットのデータにする。つぎに、その16ビットのデー
タを剰余レジスタ(1−6)に入力する。
ットと、剰余レジスタ(1−6)のデータ(下位8ビッ
ト)で排他論理和(1−5)をとる。(4分割している
ので、4つの剰余で排他論理和をとる。排他論理和(1
−5)をとったデータを上位8ビット、各々排他論理和
(1−4)をとったデータの下位8ビットとして、16
ビットのデータにする。つぎに、その16ビットのデー
タを剰余レジスタ(1−6)に入力する。
【0052】以上の処理をすべてのデータを入力するま
で続け、最終的に出力されるデータ(16ビット(1−
7))がCRC符号となる。
で続け、最終的に出力されるデータ(16ビット(1−
7))がCRC符号となる。
【0053】次にCRCエラー検出回路について説明す
る。
る。
【0054】図2は、本発明のCRCエラー検出回路の
実施例として生成多項式を16ビット、データを8ビッ
ト毎に入力し、16次以上の多項式の係数を2ビット毎
に4分割する場合のCRCエラー検出回路を示すブロッ
ク図である。
実施例として生成多項式を16ビット、データを8ビッ
ト毎に入力し、16次以上の多項式の係数を2ビット毎
に4分割する場合のCRCエラー検出回路を示すブロッ
ク図である。
【0055】図示のCRCエラー検出回路は、剰余をラ
ッチする剰余レジスタ(16ビット(2−2));剰余
レジスタの上位8ビットを分割する分割部(2−3);
分割されたデータに対応する剰余が格納されているテー
ブル(2−41〜2−44);テーブルから選んだ各々
の剰余の排他論理和をとるExclusive_OR(2−5);Ex
clusive_ORから出力されるデータ(16ビット)と、剰
余レジスタの下位8ビットを上位8ビット、入力データ
を下位8ビットとするデータ(16ビット)との排他論
理和をとる排他論理和部(2−1);によって構成され
る。
ッチする剰余レジスタ(16ビット(2−2));剰余
レジスタの上位8ビットを分割する分割部(2−3);
分割されたデータに対応する剰余が格納されているテー
ブル(2−41〜2−44);テーブルから選んだ各々
の剰余の排他論理和をとるExclusive_OR(2−5);Ex
clusive_ORから出力されるデータ(16ビット)と、剰
余レジスタの下位8ビットを上位8ビット、入力データ
を下位8ビットとするデータ(16ビット)との排他論
理和をとる排他論理和部(2−1);によって構成され
る。
【0056】剰余レジスタ(2−2)のデータ(上位8
ビット)を分割部(2−3)に入力する。分割部(2−
3)は入力したデータ(8ビット)を図1のCRC符号
生成回路と同様に2ビット毎に分割し、2ビットをそれ
ぞれテーブル(2−41)、(2−42)、(2−4
3)、(2−44)に出力する。テーブル(2−4
1)、(2−42)、(2−43)、(2−44)は、
2ビットを入力し、それに対応する剰余をExclusive_OR
(2−5)に出力する。
ビット)を分割部(2−3)に入力する。分割部(2−
3)は入力したデータ(8ビット)を図1のCRC符号
生成回路と同様に2ビット毎に分割し、2ビットをそれ
ぞれテーブル(2−41)、(2−42)、(2−4
3)、(2−44)に出力する。テーブル(2−4
1)、(2−42)、(2−43)、(2−44)は、
2ビットを入力し、それに対応する剰余をExclusive_OR
(2−5)に出力する。
【0057】Exclusive_OR(2−5)は、テーブル(2
−41)、(2−42)、(2−43)、(2−44)
から入力した4個の剰余の排他論理和をとり出力する。
−41)、(2−42)、(2−43)、(2−44)
から入力した4個の剰余の排他論理和をとり出力する。
【0058】剰余レジスタ(2−2)のデータ(下位8
ビット)を上位8ビット、入力した8ビットのデータを
下位8ビットとして16ビットのデータにする。この1
6ビットのデータと、排他論理和をとったデータ(16
ビット)で排他論理和(2−1)をとる。更に、排他論
理和をとったデータを、剰余レジスタ(2−2)に入力
する。
ビット)を上位8ビット、入力した8ビットのデータを
下位8ビットとして16ビットのデータにする。この1
6ビットのデータと、排他論理和をとったデータ(16
ビット)で排他論理和(2−1)をとる。更に、排他論
理和をとったデータを、剰余レジスタ(2−2)に入力
する。
【0059】この処理をすべてのデータを入力するまで
続け、最終的に出力されるデータ(16ビット(2−
6))が0になるかどうかで、エラー検出を行ってい
る。
続け、最終的に出力されるデータ(16ビット(2−
6))が0になるかどうかで、エラー検出を行ってい
る。
【0060】また、テーブルの部分をRAMにして生成
多項式を変える毎に剰余を書き換えたり、複数の生成多
項式に対応した剰余をテーブルに持たせ、セレクタによ
って剰余を切り替える事により、様々な生成多項式に対
応したCRC符号生成回路及びCRCエラー検出回路が
可能となる。
多項式を変える毎に剰余を書き換えたり、複数の生成多
項式に対応した剰余をテーブルに持たせ、セレクタによ
って剰余を切り替える事により、様々な生成多項式に対
応したCRC符号生成回路及びCRCエラー検出回路が
可能となる。
【0061】本発明によれば、複数ビット毎の処理を必
要とするCRC符号生成回路およびCRCエラー検出回
路において、先述のテーブルを、所望の生成多項式に対
応したものと置き換えることにより、プログラマブルに
生成多項式を選択することが可能なCRC符号生成回路
およびCRCエラー検出回路を実現することが可能にな
る。また入力データを分割([本発明の実施例]では、
入力データ8ビットを4分割している)する事により、
テーブルの項目数を減らす([本発明の実施例]では、
4分割する事により分割無しの場合28−1=255通
りになるところを12に減らしている)事が可能であ
る。そして分割しても、各剰余の排他論理和をとる段数
は図6,7で示される様にlog2(分割数)の為、処
理速度も向上する。
要とするCRC符号生成回路およびCRCエラー検出回
路において、先述のテーブルを、所望の生成多項式に対
応したものと置き換えることにより、プログラマブルに
生成多項式を選択することが可能なCRC符号生成回路
およびCRCエラー検出回路を実現することが可能にな
る。また入力データを分割([本発明の実施例]では、
入力データ8ビットを4分割している)する事により、
テーブルの項目数を減らす([本発明の実施例]では、
4分割する事により分割無しの場合28−1=255通
りになるところを12に減らしている)事が可能であ
る。そして分割しても、各剰余の排他論理和をとる段数
は図6,7で示される様にlog2(分割数)の為、処
理速度も向上する。
【0062】次に、他の実施例について説明する。
【0063】図3は、本発明のCRC符号生成回路の他
の実施例として生成多項式を16ビット、データを16
ビット毎に入力し、16次以上の多項式の係数を4ビッ
ト毎に4分割する場合のCRC符号生成回路を示すブロ
ック図である。
の実施例として生成多項式を16ビット、データを16
ビット毎に入力し、16次以上の多項式の係数を4ビッ
ト毎に4分割する場合のCRC符号生成回路を示すブロ
ック図である。
【0064】本CRC符号生成回路は、剰余をラッチす
る剰余レジスタ(16ビット(3−5))。剰余レジス
タのデータ(16ビット)と入力データ(16ビット)
の排他論理和をとる排他論理和部(3−1)。排他論理
和をとったデータ(16ビット)を分割する分割部(3
−2)。分割されたデータに対応する剰余が格納されて
いるテーブル(3−31〜3−34)。テーブルから選
んだ各々の剰余の排他論理和をとるExclusive_OR(3−
4)によって構成される。
る剰余レジスタ(16ビット(3−5))。剰余レジス
タのデータ(16ビット)と入力データ(16ビット)
の排他論理和をとる排他論理和部(3−1)。排他論理
和をとったデータ(16ビット)を分割する分割部(3
−2)。分割されたデータに対応する剰余が格納されて
いるテーブル(3−31〜3−34)。テーブルから選
んだ各々の剰余の排他論理和をとるExclusive_OR(3−
4)によって構成される。
【0065】16ビットのデータを入力して、剰余レジ
スタ(3−5)のデータ(16ビット)と排他論理和
(3−1)をとる。(16ビット毎にデータを入力して
いる為、16次以上の多項式の係数は16ビットにな
る。)
スタ(3−5)のデータ(16ビット)と排他論理和
(3−1)をとる。(16ビット毎にデータを入力して
いる為、16次以上の多項式の係数は16ビットにな
る。)
【0066】排他論理和(16ビット)したデータを分
割部(3−2)に入力する。分割部(3−2)は入力し
たデータ(16ビット)を4ビット毎に4分割し、4ビ
ットそれぞれをテーブル(3−31)、(3−32)、
(3−33)、(3−34)に出力する。テーブル(3
−31)、(3−32)、(3−33)、(3−34)
は4ビットを入力し、それに対応する剰余をExclusive_
OR(3−4)に出力する。Exclusive_OR(3−4)はテ
ーブル(3−31)、(3−32)、(3−33)、
(3−34)から入力した4個の剰余の排他論理和をと
り出力する。(4ビット毎に分割しているので、係数の
組み合わせは15通りある。よってテーブルには、15
*4=60通りの剰余を用意すれば良い事になる。)
割部(3−2)に入力する。分割部(3−2)は入力し
たデータ(16ビット)を4ビット毎に4分割し、4ビ
ットそれぞれをテーブル(3−31)、(3−32)、
(3−33)、(3−34)に出力する。テーブル(3
−31)、(3−32)、(3−33)、(3−34)
は4ビットを入力し、それに対応する剰余をExclusive_
OR(3−4)に出力する。Exclusive_OR(3−4)はテ
ーブル(3−31)、(3−32)、(3−33)、
(3−34)から入力した4個の剰余の排他論理和をと
り出力する。(4ビット毎に分割しているので、係数の
組み合わせは15通りある。よってテーブルには、15
*4=60通りの剰余を用意すれば良い事になる。)
【0067】排他論理和をとったデータ(16ビット)
を剰余レジスタ(3−5)に入力する。この処理をすべ
てのデータを入力するまで続け、最終的に出力されるデ
ータ(16ビット(3−6))がCRC符号となる。
を剰余レジスタ(3−5)に入力する。この処理をすべ
てのデータを入力するまで続け、最終的に出力されるデ
ータ(16ビット(3−6))がCRC符号となる。
【0068】次にCRCエラー検出回路について説明す
る。
る。
【0069】図4は、本発明のCRCエラー検出回路の
他の実施例として生成多項式を16ビット、データを1
6ビット毎に入力し、16次以上の多項式の係数を4ビ
ット毎に4分割する場合のCRCエラー検出回路を示す
ブロック図である。
他の実施例として生成多項式を16ビット、データを1
6ビット毎に入力し、16次以上の多項式の係数を4ビ
ット毎に4分割する場合のCRCエラー検出回路を示す
ブロック図である。
【0070】本CRCエラー検出回路は、剰余をラッチ
する剰余レジスタ(16ビット(4−2))。剰余レジ
スタのデータ(16ビット)を分割する分割部(4−
3)。分割されたデータに対応する剰余が格納されてい
るテーブル(4−41〜4−44)。テーブルから選ん
だ各々の剰余の排他論理和をとるExclusive_OR(4−
5)。Exclusive_ORから出力されるデータ(16ビッ
ト)と、入力データ(16ビット)の排他論理和をとる
排他論理和部(4−1)によって構成される。
する剰余レジスタ(16ビット(4−2))。剰余レジ
スタのデータ(16ビット)を分割する分割部(4−
3)。分割されたデータに対応する剰余が格納されてい
るテーブル(4−41〜4−44)。テーブルから選ん
だ各々の剰余の排他論理和をとるExclusive_OR(4−
5)。Exclusive_ORから出力されるデータ(16ビッ
ト)と、入力データ(16ビット)の排他論理和をとる
排他論理和部(4−1)によって構成される。
【0071】剰余レジスタ(4−2)のデータ(16ビ
ット)を分割部(4−3)に入力する。
ット)を分割部(4−3)に入力する。
【0072】分割部(4−3)は入力したデータ(16
ビット)を図3のCRC符号生成回路と同様に4ビット
毎に分割し、4ビットそれぞれをテーブル(4−4
1)、(4−42)、(4−43)、(4−44)に出
力する。テーブル(4−41)、(4−42)、(4−
43)、(4−44)は4ビットを入力し、それに対応
する剰余をExclusive_OR(4−5)に出力する。
ビット)を図3のCRC符号生成回路と同様に4ビット
毎に分割し、4ビットそれぞれをテーブル(4−4
1)、(4−42)、(4−43)、(4−44)に出
力する。テーブル(4−41)、(4−42)、(4−
43)、(4−44)は4ビットを入力し、それに対応
する剰余をExclusive_OR(4−5)に出力する。
【0073】排他論理和(4−5)をとったデータ(1
6ビット)と、入力した16ビットのデータで排他論理
和(4−1)をとる。排他論理和をとったデータを、剰
余レジスタ(4−2)に入力する。
6ビット)と、入力した16ビットのデータで排他論理
和(4−1)をとる。排他論理和をとったデータを、剰
余レジスタ(4−2)に入力する。
【0074】この処理をすべてのデータを入力するまで
続け、最終的に出力されるデータ(16ビット(4−
6))が0になるかどうかで、エラー検出を行ってい
る。 [発明の効果]複数ビット毎の処理を必要とするCRC
符号生成回路およびCRCエラー検出回路において、前
述のテーブルを、所望の生成多項式に対応したものと置
き換えることにより、プログラマブルに生成多項式を選
択することが可能なCRC符号生成回路およびCRCエ
ラー検出回路を実現することが可能になる。また入力デ
ータを分割([本発明の実施例]では、入力データ8ビ
ットを4分割している)する事により、テーブルの項目
数を減らす([本発明の実施例]では、4分割する事に
より分割無しの場合28−1=255通りになるところ
を12に減らしている)ことが可能となる。そして分割
しても、各剰余の排他論理和をとる段数は図6,7で示
される様にlog2(分割数)の為、処理速度も向上す
るという利点がある。
続け、最終的に出力されるデータ(16ビット(4−
6))が0になるかどうかで、エラー検出を行ってい
る。 [発明の効果]複数ビット毎の処理を必要とするCRC
符号生成回路およびCRCエラー検出回路において、前
述のテーブルを、所望の生成多項式に対応したものと置
き換えることにより、プログラマブルに生成多項式を選
択することが可能なCRC符号生成回路およびCRCエ
ラー検出回路を実現することが可能になる。また入力デ
ータを分割([本発明の実施例]では、入力データ8ビ
ットを4分割している)する事により、テーブルの項目
数を減らす([本発明の実施例]では、4分割する事に
より分割無しの場合28−1=255通りになるところ
を12に減らしている)ことが可能となる。そして分割
しても、各剰余の排他論理和をとる段数は図6,7で示
される様にlog2(分割数)の為、処理速度も向上す
るという利点がある。
【図1】図1は、生成多項式を16ビット、データを8
ビット毎に入力するCRC符号生成回路の実施例のブロ
ック図である。
ビット毎に入力するCRC符号生成回路の実施例のブロ
ック図である。
【図2】図2は、生成多項式を16ビット、データを8
ビット毎に入力し、16次以上の多項式の係数を2ビッ
ト毎に四分割するCRCエラー検出回路の実施例のブロ
ック図である。
ビット毎に入力し、16次以上の多項式の係数を2ビッ
ト毎に四分割するCRCエラー検出回路の実施例のブロ
ック図である。
【図3】図3は、生成多項式を16ビット、データを1
6ビット毎に入力するCRC符号生成回路の実施例のブ
ロック図である。
6ビット毎に入力するCRC符号生成回路の実施例のブ
ロック図である。
【図4】図4は、生成多項式を16ビット、データを1
6ビット毎に入力し、16次以上の多項式の係数を4ビ
ット毎に四分割するCRCエラー検出回路の実施例のブ
ロック図である。
6ビット毎に入力し、16次以上の多項式の係数を4ビ
ット毎に四分割するCRCエラー検出回路の実施例のブ
ロック図である。
【図5】図5は、従来の生成多項式におけるCRC検出
の例のブロック図である。
の例のブロック図である。
【図6】図6は、テーブル引きした剰余の4分割時にお
ける排他論理和演算の説明図である。
ける排他論理和演算の説明図である。
【図7】図7は、テーブル引きした剰余の16分割時に
おける排他論理和演算の説明図である。
おける排他論理和演算の説明図である。
1―1、1―5、2―1、3―1、4―1 排他論
理和部 1―2、2―3、3―2、4―3 分割部 1―31/34、2―41/44、 テーブル 3―31/34、4―41/44 テーブ
ル 1―4、2―5、3―4、4―5 Exc
lusive_OR 1−6,2−2,3−5,4−2 剰余レ
ジスタ 1―7、2―6、3―6、4―6 出力デ
ータ
理和部 1―2、2―3、3―2、4―3 分割部 1―31/34、2―41/44、 テーブル 3―31/34、4―41/44 テーブ
ル 1―4、2―5、3―4、4―5 Exc
lusive_OR 1−6,2−2,3−5,4−2 剰余レ
ジスタ 1―7、2―6、3―6、4―6 出力デ
ータ
Claims (7)
- 【請求項1】 剰余をラッチするmビットの剰余レジス
タと、入力データnビットと該剰余レジスタの上位nビ
ットの排他論理和をとる排他論理和部と、該排他論理和
をとったデータを分割する分割部と、前記分割されたデ
ータに対応する剰余が格納されているテーブル、該テー
ブルから選んだ各各の剰余の排他論理和をとるExcl
usive_OR部と、該Exclusive_OR部
から出力されるデータmビットの上位nビットと前記剰
余レジスタの下位m−nビットを具備し、前記テーブル
を所望の生成多項式に対応したものと置き換えることに
より、プログラマブルに生成多項式を選択することが可
能であるCRC符号生成回路。 - 【請求項2】 前記テーブル部分をRAMにして、生成
多項式を換える毎に剰余を書き換えることを特徴とす
る、請求項1記載のCRC符号生成回路。 - 【請求項3】 複数の生成多項式に対応した剰余を前記
テーブルにもたせセレクタによって剰余をきりかえて、
様々な生成多項式に対応することが可能であることを特
徴とする、請求項1記載のCRC符合生成回路。 - 【請求項4】 1個のテーブルでなく、複数の分割した
テーブルと、Exclusive_OR部とを剰余生成
部が含むことを特徴とする、請求項1記載のCRC符号
生成回路。 - 【請求項5】 剰余をラッチするmビットの剰余レジス
タ、該剰余レジスタの上位nビットを分割する分割部、
分割されたデータに対応する剰余が格納されているテー
ブル、該テーブルから選んだ各の剰余の排他論理和をと
るExclusive_OR部、該Exclusive
_OR部から出力されるmビットのデータと、剰余レジ
スタの下位m−nビットを上位m−nビット、入力デー
タを下位nビットとするmビットのデータとの排他論理
和をとる排他論理和部とを具備し、nビット入力毎にC
RC符号を付加された特定のデータの剰余を順次求め、
剰余が0か否かにより割り切れるかどうかを調べること
を特徴とするCRCエラー検出回路。 - 【請求項6】 前記テーブル部分をRAMにして、生成
多項式を換える毎に剰余を書き換えることを特徴とす
る、請求項4記載のCRCエラー検出回路。 - 【請求項7】 複数の生成多項式に対応した剰余を前記
テーブルにもたせ、セレクタによって剰余をきりかえ
て、様々な生成多項式に対応することが可能であること
を特徴とする、請求項4記載のCRCエラー検出回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11206526A JP2001036414A (ja) | 1999-07-21 | 1999-07-21 | Crc符号生成回路及びcrcエラー検出回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11206526A JP2001036414A (ja) | 1999-07-21 | 1999-07-21 | Crc符号生成回路及びcrcエラー検出回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001036414A true JP2001036414A (ja) | 2001-02-09 |
Family
ID=16524832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11206526A Pending JP2001036414A (ja) | 1999-07-21 | 1999-07-21 | Crc符号生成回路及びcrcエラー検出回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001036414A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754870B2 (en) | 2000-04-14 | 2004-06-22 | Matsushita Electric Industrial Co., Ltd. | CRC operation unit and CRC operation method |
WO2008023684A1 (fr) * | 2006-08-22 | 2008-02-28 | Panasonic Corporation | Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle |
JP2008160663A (ja) * | 2006-12-26 | 2008-07-10 | Fujitsu Ltd | 情報ビット列の除算方法及びその装置 |
JP2009136025A (ja) * | 2009-03-23 | 2009-06-18 | Fujitsu Ltd | 準固定回路 |
US8321777B2 (en) | 2006-12-28 | 2012-11-27 | Samsung Electronics Co., Ltd. | Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device |
JP5126230B2 (ja) * | 2007-08-07 | 2013-01-23 | 富士通株式会社 | 誤り検出方法 |
US10230495B2 (en) | 2016-08-03 | 2019-03-12 | Renesas Electronics Corporation | CRC calculation circuit, semiconductor device, and radar system |
-
1999
- 1999-07-21 JP JP11206526A patent/JP2001036414A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754870B2 (en) | 2000-04-14 | 2004-06-22 | Matsushita Electric Industrial Co., Ltd. | CRC operation unit and CRC operation method |
WO2008023684A1 (fr) * | 2006-08-22 | 2008-02-28 | Panasonic Corporation | Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle |
JPWO2008023684A1 (ja) * | 2006-08-22 | 2010-01-14 | パナソニック株式会社 | 並列剰余演算器及び並列剰余演算方法 |
US8700971B2 (en) | 2006-08-22 | 2014-04-15 | Panasonic Corporation | Parallel residue arithmetic operation unit and parallel residue arithmetic operating method |
JP2008160663A (ja) * | 2006-12-26 | 2008-07-10 | Fujitsu Ltd | 情報ビット列の除算方法及びその装置 |
US8321777B2 (en) | 2006-12-28 | 2012-11-27 | Samsung Electronics Co., Ltd. | Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device |
US8966338B2 (en) | 2006-12-28 | 2015-02-24 | Samsung Electronics Co., Ltd. | Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device |
JP5126230B2 (ja) * | 2007-08-07 | 2013-01-23 | 富士通株式会社 | 誤り検出方法 |
JP2009136025A (ja) * | 2009-03-23 | 2009-06-18 | Fujitsu Ltd | 準固定回路 |
US10230495B2 (en) | 2016-08-03 | 2019-03-12 | Renesas Electronics Corporation | CRC calculation circuit, semiconductor device, and radar system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5715470A (en) | Arithmetic apparatus for carrying out viterbi decoding at a high speed | |
EP0329789B1 (en) | Galois field arithmetic unit | |
JPS60144834A (ja) | 有限体の演算回路 | |
EP0621698A2 (en) | Error correction method including erasure correction, and apparatus therefore | |
KR20010098575A (ko) | 씨알씨 연산장치 및 씨알씨 연산방법 | |
WO1999066423A1 (fr) | Dispositif pour calcul de donnees | |
JP2001036414A (ja) | Crc符号生成回路及びcrcエラー検出回路 | |
KR100322739B1 (ko) | 유한체연산방법및그장치 | |
US8201060B2 (en) | Methods and systems for rapid error correction of Reed-Solomon codes | |
GB2042228A (en) | Data correcting system | |
JP2001127645A (ja) | 誤り訂正方法および誤り訂正装置 | |
JPH0353815B2 (ja) | ||
EP0595326B1 (en) | Reed-Solomon decoding with Euclid algorithm | |
JP4045872B2 (ja) | 符号化方法および符号化装置 | |
JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
JP2662472B2 (ja) | 誤り訂正処理用シンドローム演算回路 | |
US7031407B1 (en) | Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm | |
JPH0682395B2 (ja) | ビットマスク生成回路 | |
JP3953397B2 (ja) | リードソロモン符号化回路およびリードソロモン復号化回路 | |
JP4595055B2 (ja) | ガロア体のα乗算回路および演算回路 | |
JPH0385923A (ja) | Crc演算方式 | |
JPH07226687A (ja) | 誤り訂正処理装置 | |
US11489544B2 (en) | Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial | |
JP2001358594A (ja) | Crc演算装置、およびcrc演算方法 | |
JPS623619B2 (ja) |