JPH10117147A - エラーチェック用データ発生回路 - Google Patents

エラーチェック用データ発生回路

Info

Publication number
JPH10117147A
JPH10117147A JP8268046A JP26804696A JPH10117147A JP H10117147 A JPH10117147 A JP H10117147A JP 8268046 A JP8268046 A JP 8268046A JP 26804696 A JP26804696 A JP 26804696A JP H10117147 A JPH10117147 A JP H10117147A
Authority
JP
Japan
Prior art keywords
crc
output
flip
data
flop
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
JP8268046A
Other languages
English (en)
Inventor
Yoshiyuki Uejima
良之 上島
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 JP8268046A priority Critical patent/JPH10117147A/ja
Priority to US08/941,320 priority patent/US6041434A/en
Priority to EP97117189A priority patent/EP0836284A3/en
Publication of JPH10117147A publication Critical patent/JPH10117147A/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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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 Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【課題】 次数が異なる生成多項式の複数のCRC(エ
ラーチェック用データ)の演算を必要とする場合に、各
CRC発生回路のそれぞれにフリップフロップとXOR
ゲートが必要であり、回路規模が大きくなる。 【解決手段】 次数の異なる生成多項式のCRC発生回
路のうち、最大次数のCRC発生回路の次数と同じ数の
フリップフロップ11a〜11pを縦続接続し、かつ生
成多項式の項に対応するフリップフロップの出力にXO
Rゲート12a〜12dを介挿する。また、各生成多項
式の項のうち、共通しない項にはそのXORゲートを有
効にするか否かを選択するマルチプレクサ13a,13
bを設ける。最大次数以下のものは、最大次数内に含ま
れるため、演算を行うためのフリップフロップの数を削
減することができ、共通する項についてはXORゲート
も共有してXORゲートは1つで構成でき、XORゲー
トの数を削減することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ伝送において
用いられるエラーチェック用のデータであるCRC(Cy
clic Redundancy Check )の発生回路に関し、特に送信
データフレームに異なるデータ長のCRC、あるいは複
数のCRCを付加して送信することができるCRC発生
回路に関する。
【0002】
【従来の技術】CRC発生回路は、データ伝送において
用いられるエラーチェック用のデータであるCRCを発
生させるために用いられる。図5(a)にデータ伝送で
用いられる一般的なデータフレーム例を示す。データフ
レームのデータフィールド51に対してCRC発生回路
で演算を行い、その結果をデータフレームのデータフィ
ールド51に続いてCRCフィールド53またはCRC
フィールド55として送信する。受信側では、このデー
タフレームのデータフィールド51とCRCフィールド
53またはCRCフィールド55に対してCRC照合回
路で演算を行い、その結果がある決められた定数と一致
しているならば、受信したデータフレームにはエラーが
ないと判断することができる。逆に、CRC照合回路の
結果と定数が一致していない場合は、受信したデータフ
レームはエラーデータを含んでおり、データ伝送中にエ
ラーが発生したことになる。
【0003】このようなCRC発生回路の一例を図6に
示す。同図は8ビットのCRC(以下、CRC8)を演
算する回路の一例であり、直列に接続された8個のフリ
ップフロップ11a〜11hと、3個のXORゲート1
2a〜12cと、1個のインバータ19によって構成さ
れている。このCRC発生回路では、X8 ,X5 ,Xの
各項に相当するフリップフロップ11a,11e,11
hにそれぞれXORゲート12a,12b,12cが接
続されている。このため、このCRC発生回路から得ら
れるCRC8〔G8 (X)〕は以下の生成多項式で得ら
れる。 G8 (X)=X8 +X5 +X+1
【0004】一方、図7は16ビットのCRC(以下、
CRC16)を演算するCRC発生回路の一例であり、
直列接続された16個のフリップフロップ11a〜11
pと、3個のXORゲート12a〜12cと、1個のイ
ンバータ19によって構成されている。このCRC発生
回路ではX16,X12,X5 の各項に相当するフリップ・
フロップ11e,11l,11pにそれぞれXORゲー
ト12a,12b,12cが接続されている。このた
め、このCRC発生回路から得られるCRC16〔G16
(X)〕は以下の生成多項式で得られる。 G16(X)=X16+X12+X5 +1
【0005】ここで、図5に示したように、データフレ
ームのタイプによってCRC演算を行う生成多項式を変
えなければならない場合がある。例えば、図5(a)の
ように、データフィールド51のデータ長によって、デ
ータ長が長いタイプのデータフレームに対しては、32
ビットのCRC(以下、CRC32)のCRCフィール
ド55を付加するが、データ長が短いタイプのデータフ
レームに対してはCRC8のCRCフィールド53を使
用する場合である。CRC32〔G32(X)〕は以下の
生成多項式によって得られる。 G32(X)=X32+X26+X23+X22+X16+X12+X
11+X10+X8 +X7 +X5 +X4 +X2 +X+1
【0006】また、例えば、図5(b)のように、同一
データフレーム中でヘッダーフィールド52に対してC
RC16のCRCフィールド54を使用し、データフィ
ールド51に対してCRC32のCRCフィールド55
を使用する場合もある。無線LANの標準であるIEE
E802.11では、前述のように、同一データフレー
ム中にCRC16とCRC32を使用することが規定さ
れている。このように、1つのデータ伝送のシステムに
おいて、複数のCRC演算が必要な場合、従来の技術で
は、必要数のCRC発生回路を用意しCRC発生回路の
出力をマルチプレクサによって選択するようにしてい
た。
【0007】このような、データフレームに用いるCR
Cを変更する要求に対応するために、従来のCRC発生
回路を含むデータ伝送回路の送信部では、図8に示すよ
うな構成がとられている。図8(a)のブロック図で
は、送信データは送信FIFO入力端子25から送信F
IFO21に書き込まれ、一時的に蓄積され送信待ちと
なる。送信FIFO21のデータは逐次読み出され、パ
ラレル−シリアル変換回路22によってパラレルデータ
からシリアルデータへと変換される。変換されたシリア
ルデータはデータフレームとして送信されると同時に、
CRC発生回路71,72にも入力され、この送信デー
タからCRC演算が行われる。図8(a)は、2つのC
RC発生回路を使用した場合の例であり、パラレル−シ
リアル変換回路22の出力である送信データ及び各CR
C発生回路71,72の出力はマルチプレクサ75によ
って選択され、送信データ出力端子26から送信され
る。
【0008】したがって、図5(a)に示したようなデ
ータフレームを送信する場合には、送信データがデータ
フィールド51として送信された後に、第1のCRC発
生回路71の演算結果か、第2のCRC発生回路72の
演算結果のいずれかをマルチプレクサ75によって切り
替えて出力することになる。この場合、2つのCRC発
生回路71,72は同時に動作させておき、CRCフィ
ールドを付加する時に演算結果だけを選択することも可
能であるが、データフレームを送信する前にどのCRC
発生回路を使用するかを選択しておき、一方のCRC発
生回路だけを動作させることも可能である。
【0009】一方、図5(b)に示したようなデータフ
レームを送信する場合には、ヘッダーフィールド52の
データに対して第1のCRC発生回路71で第1のCR
Cを発生し、データフィールド51のデータに対して第
2のCRC発生回路72で第2のCRCを発生させる。
それぞれのCRCはマルチプレクサ75によって、ヘッ
ダーフィールド52を送信した直後に第1のCRCを選
択して送信し、データフィールド51を送信した直後に
は第2のCRCを選択して送信する。この場合、2つの
CRC発生回路71,72は、それぞれの対応するフィ
ールドの期間だけ動作させなければならない。
【0010】なお、図8(a)のブロック図ではCRC
発生回路71,72の出力がシリアルデータの場合を示
しているが、図8(b)のブロック図に示すように、C
RC発生回路73,74の出力がパラレルデータの構成
としてもよく、この場合には、送信データとCRCデー
タの選択はパラレル−シリアル変換をする前に行われ
る。つまり、送信データは送信FIFO入力端子25か
ら送信FIFO21に書き込まれ、一時的に蓄積され送
信待ちとなる。送信FIFO21のデータは逐次読み出
され、マルチプレクサ76によって送信データが選択さ
れ、送信データパラレル−シリアル変換回路22によっ
てパラレルデータからシリアルデータへと変換される。
変換されたシリアルデータはデータフレームとして送信
されると同時にCRC発生回路73,74にも入力さ
れ、この送信データからCRC演算が行われる。ヘッダ
ーフィールド52かデータフィールド51が送信された
後CRCデータを送信することになるが、第3のCRC
発生回路73の出力か第4のCRC発生回路74の出力
かはマルチプレクサ76によって選択される。マルチプ
レクサ76によって選択されたCRCデータは、パラレ
ル−シリアル変換回路22によってパラレルデータから
シリアルデータへと変換され、CRCフィールド55と
して送信データ出力端子26から送信される。
【0011】図9は、図8(a)のシステム構成によっ
て図5(b)のデータフレームを送信する場合のタイミ
ングチャートである。第1のリセット信号61はCRC
発生回路71をリセットし、第2のリセット信号62は
CRC発生回路72をリセットする。クロック信号63
に同期して、パラレル−シリアル変換回路出力64であ
る送信データがCRC発生回路71に入力され、CRC
発生回路出力65が得られる。同様に、クロック信号6
3に同期して、パラレル−シリアル変換回路出力64で
ある送信データがCRC発生回路71に入力され、CR
C発生回路出力66も得られる。コントロール信号68
a,68b,68cはマルチプレクサ75に入力され、
コントロール信号68aが“1”の期間はパラレル−シ
リアル変換回路出力64が選択されて、送信データ出力
端子26から出力される。同様に、コントロール信号6
8bが“1”の期間はCRC発生回路出力65が選択さ
れ、コントロール信号68cが“1”の期間はCRC発
生回路出力66が選択されて、送信データ出力端子26
から出力される。最終的に、送信データ出力端子26か
ら出力される信号は送信データ出力67に示すようにな
る。
【0012】
【発明が解決しようとする課題】このような従来のCR
C発生回路を備える従来のデータ伝送システムにおいて
は、複数のCRC演算を必要とする場合に、CRC発生
回路の回路構成が大きくなってしまうという問題が生じ
ている。すなわち、必要とするCRC演算の個数分だけ
CRC発生回路を有しているため、例えば、あるデータ
伝送システムにおいて、前述の生成多項式に従ったCR
C8とCRC16が必要とされる場合に、それぞれのC
RC発生回路が必要とされ、これらのCRC発生回路を
構成するために必要とされる全てのフリップフロップは
8+16=24個必要となり、XORゲートは3+3=
6個必要となる。
【0013】本発明の目的は、複数のCRC演算を実現
する場合においても1つのCRC発生回路で構成でき、
これに伴ってCRC発生回路を構成するフリップフロッ
プ及びXORゲートの個数を削減し、データ伝送システ
ムにおける回路構成を簡易化することが可能なCRC発
生回路を提供することにある。
【0014】
【課題を解決するための手段】本発明のCRC発生回路
は、次数が異なる生成多項式から得られる複数のCRC
を得るためのCRC発生回路として、異なる次数の生成
多項式のうち、最大次数に等しい数の縦続接続されたフ
リップフロップと、前記フリップフロップのうち、特定
のフリップフロップの出力と次段のフリップフロップと
の間に介挿されたXORゲートと、前記次段のフリップ
フロップに前記特定のフリップフロップの出力を入力さ
せるか否かを選択するマルチプレクサとを備え、前記マ
ルチプレクサによってCRC演算を行う生成多項式の構
成を切り換えるように構成したことを特徴とする。
【0015】ここで、CRC発生回路は、異なる次数の
生成多項式のうち、最大次数に等しい数の縦続接続され
たフリップフロップと、前記各生成多項式のうち、最大
次数が小さい側の生成多項式の最大項を除いて両生成多
項式の中で共通する項が重複しないように数えたときの
項数の数のXORゲートと、最大次数が小さい側の生成
多項式の中で共通する項を除いた項の数のマルチプレク
サとを備えている。特に、1つのXORゲートは最大次
数が小さい側の生成多項式の項の出力と大きい側の生成
多項式の最終段の出力のうちのいずれか選択された出力
とデータ入力とにそれぞれ入力が接続され、他のXOR
ゲートは、生成多項式の各項に対応する段数目のフリッ
プフロップの出力と、前記1つのXORゲートの出力と
にそれぞれ入力が接続され、出力が次段のフリップフロ
ップの出力に接続される構成とされる。
【0016】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。図1は本発明のCRC発生回
路の一実施形態のブロック図であり、ここでは、CRC
8(8ビットCRC)とCRC16(16ビットCR
C)の2種類のCRC演算を実現する場合の例である。
このCRC発生回路では、構成したい複数のCRC演算
のうち最大次数mに相当する数のフリップフロップ11
と、構成したい複数のCRC演算の生成多項式において
最大次数mが小さい側の最大項を除いて共通するXn
は重複しないように数えた時のXn 項の総数に相当する
数のXORゲート12と、構成したい複数のCRC演算
の生成多項式において最大次数mが小さい側における項
数が一致しない次数のXn 項の数のマルチプレクサ13
で構成される。
【0017】すなわち、この実施形態では、CRC8の
最大次数m=8であり、CRC16の最大次数m=16
であるため、両者での最大次数は16となり、16個の
フリップフロップ11a〜11pが縦続接続される。ま
た、CRC8のXn 項はX8,X5 ,X1 であり、CR
C16のXn 項はX16,X12,X5 であるため、最大次
数mが小さいCRC8側の最大項X8 を除いて共通する
項を重複しないように数えたときのXn 項の総数は
16,X12,X5 ,Xの4個となり、4個のXORゲー
ト12a〜12dが接続される。さらに、共通する項を
除いて一致しない次数の項を数えたときの最大次数mが
小さいCRC8側における項数の総数はX8,Xとな
り、2個のマルチプレクサ13a,13bが接続され
る。さらに、1個のインバータ19が加えられた構成と
される。
【0018】そして、前記XORゲート12a〜12d
は、CRC演算の生成多項式のXn項の次数nに相当す
る第1段目、第5段目、第12段目の各段目のフリップ
フロップ11と、これらの上位のXn+1 項に相当する第
2段目、第5段目、第13段目フリップフロップ11と
の間と、各CRC8とCRC16の各出力との間にそれ
ぞれ接続される。また、前記マルチプレクタ13a,1
3bは、最大次数mの小さいCRC8におけるCRC8
とCRC16の一致しないXn 項の次数nに相当する第
1段目と、第8段目のフリップフロップ11a,11h
の出力を選択可能に接続され、その出力は次段のフリッ
プフロップ11bの入力及びCRC発生回路の出力に接
続される。
【0019】そして、このCRC発生回路によりCRC
8を構成したときには、図6に示した回路と等価とな
り、CRC16を構成するときには、図7に示した回路
と等価となる。すなわち、CRC8では生成多項式にX
1 の項が存在するので、1段目のフリップフロップ11
aの出力にXORゲート12aが接続されているが、C
RC16では生成多項式にX1 の項が存在しないので、
1段目のフリップフロップ11aの出力にXORゲート
が接続されていない。そして、マルチプレクサ13aを
使用して、XORゲートでXOR論理をとった出力を2
段目のフリップフロップ11bに入力するか、1段目の
フリップフロップ11aの出力を2段目のフリップフロ
ップ11bに入力するかを選択できるように構成する。
【0020】また、CRC8とCRC16とも生成多項
式にX5 の項が同様に存在するので、5段目のフリップ
フロップ11eの出力にXORゲート12bが接続され
ている。しかしながら、この共通するX5 項では、XO
Rゲート12bでXOR論理をとった出力を6段目のフ
リップフロップ11fに入力するか、5段目のフリップ
フロップ11eの出力を6段目のフリップフロップ11
fに入力するかを選択する必要がないので、マルチプレ
クサ13は接続されていない。
【0021】また、共通しないX12項が存在しているた
め、12段目のフリップフロップ11lの出力にXOR
ゲートが接続されている。CRC8は8次までしかない
ので、生成多項式にX12の項は存在しない。したがっ
て、XORゲート12cの出力には、フリップフロップ
11hの出力(CRC8の演算結果)とフリップフロッ
プ11pの出力(CRC16の演算結果)が選択され、
CRC8を選択した時にはXORゲート12cを通らな
いので、XORゲート12cを必要とするかどうかを選
択する必要はなく、マルチプレクサを必要としない。
【0022】この構成によるCRC発生回路では、クロ
ック入力端子15からのクロック信号に同期して、デー
タ入力端子16から送信データが入力され、1クロック
毎に順次次段のフリップフロップにデータが受け渡され
る。例えば、フリップフロップ11bの出力はフリップ
フロップ11cの入力に接続されているので、クロック
信号に同期して、フリップフロップ11bのデータがフ
リップフロップ11cに入力される。但し、XORゲー
ト12a,12bが挿入されているところ、例えばXO
Rゲート12bのところでは、フリップフロップ11e
の出力と、データ入力端子16からのデータと最終段の
フリップフロップ11pの出力とをXOR論理をとった
結果、つまりXORゲート12dの出力とを、更にXO
Rゲート12bにてXOR論理をとった結果が、次段の
フリップフロップ11fに入力される。
【0023】リセット入力端子14からの入力信号によ
って、全てのフリップフロップ11a〜11pは“1”
にリセットされる。CRC演算を開始する前には、リセ
ット入力端子14を使用して、全てのフリップフロップ
11a〜11pをリセットする必要がある。コントロー
ル端子18からの入力信号はマルチプレクサ13aに入
力され、フリップフロップ11aの出力がXORゲート
12aの出力か否かを選択して出力する。また、コント
ロール端子18からの入力信号はマルチプレクサ13b
にも入力され、マルチプレクサ13bによってフリップ
フロップ11hの出力(CRC8の演算結果)とフリッ
プフロップ11pの出力(CRC16の演算結果)を選
択して出力する。インバータ19はマルチプレクサ13
bの出力の1の補数をとって出力する。このCRC演算
された結果は、データ出力端子17から出力される。
【0024】図2(a)及び(b)は図1に示したCR
C発生回路を用いてデータ伝送回路の送信部を構成した
例を示すブロック図である。図2(a)のブロック図の
場合では、送信データは送信FIFO入力端子25から
送信FIFO21に書き込まれ、一時的に蓄積され送信
待ちとなる。送信FIFO21のデータは逐次読み出さ
れ、パラレル−シリアル変換回路22によってパラレル
データからシリアルデータへと変換される。変換された
シリアルデータはデータフレームとして送信されると同
時にCRC発生回路23にも入力され、この送信データ
からCRC演算が行われる。送信データかCRC発生回
路の出力データかは、マルチプレクサ24によって選択
され、送信データ出力端子26から送信される。コント
ロール端子27は、CRC発生回路23内のCRC演算
の生成多項式の構成を制御する。
【0025】したがって、この構成においては、図5
(a)のようなデータフレームを送信する場合には、デ
ータフレームを送信開始する前にCRC発生回路をリセ
ットし、パラレル−シリアル変換回路22の出力がマル
チプレクサ24によって選択されるようにし、コントロ
ール端子27によってことから送信するデータフレーム
のフレームタイプによって付加するCRCのタイプを選
択する。送信データがデータフィールド51として送信
された後に、CRC発生回路23の出力がCRCフィー
ルド53,55としてマルチプレクサ24によって選択
され、送信データ出力端子26から送信される。
【0026】一方、図5(b)のようなデータフレーム
を送信する場合には、ヘッダーフィールド52を送信開
始する前にCRC発生回路をリセットし、パラレル−シ
リアル変換回路22の出力がマルチプレクサ24によっ
て選択されるようにした後、送信されたヘッダーフィー
ルド52のデータに対してCRC発生回路23で第1の
CRCデータを発生させる。ヘッダーフィールド52の
データを送信した後、CRC発生回路23の出力がマル
チプレクサ24によって選択され、第1のCRCフィー
ルド54が送信される。次に、データフィールド部を送
信開始する前にCRC発生回路を再度リセットし、パラ
レル−シリアル変換回路22の出力がマルチプレクサ2
4によって選択されるようにした後、送信されたヘッダ
ーフィールド52のデータに対してCRC発生回路23
で第2のCRCデータを発生させる。データフィールド
51のデータを送信した後、CRC発生回路23の出力
がマルチプレクサ24によって選択され、第2のCRC
フィールド55が送信される。
【0027】また、図2(a)のブロック図ではCRC
発生回路23の出力がシリアルデータの場合を示してい
るが、図2(b)のブロック図のように、CRC発生回
路28の出力がパラレルデータの構成としてもよい。送
信データとCRCデータの選択はパラレル−シリアル変
換をする前に行われる。つまり、送信データは送信FI
FO入力端子25からと送信FIFO21に書き込ま
れ、一時的に蓄積され送信待ちとなる。送信FIFO2
1のデータは逐次読み出され、マルチプレクサ29によ
って送信データが選択され、送信データはパラレル−シ
リアル変換回路22によってパラレルデータからシリア
ルデータへと変換される。変換されたシリアルデータは
データフレームとして送信されると同時にCRC発生回
路にも入力され、この送信データからCRC演算が行わ
れる。ヘッダーフィールド52かデータフィールド51
が送信された後、CRCデータを送信することになる
が、どのタイプのCRCを生成するかは、CRC発生回
路28へのコントロール端子からの入力信号によって選
択される。マルチプレクサ29によって選択されたCR
Cデータは、パラレル−シリアル変換回路22によって
パラレルデータからシリアルデータへと変換され、CR
Cフィールドとして送信される。
【0028】図3は、図2(a)のシステム構成によっ
て図5(b)のデータフレームを送信する場合のタイミ
ングチャートである。リセット信号31はCRC発生回
路23をリセットする。“1”でリセット状態である。
リセット信号31は、データフレームを送信開始前に
“0”としてリセットを解除し、CRC発生回路23で
の第1のCRC演算を開始する。また、リセット信号3
1は、データフィールドを送信開始前に“1”としてC
RC発生回路23をリセットし、再度リセット信号31
を“1”としてリセットを解除し、CRC発生回路23
での第2のCRC演算を開始する。クロック信号32に
同期して、パラレル−シリアル変換回路出力33である
送信データがCRC発生回路23に入力され、CRC発
生回路出力34が得られる。第1のコントロール信号3
5はCRC発生回路23に入力され、CRCのタイプを
選択する。ここでは、第1のコントロール信号35が
“0”の期間は第1のCRCが選択され、“1”の期間
は第2のCRCが選択される。第2のコントロール信号
37はマルチプレクサ24に入力され、第2のコントロ
ール信号37が“1”の期間はパラレル−シリアル変換
回路出力33が選択されて、送信データ出力端子26か
ら出力され、第2コントロール信号37が“0”の期間
はCRC発生回路出力34が選択されて、送信データ出
力端子26から出力される。最終的に、送信データ出力
端子26から出力される信号は送信データ出力36に示
すようになる。
【0029】図4は本発明の第2の実施形態のブロック
図であり、図1と同様にCRC8とCRC16の演算を
行う回路の構成例である。この実施形態において、図1
の本発明のCRC発生回路と異なる点は、マルチプレク
サ13aの接続されている位置である。図1と同様に、
コントロール端子18の入力信号“0”の時はCRC8
を選択し、“1”の時はCRC16を選択するものとす
る。コントロール端子18の入力信号“0”の時、マル
チプレクサ13aはXORゲート12dの出力を選択す
る。すると、図6の構成と等価となり、XORゲート1
2aが1段目のフリップフロップ11aと2段目のフリ
ップフロップ11bとの間に挿入された形となる。逆
に、コントロール端子18の入力信号が“0”の時、マ
ルチプレクサ13aは“0”を選択して出力する。する
と、XORゲート12aの一方の入力は“0”に固定さ
れたことになり、1段目のフリップフロップ11aの出
力が“0” の時はXORゲート12aの出力は“0”
となり、1段目のフリップフロップ11aの出力が
“1”の時はXORゲート12aの出力は“1”となる
ので、1段目のフリップフロップ11aの出力がそのま
ま2段目のフリップフロップ11bに入力されるのと同
じになる。したがって、図7の構成と等価になる。つま
り、コントロール端子18の入力信号によって、図1と
同等の効果が得られることになる。
【0030】
【発明の効果】以上説明したように本発明は、フリップ
フロップとXORゲートで構成されるCRC発生回路に
おいて、マルチプレクサによってCRC演算の生成多項
式を構成する回路を切り換える構成としているので、複
数のCRC演算を行うCRC発生回路において、構成し
たい複数のCRC演算のうち、最大次数以下のものは、
最大次数内に含まれるため、演算を行うためのフリップ
フロップの数は、構成したい複数のCRC演算の中で最
大次数に相当するだけの数でよく、フリップフロップの
数を削減することができる。また、共通するXn 項につ
いてはXORゲートも共有してXORゲートは1つで構
成でき、XORゲートの数を削減することができる。例
えばCRC8とCRC16の二つの演算を実現する場
合、従来は8+16=24個のフリップフロップを使用
していたのに対して、本発明のCRC発生回路では、次
数の大きいCRC16の方のフリップフロップの数であ
る16個のフリップフロップで構成することができ、ま
た、従来は3+3=6個のXORゲートを使用していた
のに対して、本発明のCRC発生回路では、4個のXO
Rゲートで構成することができる。特に、最大次数がさ
らに大きなCRC32を含む回路での比較を行った場合
には、その差はさらに大きなものとなる。したがって、
マルチプレクサを設けたことを勘案しても、全体として
本発明では構成素子数を低減でき、回路構成を小さくす
ることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施形態のブロック図である。
【図2】本発明のCRC発生回路を含むデータ伝送シス
テムの各異なる形態でのブロック図である。
【図3】本発明のCRC発生回路の動作を説明するため
のタイミング図である。
【図4】本発明の他の実施形態のブロック図である。
【図5】データ伝送システムにて送信されるデータフレ
ームの例を示す図である。
【図6】従来のCRC8のブロック図である。
【図7】従来のCRC16のブロック図である。
【図8】従来のCRC発生回路を含むデータ伝送システ
ムのブロック図である。
【図9】従来のCRC発生回路の動作を説明するための
タイミング図である。
【符号の説明】
11a〜11p フリップフロップ 12a〜11d XORゲート 13a,13b マルチプレクサ 14 リセット入力端子 15 クロック入力端子 16 データ入力端子 17 データ出力端子 18 コントロール端子 19 インバータ 21 送信FIFO 22 パラレル−シリアル変換回路 23 CRC発生回路 24 マルチプレクサ 25 送信データ入力端子 26 送信データ出力端子 27 コントロール端子 28 CRC発生回路 29 マルチプレクサ 51 データフィルード 52 ヘッダーフィールド 53〜55 CRCフィールド

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 次数が異なる生成多項式から得られる複
    数のCRC(エラーチェック用データ)を得るためのC
    RC発生回路において、前記CRC発生回路は、異なる
    次数の生成多項式のうち、最大次数に等しい数の縦続接
    続されたフリップフロップと、前記フリップフロップの
    うち、特定のフリップフロップの出力と次段のフリップ
    フロップとの間に介挿されたXORゲートと、前記次段
    のフリップフロップに前記特定のフリップフロップの出
    力を入力させるか否かを選択するマルチプレクサとを備
    え、前記マルチプレクサによってCRC演算を行う生成
    多項式の構成を切り換えるように構成したことを特徴と
    するCRC発生回路。
  2. 【請求項2】 次数が異なる生成多項式から得られる複
    数のCRCを得るためのCRC発生回路において、前記
    CRC発生回路は、異なる次数の生成多項式のうち、最
    大次数に等しい数の縦続接続されたフリップフロップ
    と、前記各生成多項式のうち、最大次数が小さい側の生
    成多項式の最大項を除いて両生成多項式の中で共通する
    項が重複しないように数えたときの項数の数のXORゲ
    ートと、最大次数が小さい側の生成多項式の中で共通す
    る項を除いた項の数のマルチプレクサとを備えることを
    特徴とするCRC発生回路。
  3. 【請求項3】 複数個のXORのうち、1つのXORゲ
    ートは最大次数が小さい側の生成多項式の項の出力と大
    きい側の生成多項式の最終段の出力のうちいずれか選択
    された出力とデータ入力とにそれぞれ入力が接続され、
    他のXORゲートは、生成多項式の各項に対応する段数
    目のフリップフロップの出力と前記1つのXORゲート
    の出力とにそれぞれ入力が接続され、出力が次段のフリ
    ップフロップの出力に接続される構成とされる請求項2
    のCRC発生回路。
  4. 【請求項4】 1つのマルチプレクサは、初段のXOR
    ゲートの出力端と、第1段目のフリップフロップの出力
    とを選択して第2段目のフリップフロップの入力とする
    請求項3のCRC発生回路。
  5. 【請求項5】 他の1つのマルチプレクサは、次段が小
    さい側の生成多項式の最終項の出力と、次段が大きい側
    の生成多項式の最終項の出力とを選択する請求項3また
    は4のCRC発生回路。
