JP2000004169A - Crc演算方法及びcrc演算回路 - Google Patents

Crc演算方法及びcrc演算回路

Info

Publication number
JP2000004169A
JP2000004169A JP10167595A JP16759598A JP2000004169A JP 2000004169 A JP2000004169 A JP 2000004169A JP 10167595 A JP10167595 A JP 10167595A JP 16759598 A JP16759598 A JP 16759598A JP 2000004169 A JP2000004169 A JP 2000004169A
Authority
JP
Japan
Prior art keywords
bit
output signal
exclusive
bits
crc code
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
JP10167595A
Other languages
English (en)
Inventor
Takashi Maki
牧  隆史
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 JP10167595A priority Critical patent/JP2000004169A/ja
Priority to US09/342,153 priority patent/US6370667B1/en
Publication of JP2000004169A publication Critical patent/JP2000004169A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【課題】 1クロックサイクルで巡回冗長検査の演算を
完了し、巡回冗長検査の演算の高速化を図ること。 【解決手段】 第3XNOR出力信号の各ビットをCR
C符号の最上位ビットを含む上位第4ビットとしてレジ
スタの入力段に入力し、第2XNOR出力信号の最下位
ビットを含む下位3ビットをCRC符号の第4ビット乃
至第6ビットとしてレジスタの入力段に入力し、第4X
NOR出力信号の各ビットをCRC符号の第7ビット乃
至第10ビットとしてレジスタの入力段に入力し、第2
XOR出力信号の各ビットをCRC符号の最下位ビット
を含む下位4ビットとしてレジスタの入力段に入力する
ように構成されているCRC演算回路。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジタル・デー
タが通信あるいはデータ処理を経由して、誤りが生じた
か否かを検出する符号誤り検出装置に関し、特に、ディ
ジタル通信方式における受信データの誤り検出および訂
正処理を行うためのCRC(CyclicRedund
ancy Check;巡回冗長性検査)符号を生成す
るCRC演算方法及びCRC演算回路に関する。
【0002】このようなCRC演算方法及びCRC演算
回路は、ディジタル・データが通信あるいはデータ処理
を経由して、誤りが生じたか否かを検出する巡回冗長性
検査符号の算出する演算機能を搭載するLSIに利用す
る。また本発明は、ITU−T(Internatio
nal Telecommunication Uni
on−Telecommunication Sect
or 旧CCITT(国際電信電話諮問委員会))勧告
に記載されているCRC符号算出の生成多項式G(x)
=X16+X12+X5+1を演算する機能を搭載するLS
I回路に利用できる。
【0003】
【従来の技術】通信の高速化に伴い、エラー検出に係わ
るCRC演算部分の高速化要求が厳しくなってきてい
る。
【0004】このようなCRC演算部分の高速化要求に
応えることを目指した従来この種のCRC演算回路とし
ては、例えば、特開平6−37737号公報に示すよう
なものがある(以下、第1従来技術と呼ぶ)。
【0005】図3は、第1従来技術のCRC演算回路を
説明するための回路図である。
【0006】すなわち、第1従来技術のCRC演算回路
は、第1から第nまでの保持回路の各間をそれぞれ対応
する第1から第n−1までの排他的論理和回路を介し接
続したn次生成多項式のCRC演算の結果を保持するn
段の保持回路と、n段保持回路の第1からの第nの保持
回路出力の内から生成多項式の第1から第nの係数入力
信号に従い再帰符号信号を1つ選択し出力する再帰符号
選択回路と、CRC演算対象となる入力2進信号と再帰
符号信号との排他的論理和をとりその出力信号をn段保
持回路の第1の保持回路に入力する第nの排他的論理和
回路と、第nの排他的論理和回路の出力信号と第1から
第n−1のの係数入力信号とのそれぞれの論理和をとり
この出力信号をそれぞれ対応する第1から第n−1の排
他的論理和回路に入力する第1から第n−1の論理和回
路とを備えている。このような構成のCRC演算回路で
は、生成多項式の係数を任意に設定可能とすることによ
り、生成多項式の切替が必要とされる場合に、必要とさ
れる生成多項式の種類だけCRC演算回路を用意する必
要は無く、本CRC演算回路は一つで済むので、回路規
模を小さくできるという効果があることが記載されてい
る。また、必要とされる生成多項式の係数に変更が生じ
た際にも、設定を変えるだけで済むので、変更が容易に
できるという効果があることが記載されている。
【0007】また従来この種のCRC演算回路として
は、例えば、特開平9−69836号公報に示すような
ものがある(以下、第2従来技術と呼ぶ)。
【0008】図4は、第2従来技術のCRC演算回路を
説明するための回路図である。
【0009】すなわち、第2従来技術のCRC演算回路
は、あらかじめ定められた並列度で並列入力される情報
データをあらかじめ定められた生成多項式を用いて除算
して、その剰余を求めることにより、情報データに対す
る誤り検出用冗長符号であるCRC符号を生成するCR
C符号生成回路であって、情報データのビット数を並列
度で除算して得られる剰余を並列度から減算して得られ
た値と同数の「0」を付加した情報データに対し、CR
C符号のビット数から情報データに付加した「0」の数
を減算して得られた値について生成多項式の周期による
モジュロ演算を行った結果得られた値を次数とする単項
式を乗算した後、生成多項式を用いた除算を行う演算手
段と、この演算手段での除算による剰余を情報データに
対するCRC符号として出力する出力手段とを具備して
いる。
【0010】このような構成のCRC演算回路では、情
報データのビット数がCRC演算の並列度で割り切れな
い場合でも効率的なCRC符号生成回路を実現できるこ
とが記載されている。すなわち、回路への情報入力の並
列度を変更せずに、また、従来の遅延の少ないCRC生
成方法と同等の構成を形成できることによって、情報デ
ータのビット数が並列度の倍数である場合の従来の回路
構成と比較して、回路規模を増やすことなく、また遅延
もなるべく少ない方法でCRC符号の生成が可能となる
ことが記載されている。
【0011】また従来この種のCRC演算回路として
は、例えば、特開平6−224783号公報に示すよう
なものがある(以下、第3従来技術と呼ぶ)。
【0012】図5は、第3従来技術のCRC演算回路を
説明するための回路図である。
【0013】すなわち、第3従来技術のCRC演算回路
は、nビットの汎用レジスタを備えるコンピュータを用
いてm(m≦n/2なる整数)次の生成多項式G(x)
による予め定めた数のデータの巡回符号化処理および巡
回冗長符号チェック(CRC)処理を行なうCRC演算
回路において、 2n個の各々のデータを生成多項式で除
算した剰余データから生成される2n 個の剰余テーブ
ルを格納した剰余テーブル記憶手段と、 剰余テーブル
の参照アドレスを生成する参照アドレス生成手段と、
参照アドレスに対応する剰余テーブルを読出す剰余テー
ブル読出手段と、 参照アドレス生成手段と剰余テーブ
ル読出手段とを予め定めた回数分反復する反復手段とを
備えている。
【0014】ここで剰余テーブルが、 2n 個の各々の
データ{Dn }({Dn }={d 0,…,dn-1 }、
i (iは0≦i≦n−1なる整数)は0または1、
Kは0≦K≦2n なる整数) に対してn/2−m=0
の場合は、データ{Dn }より導出される式1のデー
タ多項式D(x)を生成多項式G(x)でモジュロ2の
除算により生成される1個が1/2ビットの2n 個の
剰余データから成り、 データ{Dn }に対してn/2
−m〉0の場合は、(n/2+m)ビット目からの式2
のデータ多項式Da(X)を生成多項式G(x)でモジ
ュロ2除算結果の剰余データ{r0,…,rm-1 }にデ
ータ{d0,…,dn/2-m+1 }を付加して生成される1
個が1ビットの2n個のデータ{d0,…,dn/2-m+1
0,…,r m-1 }からなっている。また 参照アドレ
ス生成手段が、 予め定めた数のデータの先頭からnビ
ットの第1のデータにより第1の参照アドレスを生成
し、 第1の参照アドレスの生成時に読出した第1の剰
余テーブルの上位N/2ビットのデータと、第1のデー
タの下位w/2ビットのデータとを接続することにより
第2の参照アドレスを生成することが記載されている。
【0015】このような構成のCRC演算回路では、予
め2n 個の上位テーブルを格納した剰余テーブル記憶
手段を備えることにより、n/2ビット毎のシフトおよ
び合成処理が可能となるので、巡回符号化処理およびC
RC処理が短縮され、コンピュータを通信プロトコルの
制御等の他の処理に有効活用できるという効果がある。
また、処理時間短縮のための高速なコンピュータが不要
となるためコストが低減できるという効果があることが
記載されている。
【0016】また従来この種のCRC演算回路として
は、例えば、特開平6−311049号公報に示すよう
なものがある(以下、第4従来技術と呼ぶ)。
【0017】図6は、第4従来技術のCRC演算回路を
説明するための回路図である。
【0018】すなわち、第4従来技術のCRC演算回路
は、被演算データを4ビット毎に並列に入力する4個の
D形フリップフロップと、各出力がCRC符号出力に接
続された16個のD形フリップフロップ(X0〜X1
5)と、この16個のD形フリップフロップの上位4桁
(X12〜X15)の出力と4個のD形フリップフロッ
プ(D0〜D3)の出力との排他的論理和(W,X,
Y,Z)を演算する第1の排他的論理和回路と、16個
のD形フリップフロップのつづく上位4桁(X8〜X1
4)の出力と第1の排他的論理和回路の出力(W,X,
Y,Z)との排他的論理和(a,b,c,d)を演算す
る第2の排他的論理和回路と、16個のD形フリップフ
ロップの最下位桁を除く下位4桁(X1〜X4)の出力
と第1の排他的論理和回路の出力(W,X,Y,Z)と
の排他的論理和(e,f,g,h)を演算する第3の排
他的論理和回路とを備え、16個のD形フリップフロッ
プ(X0〜X15)の入力には、下位から順に、X0〜
X3に第1の排他的論理和回路の出力(W,X,Y,
Z)が、X4にX0の出力が、X5〜X8に第3の排他
的論理和回路の出力(h,g,f,e)が、X9〜X1
1にX5〜X7の出力が、X12〜X15に第2の排他
的論理和回路の出力(a,b,c,d)がそれぞれ接続
された回路構成となっている。
【0019】第4従来技術のCRC演算回路では、対象
データ取込回路が被演算データを4ビット毎に並列に入
力し、第1の排他的論理和回路がCRC符号出力回路の
CRC符号出力に接続された16個のD形フリップフロ
ップX0〜X15の上位4桁X12〜X15の出力と対
象データ取込回路の4個のD形フリップフロップの出力
との排他的論理和W,X,Y,Zを演算する。次いで、
第2の排他的論理和回路が16個のD形フリップフロッ
プX0〜X15のつづく上位4桁X8〜X14の出力と
第1の排他的論理和回路の出力W,X,Y,Zとの排他
的論理和a,b,c,dを演算するとともに、第3の排
他的論理和回路が16個のD形フリップフロップX0〜
X15の最下位を除く下位4桁X1〜X4の出力と第1
の排他的論理和e,f,g,hを演算し、16個のD形
フリップフロップX0〜X15の入力に、下位から順
に、X0〜X3に第1の排他的論理和回路の出力W,
X,Y,Zを、X4にX0の出力を、X5〜X8に第3
の排他的論理和回路の出力h,g,f,eを、X9〜X
11にX5〜X7の出力を、X12〜X15に第2の排
他的論理和回路の出力a,b,c,dをそれぞれ接続す
ることが記載されている。このような構成のCRC演算
回路では、入力データを4ビット毎に処理することによ
り、CRC符号を生成するまでの処理を簡略化して速度
を高めることができ、さらに、この回路をソフトウェア
で実現した場合にも、CRCの符号化および複合化をプ
ログラムにより高速に処理することができることが記載
されている。
【0020】
【発明が解決しようとする課題】上述の第1従来技術及
び第2従来技術のCRC演算回路では、シフトレジスタ
の間の排他的論理和ゲート(EXORゲート)の位置を
変化させることが原理的に容易であり、応用性の観点か
らはメリットがあるものの、シフトレジスタを用いる場
合、クロック1回につき1ビットずつのデータ転送処理
しか行わないため、通常用いられるオクテットデータ
(8ビット)に対するCRC16・0の演算に、少なく
とも8回のクロックシフトが必要となり、高速化に向か
ないという問題点があった。
【0021】また、上述の第3従来技術のCRC演算回
路では、巡回冗長検査の演算結果をあらかじめ剰余テー
ブル記憶手段(具体的には、システムメモリ(RO
M))に格納しておき、テーブル参照によって目的とす
るCRC計算値を得る装置も一般に広く知られている
が、有限であるシステムメモリの容量を圧迫するため、
望ましくないばかりか、メモリ参照のための引数演算な
どに要するシステムサイクルを考慮すると、最適とはい
えないという問題点があった。
【0022】また、上述の第4従来技術のCRC演算回
路では、1クロックで4ビットずつの処理が可能となる
ため処理時間の短縮が可能となるものの、所望のCRC
計算値を得るために2クロックかかるため、あらかじめ
被演算値であるオクテットデータ(8ビット)を4ビッ
トずつに分割する必要があり、前処理のためのハードウ
ェア又はソフトウェアが別途外部に必要となるという問
題点があった。
【0023】本発明は、このような従来の問題点を解決
することを課題としており、特に、巡回冗長検査の演算
を組み合わせ論理回路のみによって実現することによ
り、1クロックサイクルでの演算完了を可能とすること
を目的としている。
【0024】
【課題を解決するための手段】上記課題を解決するため
成された請求項1に記載の発明は、通信データの誤り判
定を実行するためにCRC符号の演算を行うCRC演算
方法において、最初に入力する4ビットの各々と直前の
CRC符号の最上位ビットを含む上位4ビットとの排他
的論理和演算を実行して最新のCRC符号の第12ビッ
ト乃至第15ビットを生成する第1工程と、直前のCR
C符号の最下位ビットを用いて最新のCRC符号の第1
1ビットを生成する第2工程と、直前のCRC符号の第
8ビット乃至第10ビットを用いて最新のCRC符号の
第4ビット乃至第6ビットを生成する第3工程と、最新
のCRC符号の第12ビット乃至第15ビットに入る内
容と直前のCRC符号の第11ビット乃至第14ビット
の内容との排他的否定論理和演算を実行して最新のCR
C符号の第7ビット乃至第10ビットを生成する第4工
程と、最新のCRC符号の第12ビット乃至第15ビッ
トの内容と直前のCRC符号の第4ビット乃至第7ビッ
トの内容との排他的否定論理和演算を実行して最新のC
RC符号の第0ビット乃至第3ビットを生成する第5工
程とを有するCRC演算方法である。
【0025】請求項1に記載の発明によれば、クロック
1回につき1ビットずつのデータ転送処理しか実行しな
いシフトレジスタに代えて、CRC符号の演算を行う回
路を主として排他的論理和を用いた組み合わせのみで実
行することにより、1クロックサイクルで巡回冗長検査
の演算を完了することができるようになり、その結果、
巡回冗長検査の演算の高速化(演算時間の短縮化)を図
ることができるようになる。
【0026】また請求項2に記載の発明は、通信データ
の誤り判定を実行するためにCRC符号の演算をハード
ウェアによって行うCRC演算回路において、巡回冗長
検査の演算結果であるCRC符号を、外部から入力され
るクロックに同期して保持するレジスタと、被演算デー
タの最下位ビットを含む下位4ビットの各ビットと前記
レジスタに保持されている前記CRC符号の最上位ビッ
トを含む上位4ビットの各ビットとに対して所定の対応
関係に基づく排他的論理和演算を実行して当該排他的論
理和演算の結果を第1XOR出力信号として出力する第
1XORゲートと、第1XOR出力信号の各ビットと前
記レジスタに保持されている前記CRC符号の第4ビッ
ト乃至第7ビットの各ビットとに対して所定の対応関係
に基づく排他的否定論理和演算を実行して当該排他的否
定論理和演算の結果を第1XNOR出力信号として出力
する第1XNORゲートと、第1XOR出力信号の各ビ
ットと前記レジスタに保持されている前記CRC符号の
第11ビット乃至第14ビットの各ビットとに対して所
定の対応関係に基づく排他的否定論理和演算を実行して
当該排他的否定論理和演算の結果を第2XNOR出力信
号として出力する第2XNORゲートと、被演算データ
の最上位ビットを含む上位4ビットの各ビットと前記第
1XNOR出力信号の各ビットとに対して所定の対応関
係に基づく排他的論理和演算を実行して当該排他的論理
和演算の結果を第2XOR出力信号として出力する第2
XORゲートと、前記第2XOR出力信号の各ビットと
前記CRC符号の第8ビット乃至第10ビットの各ビッ
ト及び前記第2NXOR出力信号の最上位ビットとに対
して所定の対応関係に基づく排他的否定論理和演算を実
行して当該排他的否定論理和演算の結果を第3XNOR
出力信号として出力する第3XNORゲートと、前記第
2XOR出力信号の各ビットと前記第1XOR出力信号
の最上位ビットを含む上位3ビットの各ビット及び前記
CRC符号の第15ビットとに対して所定の対応関係に
基づく排他的否定論理和演算を実行して当該排他的否定
論理和演算の結果を第4XNOR出力信号として出力す
る第4XNORゲートとを有し、、前記第3XNOR出
力信号の各ビットを前記CRC符号の最上位ビットを含
む上位第4ビットとして前記レジスタの入力段に入力
し、前記第2XNOR出力信号の最下位ビットを含む下
位3ビットを前記CRC符号の第4ビット乃至第6ビッ
トとして前記レジスタの入力段に入力し、前記第4XN
OR出力信号の各ビットを前記CRC符号の第7ビット
乃至第10ビットとして前記レジスタの入力段に入力
し、前記第2XOR出力信号の各ビットを前記CRC符
号の最下位ビットを含む下位4ビットとして前記レジス
タの入力段に入力するように構成されているCRC演算
回路である。
【0027】請求項2に記載の発明によれば、クロック
1回につき1ビットずつのデータ転送処理しか実行しな
いシフトレジスタに代えて、巡回冗長検査の演算を組み
合わせ論理回路のみによって実現することにより、1ク
ロックサイクルで巡回冗長検査の演算を完了することが
できるようになり、その結果、巡回冗長検査の演算の高
速化(演算時間の短縮化)を図ることができるようにな
る。また、巡回冗長検査の演算結果をあらかじめ剰余テ
ーブル記憶手段(システムメモリ)に格納しテーブル参
照によって目的とするCRC計算値を得る装置に代え
て、巡回冗長検査の演算を組み合わせ論理回路のみによ
って実現することにより、有限であるシステムメモリの
容量の圧迫を回避でき、その結果、システムリソースの
有効活用を図ることができるようになる。更に加えて、
メモリ参照のための引数演算などに要するシステムサイ
クルを省略できるようになり、1クロックサイクルで巡
回冗長検査の演算を完了することができるようになる結
果、巡回冗長検査の演算の高速化を図ることができるよ
うになる。
【0028】また請求項3に記載の発明は、通信データ
の誤り判定を実行するためにCRC符号の演算をハード
ウェアによって行うCRC演算回路において、ITU−
T勧告に示されているCRC生成多項式G(X) G(X)=X16+X12+X5+1 に基づいてCRC符号の演算を実行する際、巡回冗長検
査の演算結果であるCRC符号を、外部から入力される
クロックに同期して保持し、続いて、入力段に入力され
る被演算データの最下位ビットを含む下位4ビットの各
ビットと前記保持されている前記CRC符号の最上位ビ
ットを含む上位4ビットの各ビットとに対して所定の対
応関係に基づく排他的論理和演算を実行して当該排他的
論理和演算の結果を第1XOR出力信号として出力し、
続いて、前記第1XOR出力信号の各ビットと前記レジ
スタに保持されている前記CRC符号の第4ビット乃至
第7ビットの各ビットとに対して所定の対応関係に基づ
く排他的否定論理和演算を実行して当該排他的否定論理
和演算の結果を第1XNOR出力信号として出力し、続
いて、第1XOR出力信号の各ビットと前記保持されて
いる前記CRC符号の第11ビット乃至第14ビットの
各ビットとに対して所定の対応関係に基づく排他的否定
論理和演算を実行して当該排他的否定論理和演算の結果
を第2XNOR出力信号として出力し、続いて、被演算
データの最上位ビットを含む上位4ビットの各ビットと
前記第1XNOR出力信号の各ビットとに対して所定の
対応関係に基づく排他的論理和演算を実行して当該排他
的論理和演算の結果を第2XOR出力信号として出力
し、続いて、前記第2XOR出力信号の各ビットと前記
CRC符号の第8ビット乃至第10ビットの各ビット及
び前記第2NXOR出力信号の最上位ビットとに対して
所定の対応関係に基づく排他的否定論理和演算を実行し
て当該排他的否定論理和演算の結果を第3XNOR出力
信号として出力し、続いて、前記第2XOR出力信号の
各ビットと前記第1XOR出力信号の最上位ビットを含
む上位3ビットの各ビット及び前記CRC符号の第15
ビットとに対して所定の対応関係に基づく排他的否定論
理和演算を実行して当該排他的否定論理和演算の結果を
第4XNOR出力信号として出力し、続いて、前記第3
XNOR出力信号の各ビットを前記CRC符号の最上位
ビットを含む上位第4ビットとして前記レジスタの入力
段に入力し、前記第2XNOR出力信号の最下位ビット
を含む下位3ビットを前記CRC符号の第4ビット乃至
第6ビットとして前記レジスタの入力段に入力し、前記
第4XNOR出力信号の各ビットを前記CRC符号の第
7ビット乃至第10ビットとして前記レジスタの入力段
に入力し、前記第2XOR出力信号の各ビットを前記C
RC符号の最下位ビットを含む下位4ビットとして前記
入力段に入力するように構成されているCRC演算回路
である。
【0029】請求項3に記載の発明によれば、クロック
1回につき1ビットずつのデータ転送処理しか実行しな
いシフトレジスタに代えて、CRC生成多項式G(X)
の演算を組み合わせ論理回路のみによって実現すること
により、1クロックサイクルでCRC生成多項式G
(X)の演算を完了することができるようになり、その
結果、CRC生成多項式G(X)の演算の高速化(演算
時間の短縮化)を図ることができるようになる。また、
CRC生成多項式G(X)の演算結果をあらかじめ剰余
テーブル記憶手段(システムメモリ)に格納しテーブル
参照によって目的とするCRC計算値を得る装置に代え
て、CRC生成多項式G(X)の演算を組み合わせ論理
回路のみによって実現することにより、有限であるシス
テムメモリの容量の圧迫を回避でき、その結果、システ
ムリソースの有効活用を図ることができるようになる。
更に加えて、メモリ参照のための引数演算などに要する
システムサイクルを省略できるようになり、1クロック
サイクルでCRC生成多項式G(X)の演算を完了する
ことができるようになる結果、CRC生成多項式G
(X)の演算の高速化を図ることができるようになる。
【0030】
【発明の実施の形態】(第1実施形態)第1実施形態の
CRC演算回路30(図1)は、モデム通信などのディ
ジタル通信方式を実行する通信装置やLSI内部に実装
可能であって、ITU−Tで標準化が進められているV
シリーズ規格に準拠した通信データInput[7・
0]の誤り検処理出および訂正処理を行うためのCRC
(Cyclic Redundancy Check;
巡回冗長性検査)符号[16・0]の演算を、論理回路
を中心としたハードウェアによって行う点に特徴を有
し、図1に示すように、レジスタ16、第1XORゲー
ト10、第1XNORゲート11、第2XNORゲート
12、第2XORゲート13、第3XNORゲート1
4、第4XNORゲート15等の論理デバイスを中心と
するハードウェア構成となっている。
【0031】レジスタ16は、巡回冗長検査の演算結果
であるCRC符号[16・0]を、CRC演算回路30
の外部から入力されるクロック(論理信号)Clock
に同期して保持する機能、リセット信号Resetによ
って保持しているデータを初期値に戻す機能を有する論
理素子である。
【0032】第1XORゲート10は、被演算データ
(以下通信データInput[7・0])の最下位ビッ
トLSB(Least Significant Bi
t)を含む下位4ビット(通信データInput[7・
0]の0(LSB),1,2,3ビット)の各ビットと
レジスタ16に保持されているCRC符号[16・0]
の最上位ビットMSB(Most Significa
nt Bit)を含む上位4ビット(CRC符号[16
・0]のA(MSB),B,C,Dビット)の各ビット
とに対して、所定の対応関係(ビット順位)に基づく排
他的論理和演算(Exclusive OR)を実行し
てこの排他的論理和演算の結果を第1XOR出力信号1
0aとして出力する機能を有する論理素子である。
【0033】第1XORゲート10が、所定の対応関係
に基づいて排他的論理和演算を実行して排他的論理和演
算の結果(第1XOR出力信号10a)として出力する
ことを具体的に説明すると、通信データInput[7
・0]の0(MSB)とCRC符号[16・0]のAビ
ット(MSB)との排他的論理和演算を実行して第1X
OR出力信号10aのwビット(MSB)として出力
し、通信データInput[7・0]の1ビットとCR
C符号[16・0]のBビットとの排他的論理和演算を
実行して第1XOR出力信号10aのxビットとして出
力し、通信データInput[7・0]の2ビットとC
RC符号[16・0]のCビットとの排他的論理和演算
を実行して第1XOR出力信号10aのyビットとして
出力し、通信データInput[7・0]の3ビットと
CRC符号[16・0]のDビットとの排他的論理和演
算を実行して第1XOR出力信号10aのzビット(L
SB(Least Significant Bi
t))として出力するような回路構成としている。
【0034】第1XNORゲート11は、前述の第1X
OR出力信号10aの各ビットとレジスタ16に保持さ
れているCRC符号[16・0]の第4ビット〜第7ビ
ットの各ビットとに対して、所定の対応関係(ビット順
位)に基づく排他的否定論理和演算を実行し、この排他
的否定論理和演算(Exclusive NOR)の結
果を第1XNOR出力信号11aとして出力する機能を
有する論理素子である。
【0035】具体的には、第1XNORゲート11は、
第1XOR出力信号10aの各ビット(w,x,y,z
ビット)とレジスタ16に保持されているCRC符号
[16・0]の第4ビット〜第7ビットの各ビット
(E,F,G,Hビット)とに対して、所定の対応関係
(ビット順位)に基づく排他的否定論理和演算を実行
し、この排他的否定論理和演算の結果を第1XNOR出
力信号11aとして出力するような回路構成としてい
る。
【0036】すなわち、第1XOR出力信号10aのw
ビット(MSB)とCRC符号[16・0]の第4ビッ
ト(Eビット)とに対して排他的否定論理和演算を実行
し、この排他的否定論理和演算の結果を第1XNOR出
力信号11aのAビット(MSB)として出力し、第1
XOR出力信号10aのxビットとCRC符号[16・
0]の第5ビット(Fビット)とに対して排他的否定論
理和演算を実行し、この排他的否定論理和演算の結果を
第1XNOR出力信号11aのBビットとして出力し、
第1XOR出力信号10aのyビットとCRC符号[1
6・0]の第6ビット(Gビット)とに対して排他的否
定論理和演算を実行し、この排他的否定論理和演算の結
果を第1XNOR出力信号11aのCビットとして出力
し、第1XOR出力信号10aのzビットとCRC符号
[16・0]の第7ビット(Hビット)とに対して排他
的否定論理和演算を実行し、この排他的否定論理和演算
の結果を第1XNOR出力信号11aのDビット(LS
B)として出力するような回路構成としている。
【0037】第2XNORゲート12は、第1XOR出
力信号10aの各ビットとレジスタ16に保持されてい
るCRC符号[16・0]の第11ビット〜第14ビッ
トの各ビットとに対して所定の対応関係(ビット順位)
に基づく排他的否定論理和演算を実行してこの排他的否
定論理和演算の結果を第2XNOR出力信号12aとし
て出力する機能を有する論理素子である。
【0038】具体的には、第2XNORゲート12は、
第1XOR出力信号10aの各ビット(w,x,y,z
ビット)とレジスタ16に保持されているCRC符号
[16・0]の第11ビット〜第14ビット(M,N,
P,Qビット)の各ビットとに対して所定の対応関係
(ビット順位)に基づく排他的否定論理和演算を実行し
てこの排他的否定論理和演算の結果を第2XNOR出力
信号12aとして出力するような回路構成としている。
【0039】すなわち、第2XNORゲート12は、第
1XOR出力信号10aのwビットとCRC符号[16
・0]の第11ビット(Mビット)とに対して排他的否
定論理和演算を実行してこの排他的否定論理和演算の結
果を第2XNOR出力信号12aのHビット(MSB)
として出力し、第1XOR出力信号10aのxビットと
CRC符号[16・0]の第12ビット(Nビット)と
に対して排他的否定論理和演算を実行してこの排他的否
定論理和演算の結果を第2XNOR出力信号12aのJ
ビットとして出力し、第1XOR出力信号10aのyビ
ットとCRC符号[16・0]の第13ビット(Pビッ
ト)とに対して排他的否定論理和演算を実行してこの排
他的否定論理和演算の結果を第2XNOR出力信号12
aのKビットとして出力し、第1XOR出力信号10a
のzビットとCRC符号[16・0]の第14ビット
(Qビット)とに対して排他的否定論理和演算を実行し
てこの排他的否定論理和演算の結果を第2XNOR出力
信号12aのLビット(LSB)として出力するような
回路構成としている。
【0040】第2XORゲート13は、被演算データI
nput[7・0]の最下位ビットLSBを含む下位4
ビットの各ビットと第1XNOR出力信号11aの各ビ
ットとに対して所定の対応関係(ビット順位)に基づく
排他的論理和演算を実行してこの排他的論理和演算の結
果を第2XOR出力信号13aとして出力する機能を有
する論理素子である。
【0041】具体的には、第2XORゲート13は、被
演算データInput[7・0]の最上位ビットMSB
(Most Significant Bit)を含む
上位4ビットの各ビット(4,5,6,7ビット)と第
1XNOR出力信号11aの各ビット(A,B,C,D
ビット)とに対して所定の対応関係(ビット順位)に基
づく排他的論理和演算を実行してこの排他的論理和演算
の結果を第2XOR出力信号13a(w,x,y,zビ
ット)として出力する回路構成となっている。
【0042】すなわち、第2XORゲート13は、被演
算データInput[7・0]の第4ビットと第1XN
OR出力信号11aのAビットとに対して排他的論理和
演算を実行してこの排他的論理和演算の結果を第2XO
R出力信号13aのwビット(MSB)として出力し、
被演算データInput[7・0]の第5ビットと第1
XNOR出力信号11aのBビットとに対して排他的論
理和演算を実行してこの排他的論理和演算の結果を第2
XOR出力信号13aのxビットとして出力し、被演算
データInput[7・0]の第6ビットと第1XNO
R出力信号11aのCビットとに対して排他的論理和演
算を実行してこの排他的論理和演算の結果を第2XOR
出力信号13aのyビットとして出力し、被演算データ
Input[7・0]の最下位ビットLSB(第7ビッ
ト)と第1XNOR出力信号11aのDビットとに対し
て排他的論理和演算を実行してこの排他的論理和演算の
結果を第2XOR出力信号13aのzビット(LSB)
として出力する回路構成となっている。
【0043】第3XNORゲート14は、第2XOR出
力信号13aの各ビットとCRC符号[16・0]の第
8ビット〜第10ビットの各ビット及び第2XNOR出
力信号12aの最上位ビットMSBとに対して所定の対
応関係(ビット順位)に基づく排他的否定論理和演算を
実行してこの排他的否定論理和演算の結果を第3XNO
R出力信号14aとして出力する機能を有する論理素子
である。
【0044】具体的には、第3XNORゲート14は、
第2XOR出力信号13a(w,x,y,zビット)の
各ビットとCRC符号[16・0]の第8ビット〜第1
0ビット(J,K,Lビット)の各ビット及び第2XN
OR出力信号12aの最上位ビットMSB(Hビット)
とに対して所定の対応関係(ビット順位)に基づく排他
的否定論理和演算を実行してこの排他的否定論理和演算
の結果を第3XNOR出力信号14aとして出力する機
能を有する論理素子である。
【0045】すなわち、第3XNORゲート14は、第
2XOR出力信号13a(wビット)とCRC符号[1
6・0]の第8ビット(Jビット)とに対して排他的否
定論理和演算を実行してこの排他的否定論理和演算の結
果を第3XNOR出力信号14aのAビット(MSB)
として出力し、第2XOR出力信号13a(xビット)
とCRC符号[16・0]の第9ビット(Kビット)と
に対して排他的否定論理和演算を実行してこの排他的否
定論理和演算の結果を第3XNOR出力信号14aのB
ビットとして出力し、第2XOR出力信号13a(yビ
ット)とCRC符号[16・0]の第10ビット(Lビ
ット)とに対して排他的否定論理和演算を実行してこの
排他的否定論理和演算の結果を第3XNOR出力信号1
4aのCビットとして出力し、第2XOR出力信号13
a(zビット)と第2XNOR出力信号12aの最上位
ビットMSB(Hビット)とに対して排他的否定論理和
演算を実行してこの排他的否定論理和演算の結果を第3
XNOR出力信号14aのDビット(LSB)として出
力する回路構成となっている。
【0046】第4XNORゲート15は、第2XOR出
力信号13aの各ビットと第1XOR出力信号10aの
最上位ビットMSBを含む上位3ビットの各ビット及び
CRC符号[16・0]の第15ビットとに対して所定
の対応関係(ビット順位)に基づく排他的否定論理和演
算を実行してこの排他的否定論理和演算の結果を第4X
NOR出力信号15aとして出力する機能を有する論理
素子である。
【0047】具体的には、第4XNORゲート15は、
第2XOR出力信号13a(w,x,y,zビット)の
各ビットと第1XOR出力信号10aの最上位ビットM
SB(wビット)を含む上位3ビット(w,x,yビッ
ト)の各ビット及びCRC符号[16・0]の第15ビ
ット(Rビット)とに対して所定の対応関係(ビット順
位)に基づく排他的否定論理和演算を実行してこの排他
的否定論理和演算の結果を第4XNOR出力信号15a
(H,J,K,Lビット)として出力するような回路構
成となっている。
【0048】すなわち、第4XNORゲート15は、第
2XOR出力信号13aのxビットと第1XOR出力信
号10aの最上位ビットMSB(wビット)とに対して
排他的否定論理和演算を実行してこの排他的否定論理和
演算の結果を第4XNOR出力信号15aのJビットと
して出力し、第2XOR出力信号13aのyビットと第
1XOR出力信号10aのxビットとに対して排他的否
定論理和演算を実行してこの排他的否定論理和演算の結
果を第4XNOR出力信号15aのKビットとして出力
し、第2XOR出力信号13aのzビットと第1XOR
出力信号10aのyビットとに対して排他的否定論理和
演算を実行してこの排他的否定論理和演算の結果を第4
XNOR出力信号15aのLビットとして出力し、第2
XOR出力信号13aのwビット(MSB)とCRC符
号[16・0]の第15ビット(Rビット)とに対して
排他的否定論理和演算を実行してこの排他的否定論理和
演算の結果を第4XNOR出力信号15aのHビットと
して出力するような回路構成となっている。
【0049】以上説明したように、第1実施形態のCR
C演算回路30によれば、クロックClock1回につ
き1ビットずつのデータ転送処理しか実行しないシフト
レジスタ16に代えて、巡回冗長検査の演算を組み合わ
せ論理回路のみによって実現することにより、1クロッ
クClockサイクルで巡回冗長検査の演算を完了する
ことができるようになり、その結果、巡回冗長検査の演
算の高速化(演算時間の短縮化)を図ることができるよ
うになる。また、巡回冗長検査の演算結果をあらかじめ
剰余テーブル記憶手段(システムメモリ)に格納しテー
ブル参照によって目的とするCRC計算値を得る装置に
代えて、巡回冗長検査の演算を組み合わせ論理回路のみ
によって実現することにより、有限であるシステムメモ
リの容量の圧迫を回避でき、その結果、システムリソー
スの有効活用を図ることができるようになる。更に加え
て、メモリ参照のための引数演算などに要するシステム
サイクルを省略できるようになり、1クロックCloc
kサイクルで巡回冗長検査の演算を完了することができ
るようになる結果、巡回冗長検査の演算の高速化を図る
ことができるようになる。
【0050】一方、以上のような回路構成において第1
実施形態のCRC演算回路30は、以下に示す第1工程
〜第5工程を実行し、第3XNOR出力信号14aの各
ビットをCRC符号[16・0]の最上位ビットMSB
を含む上位第4ビットとしてレジスタ16の入力段に入
力し、第2XNOR出力信号12aの最下位ビットLS
Bを含む下位3ビットをCRC符号[16・0]の第4
ビット〜第6ビットとしてレジスタ16の入力段に入力
し、第4XNOR出力信号15aの各ビットをCRC符
号[16・0]の第7ビット〜第10ビットとしてレジ
スタ16の入力段に入力し、第2XOR出力信号13a
の各ビットをCRC符号[16・0]の最下位ビットL
SBを含む下位4ビットとしてレジスタ16の入力段に
入力してCRC符号[16・0]を生成している。
【0051】ここで第1工程は、最初に入力する4ビッ
トの各々と直前のCRC符号[16・0]の最上位ビッ
トMSBを含む上位4ビットとの排他的論理和演算を実
行して最新のCRC符号[16・0]の第12ビット〜
第15ビットを生成する演算工程である。
【0052】第1工程に続く第2工程は、直前のCRC
符号[16・0]の最下位ビットLSBを用いて最新の
CRC符号[16・0]の第11ビットを生成する演算
工程である。
【0053】第2工程に続く第3工程は、直前のCRC
符号[16・0]の第8ビット〜第10ビットを用いて
最新のCRC符号[16・0]の第4ビット〜第6ビッ
トを生成する演算工程である。
【0054】第3工程に続く第4工程は、最新のCRC
符号[16・0]の第12ビット〜第15ビットに入る
内容と直前のCRC符号[16・0]の第11ビット〜
第14ビットの内容との排他的否定論理和演算を実行し
て最新のCRC符号[16・0]の第7ビット〜第10
ビットを生成する演算工程である。
【0055】第4工程に続く第5工程は、最新のCRC
符号[16・0]の第12ビット〜第15ビットの内容
と直前のCRC符号[16・0]の第4ビット〜第7ビ
ットの内容との排他的否定論理和演算を実行して最新の
CRC符号[16・0]の第0ビット〜第4ビットを生
成する演算工程である。
【0056】請求項1に記載の発明によれば、クロック
Clock1回につき1ビットずつのデータ転送処理し
か実行しないシフトレジスタ16に代えて、CRC符号
[16・0]の演算を行う回路を主として排他的論理和
を用いた組み合わせのみで実行することにより、1クロ
ックClockサイクルで巡回冗長検査の演算を完了す
ることができるようになり、その結果、巡回冗長検査の
演算の高速化(演算時間の短縮化)を図ることができる
ようになる。
【0057】(第2実施形態)CRC演算回路30の第
2実施形態として、CRC生成多項式G(X)がITU
−T勧告に示されている多項式G(X) G(X)=X16+X12+X5+1 の場合について、以下に示す。
【0058】図2に示すようなシフトレジスタによる巡
回冗長検査の演算回路が従来から知られている。図2に
おいて、数字0〜15までの箱は、例えば、D型フリッ
プフロップ等の論理素子から構成され、全体としてシフ
トレジスタを構成している。
【0059】図2の巡回冗長検査の演算回路において
は、左方から入力される入力データ(前述の被演算デー
タ(通信データInput[7・0])に相当)を最下
位ビットLSBから順に「入力」と示した位置から入力
し、入力のたびにクロックを動作させ、右シフトを行
う。従って1バイト(=8ビット)の入力データに対し
ては8回のクロック入力を必要とする。
【0060】しかし、この動作を4ビットずつに区切っ
てみた場合、最下位ビットLSB側の4ビット(=最下
位ビットLSBを含む4ビット)のシフト動作が完了し
た時点でのビット列の内容は、それ以前に格納されてい
るCRC符号CRC[16・0]の内容と、新たに入力
する4ビットの内容のみによって一意に定まることが分
かる。この様子を以下に説明する。
【0061】アンダーライン(1)の部分のレジスタ
(=第12〜第15レジスタ)については、最初に入力
する4ビットとアンダーライン(3)の部分のレジスタ
(=第0〜第3レジスタ)との単純な排他的論理和ゲー
トXORとなることがわかる。
【0062】アンダーライン(4)の部分、すなわち第
11レジスタの部分については、第15レジスタの内容
がそのままクロックシフトされる。同様に、アンダーラ
イン(3)の部分のレジスタ(=第0〜第レジスタ)に
ついてもレジスタ8〜10の内容がそのままシフトされ
て格納されると考えて良い。
【0063】アンダーライン(2)の部分のレジスタ
(=第7〜第10レジスタ)については、新たにアンダ
ーライン(1)の部分のレジスタ(=第12〜第15レ
ジスタ)に入る内容と、以前の第11レジスタ〜14ま
での内容の排他的否定論理和演算XNORが格納されて
いることになる。これと同様にアンダーライン(3)の
部分のレジスタ(=第0〜第3レジスタ)についても、
新たにアンダーライン(1)の部分のレジスタ(=第1
2〜第15レジスタ)に入る内容と、以前の第4〜第7
レジスタの内容との排他的否定論理和演算XNORにな
ると考えて良い。
【0064】これらの関係から、4ビット入力時点での
レジスタ内容は、以前のレジスタ内容と最下位ビットL
SB側4ビットの入力に対する組み合わせ論理回路とし
て構成することができることを示している。さらに、こ
の最下位ビットLSB側4ビット入力時点での出力値
を、残りの最上位ビットMSB側4ビット(最上位ビッ
トMSBを含む4ビット)に対する入力として用い、同
様の組み合わせ論理回路をもう一段設ければ、最上位ビ
ットMSB側4ビットも含めた形で組み合わせ論理回路
が構成できることが分かる。
【0065】以上に基づいて演算を組み合わせ論理回路
を用いて並列化し、ハードウェア化した場合の論理回路
構成が前述のCRC演算回路30(図1)によって実現
できる。
【0066】図1では、この最下位ビットLSB側4ビ
ットの入力に対する演算回路が、前述の第1XORゲー
ト10、第1XNORゲート11及び第2XNORゲー
ト12にそれぞれ相当し、最上位ビットMSB側4ビッ
トの入力に対する演算回路が、前述の第2XORゲート
13、第3XNORゲート14及び第4XNORゲート
15に、それぞれ相当している。
【0067】図1中レジスタ16は、巡回冗長検査の演
算結果を保持するレジスタであり、D型フリップフロッ
プなどで構成される。
【0068】この論理回路では、クロックによって動作
する部分が、CRC符号(巡回冗長検査符号)の値を保
持する16ビット幅のレジスタ1本に限定されており、
演算速度は、排他的論理和ゲートXOR及び排他的否定
論理和演算XNORで構成される組み合わせ論理回路の
出力遅延時間に依存するため、これらの遅延時間の合計
がシステムの1サイクル以内に収まれば、実質的な演算
時間は1サイクルとなる。
【0069】以上説明したように、第2実施形態によれ
ば、クロックClock1回につき1ビットずつのデー
タ転送処理しか実行しないシフトレジスタ16に代え
て、CRC生成多項式G(X)の演算を組み合わせ論理
回路のみによって実現することにより、1クロックCl
ockサイクルでCRC生成多項式G(X)の演算を完
了することができるようになり、その結果、CRC生成
多項式G(X)の演算の高速化(演算時間の短縮化)を
図ることができるようになる。また、CRC生成多項式
G(X)の演算結果をあらかじめ剰余テーブル記憶手段
(システムメモリ)に格納しテーブル参照によって目的
とするCRC計算値を得る装置に代えて、CRC生成多
項式G(X)の演算を組み合わせ論理回路のみによって
実現することにより、有限であるシステムメモリの容量
の圧迫を回避でき、その結果、システムリソースの有効
活用を図ることができるようになる。更に加えて、メモ
リ参照のための引数演算などに要するシステムサイクル
を省略できるようになり、1クロックClockサイク
ルでCRC生成多項式G(X)の演算を完了することが
できるようになる結果、CRC生成多項式G(X)の演
算の高速化を図ることができるようになる。
【0070】
【発明の効果】本発明にかかるCRC演算方法及びCR
C演算回路によれば、CRC演算部分が組み合わせゲー
トによってのみ生成されているため、1クロックでのC
RC演算が可能となる。
【図面の簡単な説明】
【図1】本発明のCRC演算方法及びこれを実行するC
RC演算回路の一実施形態を説明するための回路図であ
る。
【図2】シフトレジスタを用いた従来技術のCRCの演
算動作を説明するためのデータフロー図である。
【図3】第1従来技術のCRC演算回路を説明するため
の回路図である。
【図4】第2従来技術のCRC演算回路を説明するため
の回路図である。
【図5】第3従来技術のCRC演算回路を説明するため
の回路図である。
【図6】第4従来技術のCRC演算回路を説明するため
の回路図である。
【符号の説明】
10…第1XORゲート 10a…第1XOR出力信号 11…第1XNORゲート 11a…第1XNOR出力信号 12…第2XNORゲート 12a…第2XNOR出力信号 13…第2XORゲート 13a…第2XOR出力信号 14…第3XNORゲート 14a…第3XNOR出力信号 15…第4XNORゲート 15a…第4XNOR出力信号 16…レジスタ 30…CRC演算回路 Clock…クロック CRC[16・0]…CRC符号 G(X)…CRC生成多項式G(X) Input[7・0]…被演算データ(通信データ) LSB…最下位ビット MSB…最上位ビット

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 通信データの誤り判定を実行するために
    CRC符号の演算を行うCRC演算方法において、 最初に入力する4ビットの各々と直前のCRC符号の最
    上位ビットを含む上位4ビットとの排他的論理和演算を
    実行して最新のCRC符号の第12ビット乃至第15ビ
    ットを生成する第1工程と、 直前のCRC符号の最下位ビットを用いて最新のCRC
    符号の第11ビットを生成する第2工程と、 直前のCRC符号の第8ビット乃至第10ビットを用い
    て最新のCRC符号の第4ビット乃至第6ビットを生成
    する第3工程と、 最新のCRC符号の第12ビット乃至第15ビットに入
    る内容と直前のCRC符号の第11ビット乃至第14ビ
    ットの内容との排他的否定論理和演算を実行して最新の
    CRC符号の第7ビット乃至第10ビットを生成する第
    4工程と、 最新のCRC符号の第12ビット乃至第15ビットの内
    容と直前のCRC符号の第4ビット乃至第7ビットの内
    容との排他的否定論理和演算を実行して最新のCRC符
    号の第0ビット乃至第3ビットを生成する第5工程とを
    有することを特徴とするCRC演算方法。
  2. 【請求項2】 通信データの誤り判定を実行するために
    CRC符号の演算をハードウェアによって行うCRC演
    算回路において、 巡回冗長検査の演算結果であるCRC符号を、外部から
    入力されるクロックに同期して保持するレジスタと、 被演算データの最下位ビットを含む下位4ビットの各ビ
    ットと前記レジスタに保持されている前記CRC符号の
    最上位ビットを含む上位4ビットの各ビットとに対して
    所定の対応関係に基づく排他的論理和演算を実行して当
    該排他的論理和演算の結果を第1XOR出力信号として
    出力する第1XORゲートと、 前記第1XOR出力信号の各ビットと前記レジスタに保
    持されている前記CRC符号の第4ビット乃至第7ビッ
    トの各ビットとに対して所定の対応関係に基づく排他的
    否定論理和演算を実行して当該排他的否定論理和演算の
    結果を第1XNOR出力信号として出力する第1XNO
    Rゲートと、 第1XOR出力信号の各ビットと前記レジスタに保持さ
    れている前記CRC符号の第11ビット乃至第14ビッ
    トの各ビットとに対して所定の対応関係に基づく排他的
    否定論理和演算を実行して当該排他的否定論理和演算の
    結果を第2XNOR出力信号として出力する第2XNO
    Rゲートと、 被演算データの最上位ビットを含む上位4ビットの各ビ
    ットと前記第1XNOR出力信号の各ビットとに対して
    所定の対応関係に基づく排他的論理和演算を実行して当
    該排他的論理和演算の結果を第2XOR出力信号として
    出力する第2XORゲートと、 前記第2XOR出力信号の各ビットと前記CRC符号の
    第8ビット乃至第10ビットの各ビット及び前記第2N
    XOR出力信号の最上位ビットとに対して所定の対応関
    係に基づく排他的否定論理和演算を実行して当該排他的
    否定論理和演算の結果を第3XNOR出力信号として出
    力する第3XNORゲートと、 前記第2XOR出力信号の各ビットと前記第1XOR出
    力信号の最上位ビットを含む上位3ビットの各ビット及
    び前記CRC符号の第15ビットとに対して所定の対応
    関係に基づく排他的否定論理和演算を実行して当該排他
    的否定論理和演算の結果を第4XNOR出力信号として
    出力する第4XNORゲートとを有し、 前記第3XNOR出力信号の各ビットを前記CRC符号
    の最上位ビットを含む上位第4ビットとして前記レジス
    タの入力段に入力し、前記第2XNOR出力信号の最下
    位ビットを含む下位3ビットを前記CRC符号の第4ビ
    ット乃至第6ビットとして前記レジスタの入力段に入力
    し、前記第4XNOR出力信号の各ビットを前記CRC
    符号の第7ビット乃至第10ビットとして前記レジスタ
    の入力段に入力し、前記第2XOR出力信号の各ビット
    を前記CRC符号の最下位ビットを含む下位4ビットと
    して前記レジスタの入力段に入力するように構成されて
    いることを特徴とするCRC演算回路。
  3. 【請求項3】 通信データの誤り判定を実行するために
    CRC符号の演算をハードウェアによって行うCRC演
    算回路において、 ITU−T勧告に示されているCRC生成多項式G
    (X) G(X)=X16+X12+X5+1 に基づいてCRC符号の演算を実行する際、 巡回冗長検査の演算結果であるCRC符号を、外部から
    入力されるクロックに同期して保持し、入力段に入力さ
    れる被演算データの最下位ビットを含む下位4ビットの
    各ビットと前記保持されている前記CRC符号の最上位
    ビットを含む上位4ビットの各ビットとに対して所定の
    対応関係に基づく排他的論理和演算を実行して当該排他
    的論理和演算の結果を第1XOR出力信号として出力
    し、 前記第1XOR出力信号の各ビットと前記レジスタに保
    持されている前記CRC符号の第4ビット乃至第7ビッ
    トの各ビットとに対して所定の対応関係に基づく排他的
    否定論理和演算を実行して当該排他的否定論理和演算の
    結果を第1XNOR出力信号として出力し、 第1XOR出力信号の各ビットと前記保持されている前
    記CRC符号の第11ビット乃至第14ビットの各ビッ
    トとに対して所定の対応関係に基づく排他的否定論理和
    演算を実行して当該排他的否定論理和演算の結果を第2
    XNOR出力信号として出力し、 被演算データの最上位ビットを含む上位4ビットの各ビ
    ットと前記第1XNOR出力信号の各ビットとに対して
    所定の対応関係に基づく排他的論理和演算を実行して当
    該排他的論理和演算の結果を第2XOR出力信号として
    出力し、 前記第2XOR出力信号の各ビットと前記CRC符号の
    第8ビット乃至第10ビットの各ビット及び前記第2N
    XOR出力信号の最上位ビットとに対して所定の対応関
    係に基づく排他的否定論理和演算を実行して当該排他的
    否定論理和演算の結果を第3XNOR出力信号として出
    力し、 前記第2XOR出力信号の各ビットと前記第1XOR出
    力信号の最上位ビットを含む上位3ビットの各ビット及
    び前記CRC符号の第15ビットとに対して所定の対応
    関係に基づく排他的否定論理和演算を実行して当該排他
    的否定論理和演算の結果を第4XNOR出力信号として
    出力し、 前記第3XNOR出力信号の各ビットを前記CRC符号
    の最上位ビットを含む上位第4ビットとして前記レジス
    タの入力段に入力し、前記第2XNOR出力信号の最下
    位ビットを含む下位3ビットを前記CRC符号の第4ビ
    ット乃至第6ビットとして前記レジスタの入力段に入力
    し、前記第4XNOR出力信号の各ビットを前記CRC
    符号の第7ビット乃至第10ビットとして前記レジスタ
    の入力段に入力し、前記第2XOR出力信号の各ビット
    を前記CRC符号の最下位ビットを含む下位4ビットと
    して前記入力段に入力するように構成されていることを
    特徴とするCRC演算回路。
