JPH04284541A - Crc符号の生成及び検査方法並びにその回路 - Google Patents

Crc符号の生成及び検査方法並びにその回路

Info

Publication number
JPH04284541A
JPH04284541A JP3075672A JP7567291A JPH04284541A JP H04284541 A JPH04284541 A JP H04284541A JP 3075672 A JP3075672 A JP 3075672A JP 7567291 A JP7567291 A JP 7567291A JP H04284541 A JPH04284541 A JP H04284541A
Authority
JP
Japan
Prior art keywords
data
remainder
parallel
circuit
polynomial
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
Application number
JP3075672A
Other languages
English (en)
Inventor
Keiichi Ochi
越智 圭一
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP3075672A priority Critical patent/JPH04284541A/ja
Publication of JPH04284541A publication Critical patent/JPH04284541A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、デジタルデータの誤
り検出用符号として用いられるCRC(Cyclic 
 Redundoncy  Chech)符号の生成及
びその検査方法並びにそれを用いた回路に関する。
【0002】
【従来の技術】デジタルデータの誤り検出用符号として
、CRC符号が通信やデジタル記録の分野で広く用いら
れている。
【0003】このCRC符号は、mビットの冗長ビット
を付加することで、mビット以下の全ての誤りを検出す
ることができ、比較的少ない冗長ビットを付加によって
高い誤り検出能力を持たせるものである。
【0004】CRC符号の検査原理は(n−K)次の生
成多項式G(x)を定めて、nビットのコードで与えら
れるXの(n−1)次の多項式F(x)がP(x)で割
り切れる様に構成しておき、コード多項式F(x)が受
信または読取り時にG(x)で割り切れるか否かを検査
するものである。
【0005】こCRC符号は、巡回符号であるため、生
成多項式が決まれば簡単なシフトレジスタで構成できる
ため、従来はシフトレジスタと排他的論理和回路を用い
たハードウェアで構成されていた。
【0006】しかしながら、上述した従来の方式におい
ては、シフトレジスタにシリアルにデータを入力する必
要があり、コンピュータ等のメモリにパラレルにストア
されたデータに対して、CRC符号を付加したり、CR
C復号を行なう場合、パラレルに読み出したデータをシ
リアルに変換した後、シフトレジスタ、排他論理和回路
で構成したCRC演算回路に入力する必要があった。
【0007】
【発明が解決しようとする課題】このため、上述した回
路構成では、ゲート数の増加、制御回路の複雑化、回路
動作速度の低加を招くという問題があった。この発明は
、斯る問題点を解消するためになされたものにして、パ
ラレルデータに対するCRC符号の生成、検査をゲート
数を少なくし、単純な制御回路で高速に行なうことがで
きる回路を実現することをその課題とする。
【0008】
【課題を解決するための手段】この発明に係るCRC符
号の生成及び検査方法は、パラレルデータとして読み出
したデータ多項式を生成多項式でパラレル演算にて割算
を施して剰余を算出することにより、CRC符号の生成
及び検査を行なうことを特徴とする。
【0009】また、この発明の第2の発明は、aバイト
からなるi番目のデータとして読み出したデータ多項式
を生成多項式でパラレル演算にて割算を施し剰余を算出
し、この剰余に所定の次数からa×i(iは1より大き
い整数)の次数を引き算したべき数を掛け算したものに
aバイトからなるi+1番目のデータとして読み出した
データ多項式を加算したものを生成多項式でパラレル演
算にて割算を施して新たな剰余を算出し、最後のaバイ
トまで上記新たな剰余を算出する演算を繰返して剰余を
算出することにより、CRC符号の生成及び検査を行な
うことを特徴とする。
【0010】また、この発明に係るCRC符号の生成及
び検査回路は、aバイトからなるi番目のデータとして
読み出したデータ多項式を生成多項式でパラレル演算に
て割算を施し剰余を算出する回路、この剰余に所定の次
数からa×i(iは1より大きい整数)の次数を引き算
したべき数を掛け算したものにaバイトからなるi+1
番目のデータとして読み出したデータ多項式を加算した
ものを生成多項式でパラレル演算にて割算を施して新た
な剰余を算出する回路を備え、パラレルデータとして読
み出したデータ多項式を生成多項式でパラレル演算にて
割算を施して剰余を算出する。
【0011】
【作用】CRC演算回路をパラレルに構成しているため
、パラレルデータをシリアルに変換する為のパラレルシ
リアル変換器が不要となる。また、パラレルのまま演算
できるので、従来のシリアル構成のものに比べて、大幅
に高速化できる。
【0012】
【実施例】図1は、この発明に係るCRC符号の生成及
び検査回路の一実施例を示す回路図であり、この図1の
回路は生成多項式G(x)=X16+X12+X5+1
の場合のパラレルCRC生成、検査を行なう。
【0013】まず、基本的なCRCの考え方を示す。 今C(x),R(x)を C(x):データ多項式(kビット) R(x):冗長ビット多項式(n−kビット)とする時
、C(x)にR(x)を付加することでnビットを符号
を構成する。
【0014】G(x),C(x),R(x)は    
X16C(x)+R(x)=G(x)・Q(x)=F(
x)となる。
【0015】ここでF(x)はnビットのコード多項式
、Q(x)はX16C(x)をG(x)で割った時の商
で、R(x)はその時の剰余となっている。つまり、F
(x)を求めるには、R(x)を求め、それをC(x)
のうしろに付加すればよいことがわかる。復号時は、F
(x)をG(x)で割り算し、割り切れるかどうかで、
エラーの有無を判定する。これらの計算はすべてmod
2によって行なう。
【0016】次に、バイト単位のパラレル演算で、X1
6C(x)をG(x)で割り剰余を求める方法を示す。
【0017】1バイトのデータB(x)=a7X7+a
6X6+a5X5+a4X4+a3X3+a2X2+a
1X+1を考え、X16B(x)をG(x)で割った時
の余りRB(x)は、次のようになる。
【0018】RB(x)=(a3+a7)X15+(a
2+a6)X14+(a1+a5)X13+(a0+a
4+a7)X12+a6X11+a5X10+a4X9
+(a3+a7)X8+(a2+a6+a7)X7+(
a1+a5+a6)X6+(a0+a4+a5)X5+
a4X4+(a3+a7)X3+(a2+a6)X2+
(a1+a5)X+(a0+a4)
【0019】C(x)をバイトを単位にみると、以下の
数1に示すようになる。
【0020】
【数1】
【0021】したがって、X16C(x)をG(x)で
割った余りは次のようにして求めることができる。 (1)X16B1(x)をG(x)で割って余りを求め
る。これは、RB(x)を求めるのと同様であり、この
余りをR1(x)とする。 (2)次にR1(x)にX8をかけたものに、X16B
2(x)を加えたものに対して同様にR2(x)を求め
る。 (3)上記(2)の算出をmすなわちデータの最後のバ
イトまでくり返すと、R(x)が得られる。
【0022】同様に、復号はF(x)をバイト単位でG
(x)で割り算し、最後、剰余が0かどうかチェックす
ればよい。
【0023】図1は、この計算を実際の回路にしたもの
である。
【0024】1はメモリであり、このメモリに上述した
データB(x)が1バイト単位で格納されている。 2はアドレス発生器であり、上記メモリ1のアドレスを
発生し、3ステートバッファ12にライトイネーブル(
RE)信号が与えられることにより、データバス上にB
1(x)に相当するデータがパラレルで出力される。
【0025】3はワード剰余生成回路であり、バイト単
位で入力されるデータをバイト単位で演算し、剰余RB
(x)を求める。
【0026】このワード剰余生成回路3で算出した剰余
は8ビットのフリップフロップ4、5に夫々パラレルデ
ータとして出力される。
【0027】フリップフロップ4のQ0〜Q7出力はワ
ード剰余生成回路3のEXOR回路34−0〜34−7
夫々の対応する一入力として与えられると共にノア回路
7に与えられる。
【0028】フリップフロップ5のQ8〜Q15出力は
EXOR回路群10のEXOR回路10−8〜10−1
5の夫々対応する1入力として与えられると共にノア回
路7に与えられる。尚、各EXOR回路は図に示すよう
にデータに対応している。
【0029】ノア回路16からの出力は、フリップフロ
ップ6のD端子に入力され、剰余が0の場合には、誤り
がないとしてCRCOK信号がアクティブになる。
【0030】EXOR回路10−8〜10−15の他入
力はメモリ1から読み出されたバイト単位のデータが与
えられる。
【0031】このEXOR回路10−8の出力はEXO
R回路31−1の一入力として、このEXOR31−1
の他入力はEXOR回路10−12の出力が与えられる
【0032】このEXOR回路10−12の出力は更に
EXOR回路34−1の一入力及びフリップフロップ4
のD4端子に入力される。
【0033】フリップフロップ4のD0端子にはEXO
R回路31−1の出力が与えられる。またEXOR回路
31−1の出力はEXOR回路33−5の1入力として
与えられる。
【0034】EXOR回路10−9の出力はEXOR回
路31−2の一入力として、このEXOR31−2の他
入力はEXOR回路10−13の出力が与えられる。
【0035】このEXOR回路10−13の出力は更に
EXOR回路34−2の一入力及びEXOR回路33−
5の他入力として与えられる。EXOR回路33−5の
出力はフリップフロップ4のD5端子に入力される。
【0036】EXOR回路10−10の出力はEXOR
回路31−3の一入力として、このEXOR31−3の
他入力はEXOR回路10−14の出力が与えられる。 このEXOR回路10−14の出力は更にEXOR回路
34−3の一入力とEXOR回路33−6の他入力とし
て与えられる。EXOR回路33−6の出力はフリップ
フロップ4のD6端子に入力される。
【0037】EXOR回路10−11の出力はEXOR
回路31−4の一入力として、このEXOR31−4の
他入力はEXOR回路10−15の出力が与えられる。 このEXOR回路10−15の出力は更にEXOR回路
32の一入力とEXOR回路33−7の他入力として与
えられる。EXOR回路31−4の出力はEXOR回路
34−0に与えられる。EXOR回路33−7の出力は
フリップフロップ4のD7端子に入力される。また、E
XOR回路32の他入力には、EXOR回路31−2の
出力が与えられ、このEXOR回路32の出力がEXO
R回路34−4の他入力に与えられる。
【0038】フリップフロップ5のQ8〜Q15出力は
3ステートバッファ9に夫々与えられ、このバッファ9
にメモリに書き込み用信号Gが与えられると、データバ
ス及び3ステートバッファ11を経てメモリ1にバイト
単位でCRC符号が書き込まれる。
【0039】次にこの回路の動作を説明する。
【0040】まず、CRC符号の生成について説明する
【0041】a.信号CLRにより、8ビットのフリッ
プフロップ4,5及びフリップフロップ6をクリアする
【0042】b.アドレス発生器2により、B1(x)
に相当するデータ(バイト)の格納されているメモリ1
のアドレスを発生し、信号REにより、そのデータをデ
ータバス上に入力する。
【0043】c.信号CK1により、フリップフロップ
4、5に剰余R1(x)が得られる。
【0044】d.アドレス発生器2により次のデータの
アドレスを発生し、REにより、データバス上に入力す
る。
【0045】e.CK1により、フリップフロップ4、
5にR2(x)が得られる。
【0046】f.上記d,eの動作を最後のデータまで
くり返す。
【0047】g.アドレス発生器2は次のアドレスを発
生する。
【0048】h.信号Gにより、ゲートを開き、R(x
)の上位バイトを出力し、メモリに書き込む。
【0049】i.Gをアクティブにしたまま、CK1に
よりR(x)を8ビットシフトする。
【0050】j.上記g,hの動作と同様の操作により
、R(x)の下位バイトをメモリ1に書き込む。
【0051】上記動作を行なってCRC符号の生成が終
了する。
【0052】次に、CRC検査について説明する。
【0053】生成時と同様にして、F(x)をバイト単
位で読み込み、フリップフロップ4、5に剰余を得る。
【0054】F(x)の最後のバイトを読み込み最終的
な剰余がフリップフロップ4、5に得られた後、信号C
K2により、剰余が0であったかどうかの信号をフリッ
プフロップ6に取り込む。
【0055】剰余がゼロの場合は。信号CRCOKがア
クティブになる。
【0056】上記動作を行なってCRC符号の検査が終
了する。
【0057】図2は、生成多項式G(x)=(X16+
X15+X2+1)(X16+X2+X+1)の場合の
CRC生成検査回路を示す。ブロック図である。この図
2において、データはワード(16ビット)単位でアク
セスされる。
【0058】このメモリ1に上述したデータB(x)が
1ワード単位で格納されている。アドレス発生器2は、
上記メモリのアドレスを発生し、データバス上にB1(
x)に相当するデータがパラレルで出力される。ワード
剰余生成回路3、12、ワード単位で入力されるデータ
をバイト単位で演算し、以下に示す剰余Rw(x)を算
出。
【0059】Rw(x)=(A+a15)X31+a1
4X30+a13X29+a12X28+a11X27
+a10X26+a9X25+a8X24+a7X23
+a6X22+a5X21+a4X20+(a3+a1
5)X19+(a2+a14)X18+(a1+a13
)X17+(a0+a12+a15)X16+(A+a
11+a14)X15+(a10+a13)X14+(
a9+a12)X13+(a8+a11)X12+(a
7+a10)X11+(a6+a9)X10+(a5+
a8)X9+(a4+a7)X8+(a3+a6)X7
+(a2+a5)X6+(a1+a4)X5+(a0+
a3)X4+(A+a2)X3+a1X2+a0X+A
【0060】ここでAは数2で示す。
【0061】
【数2】
【0062】このワード剰余生成回路3で算出した剰余
は16ビットのレジスタ40、50に夫々パラレルデー
タとして出力される。レジスタ40のQ出力は剰余生成
回路3から与えられるワード単位のデータとEXOR回
路56で排他的論理和がとられ、レジスタ50のD入力
として与えられる。レジスタ40のQ出力とレジスタ5
0のG出力はノア回路70に与えられる。
【0063】ノア回路70からの出力は、フリップフロ
ップ60のD端子に入力され、剰余が0の場合にはCR
COK信号がアクティブになる。
【0064】また、レジスタ50のQ出力はEXOR回
路57でデータバスからのデータと排他的論理和がとら
れ、このEXOR回路57からの出力が剰余生成回路3
へ与えられる。
【0065】また、レジスタ50のQ出力は3ステート
バッファ55に与えられ、このバッファ55にメモリに
書き込み用信号Gが与えられると、メモリにワード単位
でCRC符号が書き込まれる。
【0066】
【発明の効果】以上説明したように、この発明によれば
、CRC演算回路をパラレルに構成しているため、パラ
レルデータをシリアルに変換する為のパラレルシリアル
変換器が不要となる。また、パラレルのまま演算できる
ので、従来のシリアル構成のものに比べて、大幅に高速
化できる。また、パラレルデータを読み込むタイミング
と、CRCの演算を行なうタイミングが1対1の為、制
御回路が単純に構成できる。
【図面の簡単な説明】
【図1】  この発明に係るCRC符号の生成及び検査
回路の一実施例を示す回路図である。
【図2】  生成多項式G(x)=(X16+X15+
X2+1)(X16+X2+X+1)の場合のこの発明
に係るCRC符号の生成及び検査回路の一実施例を示す
回路図である。
【符号の説明】
1  メモリ 2  アドレス発生器 3  剰余生成回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  パラレルデータとして読み出したデー
    タ多項式を生成多項式でパラレル演算にて割算を施して
    剰余を算出することにより、CRC符号の生成及び検査
    を行なうことを特徴とするCRC符号の生成及び検査方
    法。
  2. 【請求項2】  aバイトからなるi番目のデータとし
    て読み出したデータ多項式を生成多項式でパラレル演算
    にて割算を施し剰余を算出し、この剰余に所定の次数か
    らa×i(iは1より大きい整数)の次数を引き算した
    べき数を掛け算したものにaバイトからなるi+1番目
    のデータとして読み出したデータ多項式を加算したもの
    を生成多項式でパラレル演算にて割算を施して新たな剰
    余を算出し、最後のaバイトまで上記新たな剰余を算出
    する演算を繰返して剰余を算出することにより、CRC
    符号の生成及び検査を行なうことを特徴とするCRC符
    号の生成及び検査方法。
  3. 【請求項3】  aバイトからなるi番目のデータとし
    て読み出したデータ多項式を生成多項式でパラレル演算
    にて割算を施し剰余を算出する回路、この剰余に所定の
    次数からa×i(iは1より大きい整数)の次数を引き
    算したべき数を掛け算したものにaバイトからなるi+
    1番目のデータとして読み出したデータ多項式を加算し
    たものを生成多項式でパラレル演算にて割算を施して新
    たな剰余を算出する回路を備え、パラレルデータとして
    読み出したデータ多項式を生成多項式でパラレル演算に
    て割算を施して剰余を算出することにより、CRC符号
    の生成及び検査回路。
