JP2822928B2 - Crc符号演算方法および回路 - Google Patents

Crc符号演算方法および回路

Info

Publication number
JP2822928B2
JP2822928B2 JP7130729A JP13072995A JP2822928B2 JP 2822928 B2 JP2822928 B2 JP 2822928B2 JP 7130729 A JP7130729 A JP 7130729A JP 13072995 A JP13072995 A JP 13072995A JP 2822928 B2 JP2822928 B2 JP 2822928B2
Authority
JP
Japan
Prior art keywords
word
circuit
data
polynomial
remainder
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.)
Expired - Fee Related
Application number
JP7130729A
Other languages
English (en)
Other versions
JPH08330976A (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP7130729A priority Critical patent/JP2822928B2/ja
Publication of JPH08330976A publication Critical patent/JPH08330976A/ja
Application granted granted Critical
Publication of JP2822928B2 publication Critical patent/JP2822928B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタルデータの誤
り検出用符号として用いられているCRC(Cyclic Red
undancy Check :巡回冗長検査)符号の生成および検査
方法ならびにCRC符号演算回路に利用する。
【0002】本発明は、データ入力のクロック速度を高
速化するとともに、LSIによる集積化をはかることが
できるCRC符号演算方法および回路に関する。
【0003】
【従来の技術】ディジタルデータの誤り検出用符号とし
てCRC符号が通信やディジタル記録の分野で広く用い
られている。
【0004】CRC符号は、情報信号を多項式表現した
情報多項式を生成多項式で除算したときの剰余として与
えられる。mビットのCRC符号はm次の生成多項式G
(x)を用いることにより得られる。CRC符号の検査
原理は、情報信号がk−1次の多項式で表現されている
際に、m+kビットのコードで与えられるxの(m+k
−1)次の多項式F(x)がG(x)で割り切れるよう
に構成しておき、符号多項式F(x)を受信した際にF
(x)がG(x)で割り切れるか否かを検査するもので
ある。
【0005】このCRC符号は巡回符号であるため、生
成多項式が定まればシフトレジスタと排他的論理和回路
を用いたハードウェアにて構成することが可能である。
また、データ列を並列に展開することによって演算速度
を向上させることが可能である。
【0006】従来のデータ並列展開型CRC演算回路の
一例が、特開平4−284541号公報に記載されてい
る。この公報に記載されたCRC演算回路は、整数バイ
ト単位のパラレルデータを剰余生成回路に順次入力し
て、生成多項式でパラレルのまま割り算を施して剰余を
算出している。並列展開数は生成多項式の次数と同等の
場合と、半分の場合とについて言及している。
【0007】図5は従来のデータ並列展開型CRC演算
回路構成の一例を示すブロック図である。ここでは生成
多項式G(x)が、 G(x)= x32+x26+x23+x22+x16+x12+x
11+x10+x8 +x7 +x5 +x4 +x2 +x+1 であり、32パラレルに並列展開した場合の一般的な例
が示されている。
【0008】まずCRC演算の基本構成について説明す
る。いま、A(x)、R(x)を、 A(x):情報多項式(kビット) R(x):冗長ビット多項式(mビット) とするとき、A(x)にR(x)を付加してk+mビッ
トの符号F(x)を構成する。このときの生成多項式G
(x)と、A(x)、R(x)、F(x)の関係は、 xm A(x)+R(x)=G(x)・Q(x)=F
(x) となる。ここで、Q(x)はxm A(x)をG(x)で
割ったときの商であり、R(x)はそのときの剰余とな
っている。
【0009】このCRC演算を並列展開して行う方法に
ついて説明する。ここでは、A(x)のビット数がnワ
ード、すなわち32nビット(nは1以上の自然数)で
あり、並列展開数を32とする。
【0010】1ワードのデータとしてw(x)を考え
る。w(x)は〔数1〕で示す。
【0011】
【数1】 ここでx32w(x)をG(x)で割ったときの剰余Rw
(x)を求める。Rw (x)は〔数2〕に示す。
【0012】
【数2】 w(x)、Rw (x)の係数を成分とする列ベクトルを
wとRw とする。
【0013】w=[w0 1 …w32T 、 Rw =[Rw,0 w,1 …Rw,31T (Tは転置行列を
示す) CRC演算をシリアルで行う場合の、1クロックにおけ
る各フリップフロップの状態遷移を示す行列をTs とす
ると〔数3〕のように表現できる。
【0014】
【数3】 ベクトルwとベクトルRw の関係はM=Ts 32で定まる
変換行列Mによって次のうに与えられる。
【0015】Rw =Mw ここで、A(x)をワード(32ビット)単位に見ると
〔数4〕のようになる。
【0016】
【数4】 従って、x32A(x)をG(x)で割った剰余R(x)
は行列表現を用いると、〔数5〕のようなベクトルRと
なる。
【0017】
【数5】 ここで、図5に示される並列展開型のCRC演算回路に
ついて説明する。このCRC演算回路は、32ビット幅
(ワード)のラッチ回路33、34、フリップフロップ
9、ビット毎の排他的論理和回路20、排他的論理和回
路網23、データゲート回路32によって構成される。
【0018】次に、CRC符号生成時の動作について説
明する。まず、ラッチ回路33、34に初期化する。ク
ロックに同期して32ビット単位(ワード単位)にデー
タが入力端子28より入力される。排他的論理和回路2
0と、排他的論理和回路網23において、入力されたデ
ータについて逐次剰余計算を行う。最終データワードが
入力され、排他的論理和回路網23の出力をラッチ回路
34がラッチした時点で、ラッチ回路34の出力にCR
C符号が現れる。セレクタ回路4を切り替えることによ
り、最終データワードに続けて、次のクロックでCRC
符号を出力端子29より出力する。
【0019】CRC符号による検査時の動作について
は、生成時と同様に初期化後データを入力する。最終デ
ータワードが入力された時点で、ラッチ回路34の出力
にCRC符号があらわれる。この符号値と、伝送されて
きてラッチ回路33から出力されるCRC符号とを比較
器30にて比較することにより判定する。
【0020】
【発明が解決しようとする課題】図5に示した並列展開
型のCRC演算回路が正常に動作するためには、クロッ
クが入力されてから排他的論理和回路20および排他的
論理和回路網23による遅延が1クロック未満でなけれ
ばならない。しかし、排他的論理和回路20および排他
的論理和回路網23がCRC演算を一度に行うために
は、多段に接続された排他的論理和回路に信号を通過さ
せる必要がある。図5に示した例では、最大で5段の排
他的論理和回路を通過する信号線が存在する。そのた
め、その信号線の部分が回路上のクリティカルパスとな
り、クロック速度の上限を決めてしまう。
【0021】このように、次数が高く項数の多い生成多
項式を用いたCRC符号の生成および検査方式において
は、従来よりソフトウェア処理による方法が行われてい
る。しかしソフトウェア処理による方法では、一般にデ
ータ処理の速度がハードウェア処理に比べて遅いため高
速処理には不向きである。
【0022】本発明は、上述した課題を解決するもの
で、次数が高く項数の多い生成多項式によるCRC演算
方法において、従来より行われていたソフトウェア処理
による方法に対し、ハードウェア処理による高速処理を
行うことができ、回路構成上高速動作を可能にし集積化
を容易に行うことができるCRC演算方法および回路を
提供することを目的とする。
【0023】
【課題を解決するための手段】本発明は、並列入力デー
タによるCRCの演算を並列入力データを再展開し、割
り算の部分演算をパイプライン処理によって行い、並列
展開にともなう排他的論理和回路網内の回路段数の増加
を抑制し演算処理を高速化するとこを特徴とする。
【0024】すなわち、本発明の第一の観点は、データ
多項式に対して生成多項式による割算を並列演算により
行いその剰余を算出するCRC符号演算方法において、
前記データ多項式が、1クロック信号に同期して読出さ
れたxビット幅のワードを単位としてさらに複数iワー
ド(x×i、iは2以上の自然数)に並列展開されたこ
とを特徴とする。
【0025】前記xは生成多項式の次数mに等しく設定
され、前記複数iワードに並列展開してできるj番目
(jは1以上の自然数)のワード列(第i×(j−1)
+1ワード(mビット幅)から第i×jワードまで)と
j+1番目のワード列(第i×j+1)ワードから第i
×(j+1)ワードまで)について、第i×(j−1)
+hワード(hは1≦h≦iを満たす自然数)を係数に
持つ符号多項式に次数m×iのべき数を乗じた後に生成
多項式によって除算して剰余を算出し、この剰余と第i
×j+hワードを係数に持つ符号多項式との和に次数m
×iのべき数を乗じた後に生成多項式によって除算して
剰余を算出する操作を1番目からi番目まで各ワード行
について分離して独立に行い、上記操作を最終データワ
ードを入力するまで繰り返し、最終データワードの入力
後に1番目からi番目までの各ワード行の剰余項を用い
て、全データワードによる符号多項式に対する生成多項
式の剰余を算出することが望ましい。
【0026】本発明の第二の観点は、CRC符号演算回
路において、入力端子(10)と、この入力端子にクロ
ック信号に同期して入力するxビット幅の並列データを
ワード単位にi個(iは2以上の自然数)に展開する展
開回路(6)と、この展開回路の出力データをi個並列
にそれぞれ演算する演算回路(2、3)とを備えたこと
を特徴とする。
【0027】前記演算回路は、i個並列に設けられ各ワ
ードの剰余を算出する第一部分演算回路(2)と、その
i個の第一部分演算回路が出力する剰余を取込み全ワー
ドについての符号多項式に対する生成多項式の剰余を算
出する1個の第二部分演算回路(3)とを含み、前記展
開回路(6)が出力するi個のデータについて前記演算
回路(2、3)の遅延時間に相当する遅延を与える遅延
手段(7)と、この遅延手段の出力データのうちのi番
目のデータに前記演算回路が出力するCRC符号を付加
するセレクタ回路(4)とを備え、前記演算回路(2、
3)の全ワードに対する出力を判定基準と照合して判定
出力(17)を送出する判定回路(5)を備えることが
望ましい。
【0028】
【作用】CRC符号の生成および検査は、ワード(xビ
ット幅)単位のパラレルデータとして読み出したデータ
多項式をさらに複数ワード(x×i、iは2以上の自然
数)に並列展開し、生成多項式による割り算を並列演算
にて行い剰余を算出し、CRC符号の生成および検査を
行う。
【0029】また、CRC符号の演算は、生成多項式の
次数mの整数倍(m×i、iは2以上の自然数)で展開
したデータに対して、各ワード(mビット幅)毎に割り
算の部分演算を分割しパイプライン処理によって行う。
【0030】情報多項式A(x)が〔数6〕で表されて
いるとする。
【0031】
【数6】 ここで、ワード展開数をjとしてn+1がjで割り切れ
る(n+1=j×k)とする。
【0032】CRC符号多項式R(x)は〔数7〕で示
すベクトル表現Rで表現される。
【0033】
【数7】 これにより、Rを求める演算を2種類の演算ブロックに
分割する。1番目は(Mj i (iは0≦i≦k−1を
満たす整数)を乗じる演算ブロックである。2番目はw
u +Mwu-1 +M2 u-2 +…+Mj-1 u-j+1 (uは
j≦u≦n−1を満たす整数)の演算を行うブロックで
ある。
【0034】まず、(Mj i (iは0≦i≦k−1を
満たす整数)を乗じる演算は、Mjに対応する排他的論
理和回路網を用意して、処理データをフィードバックに
よって排他的論理和回路網をi回通過させることにより
処理できる。このとき、各入力ワードwu を添字uにつ
いてjによる剰余類で分類すると、同じ剰余類の入力ワ
ードwu は同一データバス上に存在し、他のデータバス
上には出現しない。したがって、各バス毎に独立にデー
タの処理を行うことが可能となる。また、uが小さい入
力ワードほど入力時刻の早いデータとなっている。した
がって入力端子に到着したデータの順に逐次処理を行え
ばよいことになる。図2は、同じ剰余類の入力ワードw
u について、〔数8〕で表現される計算を行う第一部分
演算回路の構成を示すブロック図である。
【0035】
【数8】 例としてm=32の場合を示している。演算ブロック2
は、Mj に対応する排他的論理和回路網19、ビット毎
の排他的論理和回路20、ラッチ回路7で構成される。
その演算は以下の手順によって行う。 1:ラッチ回路7を初期化する。 2:入力端子21より入力ワードをラッチ回路7へ入力
する。 3:ラッチ回路7の出力信号を排他的論理和回路網19
内を通過させ演算を行う。 4:その出力ワードと次の入力ワードとのビット毎の排
他的論理和を排他的論理和回路20にてとる。 5:排他的論理和をとったワードをラッチ回路7へ入力
する。 6:2から5までの操作を最終ワードを入力するまで繰
り返すと、出力端子22に演算結果が出力される。
【0036】次にwu +Mwu-1 +M2 u-2 +…+M
j-1 u-j+1 (uはj≦u≦n−1を満たす整数)の演
算についてはM0 、M、M2 、…Mj-1 に対応する排他
的論理和回路網を用意して、処理データWu はM0 に対
応する各排他的論理和回路網を処理データwu-j+1 はM
j-1 に対応する各排他的論理和回路網を通過させた後に
各ビット毎に排他的論理和をとればよい。
【0037】また、この発明に係るCRC符号の演算回
路は、生成多項式の次数mの整数倍(m×i、iは2以
上の自然数)で展開したデータに対して、各ワード(m
ビット幅)毎に割り算の部分演算をパイプライン処理に
よって行うことにより、並列展開に伴う排他的論理和回
路網内の回路段数の増加を抑制し、データ入力のクロッ
ク速度の高速化を可能とすることができる。
【0038】すなわち、従来の方式として図5に示した
並列展開型のCRC演算回路を一般化した場合、並列展
開数がmビットのとき最大で log2 m段の排他的論理和
回路を通過する信号線が存在する。この場合、並列展開
数mに対し排他的論理和回路の段数はO( log2 m)の
規模で増加するため、並列展開数を大きくしていくと排
他的論理和回路網における遅延がO( log2 m)の速度
で増加する。従って、クロックが入力されてから排他的
論理回路網による遅延は1クロック未満、という遅延に
関する回路の動作条件のために、並列展開数を大きくす
るとクロック速度の上限が減少してしまう。
【0039】一方、この発明に係るCRC符号の演算回
路のクリティカルパスは、図2における排他的論理和回
路網19の部分に存在する。並列展開数がmビットのと
き、排他的論理和回路20の段数は高々 log2 mであ
る。排他的論理和回路網19の動作クロック速度は、i
ワードに展開しているため、データ入力クロックのi分
の1に低減されている。これより、排他的論理和回路網
19の動作クロック速度が遅延に関する回路の動作条件
を満たすようにワード展開数iを大きくとることによっ
て、従来の方式に比べデータ入力クロックの高速化をは
かることができる。従って、CRC演算処理の高速化が
可能となる。
【0040】
【実施例】次に、本発明実施例を図面に基づいて説明す
る。
【0041】(第一実施例)図1は本発明第一実施例の
構成を示すブロック図である。
【0042】本発明第一実施例におけるCRC符号生成
検査回路18は、入力端子10と、この入力端子10に
クロック信号に同期して入力するxビット幅の並列デー
タをワード単位にi個(iは2以上の自然数)に展開す
る展開回路6と、この展開回路6の出力データをi個並
列にそれぞれ演算する演算回路とを備え、前記演算回路
は、i個並列に設けられ各ワードの剰余を算出する第一
部分演算回路2と、そのi個の第一部分演算回路2が出
力する剰余を取込み全ワードについての符号多項式に対
する生成多項式の剰余を算出する1個の第二部分演算回
路3とを含み、展開回路6が出力するi個のデータにつ
いて第一部分演算回路2および第二部分演算回路3の遅
延時間に相当する遅延を与える遅延手段としてのラッチ
回路7と、このラッチ回路7の出力データのうちのi番
目のデータに第一部分演算回路2および第二部分演算回
路3が出力するCRC符号を付加するセレクタ回路4
と、第一部分演算回路2および第二部分演算回路3の全
ワードに対する出力を判定基準と照合して判定出力を出
力端子17から送出する判定回路5とを備える。
【0043】このように構成された本発明第一実施例
は、データ多項式に対して生成多項式による割算を並列
演算により行いその剰余を算出する。この演算の際に前
記データ多項式が、1クロック信号に同期して読出され
たxビット幅のワードを単位としてさらに複数iワード
(x×i、iは2以上の自然数)に並列展開される。ま
た、前記xは生成多項式の次数mに等しく設定され、前
記複数iワードに並列展開してできるj番目(jは1以
上の自然数)のワード列(第i×(j−1)+1ワード
(mビット幅)から第i×jワードまで)とj+1番目
のワード列(第i×j+1)ワードから第i×(j+
1)ワードまで)について、第i×(j−1)+hワー
ド(hは1≦h≦iを満たす自然数)を係数に持つ符号
多項式に次数m×iのべき数を乗じた後に生成多項式に
よって除算されて剰余が算出され、この剰余と第i×j
+hワードを係数に持つ符号多項式との和に次数m×i
のべき数を乗じた後に生成多項式によって除算して剰余
を算出する操作を1番目からi番目まで各ワード行につ
いて分離して独立に行われ、上記操作を最終データワー
ドを入力するまで繰り返され、最終データワードの入力
後に1番目からi番目までの各ワード行の剰余項を用い
て、全データワードによる符号多項式に対する生成多項
式の剰余が算出される。
【0044】図1に示す例は、生成多項式G(x)が G(x)= x32+x26+x23+x22+x16+x12+x
11+x10+x8 +x7 +x5 +x4 +x2 +x+1 (次数mが32)であり、1ワードのビット幅が32、
ワード単位での展開数が2の場合を示したものである。
ここで具体的にその動作について説明する。
【0045】入力端子10から入力したデータは展開回
路6によってワード単位に二つに展開され、二つの第一
部分演算回路2および一つの第二部分演算回路3によっ
て入力データに対するCRC符号が計算される。
【0046】CRC符号の演算結果は、展開回路6の偶
数ワード側出力端子11、奇数ワード側出力端子12に
データが出力されてから2クロック後に第二部分演算回
路3から出力される。
【0047】CRC符号生成時はセレクタ回路4によっ
て最終データワードにCRC符号が付加されて偶数ワー
ド側出力端子15および奇数ワード側出力端子16から
データおよびCRC符号が出力される。
【0048】CRC符号検査時は、全データを入力後に
判定回路5によってデータ誤りの可否について判定さ
れ、誤りが検出されれば判定回路5の出力端子17にh
igh信号が出力される。
【0049】ここで、符号長が(2×3)ワード(情報
長(2×3−1)ワード(k=5×32ビット)、CR
C符号1ワード)の場合の動作について説明する。
【0050】CRC符号多項式R(x)のベクトル表現
をRとして、入力される情報多項式A(x)が〔数9〕
で示されるとする。
【0051】
【数9】 A(x)をワード単位にベクトル表現すると、w0 、w
1 、w2 、w3 、w4 となる。w0 が最初に入力され、
4 の次にCRC符号ワードであるRが最後に入力され
る。
【0052】はじめに32ビット幅のラッチ回路7、8
を初期化する。入力データワードw0 、w1 、w2 、w
3 、w4 および未演算のCRC符号ワード(R=0)が
入力データクロックCLK_Hに同期して入力端子10
より入力される。展開回路6ではw0 とw1 、w2 とw
3 、w4 とRが並列展開され、CLK_Hの2分周クロ
ックである演算処理クロックCLK_Lに同期して、w
0 などの偶数ワードは偶数ワード側出力端子11より、
1 などの奇数ワードは奇数ワード側出力端子12より
出力され、各々第一部分演算回路2に入力される。
【0053】全ワードが展開回路6の偶数ワード側出力
端子11および奇数ワード側出力端子12より出力され
てから演算処理クロックCLK_Lにおける2クロック
後に第二部分演算回路3の出力にCRC演算結果が出力
される。
【0054】送信時は、遅延用のラッチ回路7でデータ
ワードが2クロック遅延され、データ列内の未演算のC
RC符号ワードがセレクタ回路4にて計算されCRC符
号の結果に置き換えられる。そして偶数ワード側出力端
子15と奇数ワード側出力端子16からタイミングがそ
ろえられてデータおよびCRC符号が出力される。
【0055】受信時は、CRC符号ワードRには送信側
で計算したCRC演算の結果が格納されている。CRC
符号ワードを含む全データに誤りがなければ、第二部分
演算回路3の出力に0が出力される。したがって、判定
回路5で誤りが検出されれば出力端子17にhigh信
号が出力される。
【0056】図2は本発明第一実施例における第一部分
演算回路の構成を示すブロック図である。まず、ラッチ
回路7に保持されていた前データに対するCRC演算の
部分演算が排他的論理和回路網19によって行われる。
入力端子21よりデータワードが入力されると、前デー
タに対するCRC演算の部分演算の結果とのビット毎の
排他的論理和がビット毎の排他的論理和回路20によっ
て計算される。その計算結果が改めてラッチ回路7に保
持される。
【0057】図3は本発明第一実施例における第二部分
演算回路の構成を示すブロック図である。偶数ワード側
入力端子13に入力されたデータに対するCRC演算の
部分演算が排他的論理和回路網23によって行われる。
演算結果と奇数ワード側入力端子14に入力されたデー
タとのビット毎の排他的論理和が排他的論理和回路20
によって計算される。その計算結果がラッチ回路7に保
持される。
【0058】CRC符号多項式R(x)はベクトル表現
Rを用いると〔数10〕のようになる。
【0059】
【数10】 第一部分演算回路2内の排他的論理和回路網19はM2
に対応し、〔数11〕のように表される。
【0060】
【数11】 第二部分演算回路3内の排他的論理和回路網23はMに
対応し、〔数12〕のように表される。
【0061】
【数12】 排他的論理和回路網19、23における排他的論理和の
段数は最大で5段( log2 19=4.25)である。こ
れは図5に示した従来のCRC演算回路と同程度であ
る。したがって、従来型ではデータ入力のクロック周波
数はCRC演算動作のクロック周波数と等しいが、本実
施例では2ワード展開であるのでデータ入力のクロック
周波数を2倍まで上げることが可能である。これにより
CRC演算処理の高速化を図ることができる。
【0062】(第二実施例)図4は本発明第二実施例の
構成を示すブロック図である。この例は、ITU−T勧
告I.363のATM Adaption Type5
におけるCRC32の生成検出回路の例を示したもので
ある。生成多項式G(x)は G(x)= x32+x26+x23+x22+x16+x12+x
11+x10+x8 +x7 +x5 +x4 +x2 +x+1 (次数mが32)であり、1ワードのビット幅が32、
ワード単位での展開数が2の場合の例である。
【0063】ITU−T勧告I.363のCRC32の
計算方法は、次のようになっている。
【0064】情報多項式(kビット、k=32n、n+
1は12の倍数)をA(x)とする。xk (x31+x30
+…+x+1)を生成多項式G(x)で割ったときの余
りと、x32A(x)を生成多項式G(x)で割ったとき
の余りを加算して、ビット反転をしたものをCRC符号
多項式R(x)とする。
【0065】この演算方法では、CRC符号生成時は、
A(x)をワード単位に表現した際に最初のワードであ
るw0 をビット反転して演算を開始し、演算終了時に剰
余に対して再度ビット反転を施すことになる。
【0066】また、CRC符号検査時は、やはり最初の
ワードであるw0 をビット反転して演算を開始する。符
号列に誤りがなければ割算終了時に剰余がFFFFFF
FFHとなっている。
【0067】図4に示す本発明第二実施例は、入力デー
タクロックCLK_Hに同期して動作するラッチ回路7
と展開回路6と、演算処理クロックCLK_Lに同期し
て動作するCRC符号生成検査回路18とにより構成さ
れる。
【0068】入力端子10より入力したデータは展開回
路6によってワード単位に二つに展開される。最初のデ
ータワードに対してのみビット反転器25によってビッ
ト反転が行われ、二つの第一部分演算回路2と、一つの
第二部分演算回路3によって入力データに対するCRC
符号が計算される。
【0069】CRC符号の演算結果は、展開回路6の偶
数ワード側出力端子11および奇数ワード側出力端子1
2にデータが出力されてから2クロック後に第二部分演
算回路3から出力される。
【0070】CRC符号生成時は演算結果をビット反転
器25によって再度ビット反転し、セレクタ回路4によ
って最終データワードにCRC符号を付加して偶数ワー
ド側出力端子15および奇数ワード側出力端子16から
データおよびCRC符号が出力される。
【0071】CRC符号検査時は、全データを入力後に
比較器26によってデータ誤りの可否について判定が行
われ、誤りが検出されれば比較器26の出力17にhi
gh信号が出力される。
【0072】
【発明の効果】以上説明したように本発明によれば、C
RC符号の演算において、ワード単位の並列展開を行っ
たデータに対して、各ワード毎に割算の部分演算をパイ
プライン処理によって行うことにより、並列展開にとも
なう排他的論理和回路網内の回路段数の増加を抑制し、
データ入力のクロック速度を高速化することができ、同
一ブロックへのデータのフィードバックにより、ブロッ
ク個数低減化を図るとともに、LSIによる集積化を行
うことができる。
【図面の簡単な説明】
【図1】本発明第一実施例の構成を示すブロック図。
【図2】本発明第一実施例における第一部分演算回路の
構成を示すブロック図。
【図3】本発明第一実施例における第二部分演算回路の
構成を示すブロック図。
【図4】本発明第二実施例の構成を示すブロック図。
【図5】従来例におけるデータ並列展開型CRC演算回
路の構成の一例を示すブロック図。
【符号の説明】
1 CRC符号演算回路 2 第一部分演算回路 3 第二部分演算回路 4 セレクタ回路 5 判定回路 6 展開回路 7、8、33、34 ラッチ回路 9 フリップフロップ 10、21、28 入力端子 11、13、15 偶数ワード側出力端子 12、14、16 奇数ワード側出力端子 17、22、24、29、31 出力端子 18 CRC符号生成検査回路 19、23 排他的論理和回路網 20 排他的論理和回路 25 ビット反転器 26、30 比較器 32 データゲート回路
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) H03M 13/00 G06F 11/10 330

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ多項式に対して生成多項式による
    割算を並列演算により行いその剰余を算出するCRC符
    号演算方法において、 前記データ多項式が、1クロック信号に同期して読出さ
    れたxビット幅のワードを単位としてさらに複数iワー
    ド(x×i、iは2以上の自然数)に並列展開され 前記xは生成多項式の次数mに等しく設定され、前記複
    数iワードに並列展開してできるj番目(jは1以上の
    自然数)のワード列(第i×(j−1)+1ワード(m
    ビット幅)から第i×jワードまで)とj+1番目のワ
    ード列(第i×j+1)ワードから第i×(j+1)ワ
    ードまで)について、第i×(j−1)+hワード(h
    は1≦h≦iを満たす自然数)を係数に持つ符号多項式
    に次数m×iのべき数を乗じた後に生成多項式によって
    除算して剰余を算出し、この剰余と第i×j+hワード
    を係数に持つ符号多項式との和に次数m×iのべき数を
    乗じた後に生成多項式によって除算して剰余を算出する
    操作を1番目からi番目まで各ワード行について分離し
    て独立に行い、上記操作を最終データワードを入力する
    まで繰り返し、最終データワードの入力後に1番目から
    i番目までの各ワード行の剰余項を用いて、全データワ
    ードによる符号多項式に対する生成多項式の剰余を算出
    する ことを特徴とするCRC符号演算方法。
  2. 【請求項2】 入力端子(10)と、この入力端子にク
    ロック信号に同期して入力するxビット幅の並列データ
    をワード単位にi個(iは2以上の自然数)に展開する
    展開回路(6)と、この展開回路の出力データをi個並
    列にそれぞれ演算する演算回路(2、3)とを備え 前記演算回路は、i個並列に設けられ各ワードの剰余を
    算出する第一部分演算回路(2)と、そのi個の第一部
    分演算回路が出力する剰余を取込み全ワードについての
    符号多項式に対する生成多項式の剰余を算出する1個の
    第二部分演算回路(3)とを含み、 前記展開回路(6)が出力するi個のデータについて前
    記演算回路(2、3)の遅延時間に相当する遅延を与え
    る遅延手段(7)と、この遅延手段の出力デー タのうち
    のi番目のデータに前記演算回路が出力するCRC符号
    を付加するセレクタ回路(4)とを備えた CRC符号演
    算回路。
  3. 【請求項3】 前記演算回路(2、3)の全ワードに対
    する出力を判定基準と照合して判定出力(17)を送出
    する判定回路(5)を備えた請求項2記載のCRC符号
    演算回路。
JP7130729A 1995-05-29 1995-05-29 Crc符号演算方法および回路 Expired - Fee Related JP2822928B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7130729A JP2822928B2 (ja) 1995-05-29 1995-05-29 Crc符号演算方法および回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7130729A JP2822928B2 (ja) 1995-05-29 1995-05-29 Crc符号演算方法および回路

Publications (2)

Publication Number Publication Date
JPH08330976A JPH08330976A (ja) 1996-12-13
JP2822928B2 true JP2822928B2 (ja) 1998-11-11

Family

ID=15041243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7130729A Expired - Fee Related JP2822928B2 (ja) 1995-05-29 1995-05-29 Crc符号演算方法および回路

Country Status (1)

Country Link
JP (1) JP2822928B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011130333A (ja) 2009-12-21 2011-06-30 Fujitsu Ltd 巡回冗長検査符号生成回路及び巡回冗長検査符号生成方法
CN105844901A (zh) * 2016-05-23 2016-08-10 光科技股份有限公司 一种基于防篡改技术的安全能效监测终端及其监测方法
CN107451008B (zh) * 2017-06-29 2020-05-08 北京邮电大学 一种crc计算方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01265332A (ja) * 1988-04-18 1989-10-23 Fujitsu Ltd Crc並列演算回路の行列式生成方法
JPH03119835A (ja) * 1989-10-03 1991-05-22 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正回路
FI85775C (fi) * 1990-11-22 1992-05-25 Planmed Oy Foerfarande och anordning vid roentgenteknik.
JPH04192735A (ja) * 1990-11-26 1992-07-10 Nippon Telegr & Teleph Corp <Ntt> セル同期回路
JPH0795096A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd プログラマブル並列crc生成装置

Also Published As

Publication number Publication date
JPH08330976A (ja) 1996-12-13

Similar Documents

Publication Publication Date Title
US5440570A (en) Real-time binary BCH decoder
US20050149818A1 (en) High performance CRC calculation method and system with a matrix transformation strategy
US4797848A (en) Pipelined bit-serial Galois Field multiplier
US7539918B2 (en) System and method for generating cyclic codes for error control in digital communications
US6295626B1 (en) Symbol based algorithm for hardware implementation of cyclic redundancy check
US6370667B1 (en) CRC operating calculating method and CRC operational calculation circuit
US6374384B1 (en) Reed Solomon error correcting circuit and method and device for Euclidean mutual division
US6219816B1 (en) Device and method for carrying out Reed-Solomon encoding
JP2822928B2 (ja) Crc符号演算方法および回路
US20070234177A1 (en) Method and apparatus for checking pipelined parallel cyclic redundancy
EP0262944B1 (en) Error correction apparatus
US7320101B1 (en) Fast parallel calculation of cyclic redundancy checks
US6880121B2 (en) Parallel processing syndrome calculating circuit and reed-solomon decoding circuit
US6442747B1 (en) Method of synthesizing a cycle redundancy code generator circuit using hardware description language
US8832535B1 (en) Word-serial cyclic code encoder
US7987412B2 (en) Reed Solomon decoding of signals having variable input data rates
JP3269415B2 (ja) Crc演算回路
US5031137A (en) Two input bit-serial multiplier
CN113821370A (zh) 一种用于数据传输错误校验的高速crc产生方法和装置
EP0431416A2 (en) Apparatus and method for accessing a cyclic redundancy error check code generated in parallel
JPH0969836A (ja) Crc符号生成回路およびcrc符号生成回路設計方法
JPH0787090A (ja) 巡回符号検出方法及び装置
JP3002713B2 (ja) ビット列にセル境界を確立する装置およびcrc計算
JP2592681B2 (ja) セル同期回路
JP3953397B2 (ja) リードソロモン符号化回路およびリードソロモン復号化回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080904

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080904

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090904

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090904

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100904

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110904

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees