(57)【特許請求の範囲】
【請求項１】
所定の生成多項式の帰還シフトレジスタの除算処理結果が付加され、畳み込み符号化され、送信側から送信された信号を受信した受信ビット列を、ビタビ復号処理の上、復号結果を生成多項式で除算する帰還シフトレジスタを備え、該帰還シフトレジスタによる剰余演算から前記受信ビット列の誤りを検出する誤り検出器において、
前記帰還シフトレジスタのシフト方向および帰還方向は、前記送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成され、
前記帰還シフトレジスタの前記剰余演算終了時における各レジスタ値の値が、送信側の帰還シフトレジスタの除算処理における各レジスタ値の初期値に一致することにより、誤りが発生していないことを検出することを特徴とする誤り検出器。
【請求項２】
請求項１記載の誤り検出器において、
前記帰還シフトレジスタは、前記所定の生成多項式の最高次と同数の段数を有するレジスタ部と、
前記レジスタ部への入力値と最終段の出力値とを演算し、演算結果を初段に出力する第１の演算部と、
前記所定の生成多項式の項のうち、最高次および最低次を除く項の次数に対応する段の出力値と前記最終段の出力値とをそれぞれ演算し、各演算結果を次段に出力する第２の演算部とを備えたことを特徴とする誤り検出器。
【請求項３】
請求項１記載の誤り検出器を備えた受信手段と、
前記所定の生成多項式を使用して送信すべきビット列から前記送信ビット列を生成する符号器を備えた送信手段と、
前記受信手段と前記送信手段とを接続する伝送路とを備えたことを特徴とする通信システム。
【請求項４】
誤り検出方法であって、
所定の生成多項式の帰還シフトレジスタの除算処理結果が付加され、畳み込み符号化され、送信側から送信された信号を受信した受信ビット列を、ビタビ復号処理し、
復号結果を生成多項式で除算する帰還シフトレジスタのシフト方向および帰還方向を前記送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と逆向きにする剰余演算を行い、前記帰還シフトレジスタの前記剰余演算終了時における各レジスタ値の値が、送信側の帰還シフトレジスタの除算処理における各レジスタ値の初期値に一致することにより、誤りが発生していないことを検出すること
を特徴とする誤り検出方法。
【請求項５】
ビタビ復号処理された受信ビット列を生成多項式で除算する第１の帰還シフトレジスタと第２の帰還シフトレジスタとを備え、
前記第１の帰還シフトレジスタのシフト方向および帰還方向は、送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と同じ向きに構成され、
前記第２の帰還シフトレジスタのシフト方向および帰還方向は、送信側において前記所定の生成多項式を用いて前記送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成され、
前記第１の帰還シフトレジスタにより求めた剰余と、前記第２の帰還シフトレジスタにより求めた剰余とから前記受信ビット列の誤りを検出することを特徴とする誤り検出器。
【請求項６】
請求項５記載の誤り検出器において、
前記第１の帰還シフトレジスタと、前記第２の帰還シフトレジスタとに、それぞれ所定の値を設定する所定値設定手段を備えたことを特徴とする誤り検出器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データの誤り検出、特に、データ伝送時に発生する伝送データの誤りを検出する誤り検出器、この誤り検出器を備えた通信システム、および誤り検出方法に関する。
【０００２】
【従来の技術】
伝送路を介して伝送されるデータは、さまざまな原因により誤りを生じる。この誤りを検出するため、通信システムにおいて、送信側は、本来送るべきデータに一定の規則に従って検査データを付加している。受信側は、送られたデータがこの規則に従っているかどうかを調べ、その結果により、誤りの有無を判定している。
【０００３】
誤り検出のうち、最も一般的なものは、巡回符号（cyclic code）を用いたCRC（Cyclic Redundancy Check）による検出法である。CRCによる誤り検出では、先ず、送信側は、本来送るべきデータを所定の長さの情報ビット列に分割し、各情報ビット列を多項式で表して、それを生成多項式（generator polynomial）で除算する。次に、送信側は、除算により発生した剰余を検査ビットとして情報ビット列に付加することで巡回符号を生成し、この巡回符号を受信側に送信する。
【０００４】
受信側は、受信した巡回符号を送信側と同じ生成多項式で除算し、割り切れるか否かで、誤りの有無を判定する。
図２７は、巡回符号を使用して誤り検出を行う通信システムの一例を示している。この通信システムでは、送信側１と受信側２とは、無線伝送路３で接続されている。送信側１および受信側２は、例えば、携帯電話等の移動体通信の基地局と携帯端末とに対応している。
【０００５】
送信側１は、送信するデータを符号化する符号器４と、符号化されたデータを変調し、変調したデータを無線伝送路３に出力するデータ変調／送信部５とを有している。符号器４は、帰還シフトレジスタ（feedback shift register）６により構成されている。
受信側２は、無線伝送路３から送られるデータを受信し、受信したデータを復調するデータ受信／復調部７と、復調したデータの誤り検出を行う誤り検出器８とを有している。誤り検出器８は、帰還シフトレジスタ９および誤り検出信号Flagを出力する正誤出力部１０により構成されている。誤り検出器８は、他の通信機能部とともに、半導体装置ＳＥＭ内に作り込まれている。
【０００６】
帰還シフトレジスタ６および帰還シフトレジスタ９は、図２８に示すように、同一の回路、例えば、１６次の生成多項式Ｘ16＋Ｘ12＋Ｘ5＋１に対応した除算器により構成されている。
帰還シフトレジスタ６、９は、縦続接続されたフリップフロップ回路X15〜X0（以下F/F回路X15〜X0と称する）からなるレジスタ部１１、３つのEOR（排他的論理和）回路１２ａ、１２ｂ、１２ｃおよびスイッチＳ１、Ｓ２を有している。レジスタ部１１のシフト方向は、F/F回路X0からF/F回路X15に向かう方向に設定されている。また、各F/F回路X15〜X0には、シフト動作を同期して行うためにクロック信号CLKが入力されている。
【０００７】
EOR回路１２ａは、F/F回路X15の出力と入力信号Din1（またはDin2）とを入力し、演算結果をF/F回路X0に出力している。EOR回路１２ｂは、EOR回路１２ａの出力とF/F回路X11の出力とを入力し、演算結果をF/F回路X12に出力している。EOR回路１２ｃは、EOR回路１２ａの出力とF/F回路X4の出力とを入力し、演算結果をF/F回路X5に出力している。
【０００８】
スイッチＳ１は、帰還シフトレジスタ６、９の出力信号Dout1、Dout2に、F/F回路X15の出力を接続するか、入力信号Din1、Din2を接続するかの選択を行うスイッチである。スイッチＳ２は、EOR回路１２ａの出力を、EOR回路１２ｂ、１２ｃおよびF/F回路X0に帰還するためのスイッチである。
図２７に示した通信システムでは、以下示すように、送信側１での符号化と、受信側２での誤り検出が行われる。ここでは、一例として、６ビットの情報ビット列「０１０１０１」を送信する場合について説明する。
【０００９】
図２９は、送信側１の帰還シフトレジスタ６が動作したときの各F/F回路X15〜X0の状態を示している。帰還シフトレジスタ６は、クロック信号CLKが入力される毎に、F/F回路X15〜X0に保持されている値を図の左側に向けてシフトする。そして、クロック信号CLKが入力される毎に、「状態」が１つずつ増加していく。すなわち、行方向に見て、各F/F回路X15〜X0の状態が、「状態０」から「状態６」の方向へ移動する。
【００１０】
なお、「状態０」において、各F/F回路X15〜X0は、全て「０」にリセットされている。
「状態１」から「状態６」の間、図２８に示したように、スイッチＳ１は、入力信号Din1と出力信号Dout1とを接続する側に切り替えられ、スイッチＳ２は閉じられている。したがって、入力信号Din1から入力される情報ビット列「０１０１０１０」は、帰還シフトレジスタ６に入力され、同時に、出力信号Dout1に出力される。
【００１１】
出力信号Dout1に出力された情報ビット列は、データ変調／送信部５で変調された後、無線伝送路３を介して受信側２に送信される。
そして、帰還シフトレジスタ６が「状態６」まで動作したときに、各F/F回路X15〜X0に保持されている値「０１００００１００００１０１００」が、検査ビット列になり、情報ビット列と検査ビット列とにより、図２９中の太枠で示した巡回符号「０１０１０１０１００００１００００１０１００」が生成される。
【００１２】
検査ビット列の取り出しは、帰還シフトレジスタ６を動作させて、「状態６」のF/F回路X15〜X0に保持されている値を、出力信号Dout1に順次出力することで行う。このとき、スイッチＳ１は、F/F回路X15の出力と出力信号Dout1とを接続するように切り替えられ、スイッチＳ２は開かれている。なお、スイッチＳ２を開くことにより、F/F回路X0、EOR回路１２ｂ、１２ｃには、「０」が入力される。
【００１３】
出力信号Dout1に出力された検査ビット列は、データ変調／送信部５で変調された後、無線伝送路３を介して受信側２に送信される。
受信側２では、データ受信／復調部７は、変調された巡回符号（情報ビット列＋検査ビット列）を受信し、元の巡回符号に順次復調していく。そして、データ受信／復調部７は、巡回符号の各ビットを、復調した順に誤り検出器８の帰還シフトレジスタ９に入力する。
【００１４】
図３０は、誤り検出器８の帰還シフトレジスタ９を動作させたときの各F/F回路X15〜X0の状態を示している。なお、図３０は、受信した巡回符号に誤りがない場合の動作を示している。
「状態０」において、各F/F回路X15〜X0は、全て「０」にリセットされている。「状態１」から「状態２２」の間、図２８におけるスイッチＳ２は、閉じられている。スイッチＳ１は、どちら側に切り替わっていてもよい。
【００１５】
そして、帰還シフトレジスタ９は、入力信号Din2から巡回符号「０１０１０１０１００００１００００１０１００」を順次入力する。巡回符号を最下位ビットまで入力した「状態２２」において、F/F回路X15〜X0に保持された値、すなわち、受信した巡回符号を生成多項式で除算したときの剰余の値は、受信したデータに誤りがない場合には「０」になる。
【００１６】
剰余が「０」であるか否かの確認は、図２７における正誤出力部１０で行う。このために、帰還シフトレジスタ９は、「状態２２」のF/F回路X15〜X0に保持されている値を、出力信号Dout2に順次出力する。このとき、スイッチＳ１は、F/F回路X15の出力と出力信号Dout2とを接続するように切り替えられ、スイッチＳ２は開かれている。
【００１７】
正誤出力部１０は、出力信号Dout2から除算結果の剰余である１６ビットの値を順次入力し、入力した各ビットの「NOR論理」を求めて、結果を誤り検出信号Flagに出力する。したがって、受信した巡回符号が正しい場合には、誤り検出信号Flagに「１」が出力される。また、受信した巡回符号に誤りがある場合には、図３０に示した「状態２２」でのF/F回路X15〜X0の値が、全「０」ではなくなる。このため、F/F回路X15〜X0の各値をNOR演算した結果、誤り検出信号Flagには、「０」が出力される。受信側２は、誤り検出信号Flagが「０」の場合には、受信したデータの切り捨て、あるいは、送信側１に対する再送指示を行う。
【００１８】
このように、上述した通信システムでは、巡回符号を使用することにより、無線伝送路３で発生した伝送データの誤り検出を行っている。
一方、一般に、通信システムでは、伝送データの誤り検出だけではなく、誤り訂正を行うことが多い。誤り訂正を行うための誤り訂正符号として、巡回符号等のブロック符号と畳み込み符号とが知られている。移動体通信等における無線伝送路では、伝送路の特性が、地形、気象状況等で著しく変化しやすく、フェージングによるバースト誤りが発生しやすいため、バースト誤りに対して有効な畳み込み符号が使用されることが多い。
【００１９】
図３１は、畳み込み符号を使用して誤り訂正を行う通信システムの一例を示している。この通信システムでは、送信側１は、直列に接続された符号器４、畳み込み復号器１３、データ変調／送信部５を有し、受信側２は、直列に接続されたデータ受信／復調部７、ビタビ復号器１４、データ処理部１５、誤り検出器８を有している。なお、図３１において、上述した図２７と同一のものは、同じ符号で示している。
【００２０】
図３１に示した通信システムでは、以下示すように、送信側１から送信されたデータの誤り訂正および誤り検出が、受信側２で行われる。
先ず、送信側１では、符号器４は、情報ビット列から検査ビット列を求めて巡回符号を生成し、情報ビット列側を最上位ビット（MSB）として出力信号Dout1に順次出力する。
【００２１】
畳み込み符号器１３は、巡回符号を最上位ビットから順次入力し、畳み込み符号を生成し、データ変調／送信部５に出力する。データ変調／送信部５は、畳み込み符号を変調し、無線伝送路３に出力する。
受信側２では、データ受信／復調部７は、変調された畳み込み符号を順次に受信し、元の畳み込み符号に復調し、ビタビ復号器１４に出力する。
【００２２】
ビタビ復号器１４は、入力した畳み込み符号を元の巡回符号に復号する。ビタビ復号器は、復号の際に、無線伝送路３で生じたバースト誤り等を元の正しいビット列に訂正する。ここで、ビタビ復号器１４では、巡回符号は最下位ビット（LSB）側から順次復号され、出力される。
次に、データ処理部１５は、最下位ビット側から出力された巡回符号を順次取り込み、取り込みが完了した後に、最上位ビット側から帰還シフトレジスタ９の入力信号Din2に出力する。この後、前述した図２７の通信システムと同様に誤り検出が行われ、検出結果が誤り検出信号Flagとして出力される。
【００２３】
【発明が解決しようとする課題】
ところで、図２７に示した通信システムでは、受信側２において、誤り検出を行うためには、巡回符号の全ビットを誤り検出器８に１ビットずつ入力しなくてはならない。このため、情報ビット列のビット長が長い場合には、誤り検出に要する処理時間が長くなり、誤り検出処理を効率よく行うことができないという問題があった。
【００２４】
また、図３１に示した通信システムでは、受信側２において、ビタビ復号器１４は、巡回符号を最下位ビット側から復号する。一方で、帰還シフトレジスタ９は、巡回符号を最上位ビット側から入力し誤り検出を行う。このため、受信部２は、ビタビ復号器１４により順次に復号される巡回符号を、帰還シフトレジスタ９に直接出力することができなかった。
【００２５】
したがって、全ての巡回符号を、一旦最下位ビットからデータ処理部１５に取り込み、ビタビ復号器１４による復号処理が完了した後に、あらためて巡回符号を最上位ビット側から帰還シフトレジスタ９に出力しなくてはならなかった。
この結果、復号処理から誤り検出を行うまでの処理時間が長くなり、回路規模が増大するという問題があった。
【００２６】
また、回路規模が大きくなるため、誤り検出器８を半導体装置ＳＥＭ内に作り込んだ場合には、半導体装置ＳＥＭのチップ面積が増大するという問題があった。
さらに、誤り検出を効率よく行うことができないため、通信システムにおけるデータの伝送効率が低下するおそれがあった。
本発明は、かかる従来の問題点を解決するためになされたもので、伝送データの誤り検出を効率よく行うことができる誤り検出器および誤り検出方法を提供することを目的とする。また、伝送路におけるデータの伝送効率を低下させることなく、誤り検出を行うことができる通信システムを提供することを目的とする。
【００２７】
【課題を解決するための手段】
図１は、本発明の原理構成図である。
この誤り検出器は、所定の生成多項式の帰還シフトレジスタの除算処理結果が付加され、畳み込み符号化され、送信側から送信された信号を受信した受信ビット列を、ビタビ復号処理の上、復号結果を生成多項式で除算する帰還シフトレジスタ４５を備え、帰還シフトレジスタ４５で求めた剰余から受信ビット列の誤りを検出する誤り検出器において、帰還シフトレジスタ４５のシフト方向および帰還方向は、送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成されたことを特徴とする。
【００２８】
例えば、この誤り検出器は、帰還シフトレジスタ４５は、所定の生成多項式の最高次と同数の段数を有し、最終段X0から昇順に番号０、１、２・・・が付与された段X15〜X0を有するレジスタ部４９と、レジスタ部４９への入力値と最終段X0の出力値とを演算し、演算結果を初段X15に出力する第１の演算部５１ａと、所定の生成多項式の項のうち、最高次および最低次を除く項の次数に等しい番号の段の出力値と最終段の出力値とをそれぞれ演算し、各演算結果を次段に出力する第２の演算部５１ｂ、５１ｃとを備えたことを特徴とする。
【００２９】
図２は、本発明の原理構成図である。
例えば、この誤り検出器は、請求項１または請求項２記載の誤り検出器において、帰還シフトレジスタ４５で求めた剰余と、予め設定された期待値とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段４７を備えている。
【００３０】
例えば、この誤り検出器は、帰還シフトレジスタ４５のレジスタ部を初期化する初期化手段を備えている。
例えば、この誤り検出器は、帰還シフトレジスタ４５のレジスタ部に所定の値を設定する所定値設定手段を備えている。
【００３１】
本発明の通信システムは、上述した図１に示した帰還シフトレジスタ４５を有する誤り検出器４３を備えた受信手段２３と、所定の生成多項式を使用して送信すべきビット列から送信ビット列を生成する符号器２７を備えた送信手段２１と、受信手段２３と送信手段２１とを接続する伝送路２５とを備えたことを特徴とする。
【００３２】
例えば、この通信システムは、受信手段２３と、所定の生成多項式を使用して送信すべきビット列を符号化する符号器２７を備えた送信手段２１と、受信手段２３と送信手段２１とを接続する伝送路２５とを備えている。
例えば、この通信システムでは、送信手段２１は、送信ビット列を畳み込み符号に変換する畳み込み符号器２９を備え、受信手段２３は、伝送路２５を介して受信した畳み込み符号を復号する復号器４１を備えている。
【００３３】
本発明の誤り検出方法は、例えば、ビタビ復号処理を行った受信ビット列を所定の生成多項式を除数とする除算手順に入力し、求めた剰余から受信ビット列の誤りを検出する誤り検出方法において、除算手順への受信ビット列の入力は、送信側において畳み込み符号化処理を行い、生成多項式を用いて除算処理された除算処理結果が付加された送信ビット列を生成する生成順序と逆の順序で行われる。
【００３４】
例えば、この誤り検出方法は、除算手順の実行前に、除算手順により求める剰余を入力するバッファ部を初期化する。
例えば、この誤り検出方法は、除算手順の実行前に、除算手順により求める剰余を入力するバッファ部を所定の値に設定する。
【００３５】
図３は、本発明の原理構成図である。
この誤り検出器は、受信ビット列を生成多項式で除算する第１の帰還シフトレジスタ６７と第２の帰還シフトレジスタ６９とを備え、第１の帰還シフトレジスタ６７のシフト方向および帰還方向は、送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と同じ向きに構成され、第２の帰還シフトレジスタ６９のシフト方向および帰還方向は、送信側２１において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成され、第１の帰還シフトレジスタ６７により求めた剰余と、第２の帰還シフトレジスタ６９により求めた剰余とから受信ビット列の誤りを検出することを特徴とする。
【００３６】
例えば、この誤り検出器では、第１の帰還シフトレジスタ６７は、所定の生成多項式の最高次と同数の段数を有し、初段X0から昇順に番号０、１、２・・・が付与された段X15〜X0を有する第１のレジスタ部７３と、第１のレジスタ部７３への入力値と最終段X15の出力値とを演算し、演算結果を初段に出力する第１の演算部７５ａと、所定の生成多項式の項のうち、最高次および最低次を除く項の次数より一つ少ない番号の段の出力値と第１の演算部７５ａによる演算結果とをそれぞれ演算し、各演算結果を次段に出力する第２の演算部７５ｂ、７５ｃとを備え、第２の帰還シフトレジスタ６９は、所定の生成多項式の最高次と同数の段数を有し、最終段X0から昇順に番号０、１、２・・・が付与された段を有する第２のレジスタ部７７と、第２のレジスタ部７７への入力値と最終段X0の出力値とを演算し、演算結果を初段X15に出力する第３の演算部７９ａと、所定の生成多項式の項のうち、最高次および最低次を除く項の次数に等しい番号の段の出力値と最終段の出力値とをそれぞれ演算し、各演算結果を次段に出力する第４の演算部７９ｂ、７９ｃとを備えている。
【００３７】
図４は、本発明の原理構成図である。
【００３８】
この誤り検出器は、上述した図３に示した誤り検出器において、第１の帰還シフトレジスタ６７と、第２の帰還シフトレジスタ６９とに、それぞれ所定の値を設定する所定値設定手段を備えたことを特徴とする。
例えば、誤り検出器６３は、第１の帰還シフトレジスタ６７で求めた剰余Xout15〜Xout0と、第２の帰還シフトレジスタ６９で求めた剰余Yout15〜Yout0とを比較し、比較結果が異なったことを示すときに誤り情報を出力する比較手段７１を備えている。
【００３９】
例えば、通信システムは、誤り検出器６３を備えた受信手段２３と、所定の生成多項式を使用して送信すべきビット列を送信ビット列に符号化する符号器２７を備えた送信手段２１と、受信手段２３と送信手段２１とを接続する伝送路２５とを備えている。
【００４０】
また、例えば、この通信システムは、半導体装置ＳＥＭを備えた受信手段２３と、所定の生成多項式を使用して送信すべきビット列を符号化する符号器２７を備えた送信手段２１と、受信手段２３と送信手段２１とを接続する伝送路２５とを備えている。
例えば、誤り検出方法は、受信ビット列を所定の生成多項式を除数とする除算手順に入力し、求めた剰余から受信ビット列の誤りを検出する誤り検出方法において、受信ビット列を生成多項式で除算する第１の除算手順と第２の除算手順とを備え、第１の除算手順への受信ビット列の入力は、送信側において生成多項式を用いて送信ビット列を生成する生成順に行われ、第２の除算手順への受信ビット列の入力は、送信側において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行われ、第１の除算手順により求めた剰余と、第２の除算手順により求めた剰余とを比較し、比較結果が異なるときに、受信ビット列を誤りと判定する。
【００４１】
例えば、この誤り検出方法は、第１および第２の除算手順の実行前に、第１の除算手順により求める剰余を入力する第１のバッファ部および第２の除算手順により求める剰余を入力する第２のバッファ部を、それぞれ所定の値に設定する。
上述した図１に示した帰還シフトレジスタ４５を有する誤り検出器では、帰還シフトレジスタ４５に、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力していくことで、入力した受信ビット列が順次除算され、剰余が生成される。そして、この剰余演算から受信ビット列の誤りが検出される。
【００４２】
例えば、この誤り検出器では、帰還シフトレジスタ４５をシフト動作し、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力していくことで、各状態における帰還シフトレジスタ４５のレジスタ部４９の値は、送信側の帰還シフトレジスタにより生成した検査ビット列を初期値に戻す方向に変化をする。したがって、帰還シフトレジスタ４５を所定の回数だけシフト動作したときのレジスタ部４９の値と、送信側の帰還シフトレジスタの初期値とが一致しないときには、受信ビット列に誤りがあると判定される。
【００４３】
また、上述した図２に示した誤り検出器では、帰還シフトレジスタ４５で求めた剰余と予め設定された期待値とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段４７が備えられるため、比較手段４７の比較結果により、誤りが検出される。
期待値の比較は、帰還シフトレジスタ４５をシフト動作しながら１ビットずつ期待値と比較してもよく、帰還シフトレジスタ４５を、生成された剰余を並列出力できる構成にすることで、剰余の全ビットを一度に期待値と比較してもよい。
【００４４】
例えば、帰還シフトレジスタ４５のレジスタ部を初期化する初期化手段が備えられるため、帰還シフトレジスタ４５をシフト動作することなく、レジスタ部が初期化される。このため、この後、帰還シフトレジスタ４５をシフト動作するだけで、受信ビット列のうち、送信側２１で生成した剰余（検査ビット列）がレジスタ部に取り込まれる。
【００４５】
シフト動作だけで検査ビット列がレジスタ部に取り込まれるのは、第１の演算部および第２の演算部の入力が、いずれもレジスタ部の最終段X0に接続されているためである。すなわち、レジスタ部が「０」に初期化されたときには、帰還シフトレジスタ４５に入力するデータは、レジスタ部が一巡するまで、そのまま取り込まれる。
【００４６】
例えば、帰還シフトレジスタ４５のレジスタ部に所定の値を設定する所定値設定手段が備えられるため、帰還シフトレジスタ４５をシフト動作させることなく、送信側２１で求めた剰余（検査ビット列）が、一度にレジスタ部に取り込まれる。
例えば、半導体装置ＳＥＭの内部に他の通信機能部とともに誤り検出器４３を備えることで、半導体装置ＳＥＭの製造コストを増大することなく、誤り検出器４３が構成される。
【００４７】
また、誤り検出器４３を構成する帰還シフトレジスタ４５は、送信側２１の帰還シフトレジスタに対してシフト方向および帰還方向を逆向きにしただけの構成であるため、従来使用している半導体装置ＳＥＭが送信側２１と同じ構成の帰還シフトレジスタを有する場合には、この半導体装置ＳＥＭの配線層のマスクを取り替えて、帰還シフトレジスタの配線を変更するだけで、容易に、シフト方向および帰還方向が逆向きの帰還シフトレジスタ４５を備えた半導体装置ＳＥＭが形成される。この際、半導体装置ＳＥＭのチップサイズ、パッド位置等は一切変更する必要がなく、変更が半導体装置ＳＥＭの外部にまで及ぶことはない。
【００４８】
本発明の通信システムでは、送信側２１の符号器２７で生成した送信ビット列を、受信ビット列として受信側２３で受信し、この受信ビット列を、符号器２７で生成した順序と逆の順序で誤り検出器４３に入力することで、受信ビット列の誤りが検出される。
【００４９】
例えば、この通信システムでは、送信側２１に送信ビット列を畳み込み符号に変換する畳み込み符号器２９が備えられ、受信側２３に受信した畳み込み符号を復号する復号器４１が備えられるため、畳み込み符号は、復号器４１により送信ビット列と生成順序と逆の順序で復号される。したがって、復号されたビット列を、そのまま誤り検出器に順次入力していくことで、誤り検出が行われる。
【００５０】
この結果、従来、復号器４１から逆の順序で復号されるビット列を、符号化された順序に戻すための変換回路およびこの変換回路による処理が不要になり、受信手段の回路規模が低減され、誤り検出に要する処理時間が低減される。処理時間の低減は、特に送信ビット列のビット長が長い場合に大きな効果がある。
本発明の誤り検出方法では、所定の生成多項式を除数とする除算手順への受信ビット列の入力が、送信側２１において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行われ、求めた剰余から受信ビット列の誤りが検出される。
【００５１】
例えば、この誤り検出方法では、除算手順により求めた剰余と、予め設定された期待値とが比較され、比較結果が異なるときに、受信ビット列が誤りと判定される。
また、例えば、誤り検出方法では、除算手順の実行前に、この除算手順により求める剰余を入力するバッファ部が初期化される。
【００５２】
例えば、誤り検出方法では、除算手順の実行前に、この除算手順により求める剰余を入力するバッファ部が、所定の値に設定される。
上述した図３に示した第１、第２の帰還シフトレジスタ６７、６９を有する誤り検出器では、第１の帰還シフトレジスタ６７は、送信側で生成した送信ビット列と同じ順序で受信ビット列を入力し、除算を行うことで剰余を生成する。第２の帰還シフトレジスタ６９は、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力し、除算を行うことで剰余を生成する。そして、第１の帰還シフトレジスタ６７により求めた剰余と、第２の帰還シフトレジスタ６９により求めた剰余とが一致するか否かにより、受信ビット列の誤りが検出される。
【００５３】
例えば、第１の帰還シフトレジスタ６７をシフト動作し、送信側で生成した送信ビット列と同じ順序で受信ビット列を入力していくことで、各状態における第１の帰還シフトレジスタ６７の第１のレジスタ部７３の値は、送信側の帰還シフトレジスタをシフト動作したときと同一の方向に変化する。第２の帰還シフトレジスタ６９をシフト動作し、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力していくことで、各状態における第２の帰還シフトレジスタ６９の第２のレジスタ部７７の値は、送信側の帰還シフトレジスタにより生成した検査ビット列を、初期値に戻す方向に変化する。したがって、受信ビット列に誤りがないときには、第１の帰還シフトレジスタ６７および第２の帰還シフトレジスタ６９をそれぞれシフト動作したときに、所定の状態において第１のレジスタ部７３の値と第２のレジスタ部７７の値とが一致する。そして、第１の帰還シフトレジスタ６７で求めた剰余と、第２の帰還シフトレジスタ６９で求めた剰余とが一致するか否かにより、受信ビット列の誤りの有無が検出される。
【００５４】
例えば、第１の帰還シフトレジスタ６７で求めた剰余と、第２の帰還シフトレジスタ６９で求めた剰余とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段７１が備えられるため、比較手段７１の比較結果により、誤り検出が行われる。
上述した図４に示した誤り検出器では、第１の帰還シフトレジスタ６７と、第２の帰還シフトレジスタ６９とに、それぞれ所定の値を設定する所定値設定手段が備えられるため、第１および第２の帰還シフトレジスタ６７、６９をシフト動作することなく、第１および第２のレジスタ部７３、７７に所定の値が設定される。
【００５５】
例えば、半導体装置ＳＥＭの内部に他の通信機能部とともに誤り検出器６３を備えることで、製造コストを増大することなく、誤り検出器６３が構成される。
例えば、この誤り検出器を備えた通信システムでは、送信側２１の符号器２７で生成した送信ビット列を、受信ビット列として受信側２３で受信し、この受信ビット列を、第１の帰還シフトレジスタ６７に対しては、符号器２７で生成した順序と同じ順序で入力し、第２の帰還シフトレジスタ６９に対しては、符号器２７で生成した順序と逆の順序で入力し、第１の帰還シフトレジスタ６７の値と第２の帰還シフトレジスタ６９の値とが一致するか否かにより、受信ビット列の誤りが検出される。
【００５６】
例えば、この誤り検出方法では、所定の生成多項式を除数する第１の除算手順への受信ビット列の入力が、送信側において生成多項式を用いて送信ビット列を生成する順序と同じ順序で行われ、所定の生成多項式を除数する第２の除算手順への受信ビット列の入力が、送信側において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行われる。
【００５７】
そして、第１の除算手順により求めた剰余と、第２の除算手順により求めた剰余とを比較し、比較結果が異なるときに、受信ビット列が誤りと判定される。
例えば、第１および第２の除算手順の実行前に、第１の除算手順により求める剰余を入力する第１のバッファ部および第２の除算手順により求める剰余を入力する第２のバッファ部が、それぞれ所定の値に設定される。
【００５８】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて詳細に説明する。
図５は、本発明の誤り検出器、この誤り検出器を備えた半導体装置、この誤り検出器を備えた通信システム、この半導体装置を備えた通信システム、誤り検出方法の第１の実施形態を示している。
【００５９】
図において、この通信システムは、送信側２１（送信手段に対応する）と受信側２３（受信手段に対応する）とを、無線伝送路２５（伝送路に対応する）で接続することで構成されている。送信側２１および受信側２３は、例えば、携帯電話等の移動体通信の基地局と携帯端末とに対応している。
送信側２１は、送信するデータを巡回符号に変換する符号器２７と、符号化されたデータを畳み込み符号に変換する畳み込み符号器２９と、畳み込み符号を変調し、変調した畳み込み符号を送信ビット列として無線伝送路２５に出力するデータ変調／送信部３１とを有している。符号器２７と、畳み込み符号器２９と、データ変調／送信部３１とは、縦続接続されている。
【００６０】
符号器２７は、線形符号の一つである巡回符号を生成する帰還シフトレジスタ３３により構成されている。この帰還シフトレジスタ３３は、図６に示すように、従来例の図２８に示した１６次の生成多項式Ｘ16＋Ｘ12＋Ｘ5＋１に対応した帰還シフトレジスタ６と同一の除算機能を有している。帰還シフトレジスタ３３は、縦続接続された１６段のフリップフロップ回路X15〜X0（段に対応する。以下、F/F回路X15〜X0と称する）からなるレジスタ部３５、３つのEOR（排他的論理和）回路３７ａ、３７ｂ、３７ｃおよびスイッチＳ１、Ｓ２、Ｓ３により構成されている。
【００６１】
レジスタ部３５のシフト方向は、F/F回路X0からF/F回路X15に向かう方向に設定されている。また、各F/F回路X15〜X0には、シフト動作を同期して行うためにクロック信号CLK1が入力されている。
EOR回路３７ａは、F/F回路X15の出力と入力信号Din1とを入力し、演算結果をF/F回路X0に出力している。EOR回路３７ｂは、EOR回路３７ａの出力とF/F回路X11の出力とを入力し、演算結果をF/F回路X12に出力している。EOR回路３７ｃは、EOR回路３７ａの出力とF/F回路X4の出力とを入力し、演算結果をF/F回路X5に出力している。
【００６２】
スイッチＳ１は、帰還シフトレジスタ３３の出力信号Dout1に、F/F回路X15の出力を接続するか、入力信号Din1を接続するかの選択を行うスイッチである。スイッチＳ２は、EOR回路３７ａの出力を、EOR回路３７ｂ、３７ｃおよびF/F回路X0に帰還するためのスイッチである。スイッチＳ３は、レジスタ部３５を所定の値に設定するために、入力信号Din1を直接F/F回路X0に接続するためのスイッチである。
【００６３】
また、受信側２３は、図５に示したように、無線伝送路２５から送られるデータを受信ビット列として受信し、この受信ビット列を元の畳み込み符号に復調するデータ受信／復調部３９と、復調した畳み込み符号を巡回符号に復号し、同時に誤り訂正を行うビタビ復号器４１（復号器に対応する）と、復号した巡回符号の誤り検出を行う誤り検出器４３とを有している。データ受信／復調部３９と、ビタビ復号器４１と、誤り検出器４３とは、縦続接続されている。
【００６４】
なお、この実施形態では、誤り検出器４３は、チャネルCODEC・LSI（Coder Decoder LSI）等の半導体装置ＳＥＭ内に作り込まれている。
誤り検出器４３は、線形符号の一つである巡回符号を生成する帰還シフトレジスタ４５と、この帰還シフトレジスタ４５の出力Xout15〜Xout0と所定の期待値とを比較する比較部４７（比較手段に対応する）とを有している。
【００６５】
帰還シフトレジスタ４５は、図７に示すように、縦続接続された１６段のフリップフロップ回路X15〜X0（段に対応する。以下、F/F回路X15〜X0と称する）からなるレジスタ部４９、３つのEOR回路５１ａ（第１の演算部に対応する）、５１ｂ（第２の演算部に対応する）、５１ｃ（第２の演算部に対応する）およびスイッチＳ４を有している。レジスタ部４９のシフト方向は、F/F回路X15（初段に対応する）からF/F回路X0（最終段に対応する）に向かう方向に設定されている。
【００６６】
各F/F回路X15〜X0には、シフト動作を同期して行うためにクロック信号CLK2が入力されている。また、各F/F回路X15〜X0は、これ等F/F回路X15〜X0に保持されている値を、出力信号Xout15〜Xout0として外部に出力している。
【００６７】
EOR回路５１ａは、F/F回路X0の出力信号Xout0と入力信号Din2とを入力し、演算結果をF/F回路X15に出力している。EOR回路５１ｂは、F/F回路X0の出力信号Xout0とF/F回路X12の出力信号Xout12とを入力し、演算結果を次段のF/F回路X11に出力している。EOR回路５１ｃは、F/F回路X0の出力信号Xout0とF/F回路X5の出力信号Xout5とを入力し、演算結果を次段のF/F回路X4に出力している。
【００６８】
すなわち、帰還シフトレジスタ４５の除算回路は生成多項式Ｘ16＋Ｘ15＋Ｘ4＋１に対応する図５における送信側２１の帰還シフトレジスタ３３と比較して、シフト方向および帰還方向が逆向きに構成されている。
スイッチＳ４は、F/F回路X0の出力信号Xout0を、EOR回路５１ｂ、５１ｃおよびEOR回路５１ａに帰還するためのスイッチである。スイッチＳ４を閉じることにより、出力信号Xout0が各EOR回路５１ａ、５１ｂ、５１ｃに帰還され、スイッチＳ４を開くことにより、出力信号Xout0が各EOR回路５１ａ、５１ｂ、５１ｃに帰還することが禁止される。
【００６９】
図５における比較部４７は、図８に示すように、１６入力のAND回路５３と、リセット端子Ｒおよびイネーブル端子ＥＮを有するフリップフロップ回路５５とにより構成されている。
AND回路５３の各入力端子には、帰還シフトレジスタ４５の出力信号Xout15〜Xout0が入力されている。AND回路５３の出力は、フリップフロップ回路５５の入力端子Ｄに入力されている。
【００７０】
フリップフロップ回路５５のイネーブル端子ＥＮには、トリガ信号ＴＧが入力されている。フリップフロップ回路５５のリセット端子Ｒには、リセット信号Resetが入力されている。また、フリップフロップ回路５５の出力端子Ｑからは、誤り情報を出力する誤り検出信号Flagが出力されている。出力端子Ｑは、入力端子Ｄと同論理の値を出力する端子である。
【００７１】
図５に示した通信システムでは、以下示すように、送信側２１から送信されたデータの誤り検出が行われる。ここでは、一例として、６ビットの情報ビット列「０１０１０１」を送信する場合について説明する。
図９および図１０は、送信側２１の符号器２７の帰還シフトレジスタ３３が動作したときの各F/F回路X15〜X0の状態を示している。帰還シフトレジスタ３３は、クロック信号CLK1が入力される毎に、F/F回路X15〜X0に保持されている値を図の左側に向けてシフトする。そして、クロック信号CLK1が入力される毎に、「状態」が１つずつ増加していく。すなわち、行方向に見て、各F/F回路X15〜X0の状態が、「状態０」から「状態６」および「状態６」から「状態２２」の方向へ移動する。
【００７２】
先ず、送信側２１は、各F/F回路X15〜X0を全て「１」に設定する。この設定は、入力信号Din1に「１」を入力した状態で、帰還シフトレジスタ３３を１６回シフト動作することで行われる。この際、図６におけるスイッチＳ２は開かれ、スイッチＳ３は入力信号Din1とフリップフロップX0とを接続する側に切り替えられている。
【００７３】
この後、送信側２１は、入力信号Din1から帰還シフトレジスタ３３に情報ビット列「０１０１０１」を順次入力し、検査ビット列を生成する。なお、「状態１」から「状態６」の間、スイッチＳ１は、入力信号Din1と出力信号Dout1とを接続する側に切り替えられ、スイッチＳ２は閉じられている。スイッチＳ３は、EOR回路３７ａの出力とF/F回路X0とを接続する側に切替られている。したがって、入力信号Din1から入力される情報ビット列「０１０１０１」は、帰還シフトレジスタ３３に入力されると同時に、出力信号Dout1に出力される。
【００７４】
そして、帰還シフトレジスタ３３が「状態６」まで動作したときに、各F/F回路X15〜X0に保持されている値「０１１１１０１０１１１０１０００」が、検査ビット列になり、図９中の太枠で示した巡回符号「０１０１０１０１１１１０１０１１１０１０００」が生成される。
検査ビット列の取り出しは、図１０に示すように、帰還シフトレジスタ３３を動作させ、「状態６」においてF/F回路X15〜X0に保持されている値を、出力信号Dout1に順次出力することで行う。このとき、図６におけるスイッチＳ１は、F/F回路X15の出力と出力信号Dout1とを接続するように切り替えられ、スイッチＳ２は開かれている。スイッチＳ３は、どちら側に切り替わっていてもよい。なお、スイッチＳ２を開くことにより、F/F回路X0およびEOR回路３７ｂ、３７ｃには、「０」が入力される。
【００７５】
図１１は、図９および図１０に示した「状態０」〜「状態２２」における帰還シフトレジスタ３３の動作タイミングを示している。「状態１」から「状態６」までは、出力信号Dout1には、クロック信号CLKに同期して、入力信号Din1に入力された情報ビット列が１ビットずつ出力される。「状態６」〜「状態２２」までは、出力信号Dout1にには、クロック信号CLKに同期して、帰還シフトレジスタ３３内で生成した検査ビット列が１ビットずつ出力される。
【００７６】
したがって、帰還シフトレジスタ３３は、出力信号Dout1から巡回符号（情報ビット列＋検査ビット列）を最上位ビット（MSB）から順次出力する。出力信号Dout1から出力された巡回符号は、順次、図５に示した畳み込み符号器２９に入力される。
畳み込み符号器２９は、巡回符号から畳み込み符号を生成し、生成した畳み込み符号をデータ変調／送信部３１に出力する。データ変調／送信部３１では、畳み込み符号を変調し、無線伝送路２５に出力する。
【００７７】
受信側２３では、データ受信／復調部３９は、変調された畳み込み符号を無線伝送路２５から受信し、順次、元の畳み込み符号に復調し、復調した畳み込み符号をビタビ復号器４１に出力する。
ビタビ復号器４１は、無線伝送路２５で生じたバースト誤り等を、元の正しいビット列に訂正しながら、入力した畳み込み符号を元の巡回符号に復号する。なお、ビタビ復号器４１では、巡回符号は、最下位ビット（LSB）側から復号されていく。
【００７８】
ビタビ復号器４１により復号された巡回符号は、順次、最下位ビット側から誤り検出器４３の入力信号Din2に入力される。
図１２は、誤り検出器４３の帰還シフトレジスタ４５を動作させたときの各F/F回路X15〜X0の状態を示している。なお、図１２は、復号された巡回符号に誤りがない場合の動作を示している。
【００７９】
先ず、誤り検出器４３は、帰還シフトレジスタ４５の各F/F回路X15〜X0を全て「０」にリセットし、帰還シフトレジスタ４５を「状態０」にする。このリセットは、入力信号Din2に「０」を入力した状態で、帰還シフトレジスタ４５を１６回シフト動作することで行われる。この際、図７におけるスイッチＳ４は開かれている。なお、スイッチＳ４を開くことにより、EOR回路５１ａ、５１ｂ、５１ｃには、「０」が入力される。
【００８０】
次に、帰還シフトレジスタ４５には、ビタビ復号器４１から順次送られる巡回符号を入力信号Din2から帰還シフトレジスタ４５に１ビットずつ入力される。「状態１６」までシフト動作したときに、帰還シフトレジスタ４５には、図中太枠で示したように、送信側２１の帰還シフトレジスタ３３で生成した検査ビット列が取り込まれている。
【００８１】
さらに、帰還シフトレジスタ４５を「状態１７」から「状態２２」まで動作することにより、帰還シフトレジスタ４５内には、入力信号Din2を介して情報ビット列が最下位ビットから入力されていく。そして、帰還シフトレジスタ３３が「状態２２」まで動作したときに、各F/F回路X15〜X0に保持されている値は、送信側２１の帰還シフトレジスタ３３の初期値「１１１１１１１１１１１１１１１１」になる。
【００８２】
すなわち、受信した巡回符号に誤りがないときには、帰還シフトレジスタ４５の「状態０」〜「状態２２」における各F/F回路X15〜X0の値は、それぞれ送信側２１の帰還シフトレジスタ３３の「状態２２」〜「状態０」における各F/F回路X15〜X0の値と同一になる。
【００８３】
なお、「状態１」から「状態２２」の間、スイッチＳ４は、閉じられている。図１３は、図１２に示した「状態０」〜「状態２２」における帰還シフトレジスタ４５および比較部４７の動作タイミングを示している。
誤り検出器４３は、「状態０」においてリセット信号Resetを「１」から「０」に変化させてフリップフロップ回路５５をリセットし、誤り検出信号Flagを「０」にする。「状態１」から「状態１６」までは、出力信号Xout15〜Xout0には、クロック信号CLK2に同期して、入力信号Din2に入力された値が出力される。「状態１７」〜「状態２２」までは、出力信号Xout15〜Xout0には、クロック信号CLK2に同期して、入力信号Din2に入力された値に応じて、帰還シフトレジスタ３３内で演算された結果（剰余）が出力される。なお、図１３においては、出力信号Xout15〜Xout0の値を１６進数で表示している。
【００８４】
誤り検出器４３（図５参照）は、「状態２２」において、トリガ信号ＴＧを「０」から「１」にする。図８におけるフリップフロップ回路５５は、トリガ信号ＴＧの立ち上がりエッジに同期して、AND回路５３の出力を入力端子Ｄに取り込み、取り込んだ値を誤り検出信号Flagとして出力する。ここで、出力信号Xout15〜Xout0の値は全て「１」であるため、AND回路５３は、フリップフロップ回路５５に「１」を出力する。フリップフロップ回路５５は、AND回路５３の出力を受けて誤り検出信号Flagに「１」を出力する。
【００８５】
誤り検出器４３は、誤り検出信号Flagの「１」を検出し、受信したデータに誤りがなかったと判定する。また、誤り検出器４３は、フリップフロップ回路５５の誤り検出信号Flagの「０」を検出したときには、受信したデータに誤りがあった判定する。受信側２３はこの判定を受けて、送信側２１に対して再送指示等を行う。
【００８６】
以上のように構成された誤り検出器では、受信側２３の帰還シフトレジスタ４５を、生成多項式Ｘ16＋Ｘ15＋Ｘ4＋１に対応する送信側２１の帰還シフトレジスタ３３に対して、シフト方向および帰還方向を逆向きに構成したので、帰還シフトレジスタ４５をシフト動作し、巡回符号を送信側２１で生成した順序と逆から入力することで、各状態における帰還シフトレジスタ４５のレジスタ部４９の値を、送信側２１の帰還シフトレジスタ３３で生成した巡回符号の検査ビット列を初期値に戻す方向に変化させることができる。したがって、帰還シフトレジスタ４５を「状態２２」までシフト動作したときのレジスタ部４９の値と、送信側２１の帰還シフトレジスタ３３の初期値とが一致しないときには、受信ビット列に誤りがあると判定することができる。
【００８７】
この結果、受信側２３にビタビ復号器４１等を備えた場合に、誤り検出器４３に送信側２１で生成した順序と逆から巡回符号を入力することができ、誤り検出に要する処理時間を増大することなく、誤り検出処理を効率よく行うことができる。
また、比較部４７により、帰還シフトレジスタ４５の「状態２２」でのレジスタ部４９の値と、帰還シフトレジスタ３３の初期値である全「１」とを比較し、比較結果が異なるときに誤り情報信号Flagを出力したので、受信側２３は、誤り検出信号Flagの値を検出することで、誤りの有無を判定することができる。
【００８８】
そして、以上のように構成された半導体装置では、チャネルCODEC・LSI等の半導体装置ＳＥＭ内に、誤り検出器４３を作り込んだので、誤り検出器４３を他の通信機能部とともに形成することができ、製造コストを増大することなく、誤り検出器４３を構成することができる。
帰還シフトレジスタ４５は、送信側２１の帰還シフトレジスタ３３に対してシフト方向および帰還方向を逆向きにしただけの構成であるため、従来使用している半導体装置ＳＥＭが送信側２１と同じ構成の帰還シフトレジスタ３３を有する場合には、この半導体装置ＳＥＭの配線層のマスクを取り替えて、帰還シフトレジスタ３３の配線を変更するだけで、容易に、シフト方向および帰還方向が逆向きの帰還シフトレジスタ４５を備えた半導体装置ＳＥＭＥＭを形成することができる。この際、半導体装置ＳＥＭのチップサイズ、パッド位置等は一切変更する必要がなく、変更が半導体装置ＳＥＭの外部にまで及ぶことを防止することができる。
【００８９】
また、以上のように構成された通信システムでは、送信側２１の符号器２７で生成した送信ビット列を、受信ビット列として受信側で受信し、この受信ビット列を、符号器２７で生成した順序と逆の順序で誤り検出器に入力することで、受信ビット列の誤りを検出することができる。
さらに、送信側２１に送信ビット列を畳み込み符号に変換する畳み込み符号器２９を備え、受信側２３に受信した畳み込み符号を復号するビタビ復号器４１を備えたので、ビタビ復号器４１により送信ビット列と生成順序と逆の順序で復号されたビット列を、そのまま誤り検出器４３に順次入力していくことで、誤りを検出することができる。
【００９０】
この結果、従来、ビタビ復号器４１から逆の順序で復号されるビット列を、符号化された順序に戻すための変換回路およびこの変換回路による処理が不要になり、受信側２３の回路規模を低減することができ、誤り検出に要する処理時間を低減することができる。したがって、伝送効率を低下させることなくデータの伝送を行うことができる。
【００９１】
図１４は、本発明の誤り検出器の第２の実施形態における受信側２３の帰還シフトレジスタ５７の詳細を示している。帰還シフトレジスタ５７は、第１の実施形態における帰還シフトレジスタ４５の代わりに使用する回路である。帰還シフトレジスタ５７以外の構成は、第１の実施形態と同一である。
【００９２】
この実施形態では、帰還シフトレジスタ５７の各F/F回路X15〜X0は、リセット端子Ｒ（初期化手段に対応する）を有している。各リセット端子Ｒには、リセット信号Reset（初期化手段に対応する）が入力されている。リセット信号Resetは、図８における比較部４７のフリップフロップ回路５５のリセット端子Ｒに入力されているものと同一の信号である。
【００９３】
また、この実施形態では、帰還シフトレジスタ５７には、第１の実施形態における帰還シフトレジスタ４５のスイッチＳ４は配置されていない。すなわち、F/F回路X0の出力信号Xout0と、EOR回路５１ｂ、５１ｃおよびEOR回路５１ａとの間は、常に帰還がかかった状態にされている。
図１５は、「状態０」〜「状態２２」における帰還シフトレジスタ５７および比較部４７の動作タイミングを示している。
【００９４】
誤り検出器４３は、「状態０」においてリセット信号Resetを「１」から「０」に変化させ、フリップフロップ回路５５をリセットして誤り検出信号Flagを「０」にし、同時に、帰還シフトレジスタ５７の各F/F回路X15〜X0を、全て「０」にリセットする。すなわち、この実施形態では、帰還シフトレジスタ５７をシフト動作することなく、各F/F回路X15〜X0の値が「０」に設定される。
【００９５】
「状態１」〜「状態２２」における帰還シフトレジスタ５７および比較部４７の動作タイミングは、第１の実施形態と同一である。
この実施形態の誤り検出器においても、上述した第１の実施形態と同様の効果を得ることができるが、この実施形態では、帰還シフトレジスタ５７の各F/F回路X15〜X0にリセット端子Ｒを設けたので、帰還シフトレジスタ５７をシフト動作することなく、各F/F回路X15〜X0の値を「０」に設定することができる。この結果、誤り検出器４３の処理時間を低減することができる。
【００９６】
図１６は、本発明の誤り検出器の第３の実施形態における受信側２３の帰還シフトレジスタ５９の詳細を示している。帰還シフトレジスタ５９は、第１の実施形態における帰還シフトレジスタ４５の代わりに使用する回路である。帰還シフトレジスタ５９以外の構成は、第１の実施形態と同一である。
【００９７】
この実施形態では、帰還シフトレジスタ５９の各F/F回路X15〜X0は、セット端子Ｓ（所定値設定手段に対応する）および入力端子Ｄ（所定値設定手段に対応する）を有している。各セット端子Ｓには、セット信号Setが入力されている。各F/F回路X15〜X0の入力端子Ｄには、それぞれ入力信号Xin15〜Xin0が入力されている。各F/F回路X15〜X0は、セット信号Setの立ち下がりエッジに同期して、入力端子Ｄに入力されている値を取り込む機能を有している。
【００９８】
また、この実施形態では、帰還シフトレジスタ５９には、第１の実施形態のスイッチＳ４は配置されていない。すなわち、F/F回路X0の出力信号Xout0と、EOR回路５１ｂ、５１ｃおよびEOR回路５１ａとの間は、常に帰還状態にされている。
図１７は、帰還シフトレジスタ５９および比較部４７の動作タイミングを示している。この実施形態では、帰還シフトレジスタ５９を、第１の実施形態の「状態１６」〜「状態２２」に変化させるだけで、誤り検出が行われる。
【００９９】
誤り検出器４３は、「状態１６」において、セット信号Setを「１」から「０」に変化させる。帰還シフトレジスタ５９の各F/F回路X15〜X0は、セット信号Setの立ち下がりエッジに同期して、入力信号Xin15〜Xin0に設定されている値を取り込む。ここで、入力信号Xin15〜Xin0には、予め検査ビット列「０１１１１０１０１１１０１０００」（１６進数の７ＡＥ８）が設定されている。
【０１００】
また、誤り検出器４３は、「状態１６」において、リセット信号Resetを「１」から「０」に変化させ、フリップフロップ回路５５をリセットし、誤り検出信号Flagを「０」にする。
「状態１７」〜「状態２２」における帰還シフトレジスタ５９および比較部４７の動作タイミングは、第１の実施形態と同一である。
【０１０１】
この実施形態の誤り検出器においても、上述した第１の実施形態と同様の効果を得ることができるが、この実施形態では、帰還シフトレジスタ５９の各F/F回路X15〜X0にセット端子Ｓおよび入力端子Ｄを設けたので、帰還シフトレジスタ５９の各F/F回路X15〜X0に、検査ビット列を直接並列入力することができる。この結果、第１の実施形態における「状態０」〜「状態１５」の処理が不要になり、誤り検出器４３の処理時間を従来に比べ大幅に低減することができる。
【０１０２】
図１８は、本発明の誤り検出器、この誤り検出器を備えた半導体装置、この誤り検出器を備えた通信システム、この半導体装置を備えた通信システム、誤り検出方法の第４の実施形態を示している。なお、第１の実施形態と同一のものは、同じ符号で示している。
この通信システムでは、送信側２１は、帰還シフトレジスタ３３により構成される符号器２７と、データ変換部６１と、データ変調／送信部３１とを有している。データ変換部６１は、帰還シフトレジスタ３３により生成された巡回符号のビット配列を入れ替えるビット入れ替え処理を行う機能を有している。受信側２３は、データ受信／復調部３９と、データ変換部６３と、誤り検出器６５とを有している。データ変換部６３は、送信側２１のデータ変換部６１でビットの入れ替え処理されたデータを元の巡回符号に戻す機能を有している。
【０１０３】
誤り検出器６５は、第１の帰還シフトレジスタ６７および第２の帰還シフトレジスタ６９と、比較部７１（比較手段に対応する）とを有している。
なお、この実施形態では、誤り検出器６５は、チャネルCODEC・LSI（Coder Decoder LSI）等の半導体装置ＳＥＭ内に作り込まれている。
第１の帰還シフトレジスタ６７は、図１９に示すように、縦続接続された１６段のフリップフロップ回路X15〜X0（段に対応する。F/F回路X15〜X0と称する）とからなるレジスタ部７３、EOR回路７５ａ（第１の演算部に対応する）、EOR回路７５ｂ（第２の演算部に対応する）、EOR回路７５ｃ（第２の演算部に対応する）を有している。
【０１０４】
第１の帰還シフトレジスタ６７は、送信側２１の帰還シフトレジスタ３３と同一の除算機能を有しており、F/F回路X15〜X0、EOR回路７５ａ、７５ｂ、７５ｃの接続関係は、帰還シフトレジスタ３３と同一にされている。
第１の帰還シフトレジスタ６７の各F/F回路X15〜X0は、各F/F回路X15〜X0に所定の値を設定するためのセット端子Ｓ（所定値設定手段に対応する）、入力端子Ｄ（所定値設定手段に対応する）、および、各F/F回路X15〜X0に保持されている値を外部に出力する出力信号Xout15〜Xout0を有している。各セット端子Ｓには、セット信号Set1が入力されている。各F/F回路X15〜X0の入力端子Ｄには、それぞれ入力信号Xin15〜Xin0が入力されている。各F/F回路X15〜X0は、セット信号Set1の立ち下がりエッジに同期して、入力端子Ｄに入力されている値を取り込む機能を有している。
【０１０５】
第２の帰還シフトレジスタ６９は、図２０に示すように、縦続接続された１６段のフリップフロップ回路X15〜X0（段に対応する。以下、F/F回路X15〜X0と称する）からなるレジスタ部７７（第２のレジスタ部に対応する）、EOR回路７９ａ（第３の演算部に対応する）、EOR回路７９ｂ（第４の演算部に対応する）、EOR回路７９ｃ（第４の演算部に対応する）を有している。
【０１０６】
第２の帰還シフトレジスタ６９は、第１の実施形態の帰還シフトレジスタ４５と同一の除算機能を有しており、F/F回路X15〜X0、EOR回路７９ａ、７９ｂ、７９ｃの接続関係は、帰還シフトレジスタ４５と同一にされている。
第２の帰還シフトレジスタ６９の各F/F回路X15〜X0は、各F/F回路X15〜X0に所定の値を設定するためのセット端子Ｓ（所定値設定手段に対応する）、入力端子Ｄ（所定値設定手段に対応する）、および、各F/F回路X15〜X0に保持されている値を外部に出力する出力信号Yout15〜Yout0を有している。各セット端子Ｓには、セット信号Set2が入力されている。各F/F回路X15〜X0の入力端子Ｄには、それぞれ入力信号Yin15〜Yin0が入力されている。各F/F回路X15〜X0は、セット信号Set2の立ち下がりエッジに同期して、入力端子Ｄに入力されている値を取り込む機能を有している。
【０１０７】
比較部７１は、図２１に示すように、比較回路８１およびフリップフロップ回路８３により構成されている。比較回路８１は、１６個のEOR回路８５と１６入力のNOR回路８７とにより構成されている。各EOR回路８５の２つの入力には、それぞれ、帰還シフトレジスタ６７の出力信号Xout15〜Xout0と帰還シフトレジスタ６９の出力信号Yout15〜Yout0とが、同じ添え数字の信号を対にして入力されている。各EOR回路８５の出力は、NOR回路８７の入力に接続されている。
【０１０８】
フリップフロップ回路８３は、第１の実施形態の比較部４７のフリップフロップ回路５５と同一のものが使用されており、入力端子Ｄ、イネーブル端子ＥＮ、リセット端子Ｒ、出力端子Ｑを有している。フリップフロップ回路８３のイネーブル端子ＥＮには、トリガ信号ＴＧが入力されている。フリップフロップ回路８３のリセット端子Ｒには、リセット信号Resetが入力されている。また、フリップフロップ回路８３の出力端子Ｑからは、誤り情報を出力する誤り検出信号Flagが出力されている。
【０１０９】
NOR回路８７の出力は、フリップフロップ回路８３の入力端子Ｄに接続されている。
図１８に示した通信システムでは、以下示すように、送信側２１から送信されたデータの誤り検出が行われる。ここでは、一例として、６ビットの情報ビット列「０１０１０１」を送信する場合について説明する。
【０１１０】
先ず、送信側２１では、符号器２７は、第１の実施形態と同一の巡回符号「０１０１０１０１１１１０１０１１１０１０００」を生成し、出力信号Dout1により、データ変換部６１に出力する。
データ変換部６１では、入力した巡回符号のビット配列を、所定の規則にしたがってビットの入れ替え処理を行う。ここで、データ変換部６１で行われるビットの入れ替え処理では、後述するデータ変換部６５の処理において、ビットの入れ替え処理が行われた巡回符号を、最上位ビット（MSB）側と最下位ビット（LSB）側からそれぞれ戻すことができるように、ビット配列の入れ替えが行われる。
【０１１１】
ビットの入れ替え処理が行われた巡回符号は、データ変調／送信部３１、伝送路、データ受信／復調部３９により、受信側２３のデータ変換部６５に出力される。
データ変換部６５は、ビットの入れ替え処理が行われた巡回符号を順次、最上位ビット（MSB）側と最下位ビット（LSB）側から元の巡回符号に戻す処理を行う。
【０１１２】
データ変換部６５は、最上位ビット側の巡回符号を順次、誤り検出器６５の第１の帰還シフトレジスタ６７に出力し、最下位ビット側の巡回符号を順次、第２の帰還シフトレジスタ６９に出力する。
図２２は、データ変換部６５から送られる巡回符号を受けて、第１の帰還シフトレジスタ６７が動作したときの各F/F回路X15〜X0の状態を示している。
【０１１３】
ここで、第１の帰還シフトレジスタ６７の各F/F回路X15〜X0は、図１９における誤り検出器６５が制御するセット信号Set1により、入力信号Xin15〜Xin0を使用して、予め全て「１」に設定されている。
第１の帰還シフトレジスタ６７の各F/F回路X15〜X0の状態は、クロック信号CLK2に同期して、「状態０」から「状態１１」まで変化する。なお、図中「状態１２」〜「状態２２」は、巡回符号を最上位ビットから全て入力したと仮定した場合における第１の帰還シフトレジスタ６７の各F/F回路X15〜X0の状態であり、この実施形態では、使用しない状態である。
【０１１４】
「状態１１」における第１の帰還シフトレジスタ６７の各F/F回路X15〜X0の値は、出力信号Xout15〜Xout0により、比較回路８１に出力される。
図２３は、データ変換部６５から送られる巡回符号を受けて、第２の帰還シフトレジスタ６９が動作したときの各F/F回路X15〜X0の状態を示している。
ここで、第２の帰還シフトレジスタ６９の各F/F回路X15〜X0は、図２０における誤り検出器６５が制御するセット信号Set2により、入力信号Yin15〜Yin0を使用して、予め全て「０」に設定されている。
【０１１５】
第２の帰還シフトレジスタ６９の各F/F回路X15〜X0の状態は、クロック信号CLK2に同期して、「状態０」から「状態１１」まで変化する。なお、図中「状態１２」〜「状態２２」は、巡回符号を最上位ビットから全て入力したと仮定した場合における第２の帰還シフトレジスタ６９の各F/F回路X15〜X0の状態であり、この実施形態では、使用しない状態である。
【０１１６】
ここで、図２２の「状態０」〜「状態２２」は、それぞれ図２３の「状態２２」〜「状態０」に一致している。すなわち、第２の帰還シフトレジスタ６９の変化は、図２２における「状態２２」から「状態０」に向けての変化と同一になる。
「状態１１」における第２の帰還シフトレジスタ６９の各F/F回路X15〜X0の値は、出力信号Yout15〜Yout0により、図２１における比較回路８１に出力される。
【０１１７】
比較回路８１では、出力信号Xout15〜Xout0と出力信号Yout15〜Yout0とが、それぞれEOR回路８５に入力され、演算結果がNOR回路８７に出力される。上述した例では、出力信号Xout15〜Xout0と出力信号Yout15〜Yout0とが全て一致しているため、各EOR回路８５は、全て「０」を出力する。
NOR回路８７は、各EOR回路８５からの「０」を入力して論理演算を行い、フリップフロップ回路８３に「１」を出力する。
【０１１８】
フリップフロップ回路８３は、トリガ信号ＴＧに同期して、NOR回路８７が出力する「１」を取り込み、誤り検出信号Flagに「１」を出力する。誤り検出器６５は、誤り検出信号Flagの「１」を検出し、受信したデータに誤りがなかったと判定する。また、誤り検出器６５は、フリップフロップ回路８３の誤り検出信号Flagの「０」を検出したときには、受信したデータに誤りがあった判定する。受信側２３はこの判定を受けて、送信側２１に対して再送指示等を行う。
【０１１９】
このように、誤り検出器６５は、第１の帰還シフトレジスタ６７および第２の帰還シフトレジスタ６９を、それぞれ、「状態０」から「状態１１」まで移動させ、「状態１１」での各F/F回路X15〜X0の値が同じであるか否かを判定することで、データ伝送時の誤りを検出する。
【０１２０】
なお、トリガ信号ＴＧおよびリセット信号Resetは、誤り検出器６５に制御されている。フリップフロップ回路８３は、NOR回路８７が出力する「１」を取り込む前に、リセット信号Resetによりリセットされており、このとき誤り検出信号Flagからは「０」が出力されている。
この実施形態の誤り検出器、半導体装置、通信システムにおいても、上述した第１ないし第３の実施形態と同様の効果を得ることができるが、この実施形態では、第１の帰還シフトレジスタ６７を、生成多項式Ｘ16＋Ｘ15＋Ｘ4＋１に対応する送信側２１の帰還シフトレジスタ３３に対して、シフト方向および帰還方向を同じ向きに構成し、第２の帰還シフトレジスタ６９を、生成多項式Ｘ16＋Ｘ15＋Ｘ4＋１に対応する送信側２１の帰還シフトレジスタ３３に対して、シフト方向および帰還方向を逆向きに構成した。このため、第１の帰還シフトレジスタ６７は、巡回符号を送信側２１で生成した順序と同じ順序（最上位ビット側〜）で入力することができ、第２の帰還シフトレジスタ６９は、巡回符号を送信側２１で生成した順序と逆の順序（最下位ビット側〜）で入力することができる。したがって、第１の帰還シフトレジスタ６７および第２の帰還シフトレジスタ６９を、それぞれ所定の回数だけシフトと動作した後に、第１のレジスタ部７３の値と、第２のレジスタ部７７の値とを比較し、両者が一致するか否かにより、受信ビット列の誤りを検出することができる。これは、第１の帰還シフトレジスタ６７をシフト動作し、送信側２１で生成した送信ビット列と同じ順序で受信ビット列を入力していくことで、各状態における第１の帰還シフトレジスタ６７の第１のレジスタ部７３の値は、送信側２１の帰還シフトレジスタ３３をシフト動作したときと同一の方向に変化し、また、第２の帰還シフトレジスタ６９をシフト動作し、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力していくことで、各状態における第２の帰還シフトレジスタ６９の第２のレジスタ部７７の値は、送信側２１の帰還シフトレジスタ３３により生成した検査ビット列を、初期値に戻す方向に変化するためである。
【０１２１】
また、以上のように構成された通信システムでは、送信側２１の符号器２７で生成した送信ビット列を、受信ビット列として受信側で受信し、この受信ビット列を、第１の帰還シフトレジスタ６７に対しては、符号器２７で生成した順序と同じ順序で入力し、第２の帰還シフトレジスタ６９に対しては、符号器２７で生成した順序と逆の順序で入力したので、第１の帰還シフトレジスタ６７の第１のレジスタ部７３の値と第２の帰還シフトレジスタ６９の第２のレジスタ部７７の値とが一致するか否かにより、受信ビット列の誤りを検出するこができる。
【０１２２】
なお、上述した第１の実施形態では、送信側２１の帰還シフトレジスタ３３の初期値を全て「１」にし、比較部４７にAND回路５３を備えた例について述べたが、本発明はかかる実施形態に限定されるものではなく、例えば、送信側２１の帰還シフトレジスタ３３の初期値を全て「０」にし、図２４に示すように、比較部４７に１６入力のNOR回路８９を形成してもよい。送信側２１の帰還シフトレジスタ３３の初期値を１６進数で「５５５５］にし、図２５に示すように、奇数番号の出力信号Xout15,Xout13,...Xout1を、交互にインバータ回路９１を介して比較部４７のAND回路５３に入力してもよい。
【０１２３】
そして、上述した第１の実施形態では、帰還シフトレジスタ４５の各フリップフロップX15〜X0から出力信号Xout15〜Xout0を出力した例について述べたが、本発明はかかる実施形態に限定されるものではなく、例えば、図２６に示すように、F/F回路X0の出力Dout3とEOR回路５１ａ、５１ｂ、５１ｃとの間にスイッチＳ５を配置してもよい。この場合には、スイッチＳ５を開いた状態で、帰還シフトレジスタ４５を動作させることにより、各フリップフロップX15〜X0に保持されている値を、出力信号Dout3から１ビットずつ出力することができる。
【０１２４】
さらに、上述した第１の実施形態では、ビタビ復号器３１を備えた受信側２３における誤り検出に、本発明を適用した例について述べたが、本発明はかかる実施形態に限定されるものではなく、例えば、誤り検出器４３に送信側２１における巡回符号の生成順序と逆に入力される仕様の全ての受信側に適用することができる。
【０１２５】
また、上述した第１および第４の実施形態では、誤り検出器４３および誤り検出器６５をチャネルCODEC・LSI等の半導体装置ＳＥＭ内に作り込んだ例について述べたが、本発明はかかる実施形態に限定されるものではなく、例えば、DSP（Digital Signal Processor）、CPU（Central Processing Unit）等の半導体装置を用いて、プログラムによりこれ等半導体装置内の汎用の回路を利用することで、誤り検出処理を行ってもよい。この場合、半導体装置は、プログラムにしたがって除算手順（除算手順、または第１の除算手順、第２の除算手順に対応する）を実行し、誤りの検出を行う。除算手順に必要な除数、被除数、剰余等のデータは、汎用レジスタ等のバッファ部（バッファ部、または第１のバッファ部、第２のバッファ部に対応する）に保持される。
【０１２６】
したがって、半導体装置がプログラムにしたがって実行する受信ビット列データの生成多項式での除算順序を、送信側において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行い、求めた剰余から受信ビット列の誤りを検出することができる。
また、半導体装置がプログラムにしたがって実行する除算手順により求めた剰余と、予め設定された期待値とを比較し、比較結果が異なるときに、受信ビット列を誤りと判定することができる。半導体装置がプログラムにしたがって除算手順を実行する前に、除算手順により求める剰余を入力するバッファ部を、「０」に初期化することで、誤り検出を行う処理時間を低減することができる。半導体装置がプログラムにしたがって除算手順を実行する前に、除算手順により求める剰余を入力するバッファ部を、所定の値に設定することで、誤り検出を行う処理時間を低減することができる。
【０１２７】
そして、上述した第４の実施形態では、第１の帰還シフトレジスタ６７および第２の帰還シフトレジスタ６９を、それぞれ「状態０」〜「状態１１」まで移動させ、各「状態１１」での各F/F回路X15〜X0の値を比較することで、誤りを検出した例について述べたが、本発明はかかる実施形態に限定されるものではなく、例えば、第１の帰還シフトレジスタ６７を「状態１５」まで移動させ、第２の帰還シフトレジスタ６９を「状態７」まで移動させ、第１の帰還シフトレジスタ６７の「状態１５」と、第２の帰還シフトレジスタ６９の「状態７」とを比較することで、誤りを検出してもよい。すなわち、この実施形態では、第１の帰還シフトレジスタ６７は、図２２における「状態０」から「状態２２」に向けて変化し、第２の帰還シフトレジスタ６９は、図２２における「状態２２」から「状態０」に向けて変化するため、第１の帰還シフトレジスタ６７の「状態」の変化数と、第２の帰還シフトレジスタ６９の「状態」の変化数との和が、「２２」になったときに、両者の「状態」が一致し、このときに、両者を比較することで誤りを検出することができる。
【０１２８】
したがって、データ変換部３９により最上位ビット側から変換される巡回符号と、最下位ビット側から変換される巡回符号とのそれぞれビット長（「状態」の変化数）に応じて、両者をどの「状態」で一致させるかを決めることで、誤り検出に要する処理時間を最も効率よく低減することができる。
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）  所定の生成多項式の帰還シフトレジスタの除算処理結果が付加され、畳み込み符号化され、送信側から送信された信号を受信した受信ビット列を、ビタビ復号処理の上、復号結果を生成多項式で除算する帰還シフトレジスタを備え、該帰還シフトレジスタで求めた剰余から前記受信ビット列の誤りを検出する誤り検出器において、
前記帰還シフトレジスタのシフト方向および帰還方向は、前記送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成されたことを特徴とする誤り検出器。
（付記２）  付記１記載の誤り検出器において、
前記帰還シフトレジスタは、前記所定の生成多項式の最高次と同数の段数を有するレジスタ部と、
前記レジスタ部への入力値と最終段の出力値とを演算し、演算結果を初段に出力する第１の演算部と、
前記所定の生成多項式の項のうち、最高次および最低次を除く項の次数に対応する段の出力値と前記最終段の出力値とをそれぞれ演算し、各演算結果を次段に出力する第２の演算部とを備えたことを特徴とする誤り検出器。
（付記３）  付記１または付記２記載の誤り検出器において、
前記帰還シフトレジスタで求めた前記剰余と、予め設定された期待値とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段を備えたことを特徴とする誤り検出器。
（付記４）  付記２または付記３記載の誤り検出器において、
前記帰還シフトレジスタの前記レジスタ部を初期化する初期化手段を備えたことを特徴とする誤り検出器。
（付記５）  付記２または付記３記載の誤り検出器において、
前記帰還シフトレジスタの前記レジスタ部に所定の値を設定する所定値設定手段を備えたことを特徴とする誤り検出器。
（付記６）  付記１ないし付記５のいずれか１項記載の誤り検出器を備えたことを特徴とする半導体装置。
（付記７）  付記１ないし付記５のいずれか１項記載の誤り検出器を備えた受信手段と、
前記所定の生成多項式を使用して送信すべきビット列から前記送信ビット列を生成する符号器を備えた送信手段と、
前記受信手段と前記送信手段とを接続する伝送路とを備えたことを特徴とする通信システム。
（付記８）  付記６記載の半導体装置を備えた受信手段と、
前記所定の生成多項式を使用して送信すべきビット列を符号化する符号器を備えた送信手段と、
前記受信手段と前記送信手段とを接続する伝送路とを備えたことを特徴とする通信システム。
（付記９）  付記７または付記８記載の通信システムにおいて、
前記送信手段は、前記送信ビット列を畳み込み符号に変換する畳み込み符号器を備え、
前記受信手段は、前記伝送路を介して受信した畳み込み符号を復号する復号器を備えたことを特徴とする通信システム。
（付記１０）  ビタビ復号処理を行った受信ビット列を所定の生成多項式を除数とする除算手順に入力し、求めた剰余から前記受信ビット列の誤りを検出する誤り検出方法において、
前記除算手順への前記受信ビット列の入力は、送信側において畳み込み符号化処理を行い、前記生成多項式を用いて除算処理された除算処理結果が付加された送信ビット列を生成する生成順序と逆の順序で行われることを特徴とする誤り検出方法。
（付記１１）  付記１０記載の誤り検出方法において、
前記除算手順により求めた剰余と、予め設定された期待値とを比較し、比較結果が異なるときに、前記受信ビット列を誤りと判定することを特徴とする誤り検出方法。
（付記１２）  付記１０または付記１１記載の誤り検出方法において、
前記除算手順の実行前に、該除算手順により求める剰余を入力するバッファ部を初期化することを特徴とする誤り検出方法。
（付記１３）  付記１０または付記１１記載の誤り検出方法において、
前記除算手順の実行前に、該除算手順により求める剰余を入力するバッファ部を所定の値に設定することを特徴とする誤り検出方法。
（付記１４）  ビタビ復号処理された受信ビット列を生成多項式で除算する第１の帰還シフトレジスタと第２の帰還シフトレジスタとを備え、
前記第１の帰還シフトレジスタのシフト方向および帰還方向は、送信側において所定の生成多項式を用いて送信ビット列を生成する際のシフト方向および帰還方向と同じ向きに構成され、
前記第２の帰還シフトレジスタのシフト方向および帰還方向は、送信側において前記所定の生成多項式を用いて前記送信ビット列を生成する際のシフト方向および帰還方向と逆向きに構成され、
前記第１の帰還シフトレジスタにより求めた剰余と、前記第２の帰還シフトレジスタにより求めた剰余とから前記受信ビット列の誤りを検出することを特徴とする誤り検出器。
（付記１５）  付記１４記載の誤り検出器において、
前記第１の帰還シフトレジスタは、
前記所定の生成多項式の最高次と同数の段数を有する第１のレジスタ部と、
前記第１のレジスタ部への入力値と最終段の出力値とを演算し、演算結果を初段に出力する第１の演算部と、
前記所定の生成多項式の項のうち、最高次および最低次を除く項の次数より一つ少ない番号の段の出力値と前記第１の演算部による演算結果とをそれぞれ演算し、各演算結果を次段に出力する第２の演算部とを備え、
前記第２の帰還シフトレジスタは、
前記所定の生成多項式の最高次と同数の段数を有する第２のレジスタ部と、
前記第２のレジスタ部への入力値と最終段の出力値とを演算し、演算結果を初段に出力する第３の演算部と、
前記所定の生成多項式の項のうち、最高次および最低次を除く項の次数に対応する段の出力値と前記最終段の出力値とをそれぞれ演算し、各演算結果を次段に出力する第４の演算部とを備えたことを特徴とする誤り検出器。
（付記１６）  付記１４または付記１５記載の誤り検出器において、
前記第１の帰還シフトレジスタで求めた剰余と、前記第２の帰還シフトレジスタで求めた剰余とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段を備えたことを特徴とする誤り検出器。
（付記１７）  付記１４ないし付記１６のいずれか１項記載の誤り検出器において、
前記第１の帰還シフトレジスタと、前記第２の帰還シフトレジスタとに、それぞれ所定の値を設定する所定値設定手段を備えたことを特徴とする誤り検出器。
（付記１８）  付記１４ないし付記１７のいずれか１項記載の誤り検出器を備えたことを特徴とする半導体装置。
（付記１９）  付記１４ないし付記１７のいずれか１項記載の誤り検出器を備えた受信手段と、
前記所定の生成多項式を使用して送信すべきビット列を前記送信ビット列に符号化する符号器を備えた送信手段と、
前記受信手段と前記送信手段とを接続する伝送路とを備えたことを特徴とする通信システム。
（付記２０）  付記１８記載の半導体装置を備えた受信手段と、
前記所定の生成多項式を使用して送信すべきビット列を符号化する符号器を備えた送信手段と、
前記受信手段と前記送信手段とを接続する伝送路とを備えたことを特徴とする通信システム。
（付記２１）  畳み込み符号化された受信ビット列を所定の生成多項式を除数とする除算手順に入力し、求めた剰余から前記受信ビット列の誤りを検出する誤り検出方法において、
前記受信ビット列を前記生成多項式で除算する第１の除算手順と第２の除算手順とを備え、
前記第１の除算手順への前記受信ビット列の入力は、送信側において前記生成多項式を用いて送信ビット列を生成する生成順に行われ、
前記第２の除算手順への前記受信ビット列の入力は、送信側において前記生成多項式を用いて前記送信ビット列を生成する生成順序と逆の順序で行われ、
前記第１の除算手順により求めた剰余と、前記第２の除算手順により求めた剰余とを比較し、比較結果が異なるときに、前記受信ビット列を誤りと判定することを特徴とする誤り検出方法。
（付記２２）  付記２１記載の誤り検出方法において、
前記第１および第２の除算手順の実行前に、該第１の除算手順により求める剰余を入力する第１のバッファ部および該第２の除算手順により求める剰余を入力する第２のバッファ部を、それぞれ所定の値に設定することを特徴とする誤り検出方法。
付記４の誤り検出器では、帰還シフトレジスタのレジスタ部を初期化する初期化手段を備えたので、帰還シフトレジスタをシフト動作することなく、レジスタ部を初期化することができ、帰還シフトレジスタをシフト動作するだけで、受信ビット列のうち、送信側で生成した剰余（検査ビット列）をレジスタ部に取り込むことができる。
付記５の誤り検出器では、帰還シフトレジスタのレジスタ部に所定の値を設定する所定値設定手段を備えたので、帰還シフトレジスタをシフト動作させることなく、送信側で求めた剰余（検査ビット列）を、一度にレジスタ部に取り込むことができる。
付記６の半導体装置では、この半導体装置の内部に誤り検出器を有したので、半導体装置を、他の通信機能部とともに形成することで、製造コストを増大することなく、誤り検出器を構成することができる。
また、誤り検出器を構成する帰還シフトレジスタは、送信側の帰還シフトレジスタに対してシフト方向および帰還方向を逆向きにしただけの構成であるため、従来使用している半導体装置が送信側と同じ構成の帰還シフトレジスタを有する場合には、この半導体装置の配線層のマスクを取り替えて、帰還シフトレジスタの配線を変更するだけで、容易に、シフト方向および帰還方向が逆向きの帰還シフトレジスタを備えた半導体装置を形成することができる。したがって、回路規模を増大することなく、誤り検出器を半導体装置内に作り込むことができる。この際、半導体装置のチップサイズ、パッド位置等は一切変更する必要がなく、変更が半導体装置の外部にまで及ぶことを防止することができる。
付記９の通信システムでは、送信側に送信ビット列を畳み込み符号に変換する畳み込み符号器を備え、受信側に受信した畳み込み符号を復号する復号器を備えたので、復号器により送信ビット列と生成順序と逆の順序で復号されたビット列を、そのまま誤り検出器に順次入力していくことで、誤りを検出することができる。
この結果、従来、復号器から逆の順序で復号されるビット列を、符号化された順序に戻すための変換回路およびこの変換回路による処理が不要になり、受信手段の回路規模を低減することができ、誤り検出に要する処理時間を低減することができる。
付記１１の誤り検出方法では、除算手順により求めた剰余と、予め設定された期待値とを比較し、比較結果が異なるときに、受信ビット列を誤りと判定したので、誤り検出を行う処理時間を低減することができる。
付記１５の誤り検出器では、第１の帰還シフトレジスタをシフト動作し、送信側で生成した送信ビット列と同じ順序で受信ビット列を入力していくことで、各状態における第１の帰還シフトレジスタの第１のレジスタ部の値を、送信側の帰還シフトレジスタをシフト動作したときと同一の方向に変化させることができる。第２の帰還シフトレジスタをシフト動作し、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力していくことで、各状態における第２の帰還シフトレジスタの第２のレジスタ部の値を、送信側の帰還シフトレジスタにより生成した検査ビット列を、初期値に戻す方向に変化させることができる。したがって、第１の帰還シフトレジスタおよび第２の帰還シフトレジスタをそれぞれシフト動作したときに、所定の状態において第１のレジスタ部の値と第２のレジスタ部の値とが一致するか否かにより、受信ビット列の誤りを検出することができる。
付記１６の誤り検出器では、第１の帰還シフトレジスタで求めた剰余と、第２の帰還シフトレジスタで求めた剰余とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段を備えたの、比較手段の比較結果により、誤りを検出することができる。
付記１８の半導体装置では、この半導体装置の内部に誤り検出器を有したので、半導体装置を、他の通信機能部とともに形成することで、製造コストを増大することなく、誤り検出器を構成することができる。
付記１９および付記２０の通信システムでは、送信側の符号器で生成した送信ビット列を、受信ビット列として受信側で受信し、この受信ビット列を、第１の帰還シフトレジスタに対しては、符号器で生成した順序と同じ順序で入力し、第２の帰還シフトレジスタに対しては、符号器で生成した順序と逆の順序で入力したので、第１の帰還シフトレジスタの値と第２の帰還シフトレジスタの値とが一致するか否かにより、受信ビット列の誤りを検出することができる。したがって、第１および第２の帰還シフトレジスタに、全ての受信ビット列を入力する必要がなくなり、従来に比べ、誤り検出に要する処理時間を大幅に低減することができ、伝送効率を低下させることなくデータの伝送を行うことができる。
付記２２の誤り検出方法では、第１および第２の除算手順の実行前に、第１の除算手順により求める剰余を入力する第１のバッファ部および第２の除算手順により求める剰余を入力する第２のバッファ部を、それぞれ所定の値に設定したので、誤り検出を行う処理時間を低減することができる。
【０１２９】
【発明の効果】
上述した図１に示した帰還シフトレジスタを有する誤り検出器では、帰還シフトレジスタに、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力し、入力した受信ビット列を順次除算し、剰余を生成することで、この剰余から容易に、受信ビット列の誤りを検出することができる。したがって、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力する場合に、誤り検出に要する処理時間を低減することができ、誤り検出処理を効率よく行うことができる。
【０１３０】
例えば、この誤り検出器では、帰還シフトレジスタをシフト動作し、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力することで、各状態における帰還シフトレジスタのレジスタ部の値を、送信側の帰還シフトレジスタにより生成した検査ビット列を初期値に戻す方向に変化させることができる。したがって、帰還シフトレジスタを所定の回数だけシフト動作したときのレジスタ部の値と、送信側の帰還シフトレジスタの初期値とが一致しないときに、受信ビット列に誤りがあると判定することができる。
【０１３１】
上述した図２に示した誤り検出器では、帰還シフトレジスタで求めた剰余と予め設定された期待値とを比較し、比較結果が異なったことを示す誤り情報を出力する比較手段を備えたので、比較手段の比較結果により、誤りを検出することができる。
【０１３４】
本発明の通信システムでは、送信側の符号器で生成した送信ビット列を、受信ビット列として受信側で受信し、この受信ビット列を、符号器で生成した順序と逆の順序で誤り検出器に入力することで、受信ビット列の誤りを検出することができる。したがって、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力する場合に、誤り検出に要する処理時間を低減することができ、伝送効率を低下させることなくデータの伝送を行うことができる。
【０１３６】
本発明の誤り検出方法では、所定の生成多項式を除数とする除算手順への受信ビット列の入力を、送信側において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行ったので、求めた剰余から受信ビット列の誤りを検出することで、誤り検出を行う処理時間を低減することができる。
【０１３７】
例えば、誤り検出方法では、除算手順の実行前に、この除算手順により求める剰余を入力するバッファ部を初期化したので、誤り検出を行う処理時間を低減することができる。
【０１３８】
また、例えば、誤り検出方法では、除算手順の実行前に、この除算手順により求める剰余を入力するバッファ部を、所定の値に設定したので、誤り検出を行う処理時間を低減することができる。
上述した図３に示した第１、第２の帰還シフトレジスタを有する誤り検出器では、第１の帰還シフトレジスタに、送信側で生成した送信ビット列と同じ順序で受信ビット列を入力し、除算を行うことで剰余を生成し、第２の帰還シフトレジスタに、送信側で生成した送信ビット列と逆の順序で受信ビット列を入力し、除算を行うことで剰余を生成したので、第１の帰還シフトレジスタにより求めた剰余と、第２の帰還シフトレジスタにより求めた剰余とが一致するか否かにより、受信ビット列の誤りを検出することができる。したがって、第１および第２の帰還シフトレジスタに、全ての受信ビット列を入力する必要がなくなり、従来に比べ、誤り検出に要する処理時間を大幅に低減することができる。
【０１４０】
例えば、誤り検出器では、第１の帰還シフトレジスタと、第２の帰還シフトレジスタとに、それぞれ所定の値を設定する所定値設定手段を備えたので、第１および第２の帰還シフトレジスタをシフト動作することなく、第１および第２のレジスタ部に所定の値を設定することができる。
【０１４２】
また、例えば、誤り検出方法では、所定の生成多項式を除数する第１の除算手順への受信ビット列の入力を、送信側において生成多項式を用いて送信ビット列を生成する順序と同じ順序で行い、所定の生成多項式を除数する第２の除算手順への受信ビット列の入力を、送信側において生成多項式を用いて送信ビット列を生成する生成順序と逆の順序で行い、第１の除算手順により求めた剰余と、第２の除算手順により求めた剰余とを比較し、比較結果が異なるときに、受信ビット列が誤りと判定したので、誤り検出を行う処理時間を低減することができる。
【図面の簡単な説明】
【図１】  本発明の原理構成図である。
【図２】  本発明の原理構成図である。
【図３】  本発明の原理構成図である。
【図４】  本発明の原理構成図である。
【図５】本発明の誤り検出器、誤り検出器を備えた半導体装置と通信システム、および誤り検出方法の第１の実施形態を示す構成図である。
【図６】送信側の帰還シフトレジスタを示す回路構成図である。
【図７】受信側の帰還シフトレジスタを示す回路構成図である。
【図８】比較部を示す回路構成図である。
【図９】送信側の帰還シフトレジスタの動作を示す状態図である。
【図１０】送信側の帰還シフトレジスタの動作を示す状態図である。
【図１１】送信側の帰還シフトレジスタの動作を示すタイミング図である。
【図１２】受信側の帰還シフトレジスタの動作を示す状態図である。
【図１３】受信側の帰還シフトレジスタの動作を示すタイミング図である。
【図１４】本発明の誤り検出器の第２の実施形態を示す回路構成図である。
【図１５】受信側の帰還シフトレジスタの動作を示すタイミング図である。
【図１６】本発明の誤り検出器の第３の実施形態を示す回路構成図である。
【図１７】受信側の帰還シフトレジスタの動作を示すタイミング図である。
【図１８】本発明の誤り検出器、誤り検出器を備えた半導体装置と通信システム、および誤り検出方法の第４の実施形態を示す回路構成図である。
【図１９】第１の帰還シフトレジスタを示す回路構成図である。
【図２０】第２の帰還シフトレジスタを示す回路構成図である。
【図２１】比較部を示す回路構成図である。
【図２２】第１の帰還シフトレジスタの動作を示す状態図である。
【図２３】第２の帰還シフトレジスタの動作を示す状態図である。
【図２４】比較部にNOR回路を形成した例を示す回路構成図である。
【図２５】比較部にインバータ回路とAND回路とを形成した例を示す回路構成図である。
【図２６】帰還シフトレジスタの別の例を示す回路構成図である。
【図２７】従来の通信システムを示す構成図である。
【図２８】帰還シフトレジスタを示す回路構成図である。
【図２９】送信側の帰還シフトレジスタの動作を示す状態図である。
【図３０】受信側の帰還シフトレジスタの動作を示す状態図である。
【図３１】従来の別の通信システムを示す構成図である。
【符号の説明】
２１  送信側（送信手段に対応する）
２３  受信側（受信手段に対応する）
２５  無線伝送路（伝送路に対応する）
２７  符号器
２９  畳み込み符号器
３１  データ変調／送信部
３３  帰還シフトレジスタ
３５  レジスタ部
３７ａ、３７ｂ、３７ｃ  EOR回路
３９  データ受信／復調部
４１  ビタビ復号器４１（復号器に対応する）
４３  誤り検出器
４５  帰還シフトレジスタ
４７  比較部
４９  レジスタ部
５１ａ  EOR回路（第１の演算部に対応する）
５１ｂ、５１ｃ  EOR回路（第２の演算部に対応する）
５３  AND回路
５５  フリップフロップ回路
５７  帰還シフトレジスタ
５９  帰還シフトレジスタ
６１  データ変換部
６３  データ変換部
６５  誤り検出器
６７  第１の帰還シフトレジスタ
６９  第２の帰還シフトレジスタ
７１  比較部（比較手段に対応する）
７３  レジスタ部（第１のレジスタ部に対応する）
７５ａ  EOR回路（第１の演算部に対応する）
７５ｂ、７５ｃ  EOR回路（第２の演算部に対応する）
７７  レジスタ部（第２のレジスタ部に対応する）
７９ａ  EOR回路（第３の演算部に対応する）
７９ｂ、７９ｃ  EOR回路（第４の演算部に対応する）
８１  比較回路
８３  フリップフロップ回路
８５  EOR回路
８７  NOR回路
８９  NOR回路
ＣＬＫ１  クロック信号
Ｄ  入力端子（所定値設定手段に対応する）
Ｄｉｎ１  入力信号
Ｄｏｕｔ１  出力信号
ＥＮ  イネーブル端子
Ｆｌａｇ  誤り検出信号
Ｑ  出力端子
Ｒ  リセット端子（初期化手段に対応する）
Ｒｅｓｅｔ  リセット信号（初期化手段に対応する）
Ｓ  セット端子（所定値設定手段に対応する）
Ｓ１、Ｓ２、Ｓ３、Ｓ４  スイッチ
ＳＥＭ  半導体装置
Ｓｅｔ、Ｓｅｔ１、Ｓｅｔ２  セット信号（所定値設定手段に対応する）
ＴＧ  トリガ信号
X15〜X0  フリップフロップ回路、F/F回路（段に対応する）
Xin15〜Xin0  入力信号（所定値設定手段に対応する）
Xout15〜Xout0 出力信号
Yin15〜Yin0  入力信号（所定値設定手段に対応する）
Yout15〜Yout0 出力信号
【図１】
0004071879.tif 000002
【図２】
0004071879.tif 000003
【図３】
0004071879.tif 000004
【図４】
0004071879.tif 000005
【図５】
0004071879.tif 000006
【図６】
0004071879.tif 000007
【図７】
0004071879.tif 000008
【図８】
0004071879.tif 000009
【図９】
0004071879.tif 000010
【図１０】
0004071879.tif 000011
【図１１】
0004071879.tif 000012
【図１２】
0004071879.tif 000013
【図１３】
0004071879.tif 000014
【図１４】
0004071879.tif 000015
【図１５】
0004071879.tif 000016
【図１６】
0004071879.tif 000017
【図１７】
0004071879.tif 000018
【図１８】
0004071879.tif 000019
【図１９】
0004071879.tif 000020
【図２０】
0004071879.tif 000021
【図２１】
0004071879.tif 000022
【図２２】
0004071879.tif 000023
【図２３】
0004071879.tif 000024
【図２４】
0004071879.tif 000025
【図２５】
0004071879.tif 000026
【図２６】
0004071879.tif 000027
【図２７】
0004071879.tif 000028
【図２８】
0004071879.tif 000029
【図２９】
0004071879.tif 000030
【図３０】
0004071879.tif 000031
【図３１】
0004071879.tif 000032