第13回LSIデザインコンテスト・イン沖縄 設計仕様書 - 6
6. システム構成
今回設計するシステムの構成を図8に示します。システムは大きくわけて、ENCODERとDECODER、そして受信機でエラー訂正された受信機の出力(RBEC)のエラーの数をカウントするためのERRCNT(エラーカウント機)からなり、設計してもらうのは、DECODERとERRCNTです。実際に回路合成を行い、回路規模やスピードを求めるのはRECEIVERだけとなり、ERRCNTは自分で設計したRECEIVERのエラー訂正の能力の評価に使用します。
図8 システム構成図
(ENCODERの説明)
ENCODERは送信側であり、7ビットの情報ビット列U(x)を生成し、8ビットのエラー訂正用ビット列R(x)を付加して、15ビットの送信データSB(x)を生成します。
さらにENCODERは適当なエラーを発生させ、その出力をSBWE(Send Bit With Error)端子に出力します。SBWEには連続的に1か0の信号がクロックCLKに同期して出力されます。この15ビットの送信は連続的に発生し、常に15サイクルごとに7ビットの情報ビット列と8ビットのエラー訂正用ビット列が送信されます。
START信号は15サイクル中1サイクル期間のみ、1を出力し、15ビットの送信データの先頭位置を示します。
SBはRECEIVERによるエラー訂正がうまくできているかを調べる目的に用意された信号であり、SBWE端子の出力に対応したエラーが含まれてない正しい信号を出力します。実際の通信システムではこのような信号はありませんが、ここではエラー訂正の評価のために特別に用意します。
(DECODERの説明)
DECODERは受信側であり、クロックに同期して、ENCODERからの送信信号SBWEを受け取ります。15サイクルごとにエラー訂正を行い、エラー訂正された15ビットをRBEC端子に出力します。この出力の15ビットにはエラー訂正用ビットも含まれますが、すべてのエラー訂正を行い出力します。また、RBECの先頭位置を示すために、START2信号を用います。これはSTART信号をDECODER内でのエラー訂正のレイテンシー遅延させた信号です。
(ERRCNT:エラーカウント機)
ERRCNTは受信機の評価用のブロックであり、回路合成等は行いません。ENCODERよりSTART信号とエラーのない送信信号SBを受け取ります。したがって、いつも正しい情報ビットを知ることができます。また、ERRCNTはDECODERよりエラー訂正された情報ビットをRBEC端子より受け取ります。ERRCNTは正しい情報ビットとエラー訂正された情報ビットを比較を行い、内部に持つ適当な大きさのレジスタに累積のエラーの発生回数を記憶し、外部へERRBITS端子を通して出力します。同時に、累積のトータル受信ビット数を外部へTOTBITS端子を通して出力します。したがって、ERRBITS/TOTBITSを計算すればビットエラー率を知ることができます。
DECODERはエラー訂正出力を出すまでのレイテンシー(遅延)がありますので、ERRCNTはその遅延を考慮してエラー数をカウントするように設計してください。
7. 動作タイミング例
図9 システム動作タイミング例
図9に動作タイミングの例を示します。RESET信号の解除の後、ENCODERはSBWE(Sent Bits With Error)信号、SB(Sent Bits without error)信号、START信号を出力します。15サイクルがひとつの単位となっており、最初の7サイクルで情報ビットが、その後の8サイクルでエラー訂正用ビットが送信されます。SBWEはエラー付の信号であり、ある確率でエラーが発生します。詳しくは与えられたENCODERのVHDL記述を見てください。
DECODERはSBWE信号を受信し、エラー訂正を行い、RBEC(Received Bits Error Corrected)にエラー訂正をした情報ビットを出力します。エラー訂正用ビットもエラー訂正処理を行い、ERRCNTで計測できるようにします。
ERRCNTは15ビットの情報ビットおよぼパリティビットに対するエラーの累積値と処理したトータルビット数を示すものです。