(57)【要約】【課題】Ｇ−ＰＯＮの下り信号のＦＥＣフレームサイズは２５５と１２０の２通りであり、ＦＥＣフレームサイズが異なっても、同じエラー訂正符号で処理可能な光集線装置および光加入者装置を提供する。【解決手段】ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含む光集線装置により、達成できる。また、ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含む光加入者装置により、達成できる。【選択図】図１１
2008148245.tif 000002
【特許請求の範囲】
【請求項１】
光電変換部とＰＯＮ送受信部と物理層とからなる光集線装置において、
前記ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または前記短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含むことを特徴とする光集線装置。
【請求項２】
請求項１に記載の光集線装置であって、
さらに、逆元パラメータテーブルを含み、
前記エラーサーチ部は、該逆元パラメータテーブルを参照して前記エラー値を演算することを特徴とする光集線装置。
【請求項３】
請求項１または請求項２に記載の光集線装置であって、
さらに、エラー位置多項式またはエラー評価多項式の多項式係数計算部を含むことを特徴とする光集線装置。
【請求項４】
光電変換部とＰＯＮ送受信部と物理層とからなる光加入者装置において、
前記ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または前記短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含むことを特徴とする光加入者装置。
【請求項５】
請求項４に記載の光加入者装置であって、
さらに、逆元パラメータテーブルを含み、
前記エラーサーチ部は、該逆元パラメータテーブルを参照して前記エラー値を演算することを特徴とする光加入者装置。
【請求項６】
請求項４または請求項５に記載の光加入者装置であって、
さらに、エラー位置多項式またはエラー評価多項式の多項式係数計算部を含むことを特徴とする光加入者装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加入者宅と通信事業者の局の間を通信する光アクセスシステムの光集線装置および光加入者装置に関する。
【背景技術】
【０００２】
音声や画像など、データを転送する公衆通信網の中で、ユーザを局に収容するアクセス網には、電話加入者網やＡＤＳＬ等が利用されてきた。更に近年になって、光アクセスシステムの導入が始まっている。
【０００３】
この光アクセスシステムとしては、局側と加入者の間を１対ｎで接続する形態として、ＰＯＮ（Passive Optical Network）が知られている。ＰＯＮでは、上り用と下り用に光波長を１つずつ割り当て、局舎に設けたＯＬＴ（Optical Line Terminal）と複数個の加入者宅のＯＮＴ（Optical Network Terminal）の間で、帯域を共用してデータ通信を行う。ＯＬＴからＯＮＴに向かう下り側信号は途中スプリッタにおいて光信号が分配され、ＯＮＴ側で自分宛の信号のみを取り出すことで通信を行う。上り信号に関しては、ＯＬＴがＯＮＴに対して送信時間タイミングを通知し、そのタイミングに合わせてＯＮＴがＯＬＴに対して信号を送信することにより、ひとつの波長を複数のＯＮＴで共用してＯＬＴとの通信を行う。
【０００４】
この様な光アクセスシステムとしては、Ｂ-ＰＯＮ（Broadband PON）、Ａ-ＰＯＮ（ATM PON）、ＧＥ-ＰＯＮ（Giga-bit Ether PON）、Ｇ-ＰＯＮ（Gigabit-capable PON）が知られている。特に、Ｇ-ＰＯＮは、最高速度が上り１.２５Ｇｂｉｔ/ｓ、下り２.５Ｇｂｉｔ/ｓと最も高速で、ＡＴＭ、イーサネット（登録商標）、ＷＤＭプロトコルをサービスするネイティブＧＥＭ（Gigabit-capable Encapsulation Method/G-PON Encapsulation Method）を採用することで、複数のプロトコルをサービスする点で、注目を浴びている。
【０００５】
上述したようにＯＬＴとＯＮＴとの間にはスプリッタが存在するので、下り信号も上り信号も減衰をうける。このため、ＰＯＮについても、エラー訂正符号（ＦＥＣ：Forward Error Correction code）の符号化・復号化技術の適用が検討されている。エラー訂正符号としては、数学的に整然とした体系を有するブロック符号の中で、情報の透過性から組織符号と呼ばれる符号が、専ら用いられる。組織符号は、連続した信号系列を一定のブロック毎に区切り、各ブロック毎に符号化を行うもので、信号内の予め定められた空領域に検査ビットを付加するのみで、元の信号情報は操作されないという特徴を有する。ブロック符号としては古くからハミング符号、ＢＣＨ符号（Bose-Chaudhuri-Hocquenghem code）、リードソロモン符号等が用いられている。以降、エラー訂正符号の符号化・復号化を単に符号化、復号化と呼ぶ。
【０００６】
特許文献１には、１心の光ファイバ中を伝送する光信号の時分割多重度が２倍程度になった際にも、波長多重した際に元の伝送距離を維持し、光信号の中継間隔を４倍に増加させることが可能で、ＩＴＵ−Ｔ勧告Ｇ．９７５規定の８個エラー訂正リードソロモン符号を導入した既存の伝送網との相互接続性がよく、より高い利得を有するエラー訂正符号の構成方法と伝送装置が記載されている。
【０００７】
【特許文献１】特開２００１−３５８５９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
Ｇ−ＰＯＮの下り信号のＦＥＣフレームサイズは２５５と１２０の２通りであり、本発明はＦＥＣフレームサイズが異なっても、同じエラー訂正符号で処理可能な光集線装置および光加入者装置を提供することにある。
【課題を解決するための手段】
【０００９】
上述した課題は、光電変換部とＰＯＮ送受信部と物理層とからなり、ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含む光集線装置により、達成できる。
【００１０】
また、光電変換部とＰＯＮ送受信部と物理層とからなり、ＰＯＮ送受信部は、短縮補償パラメータテーブルと、該短縮補償パラメータテーブルを参照してシンドロームを演算するシンドローム計算部または短縮補償パラメータテーブルを参照してエラー位置もしくはエラー値を演算するエラーサーチ部とを含む誤り符号訂正符号デコーダを含む光加入者装置により、達成できる。
【発明の効果】
【００１１】
本発明によれば、ＦＥＣフレームサイズが異なっても、同じエラー訂正符号で処理可能な光集線装置および光加入者装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下本発明の実施の形態について、実施例を用い図面を参照しながら説明する。なお、原則として、実質同一部位には同じ参照番号を振り、説明は繰り返さない。ただし、ＦＥＣデコーダは、参照番号９０３と５００とを用いる。
【００１３】
図１は光アクセスネットワークのブロック図である。光アクセスネットワーク１０は、光集線装置（ＯＬＴ：Optical Line Terminal）１、光加入者装置（ＯＮＴ：Optical Network Terminal）２、スプリッタ３、ＯＬＴ１とスプリッタ３との間の幹線ファイバ８およびスプリッタ３とＯＮＴ２との間の加入者ファイバ９で構成されている。ＯＮＴ２はＩＰシステム４およびＴＤＭシステム５に接続されている。また、ＯＬＴ１はＩＰネットワーク６およびＴＤＭネットワーク７に接続されている。
【００１４】
ＴＤＭシステム５からのＴＤＭ信号は光アクセスネットワーク１０を介してＴＤＭネットワーク７に収容される。またＩＰシステム４からの信号は光アクセスネットワーク１０を介してＩＰネットワーク７へと収容される。これらの信号を上り信号と呼ぶ。
【００１５】
また、逆にＴＤＭネットワー７からのＴＤＭ信号は、光アクセスネットワーク１０を介してＴＤＭシステム５に収容される。またＩＰネットワーク６からの信号は光アクセスネットワーク１０を介してＩＰシステム４へと収容される。これらの信号を下り信号と呼ぶ。
なお、以下説明する図７までのブロック図において、信号の流れる方向（上り、下り）は、図１に合わせている。
【００１６】
図２はＯＬＴのブロック図である。幹線ファイバ８からの上り光信号は、光電変換モジュール７１で電気信号に変換された後、ＯＬＴ ＰＯＮ送受信ブロック７２でＧＥＭ終端される。変換された電気信号は、ＧＥＭ終端によって、イーサネット信号およびＴＤＭ信号に変換される。イーサネット信号とＴＤＭ信号は、それぞれイーサネットＰＨＹ７３およびＴＤＭ ＰＨＹ ７４を介して、ＩＰネットワーク６およびＴＤＭネットワーク７へと送出される。
【００１７】
ＩＰネットワーク６およびＴＤMネットワーク７から到来する下り信号は、それぞれイーサネットＰＨＹ７３またはＴＤＭ ＰＨＹ７４で受信された後、ＯＬＴ ＰＯＮ送受信ブロック７２に送信される。ＯＬＴ ＰＯＮ送受信ブロック７２は、ＧＥＭフレーム組み立てを行った後、光電変換モジュ-ル７１を介して幹線光ファイバ８へ送出される。ＭＰＵ７５、ＲＡＭ７６および制御系インターフェース７７は、ＯＬＴ１を制御するためのマイコン、ＲＡＭおよび外部よりＯＬＴ１に設定を行うためのインターフェースである。
【００１８】
図３はＯＮＴのブロック図である。加入者ファイバ９からの下り光信号は、光電変換モジュール８１で電気信号に変換された後にＯＮＴ ＰＯＮ送受信ブロック８２にてＧＥＭ終端される。ＯＮＴ ＰＯＮ送受信ブロック８２は、変換された電気信号を、イーサネットフレームおよびＴＤＭ信号に変換する。イーサネットフレームおよびＴＤＭ信号は、それぞれイーサネットＰＨＹ ８３およびＴＤＭ ＰＨＹ８４を介して、ＩＰシステム４およびＴＤＭシステム５へと送出される。
【００１９】
ＩＰシステム４およびＴＤＭシステム５からの上り信号は、それぞれイーサネットＰＨＹ８３またはＴＤＭ ＰＨＹ ８４で受信された後、ＯＮＴ ＰＯＮ送受信ブロック８２に送信される。ＯＮＴ ＰＯＮ送受信ブロック８２は、ＧＥＭフレーム組み立てを行った後、光電変換モジュール８１を介して、加入者ファイバ９へ送出される。ＭＰＵ８５、ＲＡＭ８６および制御系インターフェース８７は、ＯＮＴ２を制御するためのマイコン、ＲＡＭおよび外部よりＯＮＴ２に設定を行うためのインターフェースである。
【００２０】
図４はＯＬＴのＰＯＮ送受信ブロックのブロック図である。光電変換モジュール７１からの上りＰＯＮフレーム信号は、ＰＯＮ受倍部９０で同期処理とＧＥＭ切り出し処理を行った後に、切り出されたペイロードは、受信ＧＥＭ組立部９１に送信される。受信ＧＥＭ組立部９１は、複数の短期フレームに分割されて送信されたＧＥＭの組み立てを行う。その後、受信ＧＥＭバッファ９２に格納されて、ＯＬＴ受信テーブル９３のテーブル情報に応じて、ＯＬＴ上りイーサネットＧＥＭ終端部９４とＯＬＴ上りＴＤＭ ＧＥＭ終端部９６に振り分けられる。
【００２１】
ＯＬＴ上りイーサネットＧＥＭ終端部９４は、ＧＥＭフレームからイーサネットフレームを取り出し、取り出したイーサネットフレームをＯＬＴ上りイーサネットインターフェース９５を介してイーサネットＰＨＹ７３へと送出する。ＯＬＴ上りＴＤＭ ＧＥＭ終端部９６は、ＧＥＭフレームからＴＤＭ信号を抜き出し、抜き出したＴＤＭ信号を所望のタイミングでＯＬＴ上りＴＤＭインターフェース９７を介してＴＤＭ ＰＨＹ７４へと送出する。
【００２２】
下り信号に関しては、ＯＬＴ下りＴＤＭインターフェース１０４は、ＴＤＭ ＰＨＹ７４からＴＤＭ信号を受信する。ＯＬＴ下りＴＤＭ ＧＥＭ終端部１０３は、ＴＤＭ信号をバッファリングしてＧＥＭを生成する。ＯＬＴ下りイーサネットインターフェース１０６は、イーサネットＰＨＹ７３からのイーサフレームを受信する。ＯＬＴ下りイーサネットＧＥＭ終端部１０５は、ＧＥＭの生成を行う。ＯＬＴ送信スケジューラ１０２は、ＯＬＴ下りＴＤＭ ＧＥＭ終端部１０３を制御して、周期的にＴＤＭのＧＥＭを送信ＧＥＭバッファ１０１に送出する。ＯＬＴ送信スケジューラ１０２は、また、ＯＬＴ下りイーサネットＧＥＭ終端部１０５を制御して、空いたタイミングでイーサ信号のＧＥＭを送信ＧＥＭバッファ１０１に送出する。ＯＬＴ送信スケジューラ１０２は、送信ＧＥＭバッファ１０１を制御して、周期的にＴＤＭ信号のＧＥＭとイーサ信号のＧＥＭを送信ＧＥＭ組立部１００に転送する。送信ＧＥＭ組立部１００は、ＰＯＮフレームのペイロード分のＧＥＭを組み立て、ＰＯＮ送信部９９に転送する。ＰＯＮ送信部９９は、ヘッダを生成した後、ＰＯＮフレームの送信を行う。
【００２３】
ＯＬＴ１とＯＮＴ２との距離測定であるレンジングを行う場合には、レンジング制御部９８がレンジング信号を、ＯＬＴ送信スケジューラ１０２により許可されたタイミングで、ＰＯＮ送信部９９より送出する。ＯＮＴ２からの応答がＰＯＮ受信部９０を介してレンジング制御部９８に戻って<ることで、レンジングが完了する。
なお、ＭＰＵインターフェース１０７は、ＭＰＵ７５の各制御ブロックに対する制御を仲介する。
【００２４】
図５はＯＮＴのＰＯＮ送受信ブロックのブロック図である。光電変換モジュール８１からの下り信号は、ＰＯＮ受信部１２７が受信する。ＰＯＮ受信部１２７は、同期処理、ＧＥＭ切り出し処理を行う。受信ＧＥＭ組立部１２６は、複数の短期フレームに分割されて送信されたＧＥＭの組み立てを行う。組み立てられたＧＥＭは、受信ＧＥＭバッファ１２５に格納されて、ＯＮＴ受信テーブル１２４のテーブル情報に応じて、ＯＮＴ下りイーサネットＧＥＭ終端部１２１とＯＮＴ下りＴＤＭ ＧＥＭ終端部１２３に振り分けられる。ＯＮＴ下りイーサネットＧＥＭ終端部１２１は、ＧＥＭからイーサネットフレームを抜き出す。イーサネットフレームは、ＯＮＴ下りイーサネットインターフェース１２０を介して、イーサネットＰＨＹ８３へ送出される。ＯＮＴ下りＴＤＭ ＧＥＭ終端部１２３は、ＧＥＭからＴＤＭ信号が抜き出し、予め定められたタイミングでＯＮＴ下りＴＤＭインターフェース１２２を介して、ＴＤＭ ＰＨＹ８４へと送出される。
【００２５】
上り信号に関しては、ＯＮＴ上りＴＤＭインターフェース１３４がＴＤＭ信号を受信する。ＯＮＴ上りＴＤＭ ＧＥＭ終端部１３３は、ＴＤＭ信号をバッファリングしてＧＥＭを組み立てる。ＯＮＴ上りイーサネットインターフェース１３６は、イーサフレームを受信する。ＯＮＴ上りイーサネットＧＥＭ終端部１３５は、ＧＥＭの生成を行う。ＯＮＴ送信スケジューラ１３１は、ＯＮＴ上りＴＤＭ ＧＥＭ終端部１３３を制御して、周期的にＴＤＭのＧＥＭを、送信ＧＥＭバッファ１３２に転送する。また、ＯＮＴ送信スケジューラ１３１は、ＯＮＴ上りイーサネットＧＥＭ終端部１３５を制御して、空いたタイミングで、イーサネットのＧＥＭを、送信ＧＥＭバッファ１３２に転送する。ＯＮＴ送信スケジューラ１３１は、送信ＧＥＭバッファ１３２を制御して、周期的にＴＤＭのＧＥＭとイーサネットのＧＥＭを送信ＧＥＭ組立部１３０に転送する。送信ＧＥＭ組立部１３０は、ＰＯＮフレームのペイロード分のＧＥＭを組み立て、ＰＯＮ送信部１２９に転送する。ＰＯＮ送信部１２９は、ヘッダを生成した後、ＰＯＮフレームの送信を行う。
【００２６】
レンジングを要求された場合には、ＰＯＮ受信部１２７で受信したレンジング要求信号をレンジング制御部１２８で処理し、折り返しＰＯＮ送信部１２９を介してレンジング受信信号を送り返す。
なお、ＭＰＵインターフェース１３７は、ＭＰＵ８５の各制御ブロックに対する制御を仲介する。
【００２７】
図６はＯＬＴのＰＯＮ受信部とＰＯＮ送信部のブロック図である。また、図７はＯＮＴのＰＯＮ受信部とＰＯＮ送信部のブロック図である。図６（ａ）において、ＯＬＴ ＰＯＮ受信部９０は、上り信号のフレーム同期を取るフレーム同期部９０２と、スクランブルを解除するデスクランブラ９０１と、情報ワードとＦＥＣパリティを分離し、情報ワードの誤り修正を行うＦＥＣデコーダ９０３と、ＰＯＮフレーム終端部９０４と、暗号を復号する暗号デコーダ９０５とから構成される。図６（ｂ）において、ＯＬＴ ＰＯＮ送信部９９は、下り信号を暗号化する暗号エンコーダ９９１と、暗号化データをＰＯＮフレーム化するＰＯＮフレーム生成部９９２と、ＰＯＮフレームにＦＥＣパリティを加えるＦＥＣエンコーダ９９３と、フレーム同期信号を挿入するフレーム同期信号挿入部９９４と、スクランブラ９９５とから構成される。
【００２８】
図７（ａ）のＯＮＴ ＰＯＮ受信部１２７は、図６（ａ）のＯＬＴ ＰＯＮ受信部９０と信号の流れを除いて同一構成である。また、図７（ｂ）のＯＮＴ ＰＯＮ送信部１２９は、図６（ｂ）のＯＬＴ ＰＯＮ送信部９９と信号の流れを除いて同一構成である。したがって、説明を省く。
なお、上り側で暗号を採用しない場合は、ＯＬＴ ＰＯＮ受信部９０の暗号デコーダ９０５と、ＯＮＴ ＰＯＮ送信部１２９の暗号エンコーダ９９１は不要である。
【００２９】
図８ＡはＦＥＣコードワードの構成（シリアル８ビット）を説明する図である。図８ＢはＦＥＣコードワードの構成（パラレル８ビット）を説明する図である。図８ＣはＦＥＣコードワードの構成（パラレル１６ビット、その１）を説明する図である。図８ＤはＦＥＣコードワードの構成（パラレル１６ビット、その２）を説明する図である。図８ＥはＦＥＣコードワードの構成（パラレル８ビット、可変ワード長）を説明する図である。図８ＦはＦＥＣコードワードの構成（パラレル１６ビット、可変ワード長）を説明する図である。
【００３０】
図８Ａにおいて、ＦＥＣコードワードは、２５５バイトの固定長で、先頭バイト＃１から＃２３９までの２３９バイトが情報ワード、＃２４０から＃２５５までの１６バイトがＦＥＣパリティである。また、１バイトはシリアルな８ビットである。
【００３１】
図８Ｂにおいて、ＦＥＣコードワードは、２５５バイトの固定長で、先頭バイト＃１から＃２３９までの２３９バイトが情報ワード、＃２４０から＃２５５までの１６バイトがＦＥＣパリティである。また、１バイトはパラレルな８ビットである。図８ＢのＦＥＣコードワードは、図８ＡのＦＥＣコードワードに比べ速度を１／８とすることができる。
【００３２】
図８Ｃと図８Ｄにおいて、ＦＥＣコードワードは、２５５バイトの固定長で、先頭バイト＃１から＃２３９までの２３９バイトが情報ワード、＃２４０から＃２５５までの１６バイトがＦＥＣパリティである。また、各２バイトはパラレルな１６ビットである。ただし、ＦＥＣコードワード長は２５５バイト固定なので、奇数番目のＦＥＣコードワードＡ、Ｃ用と、偶数番目のＦＥＣコードワードＢ用の、処理回路が必要となる。なお、１６ビットパラレルのＦＥＣコードワードの先頭または末尾に現れる余分な１バイトを、以下では鍵型と称して説明する。図８Ｃ、図８ＤのＦＥＣコードワードは、図８ＢのＦＥＣコードワードに比べ速度を１／２とすることができる。
【００３３】
図８Ｅにおいて、ＦＥＣコードワードは、１７バイト以上２５５バイト以下の可変長で、末尾の１６バイトがＦＥＣパリティで、先頭の少なくとも１バイト、多くとも２３９バイトの情報ワードである。また、１バイトはパラレルな８ビットである。
【００３４】
図８Ｆにおいて、ＦＥＣコードワードは、１７バイト以上２５５バイト以下の可変長で、末尾の１６バイトがＦＥＣパリティで、先頭の少なくとも１バイト、多くとも２３９バイトの情報ワードである。また、各２バイトはパラレルな１６ビットである。
【００３５】
図９および図１０を参照して、ＦＥＣデコーダの乗算器を説明する。ここで、図９はパラメータロード型乗算器を説明する図である。図１０は固定型乗算器を説明する図である。図９において、パラメータロード型乗算器は、パラメータである（α^ｋ）^ｊ（ｋ、ｊは添え字であり、べき乗ではない）と８ビット並列値ｕを入力として、パラメータである（α^ｋ）^ｊによって設定されたマトリックスパラメータＡｋに基づいて、８ビット並列値ｕを８ビット並列値ｗに変換する。マトリックスパラメータＡｋの各要素は０か１であり、インプットされる（α^ｋ）^ｊにより一意に決まる。（α^ｋ）^ｊは、ガロア体（２５６）の元であり、２進数８ビットで表記したものが、マトリックスパラメータＡｋの８行目（ａ８１ ａ８２ ａ８３ ａ８４ ａ８５ ａ８６ ａ８７ ａ８８）である。
【００３６】
マトリックスパラメータＡｋの１〜７行目は、１≦ｍ≦７のｍに対して、ｍ＝７から順にｐ＝ｍ＋１として、式１を計算することで得る。なお、式１の「＋」は、排他的論理和である。
【００３７】
【数１】
2008148245.tif 000003
【００３８】
ｗは、マトリックスパラメータＡｋの要素と、ｕとから式２により求める。なお、・は論理積、＋は排他的論理和である。
【００３９】
【数２】
2008148245.tif 000004
【００４０】
図１０において、固定乗算回路２４２（ｘα^ｋ）は、そのマトリックスパラメータＢｋを用いて、８ビット並列の入力ｕを、８ビット並列の出力ｗに変換する。マトリックスパラメータＢｋの各要素は０か１である。α^ｋは、ガロア体（２５６）の元であり、２進数８ビットで表記したものが、マトリックスパラメータＢｋの８行目（ｂ８１ ｂ８２ ｂ８３ ｂ８４ ｂ８５ ｂ８６ ｂ８７ ｂ８８）である。
【００４１】
マトリックスパラメータＢｋの１〜７行目は、１≦ｍ≦７のｍに対して、ｍ＝７から順にｐ＝ｍ＋１として、式１と同様に計算することで得る。
ｗは、マトリックスパラメータＢｋの要素と、ｕとから式３により求める。なお、・は論理積、＋は排他的論理和である。
【００４２】
【数３】
2008148245.tif 000005
【００４３】
図１１ないし図２３を参照して、８ビット並列入力データ用のＦＥＣデコーダを詳細に説明する。ここで、図１１はＦＥＣデコーダのブロック図である。図１２はシンドローム計算部のブロック図である。図１３は多項式係数計算部のブロック図である。図１４はエラーサーチ部のブロック図である。図１５は多項式係数計算部のブロック図である。図１６は短縮補償パラメータテーブルを説明する図である。図１７は逆元パラメータテーブルを説明する図である。図１８はＦＥＣデコーダの動作タイムチャートである。図１９はＳｋ計算回路のブロック図である。図２０はエラー位置計算部の基本ユニットを説明するのブロック図である。図２１はエラー値計算部の基本ユニットを説明するブロック図（その１）である。図２２はエラー値計算部の基本ユニットを説明するブロック図（その２）である。図２３はエラー値計算部の基本ユニットを説明するブロック図（その３）である。
【００４４】
図１１において、ＦＥＣデコーダ５００は、８ビット並列のデータ６００と、デコード実行信号６０３と、ＦＥＣフレームトップ信号６０１と、ＦＥＣフレームサイズ６０２とを入力され、誤り訂正された８ビット並列信号６０４を出力する。ＦＥＣデコーダ５００は、シンドローム計算部５１０と、多項式係数計算部５２０と、エラーサーチ部５３０と、データ格納メモリ５４０と、エラー訂正部５５０と、短縮補償パラメータテーブル５６０、５７０と、逆元パラメータテーブル５８０とから構成される。
【００４５】
クロック６０５、ＦＥＣフレーム識別信号６０１、ＦＥＣフレームサイズ６０２は、ＦＥＣデコーダ５００の各部に分配される。ＦＥＣフレームトップ識別信号６０１は、８ビット並列のデータストリーム上でのＦＥＣフレームの開始タイミングを示す。ＦＥＣフレームサイズ６０２は、短縮されているとき短縮後のＦＥＣフレームのサイズを示す。ＦＥＣフレームサイズ６０２は、短縮して省いたバイト数でもよい。この時、（２５５−ＦＥＣフレームサイズ６０２）を以降のＦＥＣフレームサイズ６０２と置き換えればよい。
【００４６】
シンドローム計算部５１０と、エラーサーチ部５３０は、計算しようとするＦＥＣフレームに対するパラメータを決定するために、ＦＥＣフレームサイズ６０２に対応した短縮補償パラメータテーブル５６０、逆元パラメータテーブル５８０の番地を計算し、短縮補償パラメータテーブル５６０、逆元パラメータテーブル５８０からこの番地の内容を読み出し、短縮と等価な計算を行うためのパラメータを決定する。多項式係数導出計算部５２０は、その性質上、短縮の如何に関わらない計算を行う。
【００４７】
８ビット並列入力データ６００は、データ格納メモリ５４０とシンドローム計算部５１０に入力される。データ格納メモリ５４０は、シンドローム計算、多項式係数計算、エラーサーチの期間、データを格納する。シンドローム計算部５１０は、読み出し要求６６０を短縮補償パラメータテーブル５６０−１に送信する。短縮補償パラメータテーブル５６０−１は、短縮補償パラメータ６１１をシンドローム計算部５１０に返信する。シンドローム計算部５１０は、短縮補償パラメータ６１１に基づいて、シンドローム計算を行い、シンドローム６１０とシンドローム判定結果６１１を多項式係数計算部５２０に送信する。
【００４８】
多項式係数計算部５２０は、受信したシンドローム６１０とシンドローム判定結果６１１とに基づいて、多項式係数を計算し、多項式係数６２０と多項式係数判定結果６２１をエラーサーチ部５３０に送信する。エラーサーチ５３０部は、短縮補償パラメータテーブル５６０−２と逆元パラメータテーブル５８０に、読み出し要求６６０、６８０を送信する。短縮補償パラメータテーブル５６０−２は、短縮補償パラメータ６６１をエラーサーチ部５３０に送信する。同様に逆元パラメータテーブル５８０は、逆元パラメータ６８１をエラーサーチ部５３０に送信する。エラーサーチ部５３０は、多項式係数６２０、多項式判定結果６２１、短縮補償パラメータ６６１、逆元パラメータ６８１に基づいて、エラーサーチを行い、エラー位置ＶＬＤ（Ｖａｌｉｄ）信号６３０、エラー値６３１、エラーサーチ判定結果６３２をエラー訂正部５５０に送信する。
【００４９】
エラー位置ＶＬＤ信号６３０、エラー値６３１、エラーサーチ判定結果６３２を受信したエラー訂正部５５０は、データ格納メモリ５４０から入力データ６００を読み出し、デコード実行指示信号６０３の受信を契機にエラー訂正し、出力データ６０４を出力する。各々のテーブルにおいて、番地と内容の対応は一意に決めておけばよく、例えば図１６、図１７は上下さかさまでもよい。短縮補償パラメータテーブル５６０−１と５６０−２とは共用可能であり、その場合、二つの読み出し要求６６０はシリアルに実行する。
【００５０】
図１２において、シンドローム計算部５１０は、８ビット並列データ６００を受信する遅延メモリ５１１と、遅延メモリ５１１に接続された１６台のＳｋ計算回路５１２−ｋ（ｋ＝０〜１５）と、Ｓｋ計算回路５１２−ｋに接続されたメモリ５１６とシンドローム判定部５１７と、ＦＥＣフレームサイズ６０２を受信し、短縮パラメータテーブルの参照番地を計算する参照番地計算部５１８とから構成される。
【００５１】
参照番地計算部５１８は、ＦＥＣフレ−ムサイズ６０２から、参照すべきテーブル５６０の番地を計算し、短縮補償パラメータテーブル５６０に読み出し要求６６０を送信する。短縮補償パラメータテーブル５６０から送信された短縮補償パラメータ６６１は、Ｓｋ計算回路５１２−ｋにインプットされる。このパラメータはＳｋ計算回路５１２−ｋの中で乗算計算（「ｘ(α^ｋ)^ｊ」）に使用する。
【００５２】
Ｓｋ計算回路５１２−ｋは、遅延メモリ５１１からの入力データが情報エリアの時にこのパラメータで乗算計算を行い、入力データがＦＥＣチェックビットエリアの時は乗算計算を行わない。
【００５３】
ＦＥＣフレームのチェックビットエリアの開始タイミングは、ＦＥＣフレームサイズ６０１、ＦＥＣフレームトップ識別信号６０２から計算して認識する。しかし、これに限らず、別手段としてチェックビットエリアの開始信号をＦＥＣデコーダの外部から貰ってもよい。
【００５４】
チェックビットエリアの最後まで入力し計算した時点で、そのＦＥＣフレームのシンドロームが確定する。メモリ５１６は、シンドローム６１０が確定したときにこれを保持し、次のＦＥＣフレームのシンドロームが確定する時まで出力し続ける。
【００５５】
シンドローム判定部５１７は、得られたシンドローム６１０Ｂ（Ｓ１５〜Ｓ０）全てが“ゼロ”か否かを判定し、シンドローム判定結果６１１として出力する。Ｓ１５〜Ｓ０全て“ゼロ”の時は、当該ＦＥＣフレームにエラーは存在しないと判定し、シンドローム判定結果６１１には「エラーなし」を表示する。Ｓ１５〜Ｓ０のうち、１個以上が“ゼロ”でないとき、シンドローム判定部５１７は、該当ＦＥＣフレームにエラーが存在すると判定し、シンドローム判定結果６１１には「エラー存在」を表示する。
【００５６】
シンドローム判定結果６１１は、シンドローム６１０の出力タイミングに同期し、次のＦＥＣフレームのシンドロームが確定するまで出力し続ける。後段の多項式係数計算５２０は、このシンドローム判定結果６１１に基づいて動作する。  以下シンドローム判定部５１０の制御を説明する。まず、
ｙ２５４  ｙ２５３  ｙ２５２  …  ｙ１６+ｊ  ｙ１５  ｙ１４  …ｙ０
をＦＥＣデコーダへの入力データとする。
ｙ２５４ がＦＥＣフレームの先頭の１バイトであり、ｙ０がＦＥＣフレームの最後の１バイトである。ｙ２５４〜ｙ１６+ｊまでが情報エリアであり、ｙ１５〜ｙ０の１６バイトがチェックビットエリアである。
【００５７】
以下の全ての計算では、これら１バイトのデータｙｋをガロア体(２^８)の元に対応させて計算する。
Ｚを変数として、受信多項式Ｙ(Ｚ)は
Ｙ(Ｚ)＝ｙ２５４Ｚ^２５４+ｙ２５３Ｚ^２５３+…+ｙ１６Ｚ^１６+…+ｙ１Ｚ^１+ｙ０
で定義される。これは、短縮エリアを省略しない数学的に完全な符号長２５５バイトを持つ符号の各バイトを係数とする多項式である。
【００５８】
シンドロームＳｋは、シンドローム多項式Ｓ(Ｚ)の係数として定義される。
Ｓ(Ｚ)＝Ｓ１５Ｚ^１５+Ｓ１４Ｚ^１４+…+Ｓ１Ｚ^１+Ｓ０
Ｓｋ＝Ｙ(α^ｋ)    ｆｏｒ ０≦ｋ≦１５
ここで、Ｚ^１５ 、α^ｋ等はべき乗である。
【００５９】
短縮方式が中詰め（つまり数学的に符号先頭から情報バイトエリア、短縮バイトエリア、チェックビットエリアの順に配置される）の場合は、
Ｙ(Ｚ)＝ｙ２５４Ｚ^２５４+ｙ２５３Ｚ^２５３+…+ｙ(１６+ｊ)Ｚ^(１６+ｊ)+ｙ(１６+ｊ-１)Ｚ^(１６+ｊ-１)+…+ｙ１６Ｚ^１６+ｙ１５Ｚ^１５+…+ｙ１Ｚ^１+ｙ０
ここで、ｙ２５４Ｚ^２５４からｙ(１６+ｊ)Ｚ^(１６+ｊ)が情報バイトエリア、ｙ(１６+ｊ-１)Ｚ^(１６+ｊ-１)からｙ１６Ｚ^１６が短縮バイトエリア、ｙ１５Ｚ^１５からｙ０がＦＥＣバイトエリアである。また、短縮バイトエリアの係数ｙ(１６+ｊ-１)〜ｙ１６は論理値“ゼロ”であり、
Ｓｋ＝{ｙ２５４(α^ｋ)^(２５４−ｊ)+ｙ２５３(α^ｋ)^(２５３−ｊ)+…+ｙ(１６+ｊ)(α^ｋ)^１６}ｘ(α^ｋ)^ｊ+ｙ１５(α^ｋ)^１５+…+ｙ１(α^ｋ)+ｙ０
である。ここで、ｙ２５４(α^ｋ)^(２５４−ｊ)からｙ(１６+ｊ)(α^ｋ)^１６が情報バイトエリア、ｙ１５(α^ｋ)^１５からｙ０がＦＥＣバイトエリアである。
【００６０】
また、短縮方式が先頭詰め（つまり数学的に符号先頭から短縮バイトエリア、情報バイトエリア、チェックビットエリアの順に配置される）の場合は、
Ｙ(Ｚ^)＝ｙ２５４Ｚ^２５４+ｙ２５３Ｚ^２５３+…+ｙ(２５５-ｊ)Ｚ^(１６+ｊ)+ｙ(２５４-ｊ)Ｚ^(２５４-ｊ)+…+ｙ１６Ｚ^１６+ｙ１５Ｚ^１５+…+ｙ１Ｚ^１+ｙ０
である。ここで、ｙ２５４Ｚ^２５４からｙ(２５５-ｊ)Ｚ^(１６+ｊ)が短縮バイトエリア、ｙ(２５４-ｊ)Ｚ^(２５４-ｊ)からｙ１６Ｚ^１６が情報バイトエリア、ｙ１５Ｚ^１５からｙ０がＦＥＣバイトエリアである。また、短縮バイトエリアの係数ｙ２５４〜ｙ(２５５-ｊ)は、論理値“ゼロ”であり、
Ｓｋ＝{ｙ(２５４-ｊ)(α^ｋ)^(２５４-ｊ)+ｙ(２５３-ｊ)(α^ｋ)^(２５３-ｊ)+…+ｙ１６(α^ｋ)^１６}ｘ(α^ｋ)^ｊ+ｙ１５(α^ｋ)^１５+…+ｙ１(α^ｋ)+ｙ０
である。ここで、ｙ(２５４-ｊ)(α^ｋ)^(２５４-ｊ)からｙ１６(α^ｋ)^１６が情報バイトエリア、ｙ１５(α^ｋ)^１５からｙ０がＦＥＣバイトエリアである。
【００６１】
シンドローム計算５１０のＳｋ計算回路５１２−ｋはこのシンドロームＳｋを計算する。
本実施例の特徴は、短縮されたＦＥＣフレームに対して、短縮エリアを飛ばして計算することにある。そして任意の短縮に対応できるように、短縮補償用のテーブルと乗算器、セレクタを構成する。
【００６２】
Ｓｋ計算回路５１２−ｋは、ＦＥＣフレームの最後のデータを入力完了でシンドロームＳｋが確定し出力する。ＦＥＣフレームサイズが１５０バイトのとき、ＦＥＣフレーム先頭から数えてクロック入力周期の１５０回目でＳｋが確定する。
【００６３】
図１３において、多項式係数計算部５２０は、シンドローム６１０と、シンドローム判定結果６１１と、クロック６０５と、ＦＥＣフレームトップ識別信号６０１とを入力とし、各々が８ビット並列の９個の信号σｋ（ｋ＝０〜８）と各々が８ビット並列の８個の信号ωｋ（ｋ＝０〜７）とからなる多項式係数６２０と、多項式係数判定結果６２１を出力する。多項式係数計算部５２０は、ユークリッド互除計算部５２１とメモリ５２３とから構成される。ユークリッド互除計算部５２１は、８ビット並列信号σｋ（ｋ＝０〜８）とωｋ（ｋ＝０〜７）とからなる多項式係数６２０Ｂと、多項式係数判定結果６２１Ｂを計算し、メモリ５２３に出力する。
シンドローム計算部５１０から入力されたシンドローム判定結果６１１が「エラーなし」を表示しているとき、次のＦＥＣフレームの計算タイミングまでユークリッド互除計算部５２１を動作休止し、次のＦＥＣフレームの計算タイミングまで多項式係数判定結果６２１として「エラーなし」を表示し続ける。一方、シンドローム判定結果６１１が「エラー存在」を表示しているとき、ユークリッド互除計算５２１を動作させる。
【００６４】
メモリ５２３は、多項式係数計算完了毎に、多項式係数６２０Ｂ、多項式係数判定結果６２１Ｂを保持し、次のＦＥＣフレームに対する多項式係数計算が完了するまで多項式係数６２０、多項式係数判定結果６２１として出力し続ける。なお、多項式係数判定結果６２１は、多項式係数６２０の出力タイミングに同期にして出力される。
シンドローム判定結果６１１が「エラー存在」を表示の条件下で、ユークリッド互除計算で矛盾する結果が生じたとき、多項式係数判定結果６２１Ｂに「エラー訂正不可能」を表示する。一方、矛盾しない結果を得た場合は多項式係数判定結果６２１Ｂに「エラー訂正可能」を表示する。
【００６５】
ユークリッド互除計算部５２１は、シンドロームから当業者周知のユークリッド互除法を使って多項式係数を求める。
多項式係数計算部５２０は、ＦＥＣフレームトップ識別信号６０１で、ＦＥＣフレームの計算開始タイミングを認識する。シンドローム判定結果６１１が「エラー存在」を表示しているとき、多項式係数計算部５２０は、シンドローム６１０を取り込み、計算を開始する。なお、ＦＥＣフレームの多項式係数を計算中に次のＦＥＣフレームのトップ識別信号６０１が入ったとき、現在のＦＥＣフレームの多項式計算が完了しだい、次のＦＥＣフレームの多項式計算を開始する。
【００６６】
また、受信しうるＦＥＣフレームの最小サイズに対応する受信時間に比して、ユークリッド互除計算に必要な処理時間が長い場合、ユークリッド互除計算５２１を複数個（２個、４個等）にして、受信するＦＥＣフレーム毎に次々と切り替えて多項式係数を計算すればよい。
【００６７】
ＦＥＣフレーム先頭から数えてｋｉバイト目にエラー値ｅｋｉが存在するとき(１≦ｉ≦８)、ＥＬＰ（Error Locator Polynominal：エラー位置多項式）は式４で与えられ、ＥＥＰ（Error Evaluator Polynominal：エラー評価多項式）は式５で与えられる。
【００６８】
【数４】
2008148245.tif 000006
【００６９】
【数５】
2008148245.tif 000007
【００７０】
ユークリッド互除計算部５２１は、シンドロームＳ０〜Ｓ１５から、σ(ｚ)の係数σｉ、ω(ｚ)の係数ωｉを求めている。
【００７１】
図１４において、エラーサーチ部５３０は、多項式係数６２０と多項式係数判定結果６２１とフレームトップ識別信号６０１とＦＥＣフレームサイズ６０２とクロック６０５とを入力とし、エラー位置ＶＬＤ信号６３０とエラー値６３１とエラーサーチ判定結果６３２を出力する。エラーサーチ部５３０は、エラー位置計算部５３１と、エラー値計算部５３２と、エラー位置計算部５３１からＥＬＰ計算出力６３４とエラー値計算部５３２からＥＥＰ計算出力６３５とを入力されるエラーサーチ解析部５３３と、エラー解析部５３３の出力を保持するメモリ５３４と、エラー位置ＶＬＤ（Valid）生成部５３６と、参照番地計算部５３５とから構成される。
【００７２】
エラーサーチ解析部５３３は、エラー位置を計算するためのＥＬＰ計算出力６３４とエラーの値を計算するための多項式の係数を出力するＥＰ計算出力６３５とに基づいて、エラーサーチ解析を実施し、仮エラー位置６３０Ｂと仮エラー値６３１Ｂとエラーサーチ判定結果６３２Ｂとをメモリ５３４に送信する。参照番地計算部５３５は、読み出し要求６６０を短縮補償パラメータテーブル５６０−２へ、読み出し要求６８０を逆元パラメータテーブル５８０へ送信する。短縮補償パラメータテーブル５６０−２からの短縮補償パラメータ６６１は、エラー位置計算部５３１とエラー値計算部５３２に入力される。一方、逆元パラメータテーブル５８０からの逆元パラメータ６８１は、エラー値計算部５３２に入力される。これらのパラメータは、エラー位置計算部５３１、エラー値計算部５３２の中で桁上計算（乗算「ｘ(α^ｋ)^(ｊ+１６)」、乗算「ｘ(α^-ｊ)」）およびσ（ｚ）の一次微分による除算に使用する。
【００７３】
多項式係数判定結果６２１が「エラーなし」を表示している場合、エラー位置計算部５３１、エラー値計算部５３２は動作休止し、エラーサーチ解析部５３３はエラーサーチ判定結果６３２Ｂに「エラーなし」を表示する。一方、多項式係数判定結果６２１が「エラー訂正不可能」を表示している場合、エラー位置計算部５３１、エラー値計算部５３２は動作休止し、エラーサーチ解析部５３３はエラーサーチ判定結果６３２Ｂに「エラー訂正不可能」を表示する。さらに、多項式係数判定結果６２１が「エラー訂正可能」を表示している場合、エラー位置計算部５３１、エラー値計算部５３２を動作させる。
【００７４】
エラー位置計算部５３１は、多項式係数６２０のσｋ、短縮補償パラメータ６６１を初期パラメータとして取り込み、計算を開始する。同様に、エラー値計算部５３２は、多項式係数６２０のωｋ、短縮補償パラメータ６６１を初期パラメータとして取り込み、計算を開始する。エラー位置計算部５３１、エラー値計算部５３２は、多項式係数６２０からチエンサーチ方法等を使ってエラーの存在する位置とそのエラー値とをそれぞれ求める。
【００７５】
参照番地計算部５３５は、ＦＥＣフレ−ムサイズ６０２から、参照すべきテーブル５６０−２及び５８０の番地を計算し、テーブル５６０−２、５８０に読み出し要求６６０、６８０を出し、テーブル５６０−２、５８０から読み出した短縮補償パラメータ６６１、６８１を、エラー位置計算５３１、エラー値計算５３２にインプットする
エラーサーチ解析部５３３は、ＥＬＰ計算出力６３４が“ゼロ”になるか否かを監視し、“ゼロ”になったとき、そのタイミングに対応する仮エラー位置６３０Ｂと、そのときのＥＥＰ計算出力６３５の値を仮エラー値６３１Ｂとしてメモリ５３４に出力し格納する。
【００７６】
あるＦＥＣフレームに対するエラー位置計算５３１、エラー値計算５３２が完了し、エラーサーチ解析５３３で矛盾が発生しなければ、エラーサーチ判定結果６３２Ｂに「エラー訂正可能」を表示する。また、それまでにメモリ５３４に格納した仮エラー位置６３０Ｂと、仮エラー値６３１Ｂはそのままエラー位置６３０、エラー値６３１として出力する。さらにエラーサーチ判定結果６３２Ｂをそのままエラーサーチ判定結果６３２として出力する。仮エラー位置６３０Ｂと、仮エラー値６３１Ｂは１対１に対応したものであり、読み出す際の対応のとりやすくするために同じ番地に書き込む。
【００７７】
エラーサーチ解析部５３３で矛盾が発生すれば、エラーサーチ判定結果６３２Ｂに「エラー訂正不能」を表示し、それまでにメモリ５３４に格納した仮エラー位置６３０Ｂと、仮エラー値６３１Ｂをクリアする。さらにエラーサーチ判定結果６３２Ｂをそのままエラーサーチ判定結果６３２として出力する。
【００７８】
メモリ５３４は、エラーサーチ計算完了までに一組から複数組の仮エラー位置６３０Ｂと、仮エラー値６３１Ｂを保持する。また、メモリ５３４はエラーサーチ計算完了毎に、エラーサーチ判定結果６３２Ｂを保持し、次のＦＥＣフレームに対するエラーサーチ計算が完了するまで出力し続ける。
【００７９】
エラー位置ＶＬＤ生成部５３６は、メモリ５３４に格納されている該当ＦＥＣフレーム内の全てのエラー位置６３０Ｃを一旦保持し、エラー位置６３０Ｃに相当するＦＥＣフレーム内のデータがエラー訂正５５０でエラー訂正され出力されるタイミングに合わせて、エラー位置ＶＬＤ信号６３０を生成し、出力する。また、エラー位置ＶＬＤ生成部５３６は、エラー位置ＶＬＤ信号６３０を生成するタイミングに合わせて、読み出し要求をメモリ５３４に送信する。メモリ５３４は、読み出し要求に基づいて、エラー値６３１を出力する。
【００８０】
つまり、エラー位置ＶＬＤ生成部５３６は、エラー位置ＶＬＤ信号６３０とエラー値６３１を、エラー訂正５５０部でエラー訂正される１バイト毎のタイミングで出力する用制御する。
なお、あるエラー位置６３０Ｃにおけるエラー値６３１は、１バイト、すなわち８ビット並列である。
【００８１】
エラー位置計算部５３１、エラー値計算部５３２は、ＦＥＣフレームトップ識別信号６０１で、ＦＥＣフレームの計算要求を認識する。多項式係数判定結果６２１がＦＥＣフレームにエラーが存在することを示していれば、エラー位置計算部５３１、エラー値計算部５３２は、多項式係数６２０を取り込み、計算を開始する。また、受信しうるＦＥＣフレームの最小サイズに対応する受信時間に比して、チエンサーチ計算に必要な処理時間が長い場合、エラー位置計算部５３１およびエラー値計算部５３２を複数個（２個、４個等）にして、受信するＦＥＣフレーム毎に次々と切り替えてエラー位置、エラー値を計算すればよい。
【００８２】
ＦＥＣフレーム先頭から数えてｋバイト目にエラー値ｅｋ(１≦ｉ≦８)が存在するとき、式６となる。
【００８３】
【数６】
2008148245.tif 000008
【００８４】
ここで、σ'(ｚ)はσ(ｚ)の一次微分で、式７で与えられる。
【００８５】
【数７】
2008148245.tif 000009
【００８６】
エラー位置計算部５３１は、ＦＥＣフレーム先頭から順にσ(α^ｋ)を計算する。エラー値計算部５３２は、ＦＥＣフレーム先頭から順にｅｋを計算する。
【００８７】
図１５において、エラー訂正部５５０は、ＦＥＣフレームトップ信号６０１と、ＦＥＣフレームサイズ６０２と、デコード実行指示信号６０３と、エラーサーチ判定結果６３２と、エラー位置ＶＬＤ信号６３９と、エラー値６３１と、ＦＥＣデコーダ５００のデータ格納メモリ５４０の読み出しデータ６４０とを入力とし、８ビット並列の出力データ６０４を出力とする。エラー訂正部５５０は、ＦＥＣフレームトップ信号６０１とＦＥＣフレームサイズ６０２とデコード実行指示信号６０３とエラーサーチ判定結果６３２とエラー位置ＶＬＤ信号６３９とを入力として、セレクタ５５２を制御するセレクタ制御部５５１と、エラー値６３１とエラー訂正部５００の内部で生成した８ビット並列のオールゼロ信号とを入力とするセレクタ５５２と、セレクタ５５２の出力と、データ格納メモリ５４０の読み出しデータ６４０とを加算する加算部５５３とから構成される。
【００８８】
エラー訂正部５５０のセレクタ制御部５５１は、デコード実行指示信号６０３が「デコード実行」を指示しており、エラーサーチ判定結果６３２が「エラー訂正可能」を表示し、かつエラー位置ＶＬＤ信号６３０がエラー位置であることを示すタイミングで、セレクタ５５２においてエラー値６３１側を選択する。上記以外では、セレクタ制御部５５１は、常にオール“ゼロ”側を選択する。
なお、加算部５５３は、ビット毎の排他的論理和を演算する。
【００８９】
図１６において、短縮補償パラメータテーブル５６０は、番地と内容とで構成され、番地は１０進数で表している。番地ｎに対応する内容として、ガロア体(２^８)の元「α^ｎ」を２進数の８ビットで設定しておく。短縮補償パラメータテーブル５６０は、デコーダとして動作開始させる前に予めＦＥＣデコーダ５００内で計算して設定しておく。あるいは、短縮補償パラメータテーブル５６０をＦＥＣデコーダ５００の外部から設定できるようにしてもよい。
【００９０】
図１７において、逆元パラメータテーブル５８０は、番地と内容とで構成され、番地は１０進数で表している。番地ｎに対応する内容として、ガロア体(２^８) の元ｇａｒｏｉ 「ｎ」の逆元（ ｇａｒｏｉ 「ｎ」 ）^−１を２進数の８ビットで設定しておく。逆元パラメータテーブル５８０は、デコーダとして動作開始させる前に予めＦＥＣデコーダ５００内で計算して設定しておく。あるいは、逆元パラメータテーブル５８０をＦＥＣデコーダ５００の外部から設定できるようにしてもよい。なお、逆元パラメータテーブル５８０の０番地はｄｏｎ'ｔ ｃａｒｅで、ゼロでもよい。
【００９１】
図１８において、（ａ）はＦＥＣデコータ５００の入力データすなわちデータ格納メモリ５４０への書込みタイミングである。（ｂ）はフレームトップ識別信号６０１のタイミングである。（ｃ）はＦＥＣフレームサイズ信号のタイミングである。（ｄ）はシンドローム計算部５１０の短縮補償パラメータ６６１の入力タイミングである。（ｅ）はシンドローム計算部５１０のシンドローム計算のタイミングである。（ｆ）はシンドローム計算部５１０のシンドローム６１０と判定結果６１１の出力タイミングである。（ｇ）は多項式係数計算部５２０の多項式係数計算のタイミングである。（ｈ）は多項式係数計算部５２０の多項式係数６２０と判定結果６２１の出力タイミングである。（ｉ）はエラーサーチ部５３０のパラメータ入力タイミングである。（ｊ）はエラーサーチ部５３０のエラーサーチ計算のタイミングである。（ｋ）はエラーサーチ部５３０のエラー位置ＶＬＤ信号６３０、エラー値６３１、エラーサーチ判定結果６３２の出力タイミングである。（ｌ）はエラー訂正部５５０の出力すなわちＦＥＣデコーダ５００の出力データ６０４の出力タイミングである。
【００９２】
ＦＥＣデコーダ５００が受信しうるＦＥＣフレームの最大サイズをＡＡバイト、多項式係数計算５２０で発生する固定的な遅延時間または最大の遅延時間をＢＢクロック周期、ＤＤをＦＥＣデコーダ５００内でのデータの受け渡し、ＦＥＣデコーダ５００とその外部とのデータの受け渡し等のＦＥＣでコード計算以外の要因で発生する遅延としたとき、Ｔｄｅｌａｙ−ＤＥＣを固定値、かつＣＣ以上のクロック周期としてデコーダを構成する。
【００９３】
ここで、
ＣＣ＝ＡＡｘ２＋ＢＢ＋ＤＤ
クロック周期１個分はＦＥＣフレーム内の１バイトを受信する時間である。データ格納メモリ５４０はＴｄｅｌａｙ−ＤＥＣ分の時間だけデータを遅延させて出力する。データ格納メモリ５４０の容量はＴｄｅｌａｙ−ＤＥＣの時間内に受信しうる総てのデータをバッファリング可能な容量であり、格納したデータを次々とＴｄｅｌａｙ−ＤＥＣ後に読み出す。
【００９４】
また、エラー訂正５５０、エラーサーチ５３０は、Ｔｄｅｌａｙ−ＤＥＣの遅延時間をもってエラー訂正して出力するタイミングに合わせて、エラー訂正のための諸々の情報を出力し、訂正を行うようにする。具体的には、ＡＡ＝２５５、ＢＢ＋ＤＤ＝１５、としたとき、Ｔｄｅｌａｙ−ＤＥＣは最低でも５２５クロック周期以上の固定値とする。
【００９５】
Ｔｄｅｌａｙ−ＤＥＣを５２５クロック周期の固定値とし、ＦＥＣフレームの受信ビットレートを１Ｍｂｐｓとすると、Ｔｄｅｌａｙ−ＤＥＣは５２５ｘ８ビット分を受信する時間相当であり、４．２ミリ秒に等しい。
このように構成することで、ＡＡバイト以下の任意のサイズで、かつそのサイズがダイナミックに増減するＦＥＣフレームを連続して受信しても、確実にエラー訂正を可能とする。もしこのように構成しなければ、受信したＦＥＣフレームのサイズがダイナミックに増加していくと、シンドローム計算５１０、エラーサーチ５３０の計算が間に合わず、サイズがＡＡのＦＥＣフレームに対してエラー訂正できなくなる。これは、シンドローム計算５１０、エラーサーチ５３０の計算が、ＦＥＣフレームサイズ分のクロック周期が必要なことによる。
【００９６】
図１９において、Ｓｋ計算回路５１２−ｋは、クロック６０５と、遅延メモリ５１１からの８ビット並列入力データと、短縮補償パラメータテーブルからの（α^ｋ）^ｊとを入力とし、シンドローム６１０Ｂを出力とする。Ｓｋ計算回路５１２−ｋは、パラメータ可変乗算器５１２−ｋ−１と、セレクタ５１２−ｋ−２と、加算器５１２−ｋ−３と、フリップフロップ５１２−ｋ−４と、固定乗算器５１２−ｋ−５と、メモリ５１２−ｋ−６とから構成される。
【００９７】
パラメータ可変乗算器５１２−ｋ−１は、遅延メモリ５１１からの８ビット並列入力データと、短縮補償パラメータテーブルからのパラメータ（α^ｋ）^ｊとを入力とし、セレクタ５１２−ｋ−２に乗算結果を出力する。セレクタ５１２−ｋ−２は、パラメータ可変乗算器５１２−ｋ−１からの乗算結果と、遅延メモリ５１１からの８ビット並列入力データとを入力とし、選択された出力を、加算器５１２−ｋ−３に出力する。加算器５１２−ｋ−３は、セレクタ５１２−ｋ−２と固定乗算器５１２−ｋ−５とを入力とし、フリップフロップ５１２−ｋ−４に出力する。フリップフロップ５１２−ｋ−４は、入力データを１クロック保持したあと、メモリ５１２−ｋ−６と固定乗算器５１２−ｋ−５に出力する。
【００９８】
図２０を参照して、σ(α^ｋ)における、σｍ(α^ｋ)^ｍの計算を説明する。
図２０において、ブロックを接続する線は８ビット並列である。エラーサーチ部５３０のエラー位置計算部５３１の基本ユニット５３７は、パラメータロード型乗算器５３７１と、セレクタ５３７２と、フリップフロップ（ＦＦ）５３７３と、固定乗算器５３７４とから構成される。エラー位置計算部５３１は、主に８台の基本ユニット５３７で構成され、ｍはそのサフィックスである。また、ｊは何バイトを省いたかの短縮度である。
【００９９】
パラメータロード型乗算器５３７１は、短縮パラメータの（α^ｊ）^ｍをロードする。フリップフロップ（ＦＦ）５３７３は、多項式の係数σｍを初期値としてロードする。フリップフロップ（ＦＦ）５３７３は、クロックを入力されると、一つ前の値を乗算器５３７１、セレクタ５３７２、固定乗算器５３７４に出力する。乗算器５３７１は、ロードされたパラメータに基づいて、乗算を行い、セレクタ５３７２に出力する。固定乗算器５３７４は、乗算結果をフリップフロップ５３７３に出力する。
【０１００】
符号短縮により、実際に送受信しない短縮バイトエリアのシンドローム計算を省く必要がある。このため、短縮方式が中詰方式の場合は、セレクタ５３７２は、情報バイトエリアの入力タイミングではスルー側（ＦＦ５３７３）の信号を出力する。一方、チェックビットエリアの入力タイミングでは、セレクタ５３７２は、乗算器５３７１側の信号を出力する。
【０１０１】
また、短縮方式が先頭詰方式の場合は、セレクタ５３７２は、情報バイトエリアの入力タイミングでは乗算器５３７１側の信号を出力する。一方、チェックビットエリアの入力タイミングでは、セレクタ５３７２は、スルー側の信号を出力する。
エラー位置計算部５３１の出力は、８本のσｍ（α^ｋ）^ｍとσ０とのビットごとの排他的論理和である。
【０１０２】
図２１において、エラーサーチ部５３０のエラー値計算部５３２の基本ユニット５３８は、パラメータロード型乗算器５３８１と、セレクタ５３８２と、フリップフロップ（ＦＦ）５３８３と、固定乗算器５３８４とから構成される。
パラメータロード型乗算器５３８１は、短縮パラメータの（α^ｊ）^ｍをロードする。フリップフロップ（ＦＦ）５３８３は、ωｍを初期値としてロードする。
【０１０３】
ω(α^ｋ)のｍ次の係数ωｍ(α^ｋ)^ｍは、図２１でクロック入力周期のｋ回目で出力される。符号短縮によりセレクタを切り替えるタイミング等は、図２０と同様である。
【０１０４】
図２２において、エラーサーチ部５３０のエラー値計算部５３２の基本ユニット５３７Ｂは、パラメータロード型乗算器５３７１Ｂと、セレクタ５３７２Ｂと、フリップフロップ（ＦＦ）５３７３Ｂと、固定乗算器５３７４Ｂとから構成される。
パラメータロード型乗算器５３７１Ｂは、短縮パラメータの（α^ｊ）^ｍをロードする。フリップフロップ（ＦＦ）５３７３Ｂは、σｍ＋１を初期値としてロードする。
【０１０５】
σ'(α^ｋ) の「α^ｋ」のｍ次の係数は、σｍ+１(α^ｋ)^ｍゆえに、図２２でクロック入力周期のｋ回目で出力される。符号短縮によりセレクタを切り替えるタイミング等は図２０と同様である。
【０１０６】
図２３において、エラーサーチ部５３０のエラー値計算部５３２の基本ユニット５３９は、パラメータロード型乗算器５３９１と、セレクタ５３９２と、フリップフロップ（ＦＦ）５３９３と、固定乗算器５３９４とから構成される。
パラメータロード型乗算器５３９１は、逆元パラメータの（α^−ｊ）をロードする。フリップフロップ（ＦＦ）５３８３は、α^０を初期値としてロードする。
【０１０７】
σ'(α^ｋ)による除算は、まずσ'(α^ｋ)を求め、次にσ'(α^ｋ)の逆元σ'(α^−ｋ)」を求め、この逆元による乗算を実行すればよい。逆元は図１７の逆元パラメータテーブル５８０から読み出せばよい。
α^−ｋの計算は、図２３でクロック入力周期のｋ回目で出力される。符号短縮によりセレクタを切り替えるタイミング等は図２０と同様である。
【０１０８】
パラメータロード型乗算器５３９１の初期値α^−ｊは、ガロア体の性質からα^(２５５−ｊ)に等しいので、短縮補償パラメータテーブル５６０の第（２５５−ｊ）番地を読み出せばよい。ｊがゼロ、すなわち短縮していないときはテーブル５６０の第２５５番地を読み出せばよいし、あるいはテーブル５６０から読み出さずにセレクタで情報バイトエリア、チェックビットエリアに関わらず、スルー側を選択してもよい。
【０１０９】
図２４ないし図３８を参照して、１６ビット並列入力データ用のＦＥＣデコーダを説明する。ここで、図２４はＦＥＣデコーダのブロック図である。図２５はシンドローム計算部のブロック図である。図２６は多項式係数計算部のブロック図である。図２７はエラーサーチ部のブロック図である。図２８はエラー訂正部のブロック図である。図２９はＳｋ計算回路のブロック図である。図３０はエラーサーチ部のブロック図である。図３１はエラー位置計算部を説明するブロック図（そのＡ１）である。図３２はエラー値計算部を説明するブロック図（そのＡ１）である。図３３はエラー値計算部を説明するブロック図（そのＡ２）である。図３４はエラー値計算部を説明するブロック図（そのＡ３）である。図３５はエラー位置計算部を説明するブロック図（そのＢ１）である。図３６はエラー値計算部を説明するブロック図（そのＢ１）である。図３７はエラー値計算部を説明するブロック図（そのＢ２）である。図３８はエラー値計算部を説明するブロック図（そのＢ３）である。
【０１１０】
なお、以下の説明では８ビット並列入力用ＦＥＣデコーダの説明で、事足りる説明は繰り返さない。また、上位側バイト、上位側８ビットは、１６ビット並列データのうち、受信ＦＥＣフレームで受信順序の早い方の８ビットのデータのことである。逆に、下位側バイト、下位側８ビットは、１６ビット並列データのうち、受信ＦＥＣフレームで受信順序の遅い方の８ビットのデータのことである。
【０１１１】
図２４において、ＦＥＣデコーダ７００は、１６ビット並列のデータ８００と、デコード実行信号８０３と、ＦＥＣフレームトップ信号８０１と、ＦＥＣフレームサイズ８０２と、ＦＥＣフレーム位置スタート位置情報８０６とを入力され、誤り訂正された１６ビット並列信号８０４を出力する。ＦＥＣデコーダ７００は、シンドローム計算部７１０と、多項式係数計算部７２０と、エラーサーチ部７３０と、データ格納メモリ７４０と、エラー訂正部７５０と、短縮補償パラメータテーブル７６０と、逆元パラメータテーブル７８０とから構成される。
【０１１２】
クロック８０５、ＦＥＣフレーム識別信号８０１、ＦＥＣフレームサイズ８０２、ＦＥＣフレームスタート位置情報８０６は、ＦＥＣデコーダ７００の各部に分配される。ＦＥＣフレームトップ識別信号８０１は、１６ビット並列のデータストリーム上でのＦＥＣフレームの開始タイミングを示す。ＦＥＣフレームサイズ８０２は、短縮されているとき短縮後のＦＥＣフレームのサイズを示す。ＦＥＣフレームサイズ８０２は、短縮して省いたバイト数でもよい。ＦＥＣフレームスタート位置情報８０６は、ＦＥＣフレームトップ識別信号８０１で示されるＦＥＣフレームの開始タイミングにおいて、１６ビット並列の上位側８ビット、下位側８ビットのどちらからＦＥＣフレームがスタートするかを示す。ＦＥＣフレームスタート位置情報８０６は、ＦＥＣフレーム終了位置を示す情報でもよい。
【０１１３】
シンドローム計算部７１０、エラーサーチ部７３０は、計算しようとするＦＥＣフレームに対するパラメータを決定するために、ＦＥＣフレームサイズ８０２に対応したパラメータテーブル７６０、７８０の番地を計算し、短縮補償パラメータテーブル７６０、逆元パラメータテーブル７８０からこの番地の内容を読み出し、短縮と等価な計算を行うためのパラメータを決定する。多項式係数導出計算部７２０は、その性質上、短縮の如何に関わらない計算を行う。
【０１１４】
図２５において、シンドローム計算部７１０は、１６ビット並列データ８００を受信する遅延メモリ７１１と、遅延メモリ７１１に接続された１６台のＳｋ計算回路７１２−ｋ（ｋ＝０〜１５）と、Ｓｋ計算回路７１２−ｋに接続されたメモリ７１６とシンドローム判定部７１７と、ＦＥＣフレームサイズ８０２を受信し、短縮パラメータテーブルの参照番地を計算する参照番地計算部７１８と、Ｓｋ計算回路７１２−ｋに鍵形タイミング情報８１２と鍵形補償情報８１３を提供するシンドローム制御部（Ｓ制御部）７１３とから構成される。
【０１１５】
参照番地計算部７１８は、ＦＥＣフレ−ムサイズ８０２から、参照すべき短縮補償テーブル７６０の番地を計算する。参照番地計算部７１８は、短縮補償テーブル７６０に、読み出し番地を添付した読み出し要求８６０を出す。参照番地計算部７１８は、短縮補償テーブル７６０から読み出した短縮補償パラメータ８６１を、Ｓｋ計算回路７１２−ｋにインプットする。この短縮補償パラメータは、Ｓｋ計算回路７１２−ｋの中で乗算計算（「ｘ(α^ｋ)^ｊ」）に使用される。
【０１１６】
短縮方式が中詰めの場合、Ｓｋ計算回路７１２−ｋは、遅延メモリ７１１からの入力データが情報エリアのとき、このパラメータで乗算計算を行い、ＦＥＣチェックビットエリアの時は乗算計算を行わない。Ｓｋ計算回路５１２−ｋは、ＦＥＣフレームの最後のデータを入力完了でシンドロームＳｋが確定し出力する。例えばＦＥＣフレームサイズが１５０バイトだった場合、ＦＥＣフレーム先頭から数えてクロック入力周期の７５回目または７６回目でＳｋが確定する。ＦＥＣフレーム先頭が上位側バイト位置のときは７５回目、ＦＥＣフレーム先頭が下位側バイト位置のときは７６回目である。
なお、短縮方式が先頭詰めの場合は、Ｓｋ計算回路７１２−ｋでは、短縮補償計算は不要であり、乗算計算（「ｘ(α^ｋ)^ｊ」）は不要である。
【０１１７】
ＦＥＣフレームのチェックビットエリアの開始タイミングは、 ＦＥＣフレームサイズ８０１、ＦＥＣフレームトップ識別信号８０２から計算して認識できるが、別手段としてチェックビットエリアの開始信号をＦＥＣデコーダの外部から貰ってもよい。チェックビットエリアの最後まで入力し計算した時点で、そのＦＥＣフレームのシンドロームが確定する。
メモリ７１６は、シンドロームが確定したときにこれを保持し、次のＦＥＣフレームのシンドロームが確定する時まで出力し続ける。
【０１１８】
シンドローム判定部７１７は、得られたシンドローム８１０Ｂ（Ｓ１５〜Ｓ０）全てが“ゼロ”か否かを判定し、シンドローム判定結果８１１として出力する。Ｓ１５〜Ｓ０が全て“ゼロ”のとき、該当ＦＥＣフレームにエラーは存在しないと判定し、シンドローム判定結果８１１には「エラーなし」を表示する。Ｓ１５〜Ｓ０のうち少なくとも１つが“ゼロ”でないとき、該当ＦＥＣフレームにエラーが存在すると判定し、シンドローム判定結果８１１には「エラー存在」を表示する。シンドローム判定結果８１１は、シンドローム６１５の出力タイミングに同期し、次のＦＥＣフレームのシンドロームが確定するまで出力し続ける。
後段の多項式係数計算７２０はこのシンドローム判定結果８１１に基づいて動作する。
【０１１９】
Ｓ制御部７１３は、ＦＥＣフレームの最後のバイトが上位側８ｂｉｔで終わるか、下位側８ｂｉｔで終わるかを示す鍵形補償情報８１３を情報を生成し、該当ＦＥＣフレームのシンドローム計算を開始する前に、１６台のＳｋ計算回路７１２−ｋに分配する。また、Ｓ制御部７１３は、入力データ８００が、１つ前のＦＥＣフレーム最後のバイトと該当ＦＥＣフレーム先頭バイトが混在する鍵形のタイミングの時に、鍵形であることを示す鍵形タイミング情報８１２を生成し、Ｓｋ計算回路７１２−ｋに分配する。なお、鍵形補償情報８１３は、直前のＦＥＣフレームに対する鍵形補償情報８１３と該当ＦＥＣフレームサイズ８０２から前もって計算できる。鍵形タイミング情報８１２は、トップ識別信号８０１、ＦＥＣフレームスタート位置情報８０６から演算できる。また、直前のＦＥＣフレームに対する鍵形補償情報８１３、該当ＦＥＣフレームのトップ識別信号８０１からも演算できる。
【０１２０】
図２６において、多項式係数計算部７２０は、シンドローム８１０と、シンドローム判定結果８１１と、クロック８０５と、ＦＥＣフレームトップ識別信号８０１とを入力とし、各々８ビット並列の９個の信号σｋ（ｋ＝０〜８）と各々８ビット並列８個のωｋ（ｋ＝０〜７）とからなる多項式係数８２０と、多項式係数判定結果８２１を出力する。多項式係数計算部７２０は、ユークリッド互除計算部７２１とメモリ７２３とから構成される。ユークリッド互除計算部７２１は、８ビット並列信号σｋ（ｋ＝０〜８）とωｋ（ｋ＝０〜７）とからなる多項式係数８２０Ｂと、多項式係数判定結果８２１Ｂを計算し、メモリ７２３に出力する。
【０１２１】
メモリ７２３は、多項式係数計算完了毎に、多項式係数８２０Ｂ、多項式係数判定結果８２１Ｂを保持し、次のＦＥＣフレームに対する多項式係数計算が完了するまで多項式係数８２０、多項式係数判定結果８２１として出力し続ける。なお、多項式係数判定結果８２１は、多項式係数８２０の出力タイミングに同期にして出力される。
【０１２２】
多項式係数計算７２０で発生する固定的な遅延時間、あるいは最大の遅延時間をＢＢクロック周期、クロック周期１個分をＦＥＣフレーム内の１バイトを受信する時間、と定義する。１６ビット並列により、クロック周期が変わらなければ、受信しうるＦＥＣフレームサイズの最小値に対応するクロック周期の数は半分（これをＥＥとする）となる。一方で多項式係数計算にはＢＢのクロック周期数が必要であり、ＥＥがＢＢよりも小さくなると、多項式係数計算が間に合わなくなる。
【０１２３】
このため、ＥＥがＢＢよりも小さい場合は、多項式係数計算５２０を複数個具備し、ＦＥＣフレーム毎に切り替えて使うか、あるいはクロック周期を早くすればよい。ＢＢが６０で、ＥＥが９の時は、多項式係数計算７２０を７個具備するか、あるいは多項式係数計算にインプットするクロック周期を、もとのクロック周期の７分の１以下、つまりクロック周波数を７倍以上にすればよい。
【０１２４】
図２７において、エラーサーチ部７３０は、多項式係数８２０と多項式係数判定結果８２１とフレームトップ識別信号８０１とＦＥＣフレームサイズ８０２とクロック８０５とＦＥＣフレームスタート位置情報８０６とを入力とし、エラー位置ＶＬＤ信号８３０とエラー値８３１とエラーサーチ判定結果８３２を出力する。ここで、エラー位置ＶＬＤ信号８３０とエラーサーチ判定結果８３２は、それぞれ、８ビット並列の上位側用データと下位側用データとから構成される。エラー値８３１は、１６ビット並列データである。
【０１２５】
エラーサーチ部７３０は、エラー位置計算部７３１と、エラー値計算部７３２と、エラー位置計算部７３１からＥＬＰ計算出力８３４とエラー値計算部７３２からＥＥＰ計算出力８３５とを入力されるエアーサーチ解析部７３３と、エラー解析部７３３の出力を保持するメモリ７３４と、エラー位置ＶＬＤ生成部７３６と、参照番地計算部７３５とから構成される。
【０１２６】
エラーサーチ部７３０の第１の方法の構成は、基本的には８ビットのエラーサーチ部５３０と同じ構成である。しかし、クロック周波数を２倍以上にして動作させる。但し、エラー値８３１を１６ビットで出力、エラー位置ＶＬＤ信号８３０は上位側８ビットと下位側８ビットに対して独立に２系統で出力、エラーサーチ判定結８３２も上位側８ビットと下位側８ビットに対して独立に２系統で出力する。
【０１２７】
受信した多項式係数判定結果８２１が「エラーなし」を表示しているとき、エラー位置計算部７３１およびエラー値計算部７３２は、動作を休止し、エラーサーチ解析部７３３はエラーサーチ判定結果８３２Ｂに「エラーなし」を表示する。一方、多項式係数判定結果８２１が「エラー訂正不可能」を表示しているとき、エラー位置計算部７３１およびエラー値計算部７３２は動作休止し、エラーサーチ解析部７３３は、エラーサーチ判定結果８３２Ｂに「エラー訂正不可能」を表示する。
【０１２８】
多項式係数判定結果８２１が「エラー訂正可能」を表示しているとき、エラーサーチ部７３０は、エラー位置計算部７３１、エラー値計算部７３２を動作させる。エラー位置計算７３１は、多項式係数８２０のσｋ、短縮補償パラメータ８６１を初期パラメータとして取り込み、計算を開始する。
エラー値計算７３２は、多項式係数８２０のωｋ、短縮補償パラメータ８６１を初期パラメータとして取り込み、計算を開始する。
【０１２９】
エラー位置計算部７３１およびエラー値計算部７３２は、多項式係数８２０から、チエンサーチ方法等を使ってエラーの存在する位置とそのエラー値を求める。
【０１３０】
参照番地計算部７３５は、ＦＥＣフレ−ムサイズ８０２から、参照すべきテーブル７６０−２および７８０の番地を計算する。参照番地計算部７３５は、テーブル７６０−２、７８０に読み出し番地を添付した読み出し要求８６０、８８０を送信する。エラーサーチ部７３０は、読み出した短縮補償パラメータ８６１を、エラー位置計算部７３１、エラー値計算部７３２にインプットする。エラーサーチ部７３０は、読み出した逆元パラメータ８８１を、エラー位置計算部７３１にインプットする。これらのパラメータは、エラー位置計算部７３１、エラー値計算部７３２の中で桁上計算（乗算「ｘ(α^ｊ)^ｍ」、乗算「ｘ(α^-ｊ)」）およびσ（ｚ）の一次微分による除算に使用する。
【０１３１】
エラーサーチ解析部７３３は、ＥＬＰ計算出力８３４が“ゼロ”になるか否かを監視し、“ゼロ”になったとき、そのタイミングに対応する仮エラー位置８３０Ｂと、そのときのＥＥＰ計算出力８３５の値を仮エラー値８３１Ｂとしてメモリ７３４に出力する。メモリ７３４は、仮エラー位置８３０Ｂと、仮エラー値８３１Ｂを格納する。
【０１３２】
あるＦＥＣフレームに対するエラー位置計算とエラー値計算が完了し、エラーサーチ解析７３３で矛盾が発生しなければ、エラーサーチ部７３０は、エラーサーチ判定結果８３２Ｂに「エラー訂正可能」を表示する。エラーサーチ部７３０は、それまでにメモリ７３４に格納した仮エラー位置８３０Ｂと、仮エラー値８３１Ｂを、そのままエラー位置８３０、エラー値８３１として出力する。また、エラーサーチ部７３０は、エラーサーチ判定結果８３２Ｂをそのままエラーサーチ判定結果８３２としてして出力する。仮エラー位置８３０Ｂと、仮エラー値８３１Ｂとは、１対１に対応したものであり、読み出す際に対応をとりやすくするように、同じ番地の領域に書き込む。
【０１３３】
エラーサーチ解析７３３で矛盾が発生したとき、エラーサーチ部７３０は、エラーサーチ判定結果８３２Ｂ に「エラー訂正不能」を表示する。エラーサーチ部７３０は、それまでにメモリ７３４に格納した仮エラー位置８３０Ｂと、仮エラー値８３１Ｂをクリアする。エラーサーチ部７３０は、エラーサーチ判定結果８３２Ｂをそのままエラーサーチ判定結果８３２としてして出力する。
【０１３４】
ここで矛盾とは、多項式係数８２０が暗に示すエラーの個数と、仮エラー位置８３０Ｂの総数とが一致しない場合である。前者はエラー位置多項式の次数に等しく、後者はエラー位置多項式σ(ｚ)をサーチしてゼロになった回数である。また、仮エラー値８３１Ｂを導出する過程で分母（σ’(ｚ)）がゼロになった場合も矛盾に該当する。
【０１３５】
メモリ７３４は、エラーサーチ計算完了までに一組から複数組の仮エラー位置８３０Ｂと、仮エラー値８３１Ｂを保持する。また、メモリ７３４は、エラーサーチ計算完了毎に、エラーサーチ判定結果８３２Ｂを保持し、次のＦＥＣフレームに対するエラーサーチ計算が完了するまで出力し続ける。
【０１３６】
エラー位置ＶＬＤ生成７３６は、メモリ７３４に格納されている該当ＦＥＣフレーム内の全てのエラー位置８３０Ｃを一旦保持し、エラー位置８３０Ｃに相当するＦＥＣフレーム内のデータがエラー訂正７５０でエラー訂正され出力されるタイミングに合わせて、エラー位置ＶＬＤ信号８３０を生成し、出力する。また、エラー位置ＶＬＤ信号８３０を生成するタイミングに合わせて、メモリ７３４から対応するエラー値を読み出し、エラー値８３１として出力する。
エラー位置ＶＬＤ生成７３６は、エラー位置ＶＬＤ信号８３０とエラー値８３１を、エラー訂正７５０でエラー訂正される２バイト毎のタイミングで出力する。  エラー位置ＶＬＤ信号８３０は上位側８ビット、下位側８ビットの各々に対して独立にＶＬＤ信号を表示する。エラー値８３１は、上位側８ビット、下位側８ビットの各々に対して独立にエラー値を表示する。エラーサーチ判定結果８３２は、上位側８ビット、下位側８ビットの各々に対して独立に判定結果を表示する。なお、エラー位置ＶＬＤ信号８３０と、エラーサーチ判定結果８３２の各々について、上位側用と下位側用の信号は、鍵形が発生しない、という前提の場合には、共通でよい。
【０１３７】
エラー位置ＶＬＤ信号８３０、エラー値８３１、エラーサーチ判定結果８３２の各々の上位側８ビットどうしは互いに対応しているし、下位側８ビットどうしも互いに対応している。
【０１３８】
エラー位置計算部７３１およびエラー値計算部７３２は、ＦＥＣフレームトップ識別信号８０１で、ＦＥＣフレームの計算要求を認識する。また、受信しうるＦＥＣフレームの最小サイズに対応する受信時間に比して、チエンサーチ計算に必要な処理時間が長い場合、エラー位置計算部７３１およびエラー値計算部７３３を複数個（２個、４個等）にして、受信するＦＥＣフレーム毎に次々と切り替えてエラー位置、エラー値を計算すればよい。
【０１３９】
図２８において、エラー訂正部７５０は、ＦＥＣフレームスタート位置情報８０６と、ＦＥＣフレームトップ信号８０１と、ＦＥＣフレームサイズ８０２と、デコード実行指示信号８０３と、エラーサーチ判定結果８３２と、エラー位置ＶＬＤ信号８３９と、エラー値８３１と、ＦＥＣデコーダ７００のデータ格納メモリ７４０の読み出しデータ８４０とを入力とし、１６ビット並列の出力データ８０４を出力とする。エラー訂正部７５０は、ＦＥＣフレームトップ信号８０１とＦＥＣフレームサイズ８０２とデコード実行指示信号８０３とエラーサーチ判定結果８３２とエラー位置ＶＬＤ信号８３９とを入力として、上位側セレクタ７５２と下位側セレクタ７５３とを制御するセレクタ制御部７５１と、エラー値８３１の上位側８ビットとエラー訂正部７００の内部で生成した８ビット並列のオールゼロ信号とを入力とする上位側セレクタ７５２と、上位側セレクタ７５２の出力と、データ格納メモリ７４０の読み出しデータ８４０の上位側８ビットとを加算する上位側加算部７５４と、エラー値８３１の下位側８ビットとエラー訂正部７００の内部で生成した８ビット並列のオールゼロ信号とを入力とする下位側セレクタ７５３と、下位側セレクタ７５３の出力と、データ格納メモリ７４０の読み出しデータ８４０の下位側８ビットとを加算する下位側加算部７５５とから構成される。
【０１４０】
上位側セレクタ７５２および下位側７５３は、デコード実行指示信号８０３が「デコード実行」を指示しており、かつエラーサーチ判定結果８３２が「エラー訂正可能」を表示し、かつエラー位置ＶＬＤ信号８３０がエラー位置であることを示すタイミングで、エラー値８３１側を選択する。上位側セレクタ７５２および下位側７５３は、上記以外では常にオール“ゼロ”側を選択する。また、上位側セレクタ７５２および下位側７５３は、互いに独立に制御する。
【０１４１】
加算部７５４、７５５は、ビット毎の排他的論理和である。エラーサーチ判定結果８３２は、上位側８ビット、下位側８ビットの各々に対して独立に判定結果を表示する。エラー位置ＶＬＤ信号８３０も、上位側８ビット、下位側８ビットの各々に対して独立にＶＬＤを表示している。
【０１４２】
上述した１６ビットデコーダの実施例において、短縮補償パラメータテーブル７６０は、８ビットデコーダの短縮補償パラメータテーブル５６０と同一であり、図示および説明を省く。同様に、逆元パラメータテーブル７８０は、８ビットデコーダの逆元パラメータテーブル５８０と同一であり、図示および説明を省く。
【０１４３】
さらに、１６ビットデコーダの動作タイミングについても、参照番号を除いて図１８と同一であり、図示および図面の説明を省く。
しかし、ＦＥＣデコーダ７００のスループットはＦＥＣデコーダ５００の２倍のため、遅延時間Ｔｄｅｌａｙ-ＤＥＣは約２分の１でよい。
【０１４４】
図２９において、Ｓｋ計算回路７１２−ｋは、クロック８０５と、遅延メモリ７１１からの１６ビット並列入力データと、短縮補償パラメータテーブルからの（α^ｋ）^ｊと、鍵形タイミング情報８１２と、鍵形補償情報８１３とを入力とし、８ビット並列のシンドローム８１０Ｂを出力とする。Ｓｋ計算回路７１２−ｋは、パラメータ可変乗算器７１２−ｋ−１と、セレクタ７１２−ｋ−２、８、１０、１４と、加算器７１２−ｋ−３、１２と、フリップフロップ７１２−ｋ−４、１１と、固定乗算器７１２−ｋ−５、７、９、１０、１３と、メモリ７１２−ｋ−６とから構成される。
【０１４５】
遅延メモリ７１１からの入力データの上位側８ビットは、固定乗算器７１２−ｋ−７による乗算（ｘα^ｋ）を経て、加算器７１２−ｋ−１２に入力される。
遅延メモリ７１１からの入力データの下位側８ビットは、固定乗算器７１２−ｋ−９による乗算（ｘα^(２ｋ)）を経て、セレクタ７１２−ｋ−１０の一入力に入力される。セレクタ７１２−ｋ−１０の他入力にはオールゼロ入力され、セレクタ７１２−ｋ−１０は、２入力の一方をフリップフロップ７１２−ｋ−１１に入力する。フリップフロップ７１２−ｋ−１１は、クロックを入力され、入力されたデータについて次のクロックで、加算器７１２−ｋ−１２に入力する。
【０１４６】
遅延メモリ７１１からの入力データの下位側８ビットは、またセレクタ７１２−ｋ−８に入力される。セレクタ７１２−ｋ−８の他入力にはオールゼロ入力され、セレクタ７１２−ｋ−８は、２入力の一方を加算器７１２−ｋ−１２に入力する。
加算器７１２−ｋ−１２は、３入力の排他的論理和をパラメータ可変乗算器７１２−ｋ−１と、セレクタ７１２−ｋ−２に入力する。
【０１４７】
パラメータ可変乗算器７１２−ｋ−１は、事前に短縮補償パラメータテーブルからのパラメータ（α^ｋ）^ｊをロードして演算パラメータをセットした後、加算器７１２−ｋ−１２からの８ビット並列入力データを入力し、セレクタ７１２−ｋ−２に乗算結果を出力する。セレクタ７１２−ｋ−２は、パラメータ可変乗算器７１２−ｋ−１からの乗算結果と、加算器７１２−ｋ−１２からの８ビット並列入力データとを入力とし、選択された出力を、加算器７１２−ｋ−３に出力する。加算器７１２−ｋ−３は、セレクタ７１２−ｋ−２と固定乗算器７１２−ｋ−５の出力とを入力とし、フリップフロップ７１２−ｋ−４に出力する。フリップフロップ７１２−ｋ−４は、クックを入力され、入力データを１クロック保持したあと、セレクタ７１２−ｋ−１４と固定乗算器７１２−ｋ−５、１３に出力する。
【０１４８】
セレクタ７１２−ｋ−１４は、フリップフロップ７１２−ｋ−４の出力と固定乗算器７１２−ｋ−１３の出力を入力とし、一方を選択してメモリ７１２−ｋ−６に出力する。
図２９において、入力データは１６ビット並列であるが、回路内の各々の信号線は全て８ビット並列、つまり８本で構成する。
【０１４９】
セレクタ７１２−ｋ−８は、鍵形のタイミング（鍵形タイミング情報８１２が鍵型のタイミングを示しているとき）では、オールゼロ入力側を選択して出力する。一方、鍵形以外のタイミングでは、セレクタ７１２−ｋ−８は、データ入力側を選択して出力する。セレクタ７１２−ｋ−８の切替と切り戻しは、遅延メモリ７１１からの入力データ１６ビット毎に実施する。
【０１５０】
セレクタ７１２−ｋ−１０は、鍵形のタイミングでは、乗算器７１２−ｋ−９側を選択して出力する。一方、鍵形以外のタイミングでは、セレクタ７１２−ｋ−１０は、オールゼロ入力側のを選択して出力する。セレクタ７１２−ｋ−１０の切替と切り戻しは、遅延メモリ７１１からの入力データ１６ビット毎に実施する。
【０１５１】
セレクタ７１２−ｋ−１４は、鍵形補償情報８１３が計算しようとするＦＥＣフレームが上位側８ビットで終わることを示す場合は、乗算器７１２−ｋ−１３側を選択して出力する。一方、下位側８ビットで終わるＦＥＣフレームの計算では、セレクタ７１２−ｋ−１４は、スルー側を選択して出力する。セレクタ７１２−ｋ−１４の切替は、ＦＥＣフレーム毎に、計算開始直前に実施する。鍵形のとき、セレクタ７１２−ｋ−１４の切替は、次のタイミング（ＦＥＣコードの２番目、３番目のバイトのタイミング）の直前に実施する。
【０１５２】
固定乗算器「ｘα^（２ｋ）」７１２−ｋ−５は、ガロア体の元α^(２ｋ)とフリップフロップ７１２−ｋ−４の出力との乗算を行う。固定乗算器「ｘα^ｋ」７１２−ｋ−７は、ガロア体の元α^ｋと入力データの上位側８ビットとの乗算を行う。乗算器「ｘα^(２ｋ)」７１２−ｋ−９は、ガロア体の元α^(２ｋ)と入力データの下位側８ビットとの乗算を行う。乗算器「ｘα^(−ｋ)」７１２−ｋ−１３は、ガロア体の元α^(−ｋ)とフリップフロップ７１２−ｋ−４の出力との乗算を行う。
【０１５３】
フリップフロップ７１２−ｋ−１１は、クロック周期（クロックの立ち上がりか立下りエッジ）のタイミングで入力を保持し、加算器７１２−ｋ−１２へ出力する。
加算器７１２−ｋ−１２は、３入力を加算し、出力する。加算は、各ビット毎に排他的論理和を行う。
【０１５４】
セレクタ８１２−ｋ−１０、１４に入力されるオールゼロとは、論理値ゼロの信号である。このオールゼロをセレクタで選択した場合は、加算計算上は、加算器７１２−ｋ−１２に入力しないのと等価である。
【０１５５】
図２７を用いて説明したエラーサーチ部の他の構成を図３０を用いて説明する。ここで、図３０はエラーサーチの第２の方法を説明するものである。
図３０において、エラーサーチ部７３０Ｂは、多項式係数８２０と多項式係数判定結果８２１とフレームトップ識別信号８０１とＦＥＣフレームサイズ８０２とクロック８０５とＦＥＣフレームスタート位置情報８０６とを入力とし、エラー位置ＶＬＤ信号８３０とエラー値８３１とエラーサーチ判定結果８３２を出力する。ここで、エラー位置ＶＬＤ信号８３０とエラーサーチ判定結果８３２は、それぞれ、８ビット並列の上位側用データと下位側用データとから構成される。エラー値８３１は、１６ビット並列データである。
【０１５６】
エラーサーチ部７３０Ｂは、エラー位置計算部５３１−１、２と、エラー値計算部５３２−１、２と、エラー位置計算部５３１からＥＬＰ計算出力５３４とエラー値計算部５３２からＥＥＰ計算出力５３５とを入力されるエラーサーチ解析部５３３−１、２と、エラー解析部５３３の出力を保持するメモリ７３４Ｂと、エラー位置ＶＬＤ（Ｖａｌｉｄ）生成部７３６Ｂと、参照番地計算部７３５とから構成される。
【０１５７】
図３０は、図１４を用いて説明した８ビット用のエラー位置計算部５３１とエラー値計算部５３２とエラーサーチ解析部５３３とを２式備えたエラーサーチ部７３０Ｂである。なお、クロック同期は８ビット用のエラー位置計算部５３１と同じでよい。エラーサーチ部７３０Ｂは、ＦＥＣフレーム毎にどちらを使用するかを決めて計算する。どちらを使用するかは、計算が終わっている方あるいは交互に使用するものとする。エラーサーチ部７３０Ｂは、ＦＥＣフレームのパラメータ８６１、８８１を選択したエラー位置計算５３１、エラー値計算５３２に入力する。
【０１５８】
メモリ７３４Ｂは、エラーサーチ計算完了までに一組から複数組の仮エラー位置６３０Ｂ−１と仮エラー値６３１Ｂ−１、仮エラー位置６３０Ｂ−２と仮エラー値６３１Ｂ−２を保持する。また、メモリ７３４はエラーサーチ計算完了毎に、完了した方のエラーサーチ判定結果６３２Ｂ−１〜２を保持する。
【０１５９】
エラー位置ＶＬＤ生成部７３６Ｂは、メモリ７３４Ｂに格納されている該当ＦＥＣフレーム内の全てのエラー位置８３０Ｃを一旦保持し、エラー位置８３０Ｃに相当するＦＥＣフレーム内のデータがエラー訂正７５０でエラー訂正され出力されるタイミングに合わせて、エラー位置ＶＬＤ信号８３０を上位側８ビット用と下位側８ビット用とで独立に生成し、出力する。
【０１６０】
エラー位置ＶＬＤ生成７３６Ｂは、エラー位置ＶＬＤ信号８３０を生成するタイミングに合わせて、メモリ７３４から対応するエラー値８３１Ｃを読み出し、エラー値８３１として出力する。つまり、エラー位置ＶＬＤ生成７３６Ｂは、エラー位置ＶＬＤ信号８３０とエラー値８３１を、エラー訂正７５０でエラー訂正される２バイト毎のタイミングで出力する。
【０１６１】
また、エラー位置ＶＬＤ生成部７３６Ｂは、エラー訂正部７５０に於いてあるＦＥＣフレームを訂正している期間中、そのＦＥＣフレームに対するエラーサーチ判定結果をメモリ７３４Ｂから読み出し、エラーサーチ判定結果８３２として出力し続ける。したがってエラーサーチ判定結果８３２は、ＦＥＣフレーム境界での鍵型の発生タイミング以外では上位側用と上位側用とで同じ値となる。鍵型の発生タイミングのときのみ異なる値をとりうる。なお、鍵形が発生しない、という前提の場合には、エラーサーチ判定結果８３２は上位側用、下位側用に分ける必要はなく、共通でよい。
【０１６２】
1回のクロック周期で2バイト分のデータ位置を処理する（方法３）を図３１ないし図３４を参照して説明する。
【０１６３】
図３１において、エラー位置計算部７３１の基本ユニット７３７は、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３７１と、初期値としてσｍをロードするフリップフロップ７３７３と、固定乗算器７３７４、７３７５と、２入力１出力のセレクタ７３７２とから構成される。固定乗算器７３７４の乗算値はｘα^２ｍ、固定乗算器７３７５の乗算値はｘα^−ｍである。フリップフロップ７３７３は、次のクロックで入力値を取り込んでパラメータロード型乗算器７３７１とセレクタ７３７２の一方の入力と、固定乗算器７３７４に出力する。固定乗算器７３７４は、固定乗算の結果をフリップフロップ７３７３に出力する。
【０１６４】
パラメータロード型乗算器７３７１は、ロードされたパラメータに基づいて乗算を行い、セレクタ７３７２の他入力に出力する。セレクタ７３７２は、２入力の一方を選択して、基本ユニット７３７の下位側８ビットとして、出力する。セレクタ７３７２の出力は、固定乗算器７３７５にも入力され、固定乗算器７３７５は、乗算結果を基本ユニット７３７の上位側８ビットとして、出力する。
【０１６５】
エラー位置計算部７３１は、基本ユニット７３７を８式（ｍ＝１〜８）備える。σ(α^ｋ)の計算は、これらの出力とσ０との総和を実行すればよい。すなわち、上位バイトのσ(α^ｋ)の計算は、上位側８ビットを、ｍの１〜８の８個分と、σ０との総和を実行すればよい。同様に、下位バイトのσ(α^ｋ)の計算は、下位側８ビットを、ｍの１〜８の８個分と、σ０との総和を実行すればよい。
なお、ｅｋの計算におけるω(α^ｋ)、σ'(α^ｋ)も同様の方法で計算する。
【０１６６】
図３２において、エラー値計算部７３２の基本ユニット７３８は、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３８１と、初期値としてωｍをロードするフリップフロップ７３８３と、固定乗算器７３８４、７３８５と、２入力１出力のセレクタ７３８２とから構成される。固定乗算器７３８４の乗算値はｘα^２ｍ、固定乗算器７３８５の乗算値はｘα^−ｍである。なお、基本ユニット７３８の動作は図３１と同様なので、省略する。
【０１６７】
ω(α^ｋ)の計算は、図３２の回路をｍの１〜７の７個分具備し、これらの出力とω０との総和を実行すればよい。ここで、σ(α^ｋ)と同様に上位バイト、下位バイト独立に計算する。
【０１６８】
図３３において、エラー値計算部７３２の基本ユニット７３７Ｂは、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３７１Ｂと、初期値としてσｍ+１をロードするフリップフロップ７３７３Ｂと、固定乗算器７３７４Ｂ、７３７５Ｂと、２入力１出力のセレクタ７３７２Ｂとから構成される。固定乗算器７３７４Ｂの乗算値はｘα^２ｍ、固定乗算器７３７５Ｂの乗算値はｘα^−ｍである。なお、基本ユニット７３８Ｂの動作は図３１と同様なので、省略する。
【０１６９】
σ'(α^ｋ)の計算は、図３３の回路をｍの１〜３の３個分具備し、これらの出力とσ１との総和を実行すればよい。σ(α^ｋ)と同様に上位バイト、下位バイト独立に計算する。
【０１７０】
図３１〜図３３の基本ユニット７３７、７３８、７３７Ｂは、１回目のクロック入力直後に、上位バイト側はＦＥＣフレームの先頭１バイト目に対応した計算結果を、下位バイト側はＦＥＣフレームの２バイト目に対応した計算結果を出力する。２回目のクロック入力直後に、上位バイト側はＦＥＣフレームの３バイト目に、下位バイト側はＦＥＣフレームの４バイト目に対応した計算結果を出力する。以降同様である。
【０１７１】
図３４において、エラー値計算部７３２の基本ユニット７３９は、初期値としてα^−ｊをロードするパラメータロード型乗算器７３９１と、初期値としてα^０をロードするフリップフロップ７３９３と、固定乗算器７３９４、７３９５と、２入力１出力のセレクタ７３９２とから構成される。固定乗算器７３９４の乗算値はｘα^−２、固定乗算器７３９５の乗算値はｘα^１である。なお、基本ユニット７３９の動作は図３１と同様なので、省略する。
α^−ｋは、図３４で、上位バイト、下位バイト独立に計算する。短縮が無い場合は、１回目のクロック入力直後に、上位バイト側はα−１を、下位バイト側はα−２を出力する。２回目のクロック入力直後に、上位バイト側はα−３を、下位バイト側はα−４を出力する。以降同様である。
【０１７２】
図３１〜図３４の各基本ユニットの各々の線は８ビット並列である。セレクタ７３７−２等の制御は図２０等と同様である。
しかし、短縮方式が中詰の場合は、情報エリアとチェックビットエリアでセレクタ７３７−２等を切り替える必要がある。さらに、エラーサーチ７３０が１６ビット処理であるため、そのスループットはＦＥＣデコーダ７００が受信するデータのスループットに対して高々同じであることが限界である。このため、ＦＥＣフレーム境界での鍵型に相当する鍵型の判定タイミング（上位バイトはあるＦＥＣフレームの最後のバイトを判定する一方で、下位バイトは次のＦＥＣフレームの先頭バイトを判定しなければならないタイミング）が発生しうる。これを解決するため、クロックの周期が少し早いクロックを用いる。例えば、元のクロック周期の１０分の８以下の周期のクロック、（元の周波数の８分の１０以上の周波数のクロック）で動作させればよい。
【０１７３】
σ'(α^ｋ)による除算も上位バイト側と下位バイト側とで独立に実行するために、図１７の逆元パラメータテーブル５８０を２個用意して、各々上位バイト側、下位バイト側用として使えばよい。
【０１７４】
図３５〜図３８を参照して、第４の方法である１回のクロック周期で３バイト分のデータ位置を処理する実施例を説明する。こうすることで、１回のクロック周期で２バイト分のデータ処理する方法で発生しうる鍵型事象を補償し、クロックの高周波数化を回避することができる。つまり、ＦＥＣデコーダ７００が受信するデータのスループットよりも高いスループットをエラーサーチ７３０に持たせることで、鍵型事象の扱いを容易化する。ただし、エラーサーチ７３０に限り、１回のクロック周期で処理する３バイト分として上位側バイト、中位側バイト、下位側バイトを定義する。ＦＥＣフレームに対応する位置は、先頭側から上位側バイト、中位側バイト、下位側バイトの順である。
【０１７５】
図３５において、エラー位置計算部７３１の基本ユニット７３７は、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３７１と、初期値としてσｍをロードするフリップフロップ７３７３と、固定乗算器７３７４、７３７５、７３７６と、２入力１出力のセレクタ７３７２とから構成される。固定乗算器７３７４の乗算値はｘα^３ｍ、固定乗算器７３７５の乗算値はｘα^−ｍ、固定乗算器７３７６はｘα^−２ｍである。フリップフロップ７３７３は、次のクロックで入力値を取り込んでパラメータロード型乗算器７３７１とセレクタ７３７２の一方の入力と、固定乗算器７３７４に出力する。固定乗算器７３７４は、固定乗算の結果をフリップフロップ７３７３に出力する。
【０１７６】
パラメータロード型乗算器７３７１は、ロードされたパラメータに基づいて乗算を行い、セレクタ７３７２の他入力に出力する。セレクタ７３７２は、２入力の一方を選択して、基本ユニット７３７の下位側８ビットとして、出力する。セレクタ７３７２の出力は、固定乗算器７３７５にも入力され、固定乗算器７３７５は、乗算結果を基本ユニット７３７の中位側８ビットとして、出力する。セレクタ７３７２の出力は、固定乗算器７３７６にも入力され、固定乗算器７３７６は、乗算結果を基本ユニット７３７の上位側８ビットとして、出力する。
【０１７７】
σ(α^ｋ)の計算は、図３５の基本ユニット７３７をｍの１〜８の８個分具備し、これらの出力とσ０との総和を実行すればよい。すなわち、上位バイトのσ(α^ｋ)の計算は、上位側８ビット出力のｍとしての１〜８の８個分と、σ０との総和を実行すればよい。同様に、中位バイトのσ(α^ｋ)の計算は、中位側８ビット出力のｍとしての１〜８の８個分と、σ０との総和を実行すればよい。下位バイトのσ(α^ｋ)の計算は、下位側８ビット出力のｍとしての１〜８の８個分と、σ０との総和を実行すればよい。
また、ｅｋの計算におけるω(α^ｋ)、σ'(α^ｋ)も同様の方法で計算する。
【０１７８】
図３６において、エラー値計算部７３２の基本ユニット７３８は、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３８１と、初期値としてωｍをロードするフリップフロップ７３８３と、固定乗算器７３８４、７３８５、７３８６と、２入力１出力のセレクタ７３８２とから構成される。固定乗算器７３８４の乗算値はｘα^３ｍ、固定乗算器７３８５の乗算値はｘα^−ｍ、固定乗算器７３８６の乗算値はｘα^−２ｍである。なお、基本ユニット７３８の動作は図３５と同様なので、省略する。
【０１７９】
ω(α^ｋ)の計算は、図３６の基本ユニット７３８をｍの１〜７の７個分具備し、これらの出力とω０との総和を実行すればよい。σ(α^ｋ)と同様に上位バイト、中位バイト、下位バイト独立に計算する。
【０１８０】
図３７において、エラー値計算部７３２の基本ユニット７３７Ｂは、初期値として（α^ｊ）^ｍをロードするパラメータロード型乗算器７３７１Ｂと、初期値としてσｍ+１をロードするフリップフロップ７３７３Ｂと、固定乗算器７３７４Ｂ、７３７５Ｂ、７３７６Ｂと、２入力１出力のセレクタ７３７２Ｂとから構成される。固定乗算器７３７４Ｂの乗算値はｘα^３ｍ、固定乗算器７３７５Ｂの乗算値はｘα^−ｍ、固定乗算器７３７６Ｂの乗算値はｘα^−２ｍである。なお、基本ユニット７３８Ｂの動作は図３５と同様なので、省略する。
【０１８１】
σ'(α^ｋ)の計算は、図３７の基本ユニット７３７Ｂをｍの１〜３の３個分具備し、これらの出力とσ１との総和を実行すればよい。σ(α^ｋ)と同様に上位バイト、中位バイト、下位バイト独立に計算する。
【０１８２】
図３５〜図３７の各基本ユニットは、１回目のクロック入力直後に、上位バイト側はＦＥＣフレームの先頭１バイト目に対応した計算結果を、中位バイト側は２バイト目に対応した計算結果を、下位バイト側は３バイト目に対応した計算結果を出力する。２回目のクロック入力直後に、上位バイト側はＦＥＣフレームの４バイト目に、中位バイト側は５バイト目に、下位バイト側は６バイト目に対応した計算結果を出力する。以降同様である。
【０１８３】
図３８において、エラー値計算部７３２の基本ユニット７３９は、初期値としてα^−ｊをロードするパラメータロード型乗算器７３９１と、初期値としてα^０をロードするフリップフロップ７３９３と、固定乗算器７３９４、７３９５、７３９６と、２入力１出力のセレクタ７３９２とから構成される。固定乗算器７３９４の乗算値はｘα^−３、固定乗算器７３９５の乗算値はｘα^１、固定乗算器７３９６の乗算値はｘα^２である。なお、基本ユニット７３９の動作は図３５と同様なので、省略する。
【０１８４】
α^−ｋは、図３８で計算する。上位バイト、中位バイト、下位バイト独立に計算する。
【０１８５】
短縮が無い場合は、１回目のクロック入力直後に、上位バイト側はα^−１を、中位バイト側はα^−２を、下位バイト側はα^−３を出力する。２回目のクロック入力直後に、上位バイト側はα^−４を、中位バイト側はα^−５を、下位バイト側はα^−６を出力する。以降同様である。
σ'(α^ｋ)による除算も上位バイト、中位バイト、下位バイトとで独立に実行するために、図１７の逆元パラメータ５８０を３個用意して、各々上位バイト側、中位バイト側用、下位バイト側用として使う。なお、図３５〜図３８の各基本ユニットの各々の線は８ビット並列である。また、セレクタ７３７２等の制御は図２０等と同様である。さらに、符号短縮が先頭詰方式の場合は、ＦＥＣフレームのエラーサーチ計算を行う直前に、セレクタ７３７−２等を乗算器側を選択させればよい。
【０１８６】
符号短縮が中詰方式の場合は、情報エリアとチェックビットエリアでセレクタ７３７２等を切り替える必要がある。例えば、ある３バイトの判定タイミングで、ＦＥＣフレームの情報エリアの最後のバイトと、そのＦＥＣフレームのチェックビットの先頭バイト位置の判定が同居する場合がありうる。これはＦＥＣフレーム内での一種の鍵型である。
【０１８７】
このような場合、そのタイミングまでは、セレクタ（７３７−２等）はスルー側（８３７−１等）を選択して、情報エリアが出力されるバイト位置のみ有効とし、次のタイミングではフリップフロップＦＦ（７３７−３等）へのクロック入力を休止してフリップフロップＦＦ（７３７−３等）の出力を前回のままに維持し、その状態でセレクタ（７３７−２等）を乗算器側（７３７−１等）を選択させ、チェックビットエリアに対応したバイト位置のみ有効とする。さらに次のタイミング以降では、クロック入力を有効にして計算する。こうすることで、情報エリアとチェックビットエリアのサーチ判定位置が鍵型になっていても、鍵型のタイミングでは、情報エリアの判定のみとし、次のタイミングでは鍵型残り部分に相当するチェックビットエリアの判定のみとし、さらに次のタイミング以降続くチェックビットエリアの判定を行うことができる。つまり、鍵型タイミングを２回のタイミングに分けて計算する。
【０１８８】
エラーサーチ７３０のスループットはＦＥＣフレームのスループットよりも高いので、このようにある１回の計算タイミングを２回に延ばしても、計算が間に合わなくなることはない。
【０１８９】
Ｔｄｅｌａｙ−ＤＥＣに付いて、更に詳細に説明する。ここで、１６ビット並列のＦＥＣデコーダのエラーサーチ部において、８ビット並列から１６ビット並列にするための方法として、クロックを倍にする（方法１）、処理部の数を倍にする（方法２）、1回のクロック周期で2バイト分のデータ位置を処理する（方法３）、1回のクロック周期で3バイト分のデータ位置を処理する（方法４）を、説明した。
【０１９０】
ＦＥＣデコーダ７００が受信しうるＦＥＣフレームの最大サイズをＡＡバイト、多項式係数計算７２０で発生する固定的な遅延時間または最大の遅延時間をＢＢクロック周期としたとき、クロック周期１個分は、ＦＥＣフレーム内の２バイトを受信する時間とする。また、ＦＥＣデコーダ７００内でのデータの受け渡し、ＦＥＣデコーダ７００とその外部とのデータの受け渡し等のＦＥＣデコード計算以外の要因で発生する遅延をＤＤとし、数クロック周期分（例えば５周期分）である。鍵型事象でのカウント増分をＦＦとし、１である。しかし、方法１か方法４を用いた場合は、ＦＦは０である。Ｔｄｅｌａｙ-ＤＥＣを固定値、かつＣＣ以上のクロック周期としてデコーダを構成する。
ここで、
ＣＣ＝ＡＡｘ１.５+ＢＢ+ＤＤ+ＦＦ
さらに、エラーサーチ７３０として方法３または方法４を用いた場合は、
ＣＣ＝ＡＡ+ＢＢ+ＤＤ+ＦＦ
となる。
【０１９１】
データ格納メモリ７４０は、Ｔｄｅｌａｙ-ＤＥＣ分の時間だけデータを遅延させて出力する。データ格納メモリ７４０の容量は、Ｔｄｅｌａｙ-ＤＥＣの時間内に受信しうる総てのデータをバッファリング可能な容量であり、格納したデータを次々とＴｄｅｌａｙ-ＤＥＣ後に読み出す。
【０１９２】
また、エラー訂正７５０、エラーサーチ７３０は、Ｔｄｅｌａｙ-ＤＥＣの遅延時間をもってエラー訂正して出力するタイミングに合わせて、エラー訂正のための諸々の情報を出力し、訂正を行うようにする。
【０１９３】
ＡＡ＝２５５、ＢＢ＝１５、方法４を用いたとき、Ｔｄｅｌａｙ-ＤＥＣは最低でも２７５クロック周期以上の固定値とする。Ｔｄｅｌａｙ-ＤＥＣを２７５クロック周期の固定値とし、ＦＥＣフレームの受信ビットレートを１Ｇｂｐｓとすると、Ｔｄｅｌａｙ-ＤＥＣは２７５ｘ８ビット分を受信する時間相当であり、２.２マイクロ秒に等しい。
【０１９４】
このように構成することで、ＡＡバイト以下の任意のサイズで、かつそのサイズがダイナミックに増減するＦＥＣフレームを連続して受信しても、確実にエラー訂正を可能となる。もしこのように構成しなければ、受信したＦＥＣフレームのサイズがダイナミックに増加していくと、シンドローム計算７１０、エラーサーチ７３０の計算が間に合わず、サイズがＡＡのＦＥＣフレームに対してエラー訂正できなくなる。これは原理的には、シンドローム計算７１０、エラーサーチ７３０の計算が、ＦＥＣフレームサイズ分のクロック周期の数が必要なことによる。
【０１９５】
以上説明した実施例に拠れば、ＦＥＣフレームサイズが異なっても、同じエラー訂正符号で処理可能な光集線装置および光加入者装置を提供することができる。
【図面の簡単な説明】
【０１９６】
【図１】光アクセスネットワークのブロック図である。
【図２】ＯＬＴのブロック図である。
【図３】ＯＮＴのブロック図である。
【図４】ＯＬＴのＰＯＮ送受信ブロックのブロック図である。
【図５】ＯＮＴのＰＯＮ送受信ブロックのブロック図である。
【図６】ＯＬＴのＰＯＮ受信部とＰＯＮ送信部のブロック図である。
【図７】ＯＮＴのＰＯＮ受信部とＰＯＮ送信部のブロック図である。
【図８Ａ】ＦＥＣコードワードの構成（シリアル８ビット）を説明する図である。
【図８Ｂ】ＦＥＣコードワードの構成（パラレル８ビット）を説明する図である。
【図８Ｃ】ＦＥＣコードワードの構成（パラレル１６ビット、その１）を説明する図である。
【図８Ｄ】ＦＥＣコードワードの構成（パラレル１６ビット、その２）を説明する図である。
【図８Ｅ】ＦＥＣコードワードの構成（パラレル８ビット、可変ワード長）を説明する図である。
【図８Ｆ】ＦＥＣコードワードの構成（パラレル１６ビット、可変ワード長）を説明する図である。
【図９】パラメータロード型乗算器を説明する図である。
【図１０】固定型乗算器を説明する図である。
【図１１】ＦＥＣデコーダのブロック図である。
【図１２】シンドローム計算部のブロック図である。
【図１３】多項式係数計算部のブロック図である。
【図１４】エラーサーチ部のブロック図である。
【図１５】多項式係数計算部のブロック図である。
【図１６】短縮補償パラメータテーブルを説明する図である。
【図１７】逆元パラメータテーブルを説明する図である。
【図１８】ＦＥＣデコーダの動作タイムチャートである。
【図１９】Ｓｋ計算回路のブロック図である。
【図２０】エラー位置計算部の基本ユニットを説明するのブロック図である。
【図２１】エラー値計算部の基本ユニットを説明するブロック図（その１）である。
【図２２】エラー値計算部の基本ユニットを説明するブロック図（その２）である。
【図２３】エラー値計算部の基本ユニットを説明するブロック図（その３）である。
【図２４】ＦＥＣデコーダのブロック図である。図２５はシンドローム計算部のブロック図である。
【図２５】シンドローム計算部のブロック図である。
【図２６】多項式係数計算部のブロック図である。
【図２７】エラーサーチ部のブロック図である。
【図２８】エラー訂正部のブロック図である。
【図２９】Ｓｋ計算回路のブロック図である。
【図３０】エラーサーチ部をのブロック図である。
【図３１】エラー位置計算部を説明するブロック図（そのＡ１）である。
【図３２】エラー値計算部を説明するブロック図（そのＡ１）である。
【図３３】エラー値計算部を説明するブロック図（そのＡ２）である。
【図３４】エラー値計算部を説明するブロック図（そのＡ３）である。
【図３５】エラー位置計算部を説明するブロック図（そのＢ１）である。
【図３６】エラー値計算部を説明するブロック図（そのＢ１）である。
【図３７】エラー値計算部を説明するブロック図（そのＢ２）である。
【図３８】エラー値計算部を説明するブロック図（そのＢ３）である。
【符号の説明】
【０１９７】
１…光集線装置（ＯＬＴ）、２…光加入者装置（ＯＮＴ）、３…スプリッタ、４…ＩＰシステム、５…ＴＤＭシステム、６…ＩＰネットワーク、７…ＴＤＭネットワーク、８…幹線ファイバ、９…加入者ファイバ、１０…光アクセスネットワーク、７１…光電変換モジュール、７２…ＯＬＴ ＰＯＮ送受信ブロック、７３…イーサネット ＰＨＹ、７４…ＴＤＭ ＰＨＹ、７５…ＭＰＵ、７６…ＲＡＭ、７７…制御系インターフェース、８１…光電変換モジュール、８２…ＯＮＴ ＰＯＮ送受信ブロック、８３…イーサネット ＰＨＹ、８４…ＴＤＭ ＰＨＹ、８５…ＭＰＵ、８６…ＲＡＭ、８７…制御系インターフェース、９１…ＰＯＮ受信部、９２…受信ＧＥＭ組立部、９３…ＯＬＴ受信テーブル、９４…ＯＬＴ上りイーサネットＧＥＭ終端部、９５…ＯＬＴ上りイーサネットインターフェース、９６…ＯＬＴ上りＴＤＭ ＧＥＭ終端部、９７…ＯＬＴ上りＴＤＭインターフェース、９８…レンジング制御部、９９…ＰＯＮ送信部、１００…送信ＧＥＭ組立部、１０１…送信ＧＥＭバッファ、１０２…ＯＬＴ送信スケジューラ、１０３…ＯＬＴ下りＴＤＭ ＧＥＭ終端部、１０４…ＯＬＴ下りＴＤＭインターフェースＧＥＭ終端部、１０５…ＯＬＴ下りイーサネットＧＥＭ終端部、１０６…ＯＬＴ下りイーサネットインターフェース、１０７…ＭＰＵ ＩＦ、１２０…ＯＮＴ下りイーサネットインターフェース、１２１…ＯＮＴ下りイーサネットＧＥＭ終端部、１２２…ＯＮＴ下りＴＤＭインターフェース、１２３…ＯＮＴ下りＴＤＭ ＧＥＭ終端部、１２４…ＯＮＴ受信テーブル、１２５…受信ＧＥＭバッファ、１２６…受信ＧＥＭ組立部、１２７…ＰＯＮ受信部、１２８…レンジング制御部、１２９…ＰＯＮ送信部、１３０…送信ＧＥＭ組立部、１３１…ＯＮＴ送信スケジューラ、１３２…送信ＧＥＭバッファ、１３３…ＯＮＴ上りＴＤＭ ＧＥＭ終端部、１３４…ＯＮＴ上りＴＤＭインターフェース、１３５…ＯＮＴ上りイーサネットＧＥＭ終端部、１３６…ＯＮＴ上りイーサネットインターフェース、１３７…ＭＰＵ ＩＦ、５００…ＦＥＣデコーダ、５１０…シンドローム計算部、５１１…遅延メモリ、５１２…Ｓｋ計算回路、５１６…メモリ、５１７…シンドローム判定部、５１８…参照番地計算部、５２０…多項式係数計算部、５２１…ユークリッド互除計算部、５２３…メモリ、５３０…エラーサーチ部、５３１…エラー位置計算部、５３２…エラー値計算部、５３３…エラーサーチ解析部、５３４…メモリ、５３５…参照番地計算部、５３６…エラー位置ＶＬＤ生成部、５４０…データ格納メモリ、５５０…エラー訂正部、５５１…セレクタ制御部、５５２…セレクタ、５５３…加算部、５６０…短縮補償パラメータテーブル、５８０…逆元パラメータテーブル、７００…ＦＥＣデコーダ、７１０…シンドローム計算部、７１１…遅延メモリ、７１２…Ｓｋ計算回路、７１３…Ｓ制御部、７１６…メモリ、７１７…シンドローム判定部、７１８…参照番地計算部、７２０…多項式係数計算部、７２１…ユークリッド互除計算部、７２３…メモリ、７３０…エラーサーチ部、７３１…エラー位置計算部、７３２…エラー値計算部、７３３…エラーサーチ解析部、７３４…メモリ、７３７…参照番地計算部、７３６…エラー位置ＶＬＤ生成部、７４０…データ格納メモリ、７５０…エラー訂正部、７５１…セレクタ制御部、７５２…上位側セレクタ、７５３…下位側セレクタ、７５４…上位側加算部、７５５…下位側加算部、７６０…短縮補償パラメータテーブル、７８０…逆元パラメータテーブル、９０１…デスクランブラ、９０２…フレーム同期部、９０３…ＦＥＣデコーダ、９０４…ＰＯＮフレーム終端部、９０５…暗号デコーダ、９９１…暗号エンコーダ、９９２…ＰＯＮフレーム生成部、９９３…ＦＥＣエンコーダ、９９４…フレーム同期信号挿入部、９９５…スクランブラ。
【図１】
2008148245.tif 000010
【図２】
2008148245.tif 000011
【図３】
2008148245.tif 000012
【図４】
2008148245.tif 000013
【図５】
2008148245.tif 000014
【図６】
2008148245.tif 000015
【図７】
2008148245.tif 000016
【図８Ａ】
2008148245.tif 000017
【図８Ｂ】
2008148245.tif 000018
【図８Ｃ】
2008148245.tif 000019
【図８Ｄ】
2008148245.tif 000020
【図８Ｅ】
2008148245.tif 000021
【図８Ｆ】
2008148245.tif 000022
【図９】
2008148245.tif 000023
【図１０】
2008148245.tif 000024
【図１１】
2008148245.tif 000025
【図１２】
2008148245.tif 000026
【図１３】
2008148245.tif 000027
【図１４】
2008148245.tif 000028
【図１５】
2008148245.tif 000029
【図１６】
2008148245.tif 000030
【図１７】
2008148245.tif 000031
【図１８】
2008148245.tif 000032
【図１９】
2008148245.tif 000033
【図２０】
2008148245.tif 000034
【図２１】
2008148245.tif 000035
【図２２】
2008148245.tif 000036
【図２３】
2008148245.tif 000037
【図２４】
2008148245.tif 000038
【図２５】
2008148245.tif 000039
【図２６】
2008148245.tif 000040
【図２７】
2008148245.tif 000041
【図２８】
2008148245.tif 000042
【図２９】
2008148245.tif 000043
【図３０】
2008148245.tif 000044
【図３１】
2008148245.tif 000045
【図３２】
2008148245.tif 000046
【図３３】
2008148245.tif 000047
【図３４】
2008148245.tif 000048
【図３５】
2008148245.tif 000049
【図３６】
2008148245.tif 000050
【図３７】
2008148245.tif 000051
【図３８】
2008148245.tif 000052