JP10167595A 1998-06-15 1998-06-15 Crc演算方法及びcrc演算回路 Pending JP2000004169A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10167595A JP2000004169A (ja) 1998-06-15 1998-06-15 Crc演算方法及びcrc演算回路
US09/342,153 US6370667B1 (en) 1998-06-15 1999-06-15 CRC operating calculating method and CRC operational calculation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10167595A JP2000004169A (ja) 1998-06-15 1998-06-15 Crc演算方法及びcrc演算回路

Publications (1)

Publication Number Publication Date
JP2000004169A true JP2000004169A (ja) 2000-01-07

Family

ID=15852687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10167595A Pending JP2000004169A (ja) 1998-06-15 1998-06-15 Crc演算方法及びcrc演算回路

Country Status (2)

Country Link
US (1) US6370667B1 (ja)
JP (1) JP2000004169A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002261624A (ja) * 2001-03-05 2002-09-13 Nec Corp 巡回冗長検査演算方法及び巡回冗長検査演算回路
JP2006335992A (ja) * 2005-06-06 2006-12-14 Kobe Steel Ltd 炭化水素系樹脂の撥水化方法
JP2010016751A (ja) * 2008-07-07 2010-01-21 Rohm Co Ltd Crc演算回路、シリアルインタフェイス装置、画像形成装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138804A1 (en) * 2001-01-25 2002-09-26 Sangha Onkar S. Computation of checksums and other functions with the aid of software instructions
US7016430B1 (en) * 2001-03-21 2006-03-21 Cyrpess Semiconductor Corp. Apparatus and protocol for exception propagation in serial transport block coded interfaces
JP3783956B2 (ja) * 2002-07-23 2006-06-07 株式会社リコー 画像記録装置及び画像データ選択方法
US20040098655A1 (en) * 2002-11-19 2004-05-20 Sharma Debendra Das Rolling CRC scheme for improved error detection
DE10336121B4 (de) * 2003-08-06 2006-10-26 Infineon Technologies Ag Serielle asynchrone Schnittstelle mit SLIP-Kodierung/Dekodierung und CRC-Prüfung im Sende- und Empfangspfad
US7353448B1 (en) 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
US7103832B2 (en) * 2003-12-04 2006-09-05 International Business Machines Corporation Scalable cyclic redundancy check circuit
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
JP6187067B2 (ja) 2013-09-13 2017-08-30 株式会社リコー 座標検出システム、情報処理装置、プログラム、記憶媒体、座標検出方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
US5195093A (en) * 1991-02-14 1993-03-16 Motorola, Inc. Method and apparatus for ensuring CRC error generation by a data communication station experiencing transmitter exceptions
US5390196A (en) * 1992-11-12 1995-02-14 Bull Hn Information Systems Inc. Byte-wise determination of a checksum from a CRC-32 polynomial
US5465260A (en) * 1993-11-04 1995-11-07 Cirrus Logic, Inc. Dual purpose cyclic redundancy check
US5642366A (en) * 1994-07-05 1997-06-24 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
US6205190B1 (en) * 1996-04-29 2001-03-20 Qualcomm Inc. System and method for reducing interference generated by a CDMA communications device
JP3249405B2 (ja) * 1996-09-30 2002-01-21 株式会社東芝 誤り訂正回路および誤り訂正方法
JPH10117147A (ja) * 1996-10-09 1998-05-06 Nec Corp エラーチェック用データ発生回路
US5970148A (en) * 1997-05-02 1999-10-19 Texas Instruments Deutschland, Gmbh Low cost encryption transponder
US6029186A (en) * 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
US6101624A (en) * 1998-01-21 2000-08-08 International Business Machines Corporation Method and apparatus for detecting and correcting anomalies in field-programmable gate arrays using CRCs for anomaly detection and parity for anomaly correction
US6191614B1 (en) * 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
US6204687B1 (en) * 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002261624A (ja) * 2001-03-05 2002-09-13 Nec Corp 巡回冗長検査演算方法及び巡回冗長検査演算回路
JP4515651B2 (ja) * 2001-03-05 2010-08-04 ルネサスエレクトロニクス株式会社 巡回冗長検査演算方法及び巡回冗長検査演算回路
JP2006335992A (ja) * 2005-06-06 2006-12-14 Kobe Steel Ltd 炭化水素系樹脂の撥水化方法
JP4500218B2 (ja) * 2005-06-06 2010-07-14 株式会社神戸製鋼所 樹脂の撥水化方法
JP2010016751A (ja) * 2008-07-07 2010-01-21 Rohm Co Ltd Crc演算回路、シリアルインタフェイス装置、画像形成装置

Also Published As

Publication number Publication date
US6370667B1 (en) 2002-04-09

Similar Documents

Publication Publication Date Title
KR101616478B1 (ko) 프로그램가능한 프로세서 상에서의 임의의 갈루아 필드 산술연산의 구현
KR100309724B1 (ko) 리드 솔로몬 부호화 장치 및 방법
TW200522531A (en) High performance CRC calculation method and system with a matrix transformation strategy
JP2000004169A (ja) Crc演算方法及びcrc演算回路
JP2011165026A (ja) エラー検出訂正システム
JPH09247000A (ja) エラー訂正用シンドローム計算装置
KR100282516B1 (ko) 길쌈부호 생성기 및 이를 내장한 디지털 신호 프로세서
CN101296053A (zh) 计算循环冗余校验码之方法及***
KR19990026630A (ko) 리드-솔로몬 복호기와 그 복호방법
JP3454962B2 (ja) 誤り訂正符号の符号器及び復号器
JP3614978B2 (ja) ガロア体の除算方法および除算装置
EP0936537B1 (en) Cyclic redundancy check in a computer system
JP3913921B2 (ja) 有限フィールドでの任意要素の逆数具現回路
WO2007083377A1 (ja) パリティ生成回路、計数回路および計数方法
US5948051A (en) Device improving the processing speed of a modular arithmetic coprocessor
EP0584864B1 (en) A hardware-efficient method and device for encoding BCH codes and in particular Reed-Solomon codes
WO2000067125A1 (fr) Processeur
JP2618723B2 (ja) テスト回路
EP0431416A2 (en) Apparatus and method for accessing a cyclic redundancy error check code generated in parallel
JPH0385923A (ja) Crc演算方式
JP2665268B2 (ja) サイクリックコードのステップ・バイ・ステップ型復号方法及び復号器
JPH0969836A (ja) Crc符号生成回路およびcrc符号生成回路設計方法
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
JPS6217256B2 (ja)
JP2008112522A (ja) 誤り検出装置および誤り検出方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040127