JP8268046A 1996-10-09 1996-10-09 エラーチェック用データ発生回路 Pending JPH10117147A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP8268046A JPH10117147A (ja) 1996-10-09 1996-10-09 エラーチェック用データ発生回路
US08/941,320 US6041434A (en) 1996-10-09 1997-09-30 Code generator for selectively producing cyclic redundancy check data codes different in data length
EP97117189A EP0836284A3 (en) 1996-10-09 1997-10-03 Code generator for selectively producing cyclic redundancy check data codes different in data length

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8268046A JPH10117147A (ja) 1996-10-09 1996-10-09 エラーチェック用データ発生回路

Publications (1)

Publication Number Publication Date
JPH10117147A true JPH10117147A (ja) 1998-05-06

Family

ID=17453137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8268046A Pending JPH10117147A (ja) 1996-10-09 1996-10-09 エラーチェック用データ発生回路

Country Status (3)

Country Link
US (1) US6041434A (ja)
EP (1) EP0836284A3 (ja)
JP (1) JPH10117147A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007116677A (ja) * 2005-09-21 2007-05-10 Semiconductor Energy Lab Co Ltd 巡回冗長検査回路、巡回冗長検査回路を有する半導体装置、前記半導体装置を有する電子機器、及び前記半導体装置を用いる無線通信システム
US8627170B2 (en) 2005-09-21 2014-01-07 Semiconductor Energy Laboratory Co., Ltd. Cyclic redundancy check circuit and semiconductor device having the cyclic redundancy check circuit

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000004169A (ja) * 1998-06-15 2000-01-07 Ricoh Co Ltd Crc演算方法及びcrc演算回路
GB0304807D0 (en) * 2003-03-03 2003-04-09 Cambridge Internetworking Ltd Data protocol
US20070016842A1 (en) * 2005-07-13 2007-01-18 Microchip Technology Incorporated Method and apparatus for configuring a cyclic redundancy check (CRC) generation circuit to perform CRC on a data stream
US7801121B1 (en) * 2006-04-20 2010-09-21 Altera Corporation Serial communications systems with cyclic redundancy checking
US8095846B2 (en) * 2007-06-08 2012-01-10 Cortina Systems, Inc. Data coding apparatus and methods
JP4798164B2 (ja) * 2008-04-02 2011-10-19 ソニー株式会社 送信装置および方法、受信装置および方法、並びにプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61237521A (ja) * 1985-04-12 1986-10-22 Mitsubishi Electric Corp 誤り訂正符号の符号化・復号化回路
US4734921A (en) * 1986-11-25 1988-03-29 Grumman Aerospace Corporation Fully programmable linear feedback shift register
US4870346A (en) * 1987-09-14 1989-09-26 Texas Instruments Incorporated Distributed pseudo random sequence control with universal polynomial function generator for LSI/VLSI test systems
US5051999A (en) * 1989-03-13 1991-09-24 Motorola, Inc. Programmable error correcting apparatus within a paging receiver
JPH04162831A (ja) * 1990-10-26 1992-06-08 Nippon Hoso Kyokai <Nhk> 誤り訂正回路
JPH04167715A (ja) * 1990-10-31 1992-06-15 Nec Corp 多重処理型crc符号生成回路
US5321704A (en) * 1991-01-16 1994-06-14 Xilinx, Inc. Error detection structure and method using partial polynomial check
JPH0637737A (ja) * 1992-07-15 1994-02-10 Nec Corp Crc演算回路
GB2302634A (en) * 1995-06-24 1997-01-22 Motorola Ltd Cyclic redundancy coder
JP3236758B2 (ja) * 1995-06-26 2001-12-10 カネボウ株式会社 可変長データのcrc演算装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007116677A (ja) * 2005-09-21 2007-05-10 Semiconductor Energy Lab Co Ltd 巡回冗長検査回路、巡回冗長検査回路を有する半導体装置、前記半導体装置を有する電子機器、及び前記半導体装置を用いる無線通信システム
US8627170B2 (en) 2005-09-21 2014-01-07 Semiconductor Energy Laboratory Co., Ltd. Cyclic redundancy check circuit and semiconductor device having the cyclic redundancy check circuit
US9009563B2 (en) 2005-09-21 2015-04-14 Semiconductor Energy Laboratory Co., Ltd. Cyclic redundancy check circuit and semiconductor device having the cyclic redundancy check circuit
US9294126B2 (en) 2005-09-21 2016-03-22 Semiconductor Energy Laboratory Co., Ltd. Cyclic redundancy check circuit and semiconductor device having the cyclic redundancy check circuit