JP3075672A 1991-03-14 1991-03-14 Crc符号の生成及び検査方法並びにその回路 Pending JPH04284541A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3075672A JPH04284541A (ja) 1991-03-14 1991-03-14 Crc符号の生成及び検査方法並びにその回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3075672A JPH04284541A (ja) 1991-03-14 1991-03-14 Crc符号の生成及び検査方法並びにその回路

Publications (1)

Publication Number Publication Date
JPH04284541A true JPH04284541A (ja) 1992-10-09

Family

ID=13582926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3075672A Pending JPH04284541A (ja) 1991-03-14 1991-03-14 Crc符号の生成及び検査方法並びにその回路

Country Status (1)

Country Link
JP (1) JPH04284541A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06311049A (ja) * 1993-04-20 1994-11-04 Nippon Denki Musen Denshi Kk Crc符号算出回路
US10567692B2 (en) 2017-12-22 2020-02-18 Canon Kabushiki Kaisha Image capturing apparatus, imaging capturing system, signal processing apparatus, and signal processing method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06311049A (ja) * 1993-04-20 1994-11-04 Nippon Denki Musen Denshi Kk Crc符号算出回路
US10567692B2 (en) 2017-12-22 2020-02-18 Canon Kabushiki Kaisha Image capturing apparatus, imaging capturing system, signal processing apparatus, and signal processing method

