(57)【特許請求の範囲】
【請求項１】
対象データに対して生成多項式に基づいて巡回冗長検査方式の誤り検出を行なうためのＣＲＣ演算装置であって、
前記対象データに含まれる信号ビットを複数ビットずつに分割した複数の分割データを順次受けて、前記生成多項式に応じた演算処理を行なう主演算回路を備え、
前記主演算回路は、前記複数の分割データのうちの第１のデータと前記第１のデータを受けるまでに既に受領済みである前記対象データの部分について前記演算処理を行なった結果得られた第２のデータとに対して前記演算処理を行ない第３のデータを生成し、
前記第２のデータを保持して前記主演算回路に与え、かつ、前記第３のデータを保持する保持回路をさらに備え、
前記主演算回路は、
前記第２のデータの最下位の信号ビット側に前記第１のデータの最上位の信号ビットを付加した第４のデータを受け、前記第４のデータの最上位の信号ビットが第１の論理符号である場合は前記第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第５のデータとして出力し、前記第４のデータの最上位の信号ビットが前記第１の論理符号と異なる第２の論理符号である場合は前記第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットと生成多項式に応じた第６のデータの対応する信号ビット同士のそれぞれの排他的論理和を前記第５のデータとして出力する第１の副演算回路と、
前記第５のデータの最下位の信号ビット側に前記第１のデータの最上位の信号ビットから２番目のビットを付加した第７のデータを受け、前記第７のデータの最上位の信号ビットが前記第１の論理符号である場合は前記第７のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第８のデータとして出力し、前記第７のデータの最上位の信号ビットが前記第２の論理符号である場合は前記第７のデータの最上位から２番目の信号ビット〜最下位の信号ビットと前記第６のデータの対応するビット同士の排他的論理和を第８のデータとして出力する第２の副演算回路とを含み、
前記主演算回路は、前記第８のデータに応じて前記第３のデータを発生する、ＣＲＣ演算装置。
【請求項２】
前記第１の副演算回路は、
前記第６のデータが含んでいる前記第２の論理符号と一致する信号ビットに対応する位置の前記第４のデータの信号ビットと前記第４のデータの最上位の信号ビットとを受けて排他的論理和を出力する第１のゲート回路を含む、請求項１に記載のＣＲＣ演算装置。
【請求項３】
前記第１の副演算回路は、
前記第６のデータが含んでいる前記第１の論理符号と一致する信号ビットに対応する位置の前記第４のデータの信号ビットをそのままの値で出力する第２のゲート回路をさらに含む、請求項２に記載のＣＲＣ演算装置。
【請求項４】
前記第１の副演算回路は、
前記第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットにそれぞれ対応して設けられる複数のゲート回路を含み、
各前記ゲート回路は、
前記第６のデータの対応する信号ビットを一方の入力に受け、前記第４のデータの最上位の信号ビットを他方の入力に受けるＡＮＤ回路と、
前記第４のデータの対応する信号ビットと前記ＡＮＤ回路の出力とを受けて排他的論理和を出力するＸＯＲ回路とを有する、請求項１に記載のＣＲＣ演算装置。
【請求項５】
前記第１の副演算回路は、
前記第４のデータの最下位から２番目の信号ビット〜前記第４のデータの最上位から２番目の信号ビットにそれぞれ対応して設けられる複数のゲート回路を含み、
各前記ゲート回路は、
前記第６のデータの対応する信号ビットを一方の入力に受け、前記第４のデータの最上位の信号ビットを他方の入力に受けるＡＮＤ回路と、
前記第４のデータの対応する信号ビットと前記第４のデータの最下位の信号ビットとを受けていずれかを選択的に出力する切換回路と、
前記切換回路の出力と前記ＡＮＤ回路の出力とを受けて排他的論理和を出力するＸＯＲ回路とを有する、請求項１に記載のＣＲＣ演算装置。
【請求項６】
前記第１のデータは、
４つの信号ビットを含み、
前記主演算回路は、
前記第８のデータの最下位の信号ビット側に前記第１のデータの最上位から３番目の信号ビットを付加した第９のデータを受け、前記第９のデータの最上位の信号ビットが前記第１の論理符号である場合は前記第９のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第１０のデータとして出力し、前記第９のデータの最上位の信号ビットが前記第２の論理符号である場合は前記第９のデータの最上位から２番目の信号ビット〜最下位の信号ビットと前記第６のデータの対応する信号ビット同士のそれぞれの排他的論理和を前記第１０のデータとして出力する第３の副演算回路と、
前記第１０のデータの最下位の信号ビット側に前記第１のデータの最下位のビットを付加した第１１のデータを受け、前記第１１のデータの最上位の信号ビットが前記第１の論理符号である場合は前記第１１のデータの最上位から２番目の信号ビット〜最下位の信号ビットを前記第３のデータとして出力し、前記第１１のデータの最上位の信号ビットが前記第２の論理符号である場合は前記第１１のデータの最上位から２番目の信号ビット〜最下位の信号ビットと前記第６のデータの対応するビット同士の排他的論理和を前記第３のデータとして出力する第４の副演算回路とをさらに含む、請求項１に記載のＣＲＣ演算装置。
【請求項７】
前記主演算回路は、前記対象データの信号ビット数を４で割ると余りが生ずるときは、４から前記余りを引いた数の前記第１の論理符号を前記対象データの最上位信号ビット側に補って、上位ビットから４ビットずつ処理を行なう、請求項６に記載のＣＲＣ演算装置。
【請求項８】
前記保持回路は、
前記第３のデータに含まれる複数の信号ビットをそれぞれ入力に受けて、クロック信号に応じて保持する複数のレジスタを含む、請求項１に記載のＣＲＣ演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データ列を通信する際に用いられる、ＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）方式によるデータ伝送誤り検出のためのＣＲＣ演算装置に関する。
【０００２】
【従来の技術】
データ列を通信する際に、伝送したい情報ビットに誤りを検出する検査のための検査ビットを付加して伝送し、受信時に所定の演算を行ない伝送されたデータ列に異常がないかどうかを判定する方法がある。誤りを検出する単純な方式としては、パリティビットによる方法がよく知られている。この方法は、送信するデータ列ごとに含まれている“１”の数が偶数であるか奇数であるかによって１ビットのパリティビットを付加するものである。
【０００３】
さらに、検出能力が強化された方法として、巡回冗長検査（以下ＣＲＣと称する）による方法がある。ＣＲＣでは、伝送したい情報ビットに対し、生成多項式による演算を行なう。
【０００４】
簡単にＣＲＣ符号の作り方を説明する。まず、情報ビットに対応する送りたい情報データ列をＰ（Ｘ）、生成多項式をＧ（Ｘ）、送出データ列をＦ（Ｘ）、検査ビットに対応する剰余多項式をＲ（Ｘ）とする。これらは符号多項式で表現されている。符号多項式では、２進数は多項式で表現される。たとえば、
Ｐ（Ｘ）＝“１００  １０１１  ０１００  １０１１”は、
Ｐ（Ｘ）＝Ｘ14＋Ｘ11＋Ｘ9＋Ｘ8＋Ｘ6＋Ｘ3＋Ｘ1＋１のように表現される。
【０００５】
生成多項式がＧ（Ｘ）＝Ｘ8＋Ｘ7＋Ｘ6＋Ｘ4＋Ｘ2＋１であるとき、以下の（１）〜（３）式により送出データ列Ｆ（Ｘ）を求める。
【０００６】
まず、生成多項式Ｇ（Ｘ）の最高次の項であるＸ8を情報データ列Ｐ（Ｘ）に乗算してＰ’（Ｘ）を求める。
【０００７】
Ｐ’（Ｘ）＝Ｐ（Ｘ）×Ｘ8          …  （１）
次に、Ｐ’（Ｘ）を生成多項式Ｇ（Ｘ）で後に説明するｍｏｄ２除算をして剰余多項式Ｒ（Ｘ）を求める。ここで、“／”は、後に説明するｍｏｄ２除算を表わすものとする。
【０００８】
Ｒ（Ｘ）＝Ｐ’（Ｘ）／Ｇ（Ｘ）    …  （２）
そして、求めた剰余多項式Ｒ（Ｘ）とＰ’（Ｘ）を加算して送出データ列Ｆ（Ｘ）を求める。
【０００９】
Ｆ（Ｘ）＝Ｐ’（Ｘ）＋Ｒ（Ｘ）    …  （３）
図１５は、情報ビットと生成多項式から検査ビットを求めるｍｏｄ２除算を説明するための図である。
【００１０】
図１５を参照して、生成多項式Ｇ（Ｘ）＝Ｘ8＋Ｘ7＋Ｘ6＋Ｘ4＋Ｘ2＋１のとき情報ビットから検査ビットを求める演算を説明する。生成多項式に対応するのは、“１  １１００  ０１０１”であり、情報ビットは“１００  １０１１  ０１００  １０１１”である。
【００１１】
まず、情報ビットの下位に生成多項式のビット数−１の個数の０を付加する。この処理が（２）式で示した演算に相当する。
【００１２】
そして、上位ビット側から生成多項式の各ビットとｍｏｄ２演算を行なう。ただし、ｍｏｄ２演算は、通常の除算とは異なり桁上がりや桁下がりは発生しない。すなわち、情報ビットの各ビットと生成多項式の各ビットの排他的論理和をとった値が順次計算されている。最上位の演算結果は必ず“０”となるため、生成多項式のビット数に一致するように、演算結果の下位に少なくとも１ビット分の情報ビットを補う。図１５の中間演算結果Ａが、ここまでの結果を示す。
【００１３】
以降同様にｍｏｄ２演算が繰返され、最後に演算結果が生成多項式のビット数より少なくなった時点で演算は終了する。そして、最後に求められた剰余“００１１０００１”が求める検査ビットである。このように、ｍｏｄ２演算を繰返して、剰余を求めることを、本明細書中では、ｍｏｄ２除算ということとする。
【００１４】
このように検査ビットが求められると、送出データ列を送信するときに、情報ビットに続いて検査ビットが送出される。そして、受信側では、伝送された情報ビットと検査ビットとに基づいて伝送誤りが発生していないかどうかの確認が行なわれる。
【００１５】
図１６は、伝送誤りが発生していないかどうかの確認を行なうための演算の説明をするための図である。
【００１６】
図１６を参照して、情報ビット“１００  １０１１  ０１００  １０１１”の下位側に検査ビット“００１１  ０００１”が付加され伝送されたこれらの送出データ列に対して生成多項式“１  １１０１  ０１０１”によるｍｏｄ２除算が行なわれる。ｍｏｄ２除算については、図１５で説明しているので説明は繰返さない。
このときに、正しく伝送がなされていれば、剰余が０となり伝送誤りがないことが確認できる。
【００１７】
図１７は、図１５、図１６で示した除算を行なう従来のＣＲＣ演算装置１００の構成を示す概念図である。
【００１８】
図１７を参照して、ＣＲＣ演算装置１００は、排他的論理和を演算して出力するＸＯＲ回路１０２〜１１０と、図示しないクロック信号によって駆動されデータを取込み保持するレジスタ１１２〜１２６とを含む。
【００１９】
ＸＯＲ回路１０２は、ＣＲＣ演算装置１００に入力されるデータ列とレジスタ１２６の保持する値の排他的論理和を演算して出力する。レジスタ１１２は、ＸＯＲ回路１０２の出力を受けて１クロックの間保持する。レジスタ１１４は、レジスタ１１２の出力を受けて１クロックの間保持する。ＸＯＲ回路１０４は、レジスタ１１４，１２６の出力の排他的論理和を演算して出力する。レジスタ１１６は、ＸＯＲ回路１０４の出力を受けて１クロックの間保持する。レジスタ１１８は、レジスタ１１６の出力を受けて１クロックの間保持する。
【００２０】
ＸＯＲ回路１０６は、レジスタ１１８，１２６の出力の排他的論理和を演算して出力する。レジスタ１２０は、ＸＯＲ回路１０６の出力を受けて１クロック間保持する。レジスタ１２２は、レジスタ１２０の出力を受けて１クロック間保持する。ＸＯＲ回路１０８は、レジスタ１２２，１２６の出力の排他的論理和を演算して出力する。レジスタ１２４は、ＸＯＲ回路１０８の出力を受けて１クロック間保持する。ＸＯＲ回路１１０は、レジスタ１２４，１２６の出力の排他的論理和を出力する。レジスタ１２６は、ＸＯＲ回路１１０の出力を受けて１クロック間保持する。
【００２１】
図１８〜図２５は、図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した図である。なお、図１５で示したｍｏｄ２除算の途中までの経過をこれらの図を用いて説明する。
【００２２】
図１５、図１８を参照して、ＣＲＣ演算装置１００には、生成多項式の“１”のビットが存在する位置に対応してＸＯＲ回路が設けられている。すなわち、ＣＲＣ演算装置１００の構成は、生成多項式“１  １１０１  ０１０１”に対応している。
【００２３】
まず、当初、すべてのレジスタに “０”が保持されているとする。図示しないが、すべてのレジスタがリセット信号に応じて保持値が“０”に初期化されるのが一般的である。レジスタ１２６に“０”が保持されている間は、ＸＯＲ回路１０２〜１１０は、前段から入力されたデータをそのまま後段に出力する。つまり、ＣＲＣ演算装置１００は、レジスタ１２６にデータ“１”が到達するまでには単純なシフトレジスタとして働く。
【００２４】
所定の時間経過すると、レジスタ１１２〜１２６には、“１００１  ０１１０”が保持される。そして、ＣＲＣ演算回路の入力には、 “１”が入力される。
【００２５】
図１９を参照して、１クロック期間が経過し次の状態においては、ＸＯＲ回路１０２〜１１０によって演算されていた結果がレジスタ１１２〜１２６によって保持される。そして、ＣＲＣ演算回路の入力には、さらに次のビット“０”が入力される。この状態は、図１５のＡの中間の演算結果を示している。
【００２６】
続いて、図２０において、次のクロックサイクルにおける状態が示される。このとき、レジスタ１１２〜１２６には、“００１０  ０１０１”が保持される。
【００２７】
続いて、図２１において、次のクロックサイクルの状態が示される。このときレジスタ１２６の保持した値は“０”であるので、全体が１ビット上位側にシフトする。したがってレジスタ１１２〜１２６の保持する値は、“０１００  １０１０”となる。
【００２８】
続いて、図２２において、次のクロックサイクルの状態が示される。図２１のレジスタ１２６が保持した値も“０”であったため、ＣＲＣ演算装置１００が保持する保持値は、１ビット上位側にシフトし、“１００１  ０１０１”になっている。そして、新たに、ＣＲＣ演算装置１００の入力には“０”が入力される。この状態が、図１５の中間演算結果Ｂに対応する。
【００２９】
次のクロックサイクルでは、図２３に示すようにレジスタの保持値は“１１１１  １１１１”となる。そして、新たに、ＣＲＣ演算装置１００の入力には“１”が入力される。この状態が図１５の中間演算結果Ｃに対応する。そして、次のクロックサイクルにおいてレジスタの保持値は、図２４に示すように“００１０  １０１０”となる。
【００３０】
続いて次のクロックサイクルにおいて、図２５に示すようにシフトレジスタの保持値は“０１０１  ０１０１”となる。そして、次のクロックサイクルにおいて、図１５のＤに示すような中間処理結果がレジスタ１１２〜１２６に保持されることになる。
【００３１】
【発明が解決しようとする課題】
ＣＲＣ演算には、複数の方式が存在し、それぞれ、生成多項式が異なる。以上説明した従来のＣＲＣ演算装置では、使用する生成多項式を変更する場合には、ＸＯＲ回路を挿入する位置を変更せねばならず、生成多項式を一旦決定してしまうと変更が難しいという問題点があった。
【００３２】
また、１クロックサイクルに１ビットの入力しか扱うことができず、演算時間が長いという問題点もあった。
【００３３】
この発明の目的は、生成多項式の変更に容易に対応でき、かつ高速に演算することが可能なＣＲＣ演算装置を提供することである。
【００３４】
【課題を解決するための手段】
本発明のＣＲＣ演算装置は、対象データに対して生成多項式に基づいて巡回冗長検査方式の誤り検出を行なうためのＣＲＣ演算装置であって、対象データに含まれる信号ビットを複数ビットずつに分割した複数の分割データを順次受けて、生成多項式に応じた演算処理を行なう主演算回路を備え、主演算回路は、複数の分割データのうちの第１のデータと第１のデータを受けるまでに既に受領済みである対象データの部分について演算処理を行なった結果得られた第２のデータとに対して演算処理を行ない第３のデータを生成する。ＣＲＣ演算装置は、第２のデータを保持して主演算回路に与え、かつ、第３のデータを保持する保持回路をさらに備える。
【００３５】
加えて、主演算回路は、第２のデータの最下位の信号ビット側に第１のデータの最上位の信号ビットを付加した第４のデータを受け、第４のデータの最上位の信号ビットが第１の論理符号である場合は第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第５のデータとして出力し、第４のデータの最上位の信号ビットが第１の論理符号と異なる第２の論理符号である場合は第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットと生成多項式に応じた第６のデータの対応する信号ビット同士のそれぞれの排他的論理和を第５のデータとして出力する第１の副演算回路と、第５のデータの最下位の信号ビット側に第１のデータの最上位の信号ビットから２番目のビットを付加した第７のデータを受け、第７のデータの最上位の信号ビットが第１の論理符号である場合は第７のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第８のデータとして出力し、第７のデータの最上位の信号ビットが第２の論理符号である場合は第７のデータの最上位から２番目の信号ビット〜最下位の信号ビットと第６のデータの対応するビット同士の排他的論理和を第８のデータとして出力する第２の副演算回路とを含み、主演算回路は、第８のデータに応じて第３のデータを発生する。
【００３６】
好ましくは、第１の副演算回路は、第６のデータが含んでいる第２の論理符号と一致する信号ビットに対応する位置の第４のデータの信号ビットと第４のデータの最上位の信号ビットとを受けて排他的論理和を出力する第１のゲート回路を含む。
【００３７】
より好ましくは、第１の副演算回路は、第６のデータが含んでいる第１の論理符号と一致する信号ビットに対応する位置の第４のデータの信号ビットをそのままの値で出力する第２のゲート回路をさらに含む。
【００３８】
好ましくは、第１の副演算回路は、第４のデータの最上位から２番目の信号ビット〜最下位の信号ビットにそれぞれ対応して設けられる複数のゲート回路を含み、各ゲート回路は、第６のデータの対応する信号ビットを一方の入力に受け、第４のデータの最上位の信号ビットを他方の入力に受けるＡＮＤ回路と、第４のデータの対応する信号ビットとＡＮＤ回路の出力とを受けて排他的論理和を出力するＸＯＲ回路とを有する。
【００３９】
好ましくは、第１の副演算回路は、第４のデータの最下位から２番目の信号ビット〜第４のデータの最上位から２番目の信号ビットにそれぞれ対応して設けられる複数のゲート回路を含み、各ゲート回路は、第６のデータの対応する信号ビットを一方の入力に受け、第４のデータの最上位の信号ビットを他方の入力に受けるＡＮＤ回路と、第４のデータの対応する信号ビットと第４のデータの最下位の信号ビットとを受けていずれかを選択的に出力する切換回路と、切換回路の出力とＡＮＤ回路の出力とを受けて排他的論理和を出力するＸＯＲ回路とを有する。
【００４０】
好ましくは、第１のデータは、４つの信号ビットを含み、主演算回路は、第８のデータの最下位の信号ビット側に第１のデータの最上位から３番目の信号ビットを付加した第９のデータを受け、第９のデータの最上位の信号ビットが第１の論理符号である場合は第９のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第１０のデータとして出力し、第９のデータの最上位の信号ビットが第２の論理符号である場合は第９のデータの最上位から２番目の信号ビット〜最下位の信号ビットと第６のデータの対応する信号ビット同士のそれぞれの排他的論理和を第１０のデータとして出力する第３の副演算回路と、第１０のデータの最下位の信号ビット側に第１のデータの最下位のビットを付加した第１１のデータを受け、第１１のデータの最上位の信号ビットが第１の論理符号である場合は第１１のデータの最上位から２番目の信号ビット〜最下位の信号ビットを第３のデータとして出力し、第１１のデータの最上位の信号ビットが第２の論理符号である場合は第１１のデータの最上位から２番目の信号ビット〜最下位の信号ビットと第６のデータの対応するビット同士の排他的論理和を第３のデータとして出力する第４の副演算回路とをさらに含む。
【００４１】
より好ましくは、主演算回路は、対象データの信号ビット数を４で割ると余りが生ずるときは、４から余りを引いた数の第１の論理符号を対象データの最上位信号ビット側に補って、上位ビットから４ビットずつ処理を行なう。
【００４２】
好ましくは、保持回路は、  第３のデータに含まれる複数の信号ビットをそれぞれ入力に受けて、クロック信号に応じて保持する複数のレジスタを含む。
【００４３】
【発明の実施の形態】
以下において、本発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００４４】
［実施の形態１］
図１は、本発明の実施の形態１のＣＲＣ演算装置１の構成を示す概略ブロック図である。
【００４５】
図１を参照して、ＣＲＣ演算装置１は、クロック信号ＣＬＫに応じてデータＸ４1〜Ｘ４8を取込む保持回路２と、保持回路２の保持しているデータＸ０1〜Ｘ０8と入力ＩＮ０〜ＩＮ３から入力されるデータＸ３0〜Ｘ０0とを受けてデータＸ４1〜Ｘ４8を出力する演算回路４とを含む。
【００４６】
演算回路４は、データＸ０0〜Ｘ０8を受けてデータＸ１1〜Ｘ１8を出力する演算回路６と、データＸ１0〜Ｘ１8を受けてデータＸ２1〜Ｘ２8を出力する演算回路８と、データＸ２0〜Ｘ２8を受けてデータＸ３1〜Ｘ３8を出力する演算回路１０と、データＸ３0〜Ｘ３8を受けてデータＸ４1〜Ｘ４8を出力する演算回路１２とを含む。
【００４７】
図２は、図１に示した保持回路２の構成を示す回路図である。
図２を参照して、保持回路２は、データＸ４1を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０1を出力するレジスタ２♯０と、データＸ４2を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０2を出力するレジスタ２♯１と、データＸ４3を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０3を出力するレジスタ２♯２と、データＸ４4を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０4を出力するレジスタ２♯３とを含む。
【００４８】
保持回路２は、さらに、データＸ４5を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０5を出力するレジスタ２♯４と、データＸ４6を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０6を出力するレジスタ２♯５と、データＸ４7を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０7を出力するレジスタ２♯６と、データＸ４8を受けてクロック信号ＣＬＫに応じて取込み、そしてデータＸ０8を出力するレジスタ２♯７とを含む。
【００４９】
図３は、図１における演算回路６の構成を示す回路図である。
図３を参照して、演算回路６は、データＸｎ0とデータＸｎ8とを受けてデータＸｎ＋１1を出力するゲート回路６♯０と、データＸｎ1とデータＸｎ8とを受けてデータＸｎ＋１2を出力するゲート回路６♯１と、データＸｎ2とデータＸｎ8とを受けてデータＸｎ＋１3を出力するゲート回路６♯２と、データＸｎ3とデータＸｎ8とを受けてデータＸｎ＋１4を出力するゲート回路６♯３とを含む。
【００５０】
演算回路６は、さらに、データＸｎ4とデータＸｎ8とを受けてデータＸｎ＋１5を出力するゲート回路６♯４と、データＸｎ5とデータＸｎ8とを受けてデータＸｎ＋１6を出力するゲート回路６♯５と、データＸｎ6とデータＸｎ8とを受けてデータＸｎ＋１7を出力するゲート回路６♯６と、データＸｎ7とデータＸｎ8とを受けてデータＸｎ＋１8を出力するゲート回路６♯７とを含む。
【００５１】
ゲート回路は、生成多項式に対応する位置にＸＯＲ回路が配置されており、他の位置はデータＸｎkを受けてデータＸｎ＋１k+1にそのまま出力するようになっている（ｋは０〜７の整数）。図３では、そのまま出力するゲート回路の例として、単に配線で接続した場合を示しているが、バッファ回路等のデータの極性を変えない回路を配置してもよい。
【００５２】
図１における演算回路８，１０，１２は、演算回路６と同様な構成を有している。すなわち、図３において、ｎ＝０のときに演算回路６の構成が示され、ｎ＝１のときに演算回路８の構成が示され、ｎ＝２のときに演算回路１０の構成が示され、ｎ＝３のときに演算回路１２の構成が示される。したがって、説明は繰返さない。
【００５３】
図４は、図１に示したＣＲＣ演算装置１の動作を説明するための動作波形図である。
【００５４】
図４を参照して、クロックサイクルＴ１において、入力ＩＮ０〜ＩＮ３にはデータ列の上位４ビットであるデータＤ１２〜Ｄ１５が入力される。
【００５５】
続いてクロックサイクルＴ２において、入力ＩＮ０〜ＩＮ３には、データＤ８〜Ｄ１１が入力される。クロックサイクルＴ１，Ｔ２においては、保持回路の中にデータが満たされていないため、保持回路のデータは４ビットずつシフトする。そして、クロックサイクルＴ３において入力ＩＮ０〜ＩＮ３にデータＤ４〜Ｄ７が入力されると、演算が開始され、クロックサイクルＴ４においてデータＤ０〜Ｄ３が入力ＩＮ０〜ＩＮ３に入力されると、応じてデータＸ４0〜Ｘ４7に剰余が出力される。
【００５６】
以下、図１８〜図２５で説明した従来回路の演算動作の場合と同じデータを受けて演算を行なう場合について説明する。
【００５７】
図５は、図４のクロックサイクルＴ１におけるＣＲＣ演算装置１の演算を説明するための図である。
【００５８】
なお、図５において図面の簡単のため構成要素の記号を簡略化している。すなわち、レジスタ１４は、図２のレジスタ２♯０に対応し、ＸＯＲ回路１６は、図３におけるゲート回路６♯０に対応する。
【００５９】
図４、図５を参照して、クロックサイクルＴ１において入力ＩＮ３，ＩＮ２，ＩＮ１，ＩＮ０からは、データＤ１５，Ｄ１４，Ｄ１３，Ｄ１２としてそれぞれ“０”，“１”，“０”，“０”が入力される。このときに、当初、保持回路２にはデータ“００００  ００００”が保持されているものとする。図示しないが、たとえば、保持回路２が含むすべてのレジスタがリセット信号に応じて保持値が“０”に初期化されるのが一般的である。
【００６０】
このとき、演算回路６には、データＸ０8〜Ｘ０0として“０  ００００  ００００”が入力される。応じて、演算回路６は、データＸ１8〜Ｘ１1として“００００  ００００”を出力する。
【００６１】
演算回路６の出力と入力ＩＮ２から入力された“１”とに応じて演算回路８は、データＸ２8〜Ｘ２1として“００００  ０００１”を出力する。演算回路８の出力と入力ＩＮ１から入力された“０”とに応じて、演算回路１０は、データＸ３8〜Ｘ３1として“００００  ００１０”を出力する。
【００６２】
演算回路１０の出力と入力ＩＮ０から入力された“０”とに応じて、演算回路１２は、データＸ４8〜Ｘ４1として“００００  ０１００”を出力する。このデータＸ４8〜Ｘ４1は、次のクロックサイクルＴ２において保持回路２に取込まれる。
【００６３】
図６は、図４におけるクロックサイクルＴ２におけるＣＲＣ演算装置１の演算を説明するための図である。
【００６４】
図４、図６を参照して、データＤ１１，Ｄ１０，Ｄ９，Ｄ８としてそれぞれ“１”，“０”，“１”，“１”が与えられる。
【００６５】
保持回路２は、クロックサイクルＴ１において演算回路１２から出力されていたデータ“００００  ０１００”を取込んで保持している。
【００６６】
保持回路２の出力と入力ＩＮ３から入力された“１”とに応じて、演算回路６はデータ“００００  １００１”を出力する。演算回路６の出力と入力ＩＮ２から入力された“０”とに応じて、演算回路８はデータ“０００１  ００１０”を出力する。
【００６７】
演算回路８の出力と入力ＩＮ１から与えられた“１”とに応じて、演算回路１０は、データ“００１０  ０１０１”を出力する。演算回路１０の出力と入力ＩＮ０から入力された“１”とに応じて、演算回路１２は、データ“０１００  １０１１”を出力する。
【００６８】
クロックサイクルＴ１，Ｔ２においては、保持回路２は、データＸ０8〜Ｘ０5として“００００”を出力しているため、入力ＩＮ０〜ＩＮ３から入力されるデータが保持回路２の中を４ビットずつシフトしていくことがわかる。
【００６９】
図７は、図４におけるクロックサイクルＴ３におけるＣＲＣ演算装置１の動作を説明するための図である。
【００７０】
図４、図７を参照して、保持回路２は、クロックサイクルＴ２で演算回路１２が出力していたデータ“０１００  １０１１”を取込む。保持回路２の出力と入力ＩＮ３から与えられる“０”とに応じて、演算回路６は、データ“１００１  ０１１０”を出力する。演算回路６の出力と入力ＩＮ２から与えられた“１”とに応じて、演算回路８は、データ“１１１１  １０００”を出力する。
【００７１】
演算回路８の出力と入力ＩＮ１から与えられた“０”とに応じて、演算回路１０は、データ“００１０  ０１０１”を出力する。演算回路１０の出力と入力ＩＮ０から与えられた“０”に応じて、演算回路１２は、データ“０１００  １０１０”を出力する。
【００７２】
図８は、図４におけるクロックサイクルＴ４でのＣＲＣ演算装置１の動作を説明するための図である。
【００７３】
図４、図８を参照して、保持回路２は、クロックサイクルＴ３において演算回路１２が出力したデータ“０１００  １０１０”を取込む。演算回路６は、保持回路２の保持値と入力ＩＮ３から入力される“１”とに応じてデータ“１００１０１０１”を出力する。演算回路８は、演算回路６の出力と入力ＩＮ２から入力される“０”とに応じて、データ“１１１１  １１１１”を出力する。
【００７４】
演算回路１０は、演算回路８の出力と入力ＩＮ１から入力された“１” とに応じて、データ“００１０  １０１０”を出力する。演算回路１２は、演算回路１０の出力と入力ＩＮ０から入力された“１” とに応じて、データ“０１０１０１０１”を出力する。この演算回路１２の出力を剰余として出力すれば、図１８〜図２５で示した従来回路の除算と同様な除算がクロックサイクルＴ１〜Ｔ４の４クロックサイクルで実現したことになる。
【００７５】
以上説明したように、実施の形態１に示したＣＲＣ演算装置１によれば、１クロックサイクルにおいて一度に多ビットを処理することができ、高速にＣＲＣ演算をすることができる。
【００７６】
なお、図１では、一度に４ビットずつ入力を受けて処理する場合を例として示したが、複数ビットずつ処理すれば１ビットずつ処理していた従来のＣＲＣ演算装置よりも処理速度は速くなるので、ビット数は２ビット以上なら適宜必要なスピードに応じて増減させてもよい。
【００７７】
また、処理したいデータ列の数が一括処理するビット数である４で割り切れない場合には、上位側に“０”を補い４の約数となる個数のデータ列に区切って処理すればよい。たとえば、入力が“ａｂｃｄｅｆｇｈｉｊ”の順に入力される場合には、“００ａｂ”，“ｃｄｅｆ”，“ｇｈｉｊ”のように入力することで処理が可能である。
【００７８】
［実施の形態２］
ＣＲＣには、幾種類かの方式があり、用いられる生成多項式が異なる場合がある。このような場合に、図３に示したような演算装置では、ＸＯＲ回路を配置する位置を、生成多項式に対応して変更せねばならない。ハードウェアの変更は、集積化が進んだ半導体装置等においては、変更することは容易でない。
【００７９】
図９は、生成多項式が変更された場合に容易に対応することができるＣＲＣ演算装置２０の構成を示した回路図である。
【００８０】
図９を参照して、ＣＲＣ演算装置２０は、ＡＮＤ回路２２♯０〜２２♯７と、ＸＯＲ回路２４♯０〜２４♯７と、レジスタ２６♯０〜２６♯７とを含む。
【００８１】
ＡＮＤ回路２２♯０は、レジスタ２６♯７の出力と設定データＳ0として入力される設定値“１”とを受ける。ＸＯＲ回路２４♯０は、ＡＮＤ回路２２♯０の出力と入力ＩＮから入力されるデータとを受ける。レジスタ２６♯０は、図示しないクロック信号に応じてＸＯＲ回路２４♯０の出力を取込む。
【００８２】
ＡＮＤ回路２２♯１は、レジスタ２６♯７の出力と設定データＳ1として入力される設定値“０”とを受ける。ＸＯＲ回路２４♯１は、レジスタ２６♯０の出力とＡＮＤ回路２２♯１の出力とを受ける。レジスタ２６♯１は、図示しないクロック信号に応じてＸＯＲ回路２４♯１の出力を取込み保持する。
【００８３】
ＡＮＤ回路２２♯２は、レジスタ２６♯７の出力と設定データＳ2として入力される設定値“１”とを受ける。ＸＯＲ回路２４♯２は、レジスタ２６♯１の出力とＡＮＤ回路２２♯２の出力とを受ける。レジスタ２６♯２は、図示しないクロック信号に応じてＸＯＲ回路２４♯２の出力を取込み保持する。
【００８４】
ＡＮＤ回路２２♯３は、レジスタ２６♯７の出力と設定データＳ3として入力される設定値“０”とを受ける。ＸＯＲ回路２４♯３は、ＡＮＤ回路２２♯３の出力とレジスタ２６♯２の出力とを受ける。レジスタ２６♯３は、図示しないクロック信号に応じてＸＯＲ回路２４♯３の出力を取込み保持する。
【００８５】
ＡＮＤ回路２２♯４は、レジスタ２６♯７の出力と設定データＳ4として入力される設定値“１”とを受ける。ＸＯＲ回路２４♯４は、ＡＮＤ回路２２♯４の出力とレジスタ２６♯３の出力とを受ける。レジスタ２６♯４は、図示しないクロック信号に応じてＸＯＲ回路２４♯４の出力を取込み保持する。
【００８６】
ＡＮＤ回路２２♯５は、レジスタ２６♯７の出力と設定データＳ5として入力される設定値“０”とを受ける。ＸＯＲ回路２４♯５は、ＡＮＤ回路２２♯５の出力とレジスタ２６♯４の出力とを受ける。レジスタ２６♯５は、図示しないクロック信号に応じてＸＯＲ回路２４♯５の出力を取込み保持する。
【００８７】
ＡＮＤ回路２２♯６は、レジスタ２６♯７の出力と設定データＳ6として入力される設定値“１”とを受ける。ＸＯＲ回路２４♯６は、ＡＮＤ回路２２♯６の出力とレジスタ２６♯５の出力とを受ける。レジスタ２６♯６は、図示しないクロック信号に応じてＸＯＲ回路２４♯６の出力を取込み保持する。
【００８８】
ＡＮＤ回路２２♯７は、レジスタ２６♯７の出力と設定データＳ7として入力される設定値“１”とを受ける。ＸＯＲ回路２４♯７は、ＡＮＤ回路２２♯７の出力とレジスタ２６♯４の出力とを受ける。レジスタ２６♯７は、図示しないクロック信号に応じてＸＯＲ回路２４♯７の出力を取込み保持する。
【００８９】
このような構成にすることにより、設定データＳ0〜Ｓ7として与える設定値を変更すれば、生成多項式の変更に対応が可能である。
【００９０】
すなわち、設定データＳ0〜Ｓ7に設定値“１１０１  ０１０１”を与えれば、このとき生成多項式は、
Ｐ（Ｘ）＝Ｘ8＋Ｘ7＋Ｘ6＋Ｘ4＋Ｘ2＋１
となる。したがって、図１７に示した従来のＣＲＣ演算装置１００と同様な演算を行なわせることができる。
【００９１】
このように生成多項式の変更に容易に対応でき、かつ多ビットを一括処理可能なＣＲＣ演算装置を検討する。
【００９２】
図１０は、本発明の実施の形態２のＣＲＣ演算装置３０の構成を示す概略ブロック図である。
【００９３】
図１０を参照して、ＣＲＣ演算装置３０は、図１に示したＣＲＣ演算装置の構成において、演算回路４に代えて演算回路３４を含む。
【００９４】
演算回路３４は、図１に示した演算回路４の構成において、演算回路６，８，１０，１２に代えてそれぞれ演算回路３６，３８，４０，４２を含む。演算回路３６，３８，４０，４２は設定データＳ0〜Ｓ7として入力される設定値に応じて、生成多項式の変更に対応できるような構成を有している。他の接続関係は図１に示したＣＲＣ演算装置１の場合と同様であるので説明は繰返さない。
【００９５】
図１１は、図１０における演算回路３６の構成を示した回路図である。
図１１を参照して、演算回路３６は、データＸｎ0，Ｘｎ8および設定データＳ0を受けてデータＸｎ＋１1を出力するゲート回路３６♯０と、データＸｎ1，Ｘｎ8および設定データＳ1を受けてデータＸｎ＋１2を出力するゲート回路３６♯１と、データＸｎ2，Ｘｎ8および設定データＳ2を受けてデータＸｎ＋１3を出力するゲート回路３６♯２と、データＸｎ3，Ｘｎ8および設定データＳ3を受けてデータＸｎ＋１4を出力するゲート回路３６♯３とを含む。
【００９６】
演算回路３６は、さらに、データＸｎ4，Ｘｎ8および設定データＳ4を受けてデータＸｎ＋１5を出力するゲート回路３６♯４と、データＸｎ5，Ｘｎ8および設定データＳ5を受けてデータＸｎ＋１6を出力するゲート回路３６♯５と、データＸｎ6，Ｘｎ8および設定データＳ6を受けてデータＸｎ＋１7を出力するゲート回路３６♯６と、データＸｎ7，Ｘｎ8および設定データＳ7を受けてデータＸｎ＋１8を出力するゲート回路３６♯７とを含む。
【００９７】
ゲート回路３６♯０は、データＸｎ8と設定データＳ0とを受けるＡＮＤ回路５２♯０と、ＡＮＤ回路５２♯０の出力とデータＸｎ0とを受けてデータＸｎ＋１1を出力するＸＯＲ回路５４♯０とを含む。
【００９８】
ゲート回路３６♯１は、データＸｎ8と設定データＳ1とを受けるＡＮＤ回路５２♯１と、ＡＮＤ回路５２♯１の出力とデータＸｎ1とを受けてデータＸｎ＋１2を出力するＸＯＲ回路５４♯１とを含む。
【００９９】
ゲート回路３６♯２は、データＸｎ8と設定データＳ2とを受けるＡＮＤ回路５２♯２と、ＡＮＤ回路５２♯２の出力とデータＸｎ2とを受けてデータＸｎ＋１3を出力するＸＯＲ回路５４♯２とを含む。
【０１００】
ゲート回路３６♯３は、データＸｎ8と設定データＳ3とを受けるＡＮＤ回路５２♯３と、ＡＮＤ回路５２♯３の出力とデータＸｎ3とを受けてデータＸｎ＋１4を出力するＸＯＲ回路５４♯３とを含む。
【０１０１】
ゲート回路３６♯４は、データＸｎ8と設定データＳ4とを受けるＡＮＤ回路５２♯４と、ＡＮＤ回路５２♯４の出力とデータＸｎ4とを受けてデータＸｎ＋１5を出力するＸＯＲ回路５４♯４とを含む。
【０１０２】
ゲート回路３６♯５は、データＸｎ8と設定データＳ5とを受けるＡＮＤ回路５２♯５と、ＡＮＤ回路５２♯５の出力とデータＸｎ5とを受けてデータＸｎ＋１6を出力するＸＯＲ回路５４♯５とを含む。
【０１０３】
ゲート回路３６♯６は、データＸｎ8と設定データＳ6とを受けるＡＮＤ回路５２♯６と、ＡＮＤ回路５２♯６の出力とデータＸｎ6とを受けてデータＸｎ＋１7を出力するＸＯＲ回路５４♯６とを含む。
【０１０４】
ゲート回路３６♯７は、データＸｎ8と設定データＳ7とを受けるＡＮＤ回路５２♯７と、ＡＮＤ回路５２♯７の出力とデータＸｎ7とを受けてデータＸｎ＋１8を出力するＸＯＲ回路５４♯７とを含む。
【０１０５】
図１０における演算回路３８，４０，４２は、演算回路３６と同様な構成を有している。すなわち、図１１において、ｎ＝０のときに演算回路３６の構成が示され、ｎ＝１のときに演算回路３８の構成が示され、ｎ＝２のときに演算回路４０の構成が示され、ｎ＝３のときに演算回路４２の構成が示される。したがって、説明は繰返さない。
【０１０６】
図１２は、ＣＲＣ演算装置３０の設定データＳ7〜Ｓ0を設定した状態を示した図である。
【０１０７】
図１２を参照して、設定データＳ7〜Ｓ0として設定値“１１０１  ０１０１”が与えられている。このような構成において、設定データＳ7〜Ｓ0に設定値“１１０１  ０１０１”を設定した結果、ＣＲＣ演算装置３０は図１〜図８で説明した実施の形態１のＣＲＣ演算装置１と等価な回路となり、同様な演算を行なうことができる。また、設定データＳ7〜Ｓ0を適宜変更することによって生成多項式の変更に柔軟に対応することができる。
【０１０８】
［実施の形態３］
実施の形態２では生成多項式の最高次数がＸ8の場合において生成多項式を種々に変更する場合に対応可能とするものであった。実施の形態３では、生成多項式の次数を変更することが可能なＣＲＣ演算装置を検討する。
【０１０９】
図１３は、図９に示したＣＲＣ演算装置２０を生成多項式の次数を変更可能にしたＣＲＣ演算装置６０の構成を示す回路図である。
【０１１０】
図１３を参照して、ＣＲＣ演算装置６０は、図９に示したＣＲＣ演算装置２０の構成において、切換回路６２♯０〜６２♯６をさらに含む。
【０１１１】
切換回路６２♯０は、レジスタ２６♯０の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯１に対して与える。切換回路６２♯１は、レジスタ２６♯１の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯２に対して与える。切換回路６２♯２は、レジスタ２６♯２の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯３に対して与える。切換回路６２♯３は、レジスタ２６♯３の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯４に対して与える。
【０１１２】
切換回路６２♯４は、レジスタ２６♯４の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯５に対して与える。切換回路６２♯５は、レジスタ２６♯５の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯６に対して与える。切換回路６２♯６は、レジスタ２６♯６の出力と入力ＩＮから入力されるデータのいずれか一方をＸＯＲ回路２４♯７に対して与える。
【０１１３】
図１３では、切換回路６２♯０、６２♯１は、入力ＩＮを選択して次段のＸＯＲ回路に与えている。切換回路６２♯２〜６２♯６は、レジスタ２６♯２〜２６♯６の出力をそれぞれ選択しており、これを次段のＸＯＲ回路に与えている。このようにすることで、生成多項式の最高次数をＸ6にすることができる。そして、設定データＳ7〜Ｓ0を“１１０１０１００”に設定すれば、生成多項式は、
Ｐ（Ｘ）＝Ｘ6＋Ｘ5＋Ｘ4＋Ｘ2＋Ｘ0
となる。このとき設定データＳ0、Ｓ1は“０”でなくても“１”でもよい。
【０１１４】
次に、多ビットを一括処理する場合において、次数の変更が可能になる本発明の実施の形態３のＣＲＣ演算装置の説明をする。
【０１１５】
図１４は、実施の形態３のＣＲＣ演算装置において用いられる演算回路６６の構成を示す回路図である。
【０１１６】
図１４を参照して、演算回路６６は、図１１に示した演算回路３６の構成において、ゲート回路３６♯１〜３６♯７に代えてゲート回路６８♯１〜６８♯７を含む。
【０１１７】
ゲート回路６８♯１は、図１１に示したゲート回路３６♯１の構成において、データＸｎ1とデータＸｎ0のいずれかをＸＯＲ回路５４♯１に与える切換回路７０♯１をさらに含む点がゲート回路３６♯１の構成と異なる。ゲート回路６８♯２は、図１１に示したゲート回路３６♯２の構成において、データＸｎ2とデータＸｎ0のいずれかをＸＯＲ回路５４♯２に与える切換回路７０♯２をさらに含む点がゲート回路３６♯２の構成と異なる。
【０１１８】
ゲート回路６８♯３は、図１１に示したゲート回路３６♯３の構成において、データＸｎ3とデータＸｎ0のいずれかをＸＯＲ回路５４♯３に与える切換回路７０♯３をさらに含む点がゲート回路３６♯３の構成と異なる。ゲート回路６８♯４は、図１１に示したゲート回路３６♯４の構成において、データＸｎ4とデータＸｎ0のいずれかをＸＯＲ回路５４♯４に与える切換回路７０♯４をさらに含む点がゲート回路３６♯４の構成と異なる。
【０１１９】
ゲート回路６８♯５は、図１１に示したゲート回路３６♯５の構成において、データＸｎ5とデータＸｎ0のいずれかをＸＯＲ回路５４♯５に与える切換回路７０♯５をさらに含む点がゲート回路３６♯５の構成と異なる。ゲート回路６８♯６は、図１１に示したゲート回路３６♯６の構成において、データＸｎ6とデータＸｎ0のいずれかをＸＯＲ回路５４♯６に与える切換回路７０♯６をさらに含む点がゲート回路３６♯６の構成と異なる。
【０１２０】
ゲート回路６８♯７は、図１１に示したゲート回路３６♯７の構成において、データＸｎ7とデータＸｎ0のいずれかをＸＯＲ回路５４♯７に与える切換回路７０♯７をさらに含む点がゲート回路３６♯７の構成と異なる。
【０１２１】
ゲート回路６８♯１〜６８♯７の他の構成は、ゲート回路３６♯１〜３６♯７とそれぞれ同様であるので説明は繰返さない。
【０１２２】
切換回路７０♯１，７０♯２は、図１４に示した例では、データＸｎ0を選択してＸＯＲ回路５４♯１，５４♯２に出力している。切換回路７０♯３〜７０♯７は、それぞれデータＸｎ3〜Ｘｎ7を選択してＸＯＲ回路５４♯３〜５４♯７に出力している。
【０１２３】
図１０に示した演算回路３６〜４２に代えて図１４で示した演算回路６６を用いれば、切換回路７０♯１〜７０♯７の設定を変更することにより、生成多項式の次数を変更することが可能となる。また、設定データＳ7〜Ｓ0の設定を変更することにより、生成多項式の変更が可能である。
【０１２４】
なお、切換回路７０♯１〜７０♯７の切換は、配線のつなぎ替えによって行なってもよいが、たとえば、選択信号によって２入力のうちのいずれかを選択するようなゲート回路を用いてもよい。
【０１２５】
以上説明したように、実施の形態３のＣＲＣ演算装置によれば、多ビットを一括処理でき高速化が図られるとともに、生成多項式の変更および生成多項式の次数の変更が可能であるので、さまざまなシステムに柔軟に用いることができる。
【０１２６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１２７】
【発明の効果】
本発明のＣＲＣ演算装置は、１クロックサイクルにおいて一度に多ビットを一括して処理することができ、高速にＣＲＣ演算をすることができる。
【０１２８】
好ましくは、加えて、設定データＳ7〜Ｓ0を適宜変更することによって生成多項式の変更に柔軟に対応することができる場合がある。
【０１２９】
好ましくは、加えて、生成多項式の変更および生成多項式の次数の変更が可能であるので、さまざまなシステムに柔軟に用いることができる場合がある。
【０１３０】
好ましくは、加えて、対象データを４ビットずつ一括して処理することができる場合がある。
【０１３１】
好ましくは、加えて、１クロックサイクルにおいて一度に多ビットを一括して処理することができ、高速にＣＲＣ演算をすることができる場合がある。
【図面の簡単な説明】
【図１】  本発明の実施の形態１のＣＲＣ演算装置１の構成を示す概略ブロック図である。
【図２】  図１に示した保持回路２の構成を示す回路図である。
【図３】  図１における演算回路６の構成を示す回路図である。
【図４】  図１に示したＣＲＣ演算装置１の動作を説明するための動作波形図である。
【図５】  図４のクロックサイクルＴ１におけるＣＲＣ演算装置１の演算を説明するための図である。
【図６】  図４におけるクロックサイクルＴ２におけるＣＲＣ演算装置１の演算を説明するための図である。
【図７】  図４におけるクロックサイクルＴ３におけるＣＲＣ演算装置１の動作を説明するための図である。
【図８】  図４におけるクロックサイクルＴ４でのＣＲＣ演算装置１の動作を説明するための図である。
【図９】  生成多項式が変更された場合に容易に対応することができるＣＲＣ演算装置２０の構成を示した回路図である。
【図１０】  本発明の実施の形態２のＣＲＣ演算装置３０の構成を示す概略ブロック図である。
【図１１】  図１０における演算回路３６の構成を示した回路図である。
【図１２】  ＣＲＣ演算装置３０の設定データＳ7〜Ｓ0を設定した状態を示した図である。
【図１３】  図９に示したＣＲＣ演算装置２０を生成多項式の次数を変更可能にしたＣＲＣ演算装置６０の構成を示す回路図である。
【図１４】  実施の形態３のＣＲＣ演算装置において用いられる演算回路６６の構成を示す回路図である。
【図１５】  情報ビットと生成多項式から検査ビットを求めるｍｏｄ２除算を説明するための図である。
【図１６】  伝送誤りが発生していないかどうかの確認を行なうための演算の説明をするための図である。
【図１７】  図１５、図１６で示した除算を行なう従来のＣＲＣ演算装置１００の構成を示す概念図である。
【図１８】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第１の図である。
【図１９】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第２の図である。
【図２０】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第３の図である。
【図２１】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第４の図である。
【図２２】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第５の図である。
【図２３】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第６の図である。
【図２４】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第７の図である。
【図２５】  図１７に示したＣＲＣ演算装置が、演算を行なう経過を示した第８の図である。
【符号の説明】
１，２０，３０，６０  ＣＲＣ演算装置、２  保持回路、２♯０〜２♯７，１４，２６  レジスタ、４，６，８，１０，１２，３４，３６，３８，４０，４２，６６  演算回路、６♯０〜６♯７，３６♯０〜３６♯７，６８♯１〜６８♯７ゲート回路、１６，２４♯０〜２４♯７，５４♯０〜５４♯７  ＸＯＲ回路、２２♯０〜２２♯７，５２♯０〜５２♯７  ＡＮＤ回路、６２♯０〜６２♯６，７０♯１〜７０♯７  切換回路。
【図１】
0004371520.tif 000002
【図２】
0004371520.tif 000003
【図３】
0004371520.tif 000004
【図４】
0004371520.tif 000005
【図５】
0004371520.tif 000006
【図６】
0004371520.tif 000007
【図７】
0004371520.tif 000008
【図８】
0004371520.tif 000009
【図９】
0004371520.tif 000010
【図１０】
0004371520.tif 000011
【図１１】
0004371520.tif 000012
【図１２】
0004371520.tif 000013
【図１３】
0004371520.tif 000014
【図１４】
0004371520.tif 000015
【図１５】
0004371520.tif 000016
【図１６】
0004371520.tif 000017
【図１７】
0004371520.tif 000018
【図１８】
0004371520.tif 000019
【図１９】
0004371520.tif 000020
【図２０】
0004371520.tif 000021
【図２１】
0004371520.tif 000022
【図２２】
0004371520.tif 000023
【図２３】
0004371520.tif 000024
【図２４】
0004371520.tif 000025
【図２５】
0004371520.tif 000026