(57)【特許請求の範囲】
【請求項１】
シンボル数ｔに当たるエラー訂正能力を有するリードソロモンコードで符号化された受信シンボルのエラーを訂正して復号化する、高画質テレビに用いられるリードソロモンデコーダにおいて、
シンボルクロックよりｔ倍速いＲＳクロックを発生するクロック発生手段と、
前記ＲＳクロックに応答して、前記受信シンボルをラッチする先入先出手段と、
前記ＲＳクロックに応答して、前記受信シンボルのシンドローム値を計算するシンドローム計算手段と、
シンドローム選択信号に応答して、前記シンドローム計算手段で計算されたシンドローム値又は“０ｘ００”値を選択的に出力するシンドローム選択手段と、
前記ＲＳクロックに応答して、前記シンドローム選択手段から出力されたシンドローム値を基にエラー位置多項式を計算し、前記エラー位置多項式の係数及び最大次数を出力するエラー位置多項式計算手段と、
前記シンドローム選択手段から出力されたシンドローム値及び前記エラー位置多項式の係数からエラー値を計算し、計算されたエラー値を用いてエラーが訂正された復元コードワードを生成し、前記エラー位置多項式の最大次数から前記エラーが訂正された復元コードワードのエラー訂正が正確であるか否かを判断するエラー訂正部と、
複数の制御信号を生成して前記各部を制御する制御手段と、
前記受信シンボルとエラーが訂正された前記復元コードワードとをビット別に比較することにより、ビットエラー率を計算するビットエラー率計算部とを含み、
前記ビットエラー率計算部が、
所定のシンボル単位で、受信シンボルとエラーが訂正された前記復元シンボルのビットとを比較することにより、２つのビットが相違する場合を検出するエラービット検査手段と、前記エラービット検査手段で検出された２つのビットが相違する場合をカウントして、所定のコードワード単位の間に発生した第１エラービット数を出力するエラービットカウンティング手段と、前記エラービットカウンティング手段から出力された前記第１エラービット数を受信して、所定の検査周期の間に発生した第２エラービット数を計算し、前記ビットエラー率を出力するエラービット数計算手段とで構成され、さらに、
前記シンボル数ｔが１０の倍数であることを特徴とする高画質テレビにおけるリードソロモンデコーダ。
【請求項２】
前記シンドローム計算手段は、
前記ＲＳクロックに同期してカウンティングを行い、カウントされた値をα根選択信号として提供するカウンティング手段と、
第１群のα根を格納する第１格納部と、
前記受信シンボルを受信して、前記ＲＳクロック単位で、前記α根選択信号に応答し、前記第１格納部に格納された第１群のα根を用いて第１群のシンドローム値を計算する第１シンドローム計算セルと、
第２群のα根を格納する第２格納部と、
前記受信シンボルを受信して、前記ＲＳクロック単位で、前記α根選択信号に応答し、前記第２格納部に格納された第２群のα根を用いて第２群のシンドローム値を計算する第２シンドローム計算セルと、
前記制御手段から出力された第１シンドローム選択信号に応答して、前記第１シンドローム計算セルで計算された第１群のシンドローム値を順次選択して出力する第１選択手段と、
前記制御手段から出力された第２シンドローム選択信号に応答して、前記第２シンドローム計算セルで計算された第２群のシンドローム値を順次選択して出力する第２選択手段と、
前記制御手段から出力された第３シンドローム選択信号に応答して、前記第１選択手段の出力と前記第２選択手段の出力のうちの１つを選択して出力する第３選択手段とで構成されていることを特徴とする請求項１に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項３】
前記第１シンドローム計算セルは、
第１群のレジスタからなり、前記ＲＳクロックに応答して、コードワードの１番目のシンボル（Ｒ_２０６）から、最後から２番目のシンボル（Ｒ_１）までの計算された中間シンドローム値を格納する第１シフトレジスタと、
第２群のレジスタからなり、前記ＲＳクロックに応答して、コードワードの１番目のシンボルから最後のシンボルまでの計算された最終シンドローム値を格納する第２シフトレジスタと、
前記第１及び第２シフトレジスタを制御するための複数の制御信号を発生する制御信号発生手段と、
前記コードワードの１番目のシンボルから、最後から２番目のシンボルまでが入力される間は前記第１シフトレジスタの出力を選択し、最後のシンボルが入力される間は前記第２シフトレジスタの出力を選択して出力する項選択手段と、
前記α根選択信号に応答して、選択された前記第１群のα根と前記中間シンドローム値とをガロア体乗算し、乗算された値と前記受信シンボルとを前記ＲＳクロック単位でガロア体加算し、加算された値を各々中間シンドローム値及び最終シンドローム値として、前記第１及び第２シフトレジスタに出力するシンドローム項演算手段とで構成されていることを特徴とする請求項２に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項４】
前記第２シンドローム計算セルは、
第１群のレジスタからなり、前記ＲＳクロックに応答して、コードワードの１番目のシンボル（Ｒ_２０６）から、最後から２番目のシンボル（Ｒ_１）までの計算された中間シンドローム値を格納する第１シフトレジスタと、
第２群のレジスタからなり、前記ＲＳクロックに応答して、コードワードの１番目のシンボルから最後のシンボルまでの計算された最終シンドローム値を格納する第２シフトレジスタと、
前記第１及び第２シフトレジスタを制御するための複数の制御信号を発生する制御信号発生手段と、
前記コードワードの１番目のシンボルから、最後から２番目のシンボルまでが入力される間は前記第１シフトレジスタの出力を選択し、最後のシンボルが入力される間は前記第２シフトレジスタの出力を選択して出力する項選択手段と、
前記α根選択信号に応答して、選択された前記第２群のα根と前記中間シンドローム値とをガロア体乗算し、乗算された値と前記受信シンボルとを前記ＲＳクロック単位でガロア体加算し、加算された値を各々中間シンドローム値及び最終シンドローム値として、前記第１及び第２シフトレジスタに出力するシンドローム項演算手段とで構成されていることを特徴とする請求項２に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項５】
前記エラー位置多項式計算手段は、
アップデートされたエラー位置多項式を遅延させ、前記シンドローム選択手段から出力されるシンドローム値及び前記アップデートされたエラー位置多項式から２ｔ個の不一致を計算する不一致計算部と、
前記不一致計算部の制御下で、所定のインデックス及び前記エラー位置多項式の最高次数を出力する変数生成手段と、
遅延不一致の逆数をルックアップテーブル状に格納し、前記インデックスに対応する遅延不一致の逆数を出力する格納部と、
前記不一致計算部から出力された不一致と前記格納部から出力された遅延不一致の逆数とをガロア体乗算する第１ガロア体乗算器と、
前記ＲＳクロックに同期して動作し、前記エラー位置多項式をアップデートするのに用いられる中間値を格納するシフトレジスタと、
前記不一致計算部から出力される最後にアップデートされたエラー位置多項式及び前記シフトレジスタの出力のうちの１つを選択し、前記シフトレジスタに出力する選択手段と、
前記第１ガロア体乗算器の出力と前記シフトレジスタの出力とをガロア体乗算する第２ガロア体乗算器と、
前記第２ガロア体乗算器の出力と、前記不一致計算部で遅延されたエラー位置多項式とをガロア体加算し、加算された値を前記アップデートされたエラー位置多項式で前記不一致計算部にフィードバックさせるガロア体加算器とで構成されていることを特徴とする請求項１に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項６】
前記エラー訂正手段は、
リードソロモンコードの最高次数から評価を行うためのガロア体フィールド元の逆数に当たるｔ個の原始根と次のシンボルのために次数を更新するためのガロア体フィールド元に当たるｔ個の更新根を格納する共役元格納部と、
前記シンドローム選択手段から出力されたシンドローム値及び前記エラー位置多項式の係数をガロア体乗算してエラー評価多項式を計算し、前記エラー評価多項式の係数を出力するエラー評価多項式計算部と、
前記共役元格納部から提供されたｔ個の原始根とｔ個の更新根を用いて、前記エラー評価多項式の係数から前記エラー評価多項式を評価し、評価結果に応じたエラー評価値を出力するエラー評価多項式評価部と、
前記ｔ個の原始根とｔ個の更新根とを用いて、前記エラー位置多項式の係数から前記エラー位置多項式を評価し、評価結果に応じたエラー位置信号を出力し、前記エラー位置多項式の微分多項式を評価して微分評価値を出力するエラー位置多項式評価部と、
前記微分評価値とエラー評価値とを用いて前記エラー値を計算し、前記エラー発生信号に応答して、前記受信シンボルに前記エラー値を加えてエラー訂正された復元シンボルを出力するエラー値計算及び訂正部と、
エラー訂正された前記復元シンボルが正確であるか否かを判断して、復元失敗信号を出力する復元失敗判断部とで構成されていることを特徴とする請求項１に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項７】
前記共役元格納部は、
第１群の格納領域からなり、前記原始根を格納する第１格納部と、
第２群の格納領域からなり、前記更新根を格納する第２格納部と、
前記制御手段から出力された原始根選択信号に応答して、前記第１格納部に格納された原始根を順次選択して出力する第１選択部と、
前記制御手段から出力された更新根選択信号に応答して、前記第２格納部に格納された更新根を順次選択して出力する第２選択部とで構成されていることを特徴とする請求項８に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項８】
前記エラー評価多項式計算部は、
前記エラー位置多項式の係数と、
前記シンドローム選択手段から出力されるシンドローム値とをガロア体乗算するガロア体乗算器と、
前記ガロア体乗算器の出力とフィードバック値とをガロア体加算するガロア体加算器と、
前記制御手段の制御下で、前記エラー位置多項式の係数及び前記ガロア体加算器の出力のうちの１つを選択的に出力するマルチプレクサと、
前記ＲＳクロックに同期して前記マルチプレクサの出力をシフトさせることにより前記エラー評価多項式の係数を格納し、格納された値を前記ガロア体加算器の前記フィードバック値として提供するシフトレジスタとで構成されていることを特徴とする請求項６に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項９】
前記エラー評価多項式評価部は、
前記共役元格納部から前記ＲＳクロック単位で出力された原始根と、前記シンボルクロック単位で出力されたエラー評価多項式の係数とをガロア体乗算し、乗算された値を初期項値として出力する初期化部と、
前記制御手段の制御下で、前記初期項値及びアップデートされた中間項値のうち１つを選択して出力する項選択部と、
前記項選択部から出力された項値を受信して、次の受信シンボルのためのエラー位置多項式の項値をアップデートし、アップデートされた項値を出力する次数更新部と、
シンボルクロックの間に前記次数更新部から出力された項値を加算する項演算部と、
前記項演算部から出力された値と前記エラー位置多項式の０次係数とを加算し、加算された値を前記エラー評価値として出力する評価値出力部とで構成されていることを特徴とする請求項６に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項１０】
前記エラー位置多項式評価部は、
前記エラー位置多項式の係数と前記原始根とをガロア体乗算して、乗算された値を初期項値として出力する初期化部と、
前記制御手段の制御下で、前記初期項値及び中間項値のうちの１つを選択的に出力する項選択部と、
前記項選択部から出力された項値をアップデートし、アップデートされた項値を前記中間項値として出力する第１次数更新部と、
シンボルクロックの間に前記第１次数更新部から出力された項値を加算する第１項演算部と、
前記第１項演算部の出力と前記エラー位置多項式の０次係数とを加算し、加算された値を最終エラー評価値として出力する第２項演算部と、
前記エラー位置評価値を受信してエラーが発生したか否かを判断し、判断の結果に応じたエラー位置信号を出力するエラー判断部と、
前記第１次数更新部の出力を受信して、前記エラー位置多項式のうち奇数次項に当たる項値を選択して出力する奇数次項選択部と、
α根を最高次数から“１”ずつアップデートさせて出力する第２次数更新部と、
前記奇数次項選択部から出力された奇数次項及び前記第２次数更新部から出力されたα根を受信して、前記奇数次項を合わせた値に前記α根をガロア体乗算して、前記微分評価値として出力する第３多項式演算部とで構成されていることを特徴とする請求項６に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項１１】
前記エラー値計算及び訂正部は、
前記微分評価値の逆数をルックアップテーブル状に格納し、前記微分評価値に応答して前記微分評価値の逆数を出力する第１メモリと、
前記エラー評価値と前記微分評価値の逆数とをガロア体乗算する第１ガロア体乗算器と、
ガロア体フィールドの原始元をルックアップテーブル状に格納し、前記制御手段の制御下でシンボル次数に当たる原始元を出力する第２メモリと、
前記第１ガロア体乗算器の出力と前記第２メモリから出力される原始元とをガロア体乗算し、乗算された値を前記エラー値として出力する第２ガロア体乗算器と、
“０ｘ００”が格納された第３メモリと、
前記エラー位置信号に応答して、前記第３メモリの“０ｘ００”値及び前記第２ガロア体乗算器のエラー値のうちの１つを選択して出力するマルチプレクサと、
前記受信シンボルと前記マルチプレクサの出力値とをガロア体加算し、加算された値をエラーが訂正された復元シンボルとして出力するガロア体加算器とで構成されていることを特徴とする請求項６に記載の高画質テレビにおけるリードソロモンデコーダ。
【請求項１２】
前記エラー値計算及び訂正部は、
前記微分評価値の逆数をルックアップテーブル状に格納し、前記微分評価値に応じて前記微分評価値の逆数を出力する第１メモリと、
前記エラー評価値と前記微分評価値の逆数とをガロア体乗算する第１ガロア体乗算器と、
コードワードのうち最高次数に当たる原始元を格納する第２メモリと、
前記原始元を更新するための“α−１”を格納する第３メモリと、
前記第３メモリの“α−１”とフィードバック値とをガロア体乗算し、乗算された値を１次ずつ低い次数の原始元として出力する第２ガロア体乗算器と、
制御手段の制御下で、前記第２メモリの最高次数原始元及び前記第２ガロア体乗算器から更新された原始元のうちの１つを選択して出力する第１マルチプレクサと、
前記第１マルチプレクサから出力された原始元をラッチして出力すると同時に、前記第２ガロア体乗算器のフィードバック値として提供するレジスタと、
前記レジスタから出力された原始元と、前記第１ガロア体乗算器から出力された値とをガロア体乗算し、乗算された値を前記エラー値として出力する第３ガロア体乗算器と、
“０ｘ００”を格納する第４メモリと、
前記エラー位置信号に応答して、前記第４メモリの“０ｘ００”値及び前記第３ガロア体乗算器のエラー値のうちの１つを選択して出力する第２マルチプレクサと、
前記受信シンボルと前記第２マルチプレクサの出力値とをガロア体加算し、加算された値をエラーが訂正された復元シンボルとして出力するガロア体加算器とで構成されていることを特徴とする請求項６に記載の高画質テレビにおけるリードソロモンデコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は格納されたデータあるいは伝送されたデータから、発生したエラーを訂正して元のデータに復号化する装置に係り、特に高画質テレビ（Advanced TeleVision：以下、ＡＴＶと略記する）に用いられる、リードソロモン符号化されたデータのエラーを訂正して復号化するためのリードソロモンデコーダに関する。
【０００２】
【従来の技術】
一般に、ディジタルデータをチャンネルを介して伝送する過程、媒体に格納する過程、復元する過程などで生じるノイズにより、元のデータにエラーが発生する。したがって、このようなエラーを訂正するための様々な符号化技術が開発されており、この処理をエラー訂正符号化という。
【０００３】
発生したエラーを検出して訂正するために、エラー訂正符号化時には、１セットの検査ビットが１群の情報ビット又はメッセージビットに附加される。符号化器では、基本的に二進情報多項式ｉ（Ｘ）の係数に当たる情報ビットと、情報多項式ｉ（Ｘ）にコード生成多項式ｇ（Ｘ）を乗算するか除算することにより検査ビットを求める。次に、前記情報ビットと検査ビットを係数として有するコードワード多項式ｃ（Ｘ）を求める。コード生成多項式ｇ（Ｘ）は、各々のコードワードの特性に合わせて選択される。何故ならば、コードワードの特性に応じてコードワードを特定の部類、すなわちエラー訂正できる二進群に属させるためである。（エラー訂正できる特定のコードワードについては、１９８３年に発行されたLin.et.alなどの著書であるPrentice−Hall社の“Error Control Coding：Fundamentals and Applications”を参照することにする。）  一方、エラー訂正コードの一種として公知のコードには、ＢＣＨ(Bose−Chaudhuri−Hocquenghem)コードがあり、リードソロモン(Reed−Solomon)コードは、ＢＣＨコードの最適コードとして知られている。前記リードソロモンコードの数学的基盤に対する説明は、前記提示されたLin.et.alなどの前記著書と、１９６８年に発行されたBerlekampの著書であるMcGraw−Hill社の“Algebraic Coding Theory”、Berlekampに対するU.S.Pat.No.4,162,480を参照することができる。一方、リードソロモンエラー訂正コードを復号化するためには、有限ガロア体フィールドＧＦ（２ｍ）の係数を有する複数の多項式を計算する必要がある。一般に、これらの多項式には、シンドローム多項式Ｓ（Ｘ）、エラー位置多項式σ（Ｘ）及びエラー評価多項式Ω（Ｘ）が含まれる。
【０００４】
リードソロモンコードにおいて、下記の式１のようにコード生成多項式ｇ（Ｘ）の根の数が２Ｔ個である連続するαの乗数であれば、Ｔ個のエラーを訂正することができる。
【０００５】
【数１】
0004012997.tif 000002
【０００６】
前記式１において、αは有限ガロア体フィールドＧＦ（２ｍ）の原始元(primitive element)に当たる。
【０００７】
コード生成多項式ｇ（Ｘ）により生成されたコードワードがチャンネルを介して伝送されたり、格納媒体に格納される場合、これらのコードワードを復元する過程で、ノイズに起因してコードワードにエラーパターンが発生する可能性がある。このようにリードソロモンコードを用いて符号化されたコードワードで発生したエラーパターンを訂正して復号化する過程は、一般に次の４段階に分けられる。
【０００８】
まず、エラー訂正過程を説明するために、１つのコードワードは、１シンボルがｍビット（例えば、８ビット）からなるＮ個のシンボルより構成され、Ｎ個のシンボルは、Ｋ個の情報シンボルと（Ｎ−Ｋ）個の検査シンボルで構成されていると仮定する。この際、コードワード多項式ｃ（Ｘ）は、（Ｎ−１）次多項式であり、“２Ｔ”は、“Ｎ−Ｋ”と同一の値（すなわち、コード生成多項式ｇ（Ｘ）の根数＝検査シンボル数）である。復号化過程の第１段階では、受信されたコードワードｒ（Ｘ）を用いて２Ｔ個のシンドローム（すなわち、Ｓ０，Ｓ１，…，Ｓ２Ｔ−１）を求める。受信されたコードワードｒ（Ｘ）は、（Ｎ−１）次多項式であり、数学的に示すとｒＮ−１ＸＮ−１＋ｒＮ−２ＸＮ−２＋…ｒ１Ｘ１＋ｒ０であり、ここでｒｊは、コードワードのうち（Ｎ−ｊ）番目の受信シンボルに当たる。第２段階では、前記シンドロームを用いてエラー位置多項式σ（Ｘ）の係数を求める。第３段階では、前記エラー位置多項式σ（Ｘ）の根を求め、前記根は、受信されたコードワードｒ（Ｘ）から発生したエラーの位置を示す。すなわち、原始元の乗数α−ｊをエラー位置多項式σ（Ｘ）に代入した結果、得られた値が０になると（すなわち、α−ｊがエラー位置多項式σ（Ｘ）の根であれば）コードワードの（Ｎ−ｊ）番目の受信シンボル（ｒｊ）にエラーが発生したことを意味する。第４段階では、前記エラー位置とシンドロームを用いてエラー値ｅｊ（Ｘ）を計算する。シンドロームとエラー位置多項式の係数などは、前述したU.S.Pat.No.4,162,480に数学的に記載されている。
【０００９】
そこで、前記第４段階を更に詳細に説明することにする。
【００１０】
まず、エラー評価多項式Ω（Ｘ）は、下記の式２のように示される。
【００１１】
［式２］
Ω（Ｘ）＝σ（Ｘ）Ｓ（Ｘ）
前記式２において、Ｓ（Ｘ）はシンドローム多項式であり、その係数がシンドローム値に当たる。
【００１２】
前記のように求められたエラー評価多項式Ω（Ｘ）を用いて、下記の式３のようにエラー値ｅｊを計算する。
【００１３】
【数２】
0004012997.tif 000003
【００１４】
前記式３において、σ’（Ｘ）は、エラー位置多項式σ（Ｘ）の１次導関数であり、α−ｊは、第３段階で求められたエラー位置多項式σ（Ｘ）の根であり、エラー値ｅｊは、第３段階でエラーが発生したと判定された（Ｎ−ｊ）番目の受信シンボルに対するエラー値を示す。このようにエラー値を決定した後、受信シンボルにエラー値を加算することにより元のコードワードに復元することができる。
【００１５】
一方、ＡＴＶで定義されるリードソロモンコードの仕様は次の通りである。
【００１６】
１)ＲＳ（２０７，１８７）、エラー訂正できるシンボル数ｔ＝１０（すなわち、８０ビット）
２）ガロア体フィールドＧＦ（２８）の一部の元を用いたリードソロモンコード
３）フィールド生成多項式ｆ（ｘ）＝ｘ８＋ｘ４＋ｘ３＋ｘ２＋１
４）コード生成多項式ｇ（ｘ）＝（ｘ＋α０）（ｘ＋α１）（ｘ＋α２）…（ｘ＋α１８）（ｘ＋α１９）
５）情報データのみをリードソロモン符号化させた後、同期バイト付加
最近、リードソロモンデコーダを具体化するために、多くのＶＬＳＩ(Very Large Scale integration)構造が開発されている。しかしながら、現存するＶＬＳＩリードソロモンデコーダは、８の倍数に当たるエラーを訂正できるシンボル数（すなわち、ｔ）を有するリードソロモンコードにより符号化されたデータに関するエラーを訂正し、復号化するためのものである。一方、前記のようなＡＴＶで採用されたリードソロモンコードによるデコーダは、ハードウエア的に未だ提案されていない。
【００１７】
【発明が解決しようとする課題】
本発明は、前記のような問題点を解決するために案出されたものであり、ＡＴＶで定義されたリードソロモンコードにより符号化されたデータのエラーを訂正して、元のデータに復号化するためのリードソロモンデコーダを提供することにその目的がある。
【００１８】
【課題を解決するための手段】
前記目的を達成するために本発明に係るＡＴＶにおけるリードソロモンデコーダは、シンボル数ｔに当たるエラー訂正能力を有するリードソロモンコードで符号化された受信シンボルのエラーを訂正して復号化する、ＡＴＶに用いられるリードソロモンデコーダにおいて、シンボルクロックよりｔ倍速いＲＳクロックを発生するクロック発生手段と、前記ＲＳクロックに応答して、前記受信シンボルをラッチする先入先出手段と、前記ＲＳクロックに応答して、前記受信シンボルのシンドローム値を計算するシンドローム計算手段と、シンドローム選択信号に応答して、前記シンドローム計算手段で計算されたシンドローム値又は“０ｘ００”値を選択的に出力するシンドローム選択手段と、前記ＲＳクロックに応答して、前記シンドローム選択手段から出力されたシンドローム値を基にエラー位置多項式を計算し、前記エラー位置多項式の係数及び最大次数を出力するエラー位置多項式計算手段と、前記シンドローム選択手段から出力されたシンドローム値及び前記エラー位置多項式の係数からエラー値を計算し、計算されたエラー値を用いてエラーが訂正された復元コードワードを生成し、前記エラー位置多項式の最大次数から前記エラーが訂正された復元コードワードのエラー訂正が正確であるか否かを判断するエラー訂正部と、複数の制御信号を生成して前記各部を制御する制御手段と、前記受信シンボルとエラーが訂正された前記復元コードワードとをビット別に比較することにより、ビットエラー率を計算するビットエラー率計算部とを含み、前記ビットエラー率計算部が、所定のシンボル単位で、受信シンボルとエラーが訂正された前記復元シンボルのビットとを比較することにより、２つのビットが相違する場合を検出するエラービット検査手段と、前記エラービット検査手段で検出された２つのビットが相違する場合をカウントして、所定のコードワード単位の間に発生した第１エラービット数を出力するエラービットカウンティング手段と、前記エラービットカウンティング手段から出力された前記第１エラービット数を受信して、所定の検査周期の間に発生した第２エラービット数を計算し、前記ビットエラー率を出力するエラービット数計算手段とで構成され、さらに、前記シンボル数ｔが１０の倍数であることを特徴とする。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を添付した図面に基づき更に詳細に説明する。
【００２０】
ＡＴＶにおいて、本発明の実施の形態に係るリードソロモンデコーダは、図１に示したように、クロック発生部１、入力バッファー２、先入先出バッファー３、シンドローム(Syndrome)計算部４、ＲＯＭ５、シンドローム選択部６、エラー位置多項式計算部７、エラー訂正部８、ビットエラー率計算部９及び制御部１０で構成されている。
【００２１】
図１において、クロック発生部１は、シンボルクロックより１０倍程度速いＲＳクロック（ＲＳ_ＣＬＫ）を発生して、各構成要素、すなわち入力バッファー２、先入先出バッファー３、シンドローム計算部４、エラー位置多項式計算部７、エラー訂正部８及びビットエラー率計算部９に、クロック信号を提供する。入力バッファー２は、リードソロモン符号化された受信シンボル（Ｒ_ＳＹＭ）をＲＳクロック（ＲＳ_ＣＬＫ）に応答してラッチし、先入先出バッファー３及びシンドローム計算部４に出力する。
【００２２】
先入先出バッファー３は、入力バッファー２から出力された受信シンボル（Ｒ_ＳＹＭ）をＲＳクロック（ＲＳ_ＣＬＫ）に応答してラッチし、所定時間だけ遅延させた後、エラー訂正部８及びビットエラー率計算部９に各々出力する。シンドローム計算部４は、入力バッファー２から出力された受信シンボル（Ｒ_ＳＹＭ）を基にシンドローム値を計算し、コードワードのすべてのシンボル（Ｒ_２０６〜Ｒ_０）が入力された時に、最終シンドローム値（ＳＹＮＤ）を生成してシンドローム選択部６に出力する。
【００２３】
シンドローム選択部６は、制御部１０から出力されたシンドロームパス信号（ＳＹＮＤ_ＰＡＳＳ）に応答して、シンドローム計算部４から出力されたシンドローム値（ＳＹＮＤ）又はＲＯＭ５に格納された“０ｘ００”値を選択して、エラー位置多項式計算部７及びエラー訂正部８に各々出力する。エラー位置多項式計算部７は、シンドローム選択部６から出力されたシンドローム値（ＳＹＮＤ）を用いてエラー位置多項式σ（Ｘ）を計算し、エラー位置多項式σ（Ｘ）の係数（σ_ＣＯＥＦ）及びエラー位置多項式σ（Ｘ）の最高次数（Ｌ）をエラー訂正部８に出力する。
【００２４】
エラー訂正部８は、シンドローム選択部６から出力されたシンドローム値（ＳＹＮＤ）と、エラー位置多項式計算部７から出力されるエラー位置多項式σ（Ｘ）の係数（σ_ＣＯＥＦ）とを用いてエラー値（ｅｉ）を算出し、先入先出バッファー２から出力された受信シンボル（Ｒ_ＳＹＭ）にエラー値（ｅｉ）を加算することにより、発生したエラーを訂正した復元シンボル（Ｃ_ＳＹＭ）を出力する。これと同時に、エラー位置多項式σ（Ｘ）の最高次数（Ｌ）を基に、復元シンボル（Ｃ_ＳＹＭ）のエラー訂正が正確であるか否かを判断し、その結果に応じて復元失敗信号（ＵＮＲＣＶＲ_ＦＬＡＧ）を出力する。
【００２５】
ビットエラー率計算部９は、受信シンボル（Ｒ_ＳＹＭ）と復元シンボル（Ｃ_ＳＹＭ）とを比較してビットエラー率を測定する。制御部１０は、シンドローム計算部４、シンドローム選択部６、エラー位置多項式計算部７、エラー訂正部８及びビットエラー率計算部９を各々制御するための各種制御信号を生成して出力する。
【００２６】
次に、図１に示した本発明の実施の形態に係るリードソロモンデコーダにおける各構成要素の動作について、図２〜図１５を参照して詳細に説明する。
【００２７】
制御部１０は、図２に示したように、外部から提供されるリセット信号（ＲＳＴ）、イネーブル信号（ＥＮＡ）、シンボル同期信号（ＳＳＹＮＣ）及びクロック発生部１から提供されるＲＳクロック（ＲＳ_ＣＬＫ）を受信して、複数の制御信号を生成する。
【００２８】
これらの制御信号のうち、シンボルイネーブル信号（ＳＣＬＫ_ＥＮＡ）は入力バッファー２とシンドローム計算部４に、第１コードワード終了信号（ＣＷ_ＥＮＤ１）はシンドローム計算部４とエラー位置多項式計算部７に、コードワード開始信号（ＣＷ_ＳＴＡＲＴ）、第２コードワード終了信号（ＣＷ_ＥＮＤ２）及びシンドローム選択信号（ＳＹＮＤ_ＳＥＬ）はシンドローム計算部４に各々提供される。
【００２９】
さらに、シンドロームパス信号（ＳＹＮＤ_ＰＡＳＳ）はシンドローム選択部６に、不一致ゼロ信号（ＤＯ_ＦＬＡＧ）、不一致終了信号（Ｄ_ＥＮＤ）、エラー位置多項式イネーブル信号（σ_ＥＮＡ）、ＤＢイネーブル信号（ＤＢ_ＥＮＡ）、エラー位置多項式係数選択信号（σ_ＣＯＥＦ_ＳＥＬ）及び復元失敗リセット信号（ＵＮＲＣＶＲ_ＦＬＡＧ_ＲＳＴ）は、エラー位置多項式計算部７に提供される。
【００３０】
なお、シンボル番号信号（ＮＯ_ＳＹＭ）、計算初期化信号（ＣＡＬ_ＦＩＲＳＴ）、計算イネーブル信号（ＣＡＬ_ＥＮＡ）、シンボルリセット信号（ＲＳＴ_ＳＹＭ）、原始根選択信号（ＥＩＡ_ＳＥＬ）、更新根選択信号（ＥＡ_ＳＥＬ）は、エラー訂正部８に、評価開始信号（ＥＶＡＬ_ＩＮＩＴ）は、エラー訂正部８及びビットエラー率計算部９に、不一致コードワード開始信号（ＤＣＷ_ＳＴＡＲＴ）及び検査周期信号（ＣＨＫ_ＰＥＲＩＯＤ）は、ビットエラー率計算部９に各々提供される。
【００３１】
図３は、図１に示したシンドローム計算部４の一実施の形態に係る回路図であり、シンドローム計算部４は、第１カウンタ３０、インバータ３１、第１シンドローム計算セル３２、第１格納部３２ａ〜３２ｊ、第１マルチプレクサ（ＭＵＸ  １）３３、第２シンドローム計算セル３４、第２格納部３４ａ〜３４ｊ、“−１０”が格納された第３格納部３５、加算器３６、第２マルチプレクサ（ＭＵＸ  ２）３７、比較器３８及び第３マルチプレクサ（ＭＵＸ  ３）３９で構成されている。
【００３２】
図３において、第１カウンタ３０は、４ビットカウンタであり、ＲＳクロック（ＲＳ_ＣＬＫ）に同期してカウントすることにより、カウンティング値をα選択信号（ＡＬＰＨＡ_ＳＥＬ）として出力し、インバータ３１は、シンボルイネーブル信号（ＳＣＬＫ_ＥＮＡ）を反転させて、第１カウンタ３０のクリア端子に提供する。第１シンドローム計算セル３２は、ＲＳクロック（ＲＳ_ＣＬＫ）に同期して動作し、受信シンボル（Ｒ_ＳＹＭ）を受信して、α選択信号（ＡＬＰＨＡ_ＳＥＬ）に応答し第１格納部３２ａ〜３２ｊに格納されたα根（αｉ）を用いてシンドロームを計算し、計算された１０のシンドローム（Ｓ０，Ｓ１，…，Ｓ９）を第１マルチプレクサ３３に出力する。第１マルチプレクサ３３は、シンドローム選択信号（ＳＹＮＤ_ＳＥＬ）に応答して第１シンドローム計算セル３２で計算されたシンドローム（Ｓ０，Ｓ１，…，Ｓ９）を順に選択して出力する。
【００３３】
第２シンドローム計算セル３４は、ＲＳクロック（ＲＳ_ＣＬＫ）に同期して動作し、受信シンボル（Ｒ_ＳＹＭ）を受信して、α選択信号（ＡＬＰＨＡ_ＳＥＬ）に応答し第２格納部３４ａ〜３４ｊに格納されたα根（αｉ）を用いてシンドロームを計算し、計算された１０のシンドローム（Ｓ１０，Ｓ１１，…，Ｓ１９）を第２マルチプレクサ３７に出力する。加算器３６は、シンドローム選択信号（ＳＹＮＤ_ＳＥＬ）値に、第３格納部３５に格納された“−１０”値を加算し、その結果を第２マルチプレクサ３７の選択信号として提供する。第２マルチプレクサ３７は、加算器３６の出力に応じて、第２シンドローム計算セル３４で計算されたシンドローム（Ｓ１０，Ｓ１１，…，Ｓ１９）を順次選択して出力する。
【００３４】
比較器３８は、シンドローム選択信号（ＳＹＮＤ_ＳＥＬ）を所定の基準信号“９”と比較して、９より大きい場合には“０”を出力し、９以下の場合には“１”を出力する。第３マルチプレクサ３９は、比較器３８の出力が“１”の場合には第１マルチプレクサ３３の出力を選択し、“０”の場合には第２マルチプレクサ３４の出力を選択してシンドローム（ＳＹＮＤ）として出力する。すなわち、第３マルチプレクサ３９では、シンドローム選択信号（ＳＹＮＤ_ＳＥＬ）に応答して、シンドローム（Ｓ０，Ｓ１，…，Ｓ１９）が順次出力される。
【００３５】
図３に示した第１シンドローム計算セル３２と第２シンドローム計算セル３４の構成は同じであり、その詳細な回路図は、図４に示した通りである。
【００３６】
図４に示した第１シンドローム計算セル３２は、制御信号発生部４１、中間値シフトレジスタ４２、シンドロームシフトレジスタ４３、第４マルチプレクサ（ＭＵＸ  ４）４４、及びシンドローム項演算部４５で構成されている。また、制御信号発生部４１は、１つのＯＲゲート４１ａ、３つのＡＮＤゲート４１ｂ,４１ｄ,４１ｆ、及び２つのインバータ４１ｃ,４１ｅで構成され、シンドローム項演算部４５は、第５マルチプレクサ（ＭＵＸ  ５）４５-１、ガロア体乗算器４５-２及びガロア体加算器４５-３で構成されている。
【００３７】
図４において、まず受信シンボル（Ｒ_ＳＹＭ）は、符号化されない同期バイト（ＳＹＮＣ  ＢＹＴＥ）が受信された後の最高次シンボル（Ｒ_２０６）から最低次シンボル（Ｒ_０）まで順番に受信して、１つのコードワードとして構成される。したがって、コードワード開始信号（ＣＷ_ＳＴＡＲＴ）は、同期バイトが受信されるシンボルクロック周期の間に“ハイ”で発生され、第１コードワード終了信号（ＣＷ_ＥＮＤ１）は、最低次シンボル（Ｒ_０）が受信されるシンボルクロック周期の間に“ハイ”で発生され、第２コードワード終了信号（ＣＷ_ＥＮＤ２）は、最後から２番目のシンボル（Ｒ_１）が受信されるシンボルクロック周期の間に“ハイ”で発生される。
【００３８】
制御信号発生部４１において、第１ＯＲゲート４１ａは、制御部（図１の符号１０）から提供される第１コードワード終了信号（ＣＷ_ＥＮＤ１）と第２コードワード終了信号（ＣＷ_ＥＮＤ２）とを論理和演算し、第１ＡＮＤゲート４１ｂは、第１ＯＲゲート４１ａの出力信号と外部から提供されるイネーブル信号（ＥＮＡ）とを論理積演算して、その結果をシンドロームシフトレジスタ４３のイネーブル信号（ＥＮＡ）として提供する。一方、外部のリセット信号（ＲＳＴ）が、シンドロームシフトレジスタ４３のリセット信号（ＲＳＴ）として提供される。第１インバータ４１ｃは、第１コードワード終了信号（ＣＷ_ＥＮＤ１）を反転させ、第２ＡＮＤゲート４１ｄは、第１インバータ４１ｃの出力信号と外部から提供されるリセット信号（ＲＳＴ）とを論理積演算して、その結果を中間値シフトレジスタ４２のリセット信号（ＲＳＴ）として提供する。第２インバータ４１ｅは、制御部（図１の符号１０）から提供されるコードワード開始信号（ＣＷ_ＳＴＡＲＴ）を反転させ、第３ＡＮＤゲート４１ｆは、第２インバータ４１ｅの出力信号と外部から提供されるイネーブル信号（ＥＮＡ）とを論理積演算して、その結果を中間値シフトレジスタ４２のイネーブル信号（ＥＮＡ）として提供する。
【００３９】
中間値シフトレジスタ４２は、１０個の中間シンドローム値を格納するレジスタであり、８ビットデータバスに接続されており、コードワードの１番目のシンボル（Ｒ_２０６）から、最後から２番目のシンボル（Ｒ_１）までのシンボルが入力される間イネーブル状態になって、シンドローム項計算部４５から出力された中間シンドローム値をＲＳクロック（ＲＳ_ＣＬＫ）に応答して受信し、シフトして第４マルチプレクサ４４に提供する。
【００４０】
シンドロームシフトレジスタ４３は、１０個のシンドロームを格納するレジスタであり、コードワードの最後から２番目のシンボル（Ｒ_１）が入力される時から、最後のシンボル（Ｒ_０）が入力されるまでイネーブル状態になって、シンドローム項計算部４５から出力されるシンドロームをＲＳクロック（ＲＳ_ＣＬＫ）に応答して受信し、シフトして第４マルチプレクサ４４に出力する一方、最終シンドローム値（Ｓ０〜Ｓ９）をシンドローム選択部（図１の符号６）に出力する。
【００４１】
第４マルチプレクサ４４は、制御部（図１の符号１０）から提供された第１コードワード終了信号（ＣＷ_ＥＮＤ１）に応答して、コードワードの１番目のシンボル（Ｒ_２０６）から、最後から二番目のシンボル（Ｒ_１）までのシンボルが入力される間は、中間値シフトレジスタ４２の出力値を選択し、最後のシンボル（Ｒ_０）が入力される間は、シンドロームシフトレジスタ４３の出力値を選択して、シンドローム項演算部４５に出力する。
【００４２】
シンドローム項演算部４５において、第５マルチプレクサ４５−１は、コード生成多項式ｇ（Ｘ）の根α０〜α９をα根選択信号（ＡＬＰＨＡ_ＳＥＬ）に応答して順次選択して出力する。ガロア体乗算器４５−２は、第５マルチプレクサ４５−１から出力されるα根と第４マルチプレクサ４４から出力される中間シンドローム値を受信して、ＲＳクロック（ＲＳ_ＣＬＫ）単位でガロア体乗算演算する。ガロア体加算器４５−３は、ガロア体乗算器４５−２から出力された値とシンボル単位で入力される受信シンボル（Ｒ_ＳＹＭ）をＲＳクロック（ＲＳ_ＣＬＫ）単位でガロア体加算演算する。
【００４３】
図４のように構成された第１及び第２シンドローム計算セル３２，３４において、リードソロモン符号化された受信シンボル（Ｒ_２０６〜Ｒ_０）に関するシンドローム計算過程をさらに詳細に説明すると次の通りである。
【００４４】
まず、１番目のシンボルクロック周期の間、第４マルチプレクサ４４は、第１コードワード終了信号（ＣＷ_ＥＮＤ１）により中間値シフトレジスタ４２から出力される初期値“０，０，…，０”を選択して、シンドローム項演算部４５のガロア体乗算器４５−２に出力する。ガロア体乗算器４５−２は、ＲＳクロック（ＲＳ_ＣＬＫ）単位で動作し、第４マルチプレクサ４４から出力された“０，０，…，０”と、ＲＯＭ（図３の符号３２ａ〜３２ｊ）に格納されたα根α０〜α９とを各々ガロア体乗算して、その結果の値である“０，０，…，０”をガロア体加算器４５−３に出力する。ガロア体加算器４５−３は、１番目のシンボル（Ｒ_２０６）と、ガロア体乗算器４５−２から出力された“０，０，…，０”値とをガロア体加算し、その結果の値である“Ｒ_２０６，Ｒ_２０６，…，Ｒ_２０６”を中間値シフトレジスタ４２に格納する。
【００４５】
２番目のシンボルクロック周期の間、第４マルチプレクサ４４は、第１コードワード終了信号（ＣＷ_ＥＮＤ１）により中間値シフトレジスタ４２から出力された“Ｒ_２０６，Ｒ_２０６，…，Ｒ_２０６”を選択して、シンドローム項演算部４５のガロア体乗算器４５−２に出力する。ガロア体乗算器４５−２は、ＲＳクロック（ＲＳ_ＣＬＫ）単位で動作し、第４マルチプレクサ４４から出力された“Ｒ_２０６，Ｒ_２０６，…，Ｒ_２０６”とα根α０〜α９とを各々ガロア体乗算して、その結果の値である“Ｒ_２０６×α０，Ｒ_２０６×α１，…，Ｒ_２０６×α９”をガロア体加算器４５−３に出力する。ガロア体加算器４５−３は、２番目のシンボル（Ｒ_２０５）と、ガロア体乗算器４５−２から出力された“Ｒ_２０６×α０，Ｒ_２０６×α１，…，Ｒ_２０６×α９”とをガロア体加算し、その結果の値である“Ｒ_２０６×α０＋Ｒ_２０５，Ｒ_２０６×α１＋Ｒ_２０５，Ｒ_２０６×α２＋Ｒ_２０５，…，Ｒ_２０６×α９＋Ｒ_２０５”を中間値シフトレジスタ４２に格納する。
【００４６】
同様に、３番目のシンボル（Ｒ_２０４）が入力される３番目のシンボルクロック周期の間、中間値シフトレジスタ４２には、“（Ｒ_２０６α０＋Ｒ_２０５）α０＋Ｒ_２０４，（Ｒ_２０６α１＋Ｒ_２０５）α１＋Ｒ_２０４，…，（Ｒ_２０６α９＋Ｒ_２０５）α９＋Ｒ_２０４”値が格納される。
【００４７】
このように、中間値シフトレジスタ４２に格納される中間シンドローム値は、１つのコードワードの最後から２番目のシンボル（Ｒ_１）が入力されるまで引き続きアップデートされる。
【００４８】
一方、コードワードの最後から２番目のシンボル（Ｒ_１）が入力されるシンボルクロック周期の間、シンドロームシフトレジスタ４３がイネーブル状態になる。したがって、シンドロームシフトレジスタ４３には、１番目のシンボル（Ｒ_２０６）で、最後から２番目のシンボル（Ｒ_１）までアップデートされて計算された中間シンドローム値が格納される。
【００４９】
この際、第４マルチプレクサ４４は、第１コードワード終了信号（ＣＷ_ＥＮＤ１）によりシンドロームシフトレジスタ４３に格納された中間シンドローム値を選択してガロア体乗算器４５−２に出力する。ガロア体乗算器４５−２は、ＲＳクロック（ＲＳ_ＣＬＫ）単位で動作し、第４マルチプレクサ４４から出力されたシンドロームシフトレジスタ４３の中間シンドローム値とα根α０〜α９とを各々ガロア体乗算して、その結果をガロア体加算器４５−３に出力する。ガロア体加算器４５−３は、最後のシンボル（Ｒ_０）と、ガロア体乗算器４５−２から出力された中間シンドローム値とをガロア体加算し、その結果をシンドロームシフトレジスタ４３に格納する。したがって、シンドロームシフトレジスタ４３には、１番目のシンボル（Ｒ_２０６）から最後のシンボル（Ｒ_０）まで計算された最終シンドローム値が格納される。この際、中間値シフトレジスタ４２は、次のコードワードに対する中間シンドローム値を格納するためにリセットされる。すなわち、最後のシンボル（Ｒ_０）まですべて入力されると、シンドロームシフトレジスタ４３に格納された１コードワードに対するシンドローム値Ｓ［０］，Ｓ［１］，…，Ｓ［９］は下記の式４のように示される。
【００５０】
［式４］
Ｓ［０］＝（（Ｒ２０６α０＋Ｒ２０５）α０＋…＋Ｒ１）α０＋Ｒ０
Ｓ［１］＝（（Ｒ２０６α１＋Ｒ２０５）α１＋…＋Ｒ１）α１＋Ｒ０
：
Ｓ［９］＝（（Ｒ２０６α９＋Ｒ２０５）α９＋…＋Ｒ１）α９＋Ｒ０
図５は、図１に示したエラー位置多項式計算部７の一実施の形態を示す回路図である。エラー位置多項式計算部７は、不一致計算部５１、変数生成プロセッサー５２、ルックアップテーブル５３、第１ガロア体乗算器５４、中間値シフトレジスタ５５、選択部５６、第２ガロア体乗算器５７、第１ガロア体加算器５８、第１インバータ５９ａ及び第１ＡＮＤゲート５９ｂで構成されている。また、選択部５６は、第１ＯＲゲート５６ａ、第２ＯＲゲート５６ｂ、“０ｘ００”が格納されたＲＯＭ５６−１、第１マルチプレクサ（ＭＵＸ  １）５６−２及び第２マルチプレクサ（ＭＵＸ  ２）５６-３で構成されている。
【００５１】
次に、図５に示したエラー位置多項式計算部７に適用された循環バリキャンプアルゴリズム(Recursive Berlekamp Algorithm：以下、ＲＢＡと略記する)について、簡単に説明する。
【００５２】
ｔ個のエラー訂正能力を有するリードソロモンコードの場合、ｔ個以下の根を有するので、バリキャンプアルゴリズムにより下記の式５のようなエラー位置多項式を求めることができる。
【００５３】
【数３】
0004012997.tif 000004
【００５４】
ＲＢＡは、バリキャンプアルゴリズムを次の４段階に循環的に繰り返す。このようなＲＢＡを適用して具体化したハードウエアは、バリキャンプアルゴリズムを適用して具体化したハードウエアに比べて、さらに簡単に製造することができる。
【００５５】
第１段階：初期条件の設定
α０（Ｘ）＝１，Ｂ０（Ｘ）＝１，ｋ０＝０，Ｌ０＝０，ｂ０＝１
ここで、α０（Ｘ）は、エラー位置多項式α（Ｘ）の初期値、Ｂ０（Ｘ）は、中間値Ｂ（Ｘ）の初期値、Ｌ０は、実際のエラー位置多項式σ（Ｘ）の次数であるＬの初期値、ｋ０は、変数Ｘの次数であるｋの初期値、ｂ０は、遅延不一致(late discrepancy)ｂの初期値を各々示す。
【００５６】
一方、ｔ個の根を有するエラー位置多項式σ（Ｘ）の係数を格納するためには、定数項を含んでｔ＋１個のレジスタを必要とする。そして、エラー位置多項式σ（Ｘ）の次数であるＬは、エラー位置多項式σ（Ｘ）をアップデートする時に次数の増加が要る場合には１つずつ増加し、次数の増加が要らない場合には増加しない。
【００５７】
また、前記Ｂ（Ｘ）、ｋ、ｂも同じく前記エラー位置多項式σ（Ｘ）をアップデートするために用いられる値である。
【００５８】
第２段階：不一致の計算
（Ｎ，Ｎ−２ｔ）コードでは、２ｔ番の不一致（ｄＮ）を計算する。
【００５９】
この際、不一致の初期値ｄ０はシンドローム値Ｓ０と同じであり、初期値を除いた残りの不一致は下記の式６により求められる。
【００６０】
【数４】
0004012997.tif 000005
【００６１】
前記式６において、ｄＮは、不一致、σｉは、シンドローム多項式の係数、ＳＮ，ＳＮ−１は、シンドローム値である。
【００６２】
第３段階：アップデートの実行
次の条件に応じて３つの場合にアップデートを行う。
【００６３】
ケース１；ｄN＝０
→ｋを“１”増加させる
ケース２；ｄＮ≠０、２ＬＮ≦Ｎ
→σＮ＋１（Ｘ）＝σＮ（Ｘ）−ｄＮｂＮ−１ＸｋＢＮ（Ｘ）
→ＬＮ＋１＝Ｎ＋１−ＬＮ
→ｋ＝１
→ＢＮ＋１（Ｘ）＝σＮ（Ｘ）
→ｂＮ＋１＝ｄＮ
ケース３：ｄＮ≠０、２ＬＮ＞Ｎ
→σＮ＋１（Ｘ）＝σＮ（Ｘ）−ｄＮｂＮ−１ＸｋＢＮ（Ｘ）
→ｋを“１”増加させる
第４段階：前記第２段階を行う。
【００６４】
Ｎ＝２ｔになるまで前記第２段階を繰り返す。
【００６５】
次に、図５に基づきエラー位置多項式計算部７の動作を説明する。
【００６６】
まず、不一致ゼロフラグ（Ｄ０_ＦＬＡＧ）は、１番目の不一致ｄ０を計算する場合に“ハイ”の信号であり、不一致ゼロ信号（Ｄ_ＺＥＲＯ）は、計算された不一致が“０”である場合に“ハイ”の信号であり、ケース３フラグ信号（ＣＡＳＥ３_ＦＬＡＧ）は、アップデート時ｄＮ≠０、２ＬＮ＞Ｎ（ここで、ｄＮは不一致、ＬＮはエラー位置多項式σ（Ｘ）の最高次数を示す）の場合に“ハイ”の信号である。
【００６７】
不一致計算部５１は、シンドローム計算部（図１の符号４）から出力されるシンドローム値（ＳＹＮＤ）及びアップデートされたエラー位置多項式（σ_ＩＮ）を受信して前記ＲＢＡの第２段階を行い、ｄ０からｄ１９までの２０の不一致（ｄ）を計算する。また、第１ガロア体加算器５８でアップデートされて出力されたエラー位置多項式（σ_ＩＮ）を所定時間だけ遅延させ、エラー位置多項式（σ_ＯＵＴ）として出力する。さらに、最後にアップデートされたエラー位置多項式（σ_ＯＵＴ）をエラー位置多項式σ（Ｘ）として出力する。
【００６８】
変数生成プロセッサー５２は、“Ｄ_ＺＥＲＯ”信号、“Ｄ０_ＦＬＡＧ”信号及び不一致（ｄ）を受信して、遅延不一致（ｂ）のインデックス（Ｎ）をルックアップテーブル５３に出力する。一方、前記ＲＢＡの第３段階を行って現在の状態が前記ケース３に当たると、すなわち、ｄＮ≠０、２ＬＮ＞Ｎであると、“ＣＡＳＥ３_ＦＬＡＧ”信号を出力し、エラー位置多項式σ（Ｘ）の実際の次数（Ｌ）を出力する。
【００６９】
ルックアップテーブル５３は、変数生成プロセッサー５２から出力された遅延不一致（ｂ）のインデックス（Ｎ）を受信して、逆数（ｂ−１）を出力する。第１ガロア体乗算器５４は、不一致計算部５１から出力された不一致（ｄ）とルックアップテーブル５３から出力された遅延不一致（ｂ）の逆数（ｂ−１）をガロア体乗算し、その結果を第２ガロア体乗算器５７に出力する。
【００７０】
中間値シフトレジスタ５５は、ＸｋＢ（Ｘ）値を求めてエラー位置多項式σ（Ｘ）をアップデートするのに用いる中間値を格納するためのものであり、選択部５６の第２マルチプレクサ５６−３から出力された値を、ＲＳクロック（ＲＳ_ＣＬＫ）に応答してシフトさせて出力すると同時にフィードバックする。
【００７１】
選択部５６において、第１ＯＲゲート５６ａは、“Ｄ０_ＦＬＡＧ”信号と“ＣＡＳＥ３_ＦＬＡＧ”信号を組み合わせることにより生成された選択信号（ＳＥＬ２）を第２マルチプレクサ５６−３に出力し、第２ＯＲゲート５６ｂは、“Ｄ_ＺＥＲＯ”信号と選択信号（ＳＥＬ２）を組み合わせることにより生成された選択信号（ＳＥＬ１）を第１マルチプレクサ５６−２に出力する。第１マルチプレクサ５６−２は、選択信号（ＳＥＬ１）に応答して、不一致計算部５１から出力されたエラー位置多項式（σ_ＯＵＴ）又はＲＯＭ５６−１に格納された“０ｘ００”を選択して第２マルチプレクサ５６-３に出力し、第２マルチプレクサ５６-３は、選択信号(ＳＥＬ２)に応答して、第１マルチプレクサ５６-２の出力又は中間値シフトレジスタ５５の出力を選択して中間値シフトレジスタ５５に出力する。すなわち、選択部５６では、“ＣＡＳＥ３_ＦＬＡＧ”信号、“Ｄ０_ＦＬＡＧ”信号及び“Ｄ_ＺＥＲＯ”信号に応答して前記ＲＢＡの第３段階を行い、ケース１（ｃａｓｅ１）に当たる場合には、ＲＯＭ５６−１の“０ｘ００”値を選択して中間値シフトレジスタ５５に出力し、ケース２（ｃａｓｅ２）に当たる場合には、不一致計算部５１の出力（σ_ＯＵＴ）を選択して中間値シフトレジスタ５５に出力し、ケース３に当たる場合には、中間値シフトレジスタ５５の１０番目段の格納された値がフィードバックされて、その値をシフトさせる。したがって、中間値シフトレジスタ５５は、ケース３に当たる場合のみに実際にアップデートされる。結局、前記のような動作により、ケース１の場合には、中間値シフトレジスタ５５のみをシフトし、ケース２の場合には、係数シフトレジスタ（図６の６１）と、中間値シフトレジスタ５５、次数Ｌ、遅延不一致ｂをすべてアップデートし、ケース３の場合には、係数シフトレジスタ６１のみをアップデートし、中間値シフトレジスタ５５は、１つのみをシフトする動作を行う。
【００７２】
第２ガロア体乗算器５７は、第１ガロア体乗算器５４の出力値と中間値シフトレジスタ５５の出力値とをガロア体乗算し、その結果を第１ガロア体加算器５８に出力する。第１ガロア体加算器５８は、第２ガロア体乗算器５７の出力値と、不一致計算部５１から出力されたエラー位置多項式（σ_ＯＵＴ）とをガロア体加算し、その結果をアップデートされたエラー位置多項式（σ_ＩＮ）として不一致計算部５１にフィードバックする。
【００７３】
第１インバータ５９ａは、第１コードワード終了信号（ＣＷ_ＥＮＤ１）を反転させて出力し、第１ＡＮＤゲート５９ｂは、外部から入力されたリセット信号と第１インバータ５９ａの出力信号とを論理積することにより、中間値シフトレジスタ５５のリセット信号（ＲＳＴ）として出力する。
【００７４】
図６は、図５に示した不一致計算部５１の一実施の形態に係る回路図であり、係数シフトレジスタ６１、第２インバータ６１ａ、第２ＡＮＤゲート６１ｂ、第３マルチプレクサ（ＭＵＸ  ３）６２、第３ガロア体乗算器６３、第２ガロア体加算器６４、フィードバックベクトルレジスタ６５、第３インバータ６５ａ、第３ＡＮＤゲート６５ｂ、出力ベクトルレジスタ６６、判断部６７及び係数出力部６８で構成されている。そして、係数出力部６８は、選択信号生成部６８−１、第４マルチプレクサ（ＭＵＸ  ４）６８−２、“０ｘ００”が格納されたＲＯＭ６８−３及び第５マルチプレクサ（ＭＵＸ  ５）６８−４で構成されている。
【００７５】
図６において、係数シフトレジスタ６１は、１１個（＝ｔ＋１個）のレジスタが直列に接続されており、第１ガロア体加算器５８から出力されるアップデートされたエラー位置多項式（σ_ＩＮ）をＲＳクロック（ＲＳ_ＣＬＫ）に応答してシフトさせて出力すると同時に、最後にアップデートされた１段から１０段までの値を並列で出力する。この際に出力された値はエラー位置多項式σ（Ｘ）の係数に当たる。
【００７６】
第３マルチプレクサ６２は、“Ｄ０_ＦＬＡＧ”信号に応答して、第１ガロア体加算器５８から出力されたエラー位置多項式（σ_ＩＮ）又は係数シフトレジスタ６１でシフトされて出力されたエラー位置多項式（σ_ＯＵＴ）を選択的に出力する。すなわち、第３マルチプレクサ６２は、１番目の不一致（ｄ０）を計算する場合に当たる“ハイ”Ｄ０_ＦＬＡＧである時、係数シフトレジスタ６１でシフトされて出力されたエラー位置多項式（σ_ＯＵＴ）を選択して出力する。次に、残りの不一致ｄ１〜ｄ１９を計算する場合に当たる“ロー”Ｄ０_ＦＬＡＧである時、アップデートされて出力されたエラー位置多項式（σ_ＩＮ）を選択して第３ガロア体乗算器６３に出力する。
【００７７】
第３ガロア体乗算器６３は、シンドローム計算部（図１の符号４）から出力されたシンドローム値（ＳＹＮＤ）と、第３マルチプレクサ６２から出力された値とをガロア体乗算して、その結果を第２ガロア体加算器６４に出力する。第２ガロア体加算器６４は、第３ガロア体加算器６３の出力値とフィードバックされた値とをガロア体加算して、その結果をフィードバックベクトルレジスタ６５及び出力ベクトルレジスタ６６に各々出力する。
【００７８】
フィードバックベクトルレジスタ６５は、第２ガロア体加算器６４の出力値をＲＳクロック（ＲＳ_ＣＬＫ）に応答してラッチし、第２ガロア体加算器６４にフィードバックする。第３インバータ６５ａは、“Ｄ_ＥＮＤ”信号を反転させて、第３ＡＮＤゲート６５ｂは、外部のリセット信号（ＲＳＴ）と第３インバータ６５ａの出力信号とを論理積演算し、その結果をフィードバックベクトルレジスタ６５のリセット信号として提供する。
【００７９】
出力ベクトルレジスタ６６は、“Ｄ_ＥＮＤ”信号によりイネーブルされ、第２ガロア体加算器６４の出力値をラッチして最終不一致（ｄ）として出力し、判断部６７は、出力ベクトルレジスタ６６から出力された不一致（ｄ）が“０”であるか否かを判断し、“０”であるとハイの“Ｄ_ＺＥＲＯ”信号を出力して、前記ＲＢＡの第３段階を行うのに用いる。
【００８０】
係数出力部６８において、選択信号生成部６８−１は、係数選択信号（σ_ＣＯＥＦ_ＳＥＬ）を受信して、第４及び第５マルチプレクサ６８−２，６８−４の選択信号（ＳＥＬ４，ＳＥＬ５）を生成して出力する。第４マルチプレクサ６８−２は、選択信号（ＳＥＬ４）に応答して、係数シフトレジスタ６１から並列に出力された１０個の値のうち１つを選択して出力する。第５マルチプレクサ６８−４は、選択信号（ＳＥＬ５）に応答して、第４マルチプレクサ６８−２から出力された値又はＲＯＭ６８−３の“０ｘ００”を選択して、エラー位置多項式の係数（σ_ＣＯＥＦ)として出力する。
【００８１】
図７は、図１に示したエラー訂正部８の一実施の形態に係る回路図であり、エラー訂正部８は、共役元格納部７０、エラー評価多項式計算部７１、エラー評価多項式評価部７２、エラー位置多項式評価部７３、エラー値計算及び訂正部７４及び復号失敗判断部７５で構成されている。
【００８２】
図７において、共役元格納部７０は、リードソロモンコードの最高次から評価進行するためのガロア体フィールド元の逆数に当たる原始根（α−Ｎ＊ｉ，１≦ｉ≦ｔ）（なお、”＊”は”×”を意味する）と次のシンボルのために次数を更新するためのガロア体フィールド元に当たる更新根（αｉ，１≦ｉ≦ｔ）を格納し、エラー評価多項式Ω（Ｘ）とエラー位置多項式σ（Ｘ）の評価を進行させられるように根値を提供する。
【００８３】
エラー評価多項式計算部７１は、シンドローム計算部（図１の符号４）から出力されたシンドローム値（ＳＹＮＤ）及びエラー位置多項式の係数（σ_ＣＯＥＦ）を受信して、２つの値を乗算してエラー評価多項式の係数（Ω_ＣＯＥＦ）を出力する。
【００８４】
エラー評価多項式評価部７２は、共役元格納部７０から出力された原始根（α−Ｎ＊ｉ，１≦ｉ≦ｔ）とガロア体フィールド元の更新根（αｉ，１≦ｉ≦ｔ）とを用いて、エラー評価多項式の係数（Ω_ＣＯＥＦ）からエラー評価多項式（Ω（Ｘ））を評価し、その結果としてエラー位置信号（ＥＲＲ_ＦＬＡＧ）を出力する。また、エラー位置多項式（σ（Ｘ））の微分値である微分多項式（σ’（Ｘ））を評価し、その結果として微分評価値（σｐ_ＶＡＬ）を出力する。
【００８５】
エラー値計算及び訂正部７４は、微分評価値（σｐ_ＶＡＬ）及びエラー評価値（Ω_ＶＡＬ）を受信し、フォニ(Forney)アルゴリズムを適用してエラー値（ｅｉ）を計算して出力する。また、エラー発生信号（ＥＲＲ_ＦＬＡＧ）に応答し、受信シンボル（Ｒ_ＳＹＭ）にエラー値（ｅｉ）を加算して、エラー訂正された復元シンボル（Ｃ_ＳＹＭ）を出力する。
【００８６】
復元失敗判断部７５は、エラー訂正された復元シンボル（Ｃ_ＳＹＭ）が正確であるか否かを判断して、その結果に応じて復元失敗信号（ＵＮＲＣＶＲ_ＦＲＡＧ）を出力する。
【００８７】
次いで、図７に示したエラー訂正部８を図８〜図１４に基づき、さらに詳細に説明する。
【００８８】
図８は、図７に示した共役元格納部７０の一実施の形態を示すブロック図である。共役元格納部７０は、第１ＲＯＭ８０-１〜８０-１０、第１マルチプレクサ（ＭＵＸ  １）８０-１１、第２ＲＯＭ８０-１２〜８０-２１及び第２マルチプレクサ（ＭＵＸ  ２）８０-２２で構成されている。
【００８９】
図８において、第１ＲＯＭ８０−１〜８０−１０は、評価進行の初期化に用いられる原始根（ＩＡＬＰＨＡ）α−２０７，α−２０７＊２，α−２０７＊３，…，α−２０７＊１０を格納する。第１マルチプレクサ８０−１１は、原始根選択信号（ＥＩＡ_ＳＥＬ）に応答して、ＲＯＭ８０−１〜８０−１０の原始根を順次選択して出力する。
【００９０】
第２ＲＯＭ８０−１２〜８０−２１は、次数更新のためのガロア体フィールド元である更新根α１，α２，…，α１０を格納する。第２マルチプレクサ８０−２２は、更新根選択信号（ＥＡ_ＳＥＬ）に応答して、ＲＯＭ８０−１２〜８０−２１の更新根を順次選択して出力する。
【００９１】
図９は、図７に示したエラー評価多項式計算部７１の一実施の形態を示すブロック図であり、ガロア体乗算器９１、ガロア体加算器９２、マルチプレクサ（ＭＵＸ  ３）９３及びシフトレジスタ９４で構成されている。
【００９２】
図９において、ガロア体乗算器９１は、エラー位置多項式の係数（σ_ＣＯＥＦ）とシンドローム値（ＳＹＮＤ）とを受信してガロア体乗算し、その結果をガロア体加算器９２に出力する。ガロア体加算器９２は、ガロア体乗算器９１の出力値とシフトレジスタ９４の出力値とをガロア体加算し、その結果をマルチプレクサ９３に出力する。マルチプレクサ９３は、初期化信号（ＦＩＲＳＴ_ＦＬＡＧ）に応答して、エラー位置多項式の係数（σ_ＣＯＥＦ）又はガロア体加算器９２の出力を選択してシフトレジスタ９４に出力する。シフトレジスタ９４は、エラー評価多項式の係数（Ω１〜Ω１０）を格納するためのものであり、ＲＳクロック（ＲＳ_ＣＬＫ）に同期してマルチプレクサ９３の出力をシフトさせて、ガロア体加算器９２にフィードバックする。この際、実際に計算されるエラー評価多項式の係数（Ω１〜Ω１０）は下記の表１のように示される。
【００９３】
【表１】
0004012997.tif 000006
【００９４】
表１のように、エラー評価多項式Ω（Ｘ）の０次係数（Ω０）は、常に“１”であり、レジスタに格納しておく必要がないために、エラー評価多項式Ω（Ｘ）の係数を格納するためには１０個のレジスタが必要である。一方、シンドローム値には、１次シンドローム（Ｓ１）から１０次シンドローム（Ｓ１０）まで用いる。
【００９５】
次に、図９に示したエラー評価多項式計算部７１の動作を、さらに詳細に説明する。
【００９６】
１番目のシンボルクロック周期の間、エラー位置多項式計算部（図１の符号７）で計算されたエラー位置多項式の１次係数（σ１）から１０次係数（σ１０）が、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して入力される。制御部１０の初期化信号（ＦＩＲＳＴ_ＦＡＬＧ）に応答して、マルチプレクサ９３は、受信したエラー位置多項式の１次〜１０次係数を選択してシフトレジスタ９４に格納する。
【００９７】
２番目のシンボルクロック周期の間、ガロア体乗算器９１の一方側の入力端子にはエラー位置多項式の０次係数（σ０＝“１”）が提供され、他方側の入力端子にはＲＳクロック（ＲＳ_ＣＬＫ）に応答して、“Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ８，Ｓ９，Ｓ１０”次のシンドロームが入力されてガロア体乗算され、ガロア体加算器９２は、ガロア体乗算器９１の出力とシフトレジスタ９４の中間値とをガロア体加算する。マルチプレクサ９３は、ガロア体加算器９２の出力を選択してシフトレジスタ９４に出力する。したがって、シフトレジスタ９４に格納された値は、Ｓ１＋σ１，Ｓ２＋σ２，Ｓ３＋σ３，…，Ｓ９＋σ９，Ｓ１０＋σ１０になる。
【００９８】
３番目のシンボルクロック周期の間、ガロア体乗算器９１の一方側の入力端子にはエラー位置多項式の１次係数（σ１）が提供され、他方側の入力端子にはＲＳクロック（ＲＳ_ＣＬＫ）に応答して、“０，Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ８，Ｓ９”次のシンドロームが入力される。マルチプレクサ９３は、ガロア体加算器９２の出力を選択してシフトレジスタ９４に出力する。したがって、シフトレジスタ９４に格納された値は、Ｓ１＋σ１，Ｓ２＋σ１・Ｓ１＋σ２，Ｓ３＋σ１・Ｓ２＋σ３，…，Ｓ９＋σ１・Ｓ８＋σ９，Ｓ１０＋σ１・Ｓ９＋σ１０になる。
【００９９】
４番目のシンボルクロック周期の間、エラー位置多項式の２次係数（σ２）が維持され、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、“０，０，Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ８”次のシンドロームが入力される。したがって、シフトレジスタ９４の値は、Ｓ１＋σ１，Ｓ２＋σ１・Ｓ１＋σ２，Ｓ３＋σ１・Ｓ２＋σ２・Ｓ１＋σ３，…，Ｓ９＋σ１・Ｓ８＋σ２・Ｓ７＋σ９，Ｓ１０＋σ１・Ｓ９＋σ２・Ｓ８＋σ１０になる。
【０１００】
引き続き、最後の１１番目のシンボルクロックの間、エラー位置多項式の１０次係数（σ１０）が維持され、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、“０，０，０，０，０，０，０，０，０，Ｓ１”次のシンドロームが入力される。したがって、シフトレジスタ９４の値は、前記表１に示されたエラー評価多項式の係数（Ω１〜Ω１０）になる。
【０１０１】
ここで、制御部（図１の符号１０）のシンドロームパス信号（ＳＹＮＤ_ＰＡＳＳ）信号に応答して、シンドローム選択部（図１の符号６）から該シンドローム（ＳＹＮＤ）又は“０ｘ００”が選択的にガロア体乗算器９１に入力される。すなわち、初期化信号（ＦＩＲＳＴ_ＦＬＡＧ）に応答して、エラー位置多項式の係数（σ_ＣＯＥＦ：σ１〜σ１０）でシフトレジスタ９４を初期化した後、エラー位置多項式の係数（σ_ＣＯＥＦ）と、シンドローム値（ＳＹＮＤ）とをガロア体乗算し、既にシフトレジスタ９４に格納されていた中間値とガロア体加算することにより、エラー評価多項式の係数（Ω_ＣＯＥＦ：Ω１〜Ω１０）をアップデートしていく。
【０１０２】
図１０は、図７に示したエラー評価多項式評価部７２の一実施の形態を示すブロック図であり、第１ガロア体乗算器１００、項選択部（ＭＵＸ  ４）１０２、次数更新部１０４、項演算部１０６及びエラー評価値出力部１０８で構成されている。また、次数更新部１０４は、シフトレジスタ１０４−１及びガロア体乗算器１０４−２で構成され、項演算部１０６は、ガロア体加算器１０６−１、“０ｘ００”が格納されたＲＯＭ１０６−２、インバータ１０６−３、ＡＮＤゲート１０６−４、合算レジスタ１０６-６及びマルチプレクサ（ＭＵＸ  ５）１０６-５で構成されている。また、エラー評価値出力部１０８は、合算レジスタ１０８-１、“０ｘ００”が格納されたＲＯＭ１０８-１及びガロア体加算器１０８-３で構成されている。
【０１０３】
図１０において、第１ガロア体乗算器１００の一方側の入力端子には、共役元格納部７０の第１マルチプレクサ８０−１１の出力、すなわち最高次の受信シンボルから評価するための原始根α−２０７，α−２０７＊２，α−２０７＊３，…，α−２０７＊１０が、原始根選択信号（ＥＩＡ_ＳＥＬ）に応答してＲＳクロック（ＲＳ_ＣＬＫ）単位で順番に選択されて入力される。また、他方側の入力端子には、エラー評価多項式計算部（図７の符号７１）で計算されたエラー評価多項式の係数（Ω_ＣＯＥＦ）が順次入力される。第１ガロア体乗算器１００は、これらの２つの値をガロア体乗算して、初期項値（ＩＮＩＴＩＡＬ）Ω１α−２０７，Ω２α−２０７＊２，Ω３α−２０７＊３，Ω４α−２０７＊４，Ω５α−２０７＊５，Ω６α−２０７＊６，Ω７α−２０７＊７，Ω８α−２０７＊８，Ω９α−２０７＊９，Ω１０α−２０７＊１０を順次項選択部１０２に出力する。
【０１０４】
項選択部１０２は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）に応答して、初期項値（ＩＮＩＴＩＡＬ）を選択して、次数更新部１０４の１０個のシフトレジスタ１０４−１に出力する。１０個のシフトレジスタ１０４−１は、初期項値（ＩＮＩＴＩＡＬ）をＲＳクロック（ＲＳ_ＣＬＫ）に応答してシフトさせて、最終段のレジスタ値を第２ガロア体乗算器１０４−２に出力する。
【０１０５】
一方、共役元格納部（図７の符号７０）の第２マルチプレクサ８０−２２は、更新根選択信号（ＥＩＡ_ＳＥＬ）に応答して、第２ＲＯＭ８０−１２〜８０−２１に格納されたα１，α２，α３，α４，α５，α６，α７，α８，α９，α１０値を順次選択してガロア体乗算器１０４−２に出力する。ガロア体乗算器１０４−２は、シフトレジスタ１０４−１の項値と次数更新のためのＲＯＭ値とを順に乗算して、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、乗算結果Ω１α−２０６，Ω２α−２０６＊２，Ω３α−２０６＊３，Ω４α−２０６＊４，Ω５α−２０６＊５，Ω６α−２０６＊６，Ω７α−２０６＊７，Ω８α−２０６＊８，Ω９α−２０６＊９，Ω１０α−２０６＊１０を出力する。
【０１０６】
項演算部１０６のガロア体加算器１０６−１では、ガロア体乗算器１０４−２から出力された項値と、合算レジスタ１０６−６でフィードバックされた値とを加算してマルチプレクサ１０６−５に出力する。合算レジスタ１０６−６は、マルチプレクサ１０６−５から出力された値をラッチして、ガロア体加算器１０６−１にフィードバックする。こうして、項演算部１０６を介して最高次受信シンボル（Ｒ_２０６）に対するエラー評価多項式の１次項から８次項までの合算値（ＳＵＭ１＝Ω１α−２０６＋Ω２α−２０６＊２＋Ω３α−２０６＊３＋Ω４α−２０６＊４＋Ω５α−２０６＊５＋Ω６α−２０６＊６＋Ω７α−２０６＊７＋Ω８α−２０６＊８＋Ω９α−２０６＊９＋Ω１０α−２０６＊１０）が出力される。
【０１０７】
エラー評価値出力部１０８の合算レジスタ１０８−２は、シンボルリセット信号（ＲＳＴ_ＳＹＭ）によりイネーブル状態になって、ガロア体加算器１０６−１から出力された合算値（ＳＵＭ１）をラッチしてガロア体加算器１０８−３に出力する。ガロア体加算器１０８−３は、合算値（ＳＵＭ１）と、ＲＯＭ１０８−１からロードされた０次係数（Ω０）に当たる“０ｘ００”値とをガロア体加算して、１番目の受信シンボル（Ｒ_２０６）に対するエラー評価進行を行ったΩ（α−２０６）値をエラー評価多項式の評価値（Ω_ＶＡＬ）として出力する。
【０１０８】
次に、受信シンボル（Ｒ_２０６）のエラー評価進行のために、次数更新部１０４のガロア体乗算器１０４−２から出力された値Ω１α−２０６＊１，Ω２α−２０６＊２，Ω３α−２０６＊３，Ω４α−２０６＊４，Ω５α−２０６＊５，Ω６α−２０６＊６，Ω７α−２０６＊７，Ω８α−２０６＊８，Ω９α−２０６＊９，Ω１０α−２０６＊１０が、項選択部１０２を介して選択されてシフトレジスタ１０４−１に出力される。
【０１０９】
１０個のシフトレジスタ１０４−１は、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、項選択部１０２の出力をシフトさせてガロア体乗算器１０４−２に出力し、ガロア体乗算器１０４−２では、共役元格納部（図７の符号７０）の第２マルチプレクサ８０−２２から出力された次数更新のための更新根α１，α２，α３，α４，α５，α６，α７，α８，α９，α１０とガロア体乗算して出力する。
【０１１０】
その結果、ガロア体乗算器１０４−２から出力されたΩ１α−２０５＊１，Ω２α−２０５＊２，Ω３α−２０５＊３，Ω４α−２０５＊４，Ω５α−２０５＊５，Ω６α−２０５＊６，Ω７α−２０５＊７，Ω８α−２０５＊８，Ω９α−２０５＊９，Ω１０α−２０５＊１０値が、項演算部１０６及び項選択部１０２に入力されて次数が更新され、項演算部１０６及び項選択部１０２は、前述の動作を繰り返すエラー評価進行を行うことにより、エラー評価出力部１０８を介してエラー評価値（Ω（α−２０５））が求められる。
【０１１１】
引き続き、コードワードの最後のシンボル（Ｒ_０）まで、前述した受信シンボル（Ｒ_２０５）と同じ動作でエラー評価進行が行われる。
【０１１２】
図１１は、図７に示したエラー位置多項式評価部７３の一実施の形態を示すブロック図であり、初期化部１１０、項選択部１１１及び第１次数更新部１１２で構成され、項値を更新する更新部と、第１多項演算部１１３、第２多項演算部１１４及びエラー判断部１１５で構成され、エラー位置多項式（σ（Ｘ））を評価してエラー位置信号（ＥＲＲ_ＦＬＡＧ）を出力する第１評価部と、奇数次項選択部１１６と、第２次数更新部１１７、第３多項演算部１１８及び微分評価値出力部１１９で構成され、エラー位置微分多項式（σ’（Ｘ））を評価して微分評価値（σｐ_ＶＡＬ）を出力する第２評価部とを備えている。
【０１１３】
次に、図１１に示したエラー位置多項式評価部７３の動作を、次の３つの過程により説明する。
【０１１４】
（１）初期化過程
ガロア体乗算器１１０の一方側の入力端子には、ＲＳクロック（ＲＳ_ＣＬＫ）単位で発生する原始根選択信号（ＥＩＡ_ＳＥＬ）に応答して、第１マルチプレクサ（図８の符号８０−１１）からガロア体フィールドの逆数（ＩＡＬＰＨＡ）値であるα−２０７＊１，α−２０７＊２，α−２０７＊３，α−２０７＊４，α−２０７＊５，α−２０７＊６，α−２０７＊７，α−２０７＊８，α−２０７＊９，α−２０７＊１０が順次選択されて入力される。また、他方側の入力端子には、エラー位置多項式計算部（図７の符号７１）で計算されたエラー位置多項式の係数（σ_ＣＯＥＦ：σ１，σ２，…，σ１０）が順次入力される。ガロア体乗算器１１０は、ＲＳクロック（ＲＳ_ＣＬＫ）単位で動作し、これらの２つの値をガロア体乗算して、σ１α−２０７＊１，σ２α−２０７＊２，σ３α−２０７＊３，σ４α−２０７＊４，σ５α−２０７＊５，σ６α−２０７＊６，σ７α−２０７＊７，σ８α−２０７＊８，σ９α−２０７＊９，σ１０α−２０７＊１０で初期化された値（ＩＮＩＴＩＡＬ）を順次項選択部１１１に出力する。
【０１１５】
項選択部１１１は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）に応答して、初期化値（ＩＮＩＴＩＡＬ）を選択して１０個のシフトレジスタ１１２−１に出力する。１０個のシフトレジスタ１１２−１は、項選択部１１１から出力された初期化値（ＩＮＩＴＩＡＬ）をＲＳクロック（ＲＳ_ＣＬＫ）に応答してシフトさせてガロア体乗算器１１２−２に出力する。一方、共役元格納部（図７の符号７０）の第２マルチプレクサ８０−２２は、ＲＳクロック（ＲＳ_ＣＬＫ）単位で発生する更新根選択信号（ＥＡ_ＳＥＬ）に応答して、第２ＲＯＭ８０−１２〜８０−２１から、α１，α２，α３，α４，α５，α６，α７，α８，α９，α１０値を順次選択してガロア体乗算器１１２−２に出力する。ガロア体乗算器１１２−２は、シフトレジスタ１１２−１から出力された初期化値（ＩＮＩＴＩＡＬ）と更新根（ＡＬＰＨＡ）をＲＳクロック（ＲＳ_ＣＬＫ）単位で各々ガロア体乗算し、その結果の値であるσ１α−２０６＊１，σ２α−２０６＊２，σ３α−２０６＊３，σ４α−２０６＊４，σ５α−２０６＊５，σ６α−２０６＊６，σ７α−２０６＊７，σ８α−２０６＊８，σ９α−２０６＊９，σ１０α−２０６＊１０を順に出力する。
【０１１６】
（２）エラー位置信号（ＥＲＲ_ＦＬＡＧ）を発生する評価進行過程
第１多項演算部１１３のガロア体加算器１１３−１では、ガロア体乗算器１１２−２から出力された項値と、合算レジスタ１１３−６からフィードバックされた値とをガロア体加算してマルチプレクサ１１３−５に出力する。マルチプレクサ１１３−５は、リセット信号（ＲＳＴ）と反転されたシンボルリセット信号（ＲＳＴ_ＳＹＭ）とをＡＮＤゲート１１３−４で論理積した結果として出力された信号に応答して、ガロア体加算器１１３−１から出力された値又はＲＯＭ１１３−２の“０ｘ００”を選択して合算レジスタ１１３−６に出力する。合算レジスタ１１３−６は、マルチプレクサ１１３−５から出力された値をＲＳクロック（ＲＳ_ＣＬＫ）に応答してラッチし、ガロア体加算器１１３−１にフィードバックすると同時にＡＮＤゲート１１３−４の出力信号に応答してリセットされる。したがって、第１多項演算部１１３でエラー位置多項式（σ（Ｘ））の１次から１０次までの項の合算値（ＳＵＭ１＝σ１α−２０６＊１，σ２α−２０６＊２，σ３α−２０６＊３，σ４α−２０６＊４，σ５α−２０６＊５，σ６α−２０６＊６，σ７α−２０６＊７，σ８α−２０６＊８，σ９α−２０６＊９，σ１０α−２０６＊１０）が計算される。
【０１１７】
一方、第２多項演算部１１４の合算レジスタ１１４−１は、シンボルリセット信号（ＲＳＴ_ＳＹＭ）によりイネーブルされ、第１多項演算部１１３から出力された合算値（ＳＵＭ１）をラッチして、ガロア体加算器１１４−３に出力する。ガロア体加算器１１４−３は、合算値（ＳＵＭ１）と、ＲＯＭ１１４−２から出力された０次係数（σ０）に当たる“０ｘ００”値とをガロア体加算し、その結果としてエラー位置多項式の位置評価値（σ_ＶＡＬ）を出力する。
【０１１８】
エラー判断部１１５は、第２多項演算部１１４から出力される位置評価値（σ_ＶＡＬ）を受信して、評価値が“０”であると判断されると、エラー位置信号（ＥＲＲ_ＦＬＡＧ）“１”を発生させてエラーが発生したことを知らせ、評価値が“０”でないと判断されると、エラー位置信号（ＥＲＲ_ＦＬＡＧ）“０”を発生させてエラーが発生しなかったことを知らせる。
【０１１９】
上述の評価進行は、受信シンボル（Ｒ_２０６）に対するエラー発生位置を判断する過程を示したものであり、残りの受信シンボルに対するエラー位置信号（ＥＲＲ_ＦＬＡＧ）も同じ過程により発生する。
【０１２０】
（３）微分評価値を出力する評価進行過程
奇数次項選択部１１６のマルチプレクサ１１６−２は、更新根選択信号（ＥＡ_ＳＥＬ）の最下位ビットを選択信号（ＥＡ_ＳＥＬ０）として用いる。マルチプレクサ１１６−２は、ガロア体乗算器１１２−２から出力された項値とＲＯＭ１１６−１から出力された“０ｘ００”値を受信して、σ１α−２０６＊１，０ｘ００，σ３α−２０６＊３，０ｘ００，σ５α−２０６＊５，０ｘ００，σ７α−２０６＊７，０ｘ００，σ９α−２０６＊９，０ｘ００を順次選択して、第３多項演算部１１８のガロア体乗算器１１８−１に出力する。
【０１２１】
一方、第２次数更新部１１７のレジスタ１１７−３は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）を反転させた信号によりリセットされ、シンボルリセット信号（ＲＳＴ_ＳＹＭ）によりイネーブルされて、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、ガロア体乗算器１１７−５の出力をラッチする。また、レジスタ１１７−３は、ＲＯＭ１１７−２に格納されたα２０６値をロードして、第３多項演算部１１８のガロア体乗算器１１８−１及びガロア体乗算器１１７−５に出力する。ここで、ガロア体乗算器１１７−５は、ＲＯＭ１１７−４に格納されたα−１値とレジスタ１１７−３から出力された値とをガロア体乗算して、その結果を再びレジスタ１１７−３にフィードバックする。
【０１２２】
第３多項演算部１１８のガロア体乗算器１１８−１は、レジスタ１１７−３から出力されたα２０６と、奇数次項選択部１１６から出力された値とをガロア体乗算して、σ１α−２０６＊１α２０６，０ｘ００，σ３α−２０６＊３α２０６，０ｘ００，σ５α−２０６＊５α２０６，０ｘ００，σ７α−２０６＊７α２０６，０ｘ００，σ９α−２０６＊９α２０６，０ｘ００値をＲＳクロック（ＲＳ_ＣＬＫ）に応答して順次出力して、ガロア体加算器１１８−２に出力する。ガロア体加算器１１８−２は、ガロア体乗算器１１８−１から出力された値と合算レジスタ１１８−３から出力された値とをガロア体加算して、合算レジスタ１１８−３にフィードバックする。合算レジスタ１１８−３には、ＲＳクロック（ＲＳ_ＣＬＫ）に応答して、ガロア体加算器１１８-２から出力された値がフィードバックされ、シンボルリセット信号（ＲＳＴ_ＳＹＭ）によりリセットされる。
【０１２３】
微分評価値出力部１１９は、シンボルリセット信号（ＲＳＴ_ＳＹＭ）によりイネーブルされ、ガロア体加算器１１８−２から出力された値、すなわち微分評価値（σｐ_ＶＡＬ）をラッチして、受信シンボルに対する微分評価値（σｐ_ＶＡＬ）を出力する。
【０１２４】
すなわち、受信シンボル（Ｒ_２０６）に対する微分評価値は、σ１α−２０６＊１α２０６＋σ３α−２０６＊３α２０６＋σ５α−２０６＊５α２０６＋σ７α−２０６＊７α２０６＋σ９α−２０６＊９α２０６＝α２０６ｏｄｄ（σ（α−２０６））として出力され、残りの受信シンボルに対しても、第２次数更新部１１７のαｉ次数が１ずつ減少して奇数次項に乗算され、同じ動作により微分評価値（σｐ_ＶＡＬ）が求められる。
【０１２５】
図１２は、図７に示したエラー値計算及び訂正部７４の第１の実施の形態を示すブロック図であり、エラー計算及び訂正部７４は、逆数ルックアップテーブル１２０、第１ガロア体乗算器１２１、プライムルックアップテーブル１２２、第２ガロア体乗算器１２３、“０ｘ００”が格納されたＲＯＭ１２４、マルチプレクサ１２５及びガロア体加算器１２６で構成されている。
【０１２６】
図１２において、逆数ルックアップテーブル１２０は、既に決められた微分評価値に対する逆数値を格納し、エラー位置多項式評価部（図７の符号７３）から微分評価値（σｐ_ＶＡＬ）に当たる微分評価値（σ’（α−ｉ））の逆数（１／σ’（α−ｉ））を第１ガロア体乗算器１２１に出力する。
【０１２７】
第１ガロア体乗算器１２１は、エラー位置多項式評価部（図７の符号７３）から出力されるエラー評価値（Ω_ＶＡＬ）と逆数ルックアップテーブル１２０から出力される逆数微分評価値（１／σ’（α−ｉ））とをガロア体乗算する。
【０１２８】
プライムルックアップテーブル１２２は、制御部（図１の符号１０）から提供されるシンボル番号信号（ＮＯ_ＳＹＭ）に応答して、シンボル次数に当たるガロア体フィールド元αｉを出力する。第２ガロア体乗算器１２３は、第１ガロア体乗算器１２１の出力値とプライムルックアップテーブル１２２から出力されるガロア体フィールド元αｉとをガロア体乗算し、その結果の値であるエラー値ｅｉをマルチプレクサ１２５に出力する。
【０１２９】
Ｂマルチプレクサ１２５は、エラー位置信号（ＥＲＲ_ＦＬＡＧ）に応答して、ＲＯＭ１２４に格納された“０ｘ００”又は第２ガロア体乗算器１２３のエラー値ｅｉを選択してガロア体加算器１２６に出力する。ガロア体加算器１２６は、受信シンボル（Ｒ_ＳＹＭ）とマルチプレクサ１２５の出力値とをガロア体加算し、その結果の値であるエラー訂正された復元シンボル（Ｃ_ＳＹＭ）を出力する。すなわち、エラー位置信号（ＥＲＲ_ＦＬＡＧ）に応答して、エラーが発生した受信シンボルに計算されたエラー値を加算することによりエラー訂正が行われる。
【０１３０】
図１３は、図７に示したエラー値計算及び訂正部７４の第２の実施の形態を示すブロック図である。エラー計算及び訂正部７４は、逆数ルックアップテーブル１３０、第１ガロア体乗算器１３１、ガロア体フィールド元出力部１３２、第２ガロア体乗算器１３３、“０ｘ００”が格納されたＲＯＭ１３４、マルチプレクサ１３５、ガロア体加算器１３６で構成されている。また、ガロア体フィールド元出力部１３２は、第１ＲＯＭ１３２−１、第２ＲＯＭ１３２−２、第３ガロア体乗算器１３２−３、マルチプレクサ１３２−４及びレジスタ１３２−５で構成されている。
【０１３１】
図１３において、ガロア体フィールド元出力部１３２の第１ＲＯＭ１３２−１は、リードソロモンコードの最高次原始元“αＮ−１”を格納し、第２ＲＯＭ１３２−２は、原始元を１次ずつ減少させるために“α−１”を格納する。第３ガロア体乗算器１３２−３は、第２ＲＯＭ１３２−２の“α−１”とフィードバックされた値とを受信してガロア体乗算し、その結果として１次ずつ低い次数の原始元を出力する。マルチプレクサ１３２−４は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）に応答して、第１ＲＯＭ１３２−１の最高次原始元又は第３ガロア体乗算器１３２−３から計算された原始元を選択して出力する。レジスタ１３２−５は、マルチプレクサ１３２−４から出力された原始元（αｉ）をラッチして、第２ガロア体乗算器１３に出力すると同時に、第３ガロア体乗算器１３２−３にフィードバックする。
【０１３２】
次に、図１３に示したエラー値計算及び訂正部７４の動作について、さらに詳細に説明することにする。
【０１３３】
まず、（Ｎ−１）次受信シンボル（γＮ−１）に対するエラー値を計算するために、マルチプレクサ１３２−４は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）に応答して、第１ＲＯＭ１３２−１の最高次シンボルのための原始元“αＮ−１”を選択してレジスタ１３２−５に出力する。この際、レジスタ１３２−５は、シンボルイネーブル信号（ＳＣＬＫ_ＥＮＡ）によりイネーブルされ、ＲＳクロック（ＲＳ_ＣＬＫ）に同期して原始元“αＮ−１”を受信する。逆数ルックアップテーブル１３０には、予め決められた微分評価値に対する逆数値が格納され、エラー位置多項式評価部（図７の符号７３）から提供される微分評価値（σｐ_ＶＡＬ＝σ’（α−（Ｎ−１）））を受信して、その逆数値（１／σ’（α−（Ｎ−１）））を第１ガロア体乗算器１３１に出力する。
【０１３４】
第１ガロア体乗算器１３１は、逆数ルックアップテーブル１３０から微分評価逆数値（１／σ’（α−（Ｎ−１）））を受信し、エラー評価多項式評価部（図７の符号７２）から提供されるエラー評価値（σ_ＶＡＬ＝Ω（α−（Ｎ−１）））を受信して、ガロア体乗算した値（Ω（α−（Ｎ−１））／σ’（α−（Ｎ−１）））を出力する。第２ガロア体乗算器１３３では、第１ガロア体乗算器１３１の出力値とレジスタ１３２−５から出力された原始元値（αＮ−１）とをガロア体乗算し、その結果の値であるエラー値（ｅＮ−１）を出力する。こうして、最高次シンボル（γＮ−１）に対するエラー値（ｅＮ−１＝α（Ｎ−１）（Ω（α−（Ｎ−１））／σ’（α−（Ｎ−１））））が計算される。
【０１３５】
次に、（Ｎ−２）次受信シンボル（γＮ−２）に対するエラー値を計算するために、第３ガロア体乗算器１３２−４は、レジスタ１３２−５から出力された最高次原始元“αＮ−１”と第２ＲＯＭ１３２−２の“α−１”とをガロア体乗算し、その結果として原始元“αＮ−２”を出力する。マルチプレクサ１３２−４は、初期化信号（ＩＮＩＴ_ＦＬＡＧ）に応答して、第３ガロア体乗算器１３２−３の出力値“αＮ−２”を選択して出力する。一方、逆数ルックアップテーブル１３０では、エラー位置多項式評価部（図７の符号７３）から提供される微分評価値（σｐ_ＶＡＬ＝σ’（α−（Ｎ−２）））を受信して、その逆数値（１／σ’（α−（Ｎ−２）））を第１ガロア体乗算器１３１に出力する。
【０１３６】
第１ガロア体乗算器１３１は、逆数ルックアップテーブル１３０から微分評価逆数値（１／σ’（α−（Ｎ−２）））と、エラー評価多項式評価部（図７の符号７２）から提供されるエラー評価値（σ_ＶＡＬ＝Ω（α−（Ｎ−２）））とを受信して、ガロア体乗算した値（Ω（α−（Ｎ−２））／σ’（α−（Ｎ−２）））を出力する。第２ガロア体乗算器１３３では、第１ガロア体乗算器１３１の出力値と、レジスタ１３２-５から出力された原始元値(αN-2)とをガロア体乗算して、エラー値（ｅＮ−２）を出力する。こうして、（Ｎ−２）次受信シンボル（γＮ−２）に対するエラー値（ｅＮ−２＝α（Ｎ−２）（Ω（α−（Ｎ−２））／σ’（α−（Ｎ−２））））が計算される。
【０１３７】
引き続き、前術のような動作が繰り返されて第３ガロア体乗算器１３２−３を介して原始元値が１次ずつ減少して、受信シンボルのエラー値が求められる。
【０１３８】
図１４は、図７に示した復元失敗判断部７５の一実施の形態を示すブロック図であり、復元失敗判断部７５は、カウンタ１４０、ＡＮＤゲート１４１、ＯＲゲート１４２、インバータ１４３、比較器１４４及びレジスタ１４５で構成されている。
【０１３９】
図１４において、カウンタ１４０は、エラービットが発生することを知らせるエラー位置信号（ＥＲＲ_ＦＬＡＧ）をカウントしてエラーが発生したシンボル数を出力する。ＡＮＤゲート１４１は、シンボル単位で評価するように、制御部（図１の符号１０）からシンボルクロック単位毎に発生する評価要請信号（ＥＶＡＬ_ＲＳＴ）と、エラー位置多項式評価部（図７の符号７３）から出力されたエラー位置信号（ＥＲＲ_ＦＬＡＧ）とを論理積演算する。ＯＲゲート１４２は、ＡＮＤゲート１４１の出力とエラー訂正失敗要請信号（ＵＮＲＣＶＲ_ＦＬＡＧ_ＲＳＴ）とを論理和し、その結果をカウンタ１４０のイネーブル信号として提供する。インバータ１４３は、制御部１０から提供されたエラー訂正失敗要請信号（ＵＮＲＣＶＲ_ＦＬＡＧ_ＲＳＴ）を反転させて、その結果をカウンタ１４０のクリア信号として提供する。比較器１４４は、カウンタ１４０のエラーシンボル数（ｃｎｔ）とエラー位置多項式計算部（図１の符号７）から出力されたエラー位置多項式の最高次数Ｌとを比較して、２つの値が同一である場合には“ロー”信号を出力し、同一でない場合には“ハイ”信号を出力する。レジスタ１４５は、比較器１４４の出力信号を受信して、エラー訂正失敗信号（ＵＮＲＣＶＲ_ＦＬＡＧ）を出力する。
【０１４０】
すなわち、復元失敗判断部７５では、エラー位置多項式計算部（図１の符号７）から出力されるエラー位置多項式の最高次数Ｌが１０次以下であり、カウンタ１４０のエラー発生シンボル数がＬ値と同じ場合、エラー訂正されたシンボルが正確に復元されたことを意味するので、２つの値を比較してエラー訂正の成功と失敗とを判断する。
【０１４１】
図１５は、図１に示したビットエラー率計算部９の一実施の形態を示すブロック図であり、ビットエラー率計算部９は、エラービット検査部１５１、エラービットカウンティング部１５２及びエラービット数計算部１５３で構成されている。また、エラービット検査部１５１は、第１カウンタ１５１-１、第１インバータ１５１-２、排他論理和ゲート１５１ａ〜１５１ｈ及び第１マルチプレクサ（ＭＵＸ  １）１５１-３で構成されている。なお、エラービットカウンティング部１５２は、第２カウンタ１５２-１、第２インバータ１５２-２、“０ｘ２１”を格納したＲＯＭ１５２-３、第１ＡＤＮゲート１５２-４及び第２マルチプレクサ（ＭＵＸ  ２）１５２-５で構成されている。さらに、エラービット数計算部１５３は、加算器１５３-１、レジスタ１５３-２、第３インバータ１５３-３、第２ＡＮＤゲート１５３-４及び第３ＡＮＤゲート１５３-５で構成されている。
【０１４２】
図１５において、エラービット検査部１５１の第１カウンタ１５１−１は、４ビットカウンタであり、シンボル単位毎にクリアされ、ＲＳクロック（ＲＳ_ＣＬＫ）に同期して、０，１，２，…，７，８，９，０，１，…のカウンティング値を、第１マルチプレクサ１５１−３のビット選択信号（ＳＥＬ_ＢＩＴ）として提供する。８つの排他論理和ゲート１５１ａ〜１５１ｈは、先入先出バッファー（図１の符号３）から出力された受信シンボルのビット（Ｒ_ＳＹＭ［０］〜Ｒ_ＳＹＭ［７］）と、エラー訂正部（図１の符号８）から出力されたエラー訂正されたシンボルのビット（Ｃ_ＳＹＭ［０］〜Ｃ_ＳＹＭ［７］）とを各々排他論理和演算して、２つのビットが同一である場合には“０”を、２つのビットが同一でない場合には“１”を第１マルチプレクサ１５１−３に出力する。第１マルチプレクサ１５１−３は、８つの排他論理和ゲート１５１ａ〜１５１ｈの出力を１番〜７番端子に受信して、ビット選択信号（ＳＥＬ_ＢＩＴ）に応答して、順に選択して第２カウンタ１５２−１に出力する。この際、第１マルチプレクサ１５１−３の８番、９番端子は接地された状態である。
【０１４３】
エラービットカウンティング部１５２において、第２カウンタ１５２−１は、第１マルチプレクサ１５１−３の出力信号が“１”である時にイネーブルされ、ＲＳクロック（ＲＳ_ＣＬＫ）により同期してカウンティングを行う。すなわち、受信シンボルのビットＲ_ＳＹＭ［ｉ］とエラー訂正されたシンボルのビットＣ_ＳＹＭ［ｉ］が相違する時のみにカウントして、発生したエラービット数を計測する。第２カウンタ１５２−１は、７ビットカウンタであり、コードワード当りエラー訂正できる１０のシンボルのすべてのビットから発生できる８０ビットまでカウントすることができ、コードワード毎に発生するコードワード開始信号（ＣＷ_ＳＴＡＲＴ）によりクリアされる。第１ＡＮＤゲート１５２−４は、エラー訂正が成功した場合に“ロー”であり、エラー訂正が失敗した場合に“ハイ”となる復元失敗信号（ＵＮＲＣＶＲ_ＦＬＡＧ）と、コードワード毎の１番目のシンボルが入力される間のみに“ハイ”になるコードワード開始信号（ＣＷ_ＳＴＡＲＴ）とを論理積し、その結果を第２マルチプレクサ１５２−５の選択信号として提供する。第２マルチプレクサ１５２−５は、第１ＡＮＤゲート１５２−４の出力に応答して、復元された１コードワードの訂正が失敗した場合には、ＲＯＭ１５２−３の“０ｘ２１”を選択し、エラー訂正が成功した場合には、第２カウンタ１５２−１から出力される１コードワードで発生した第１エラービット数（ＥＲＲ_ＮＵＭ１）を選択して出力する。ここで、ＲＯＭ１５２−３に格納された“０ｘ２１”値は、発生したエラー数がエラー訂正数ｔ（＝１０）を超えた場合の一例を示した値であり、１１のシンボルでエラーが発生し、各々３ビットずつエラーが発生したと仮定した値３３を１６進法で表記したものである。
【０１４４】
エラービット数計算部１５３において、加算器１５３−１は、第１エラービット数（ＥＲＲ_ＮＵＭ１）とレジスタ１５３−２から出力された値とを加算し、その結果をレジスタ１５３−２にフィードバックする。ここで、レジスタ１５３−２は、評価開始信号（ＥＶＡＬ_ＩＮＩＴ_ＦＬＡＧ）とシンボルイネーブル信号（ＳＣＬＫ_ＥＮＡ）とを論理積演算した信号により、コードワード開始のみでイネーブルされてＲＳクロック（ＲＳ_ＣＬＫ）に同期して動作し、所定の検査周期信号(例えば、１００番目のコードワード毎に“１”になる信号）によりリセットされる。したがって、コードワード周期毎に加算器１５３−１は、現在のコードワードまで発生した総エラービット数（ＥＲＲ_ＮＵＭ２）を所定の検査周期の間に出力する。
【０１４５】
すなわち、ビットエラー率計算部９では、受信シンボルとエラー訂正されたシンボルとを各ビット別に比較して同一でないビットをエラービットとしてカウントすることにより、コードワード単位でエラービット数（ＥＲＲ_ＮＵＭ１）を計測し、エラー訂正に失敗したコードワードに対しては３３ビットエラーが発生したことと仮定し、エラー訂正に成功したコードワードに対しては実際に発生したエラービット数を所定の検査周期の間に累積して、毎コードワードが開始する度に今まで発生したエラービット数を更新して出力する。
【０１４６】
前記実施の形態は、エラー訂正能力が１０であるリードソロモンコードを復元するデコーダに係り、ＲＳクロック、ＲＯＭに格納された原始根又は更新根の数及び各種レジスタの容量を可変とすることにより、１０の倍数であるエラー訂正能力を有するリードソロモンコードを復元するデコーダに容易に変更することができる。
【０１４７】
【発明の効果】
以上、述べたように本発明によると、ＡＴＶで採用した（２０７，１８７）リードソロモンコードを復元するデコーダを、ＶＬＳＩチップで容易に具体化することができる。
【図面の簡単な説明】
【図１】高画質テレビ（ＡＴＶ）に用いられる、本発明の実施の形態に係るリードソロモンデコーダを示すブロック図である。
【図２】図１に示された制御部の入出力信号を示した図である。
【図３】図１に示されたシンドローム計算部の一実施の形態を示すブロック図である。
【図４】図３に示されたシンドローム計算セルの一実施の形態を示すブロック図である。
【図５】図１に示されたエラー位置多項式計算部の一実施の形態を示すブロック図である。
【図６】図５に示された不一致計算部の一実施の形態を示すブロック図である。
【図７】図１に示されたエラー訂正部の一実施の形態を示すブロック図である。
【図８】図７に示された共役元格納部の一実施の形態を示すブロック図である。
【図９】図７に示されたエラー評価多項式計算部の一実施の形態を示すブロック図である。
【図１０】図７に示されたエラー評価多項式評価部の一実施の形態を示すブロック図である。
【図１１】図７に示されたエラー位置多項式評価部の一実施の形態を示すブロック図である。
【図１２】図７に示されたエラー値計算及び訂正部の第１の実施の形態を示すブロック図である。
【図１３】図７に示されたエラー値計算及び訂正部の第２の実施の形態を示すブロック図である。
【図１４】図７に示された復元失敗判断部の一実施の形態を示すブロック図である。
【図１５】図１に示されたビットエラー率計算部の一実施の形態を示すブロック図である。
【符号の説明】
１ クロック発生部
２ 入力バッファー
３ 先入先出バッファー
４ シンドローム計算部
５ ＲＯＭ
６ シンドローム選択部
７ エラー位置多項式計算部
８ エラー訂正部
９ ビットエラー率計算部
１０ 制御部
【図１】
0004012997.tif 000007
【図２】
0004012997.tif 000008
【図３】
0004012997.tif 000009
【図４】
0004012997.tif 000010
【図５】
0004012997.tif 000011
【図６】
0004012997.tif 000012
【図７】
0004012997.tif 000013
【図８】
0004012997.tif 000014
【図９】
0004012997.tif 000015
【図１０】
0004012997.tif 000016
【図１１】
0004012997.tif 000017
【図１２】
0004012997.tif 000018
【図１３】
0004012997.tif 000019
【図１４】
0004012997.tif 000020
【図１５】
0004012997.tif 000021