Similar Documents

Publication Publication Date Title
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
CN112214349B (zh) 一种数据循环冗余校验装置和方法
US20040117688A1 (en) Error correction for flash memory
JPS5949618B2 (ja) 巡回ブロック符号のための直列エンコ−ダ
JP3345385B2 (ja) チェンサーチ装置
JP3279624B2 (ja) Crc演算に基づく1ビット誤り訂正回路
JPH04284541A (ja) Crc符号の生成及び検査方法並びにその回路
KR100253043B1 (ko) 에러 정정 방법 및 정정 회로
CN114443348B (zh) 一种可配置crc码的计算系统
JP3850512B2 (ja) リードソロモン復号装置
JPH0385923A (ja) Crc演算方式
AU611448B2 (en) Method and apparatus for decoding reed-solomon code
JP2752510B2 (ja) 誤り訂正復号器
JP2008112522A (ja) 誤り検出装置および誤り検出方法
JP2820124B2 (ja) 主記憶装置
JP3223513B2 (ja) 誤り訂正復号装置
JP3239866B2 (ja) Crcに基づくデータ検査方法及び装置並びに記録媒体
JPS60103562A (ja) 誤り訂正装置
KR0164726B1 (ko) 병렬 사이클릭 리던던시 체크 엔코더
KR950008485B1 (ko) 단일에러정정용 리드-솔로몬 복호기
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置
JP2001211083A (ja) Crc出力演算装置
KR0182007B1 (ko) 병렬 순회 용장 부호 검사 장치
JPH1065552A (ja) 誤り訂正の演算処理方法及び処理回路
JPH03117923A (ja) 誤り訂正復号器