Also Published As

Publication number Publication date
EP0836284A3 (en) 2001-01-31
EP0836284A2 (en) 1998-04-15
US6041434A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
US4723243A (en) CRC calculation machine with variable bit boundary
US4712215A (en) CRC calculation machine for separate calculation of checkbits for the header packet and data packet
KR970706655A (ko) 다목적 에러 교정 시스템(versatile error correction system)
US7171604B2 (en) Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
US4720830A (en) CRC calculation apparatus having reduced output bus size
US5748652A (en) Apparatus for detecting and correcting cyclic redundancy check errors
US4720831A (en) CRC calculation machine with concurrent preset and CRC calculation function
JPH10117147A (ja) エラーチェック用データ発生回路
US5408476A (en) One bit error correction method having actual data reproduction function
JP3259725B2 (ja) ビタビ復号装置
JPH1098392A (ja) Crc符号発生回路、符号誤り検出回路、及びcrc回路
JP3269415B2 (ja) Crc演算回路
JPH0918354A (ja) 周期冗長検査方式の誤り検出符号生成装置及び誤り検出装置
JPH04292018A (ja) 可変crc発生回路
JP2002185438A (ja) Crc演算装置
JP3953650B2 (ja) 情報符号化装置及び方法
JPS63254829A (ja) 誤り訂正装置
JPH0191396A (ja) シフトレジスタ
JPH0637737A (ja) Crc演算回路
JPH02101824A (ja) 巡回冗長検査符号生成装置
JPH0728228B2 (ja) たたみ込み符号器
KR20000065377A (ko) 가변 모드 컨버터
JPH05316091A (ja) 同期検出回路
JP2000275305A (ja) 半導体集積回路のテスト方式及びその方法
JP2000307437A (ja) Crc演算回路