(57)【要約】【課題】回路の動作周波数を上げるといった手段を用いることなく高いスループットを実現することのできるレートデマッチング及びデインターリーブ回路を得る。【解決手段】偶数行のデータをコードブロック単位に格納する偶数行データ記憶回路１１と、受信データのうち、奇数行のデータをコードブロック単位に格納する奇数行データ記憶回路１２を設ける。先頭位置記憶回路４は、偶数行データ記憶回路１１及び奇数行データ記憶回路１２のどちらの記憶回路からデータの書き込みを始めたかを列単位に記憶する。読み出しアドレス生成部３は、先頭位置記憶回路４で記憶されたデータを用いて、偶数行データ記憶回路１１及び奇数行データ記憶回路１２からの読み出しアドレスを生成する。【選択図】図６
2018207386.tif 000002
【特許請求の範囲】
【請求項１】
受信データのうち、偶数行のデータをコードブロック単位に格納する偶数行データ記憶回路と、
前記受信データのうち、奇数行のデータをコードブロック単位に格納する奇数行データ記憶回路と、
前記偶数行データ記憶回路及び前記奇数行データ記憶回路へデータの書き込みを行うための書き込みアドレスを生成する書き込みアドレス生成回路と、
前記偶数行データ記憶回路及び前記奇数行データ記憶回路からデータの読み出しを行うための読み出しアドレスを生成する読み出しアドレス生成部と、
前記偶数行データ記憶回路及び奇数行データ記憶回路のどちらの記憶回路からデータの書き込みを始めたかを列単位に記憶する先頭位置記憶回路とを備え、
前記読み出しアドレス生成部は、前記先頭位置記憶回路で記憶されたデータを用いて、前記偶数行データ記憶回路及び前記奇数行データ記憶回路からの読み出しアドレスを生成することを特徴とするレートデマッチング及びデインターリーブ回路。
【請求項２】
受信データをサブコードブロック単位に分割して記憶回路に格納するレートデマッチング処理において、前記受信データの上位ワードのデータと下位ワードのデータとを入れ替えるスイッチ回路と、
前記切り替え後のデータを１サイクル遅延させる遅延回路とを備え、
これらスイッチ回路と遅延回路を前記偶数行データ記憶回路及び前記奇数行データ記憶回路の前段に設け、前記上位ワードを前記偶数行データ記憶回路に格納し、前記下位ワードを前記奇数行データ記憶回路に格納するか、前記上位ワードを前記奇数行データ記憶回路に格納し、前記下位ワードを前記偶数行データ記憶回路に格納することを特徴とする請求項１記載のレートデマッチング及びデインターリーブ回路。
【請求項３】
前記書き込みアドレス生成回路は、受信データをサブコードブロック単位にｍ列×ｎ行（ｍ及びｎは自然数）の記憶回路に格納し、行単位にデータｍ個の並べ替えを行うデインターリーブ処理を行う場合、
奇数行のアドレスを生成する奇数行アドレス生成回路として、
列アドレスの元となるカウンタ値を生成する列アドレスカウンタの出力値にそれぞれ異なる固定値を加算する複数の加算器と、
前記複数の加算器におけるそれぞれの出力に対してデインターリーブ処理を行う複数のビットスワップ回路と、
前記サブコードブロックの長さに基づいて、前記複数のビットスワップ回路のうち、いずれかのビットスワップ回路の出力を選択して、前記列アドレスカウンタのカウントアップ値を生成する列アドレスカウントアップ値生成部とを備え、
前記列アドレスカウンタは、前記カウントアップ値に従って次のサイクルの前記カウンタ値を生成することを特徴とする請求項１または請求項２記載のレートデマッチング及びデインターリーブ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アンテナより受信した信号を復調及び復号する無線通信装置に用いられるレートデマッチング及びデインターリーブ回路に関する。
【背景技術】
【０００２】
例えば、３ＧＰＰ等の無線通信方式における受信側のベースバンド処理において、レートデマッチング及びデインターリーブを行う。ここで、レートデマッチングとは、誤り訂正のために送信側で実行されたレートマッチングの受信側での逆処理であり、デインターリーブとは、インターリーブの受信側での逆処理である。
従来、このようなレートデマッチング及びデインターリーブ回路としては、例えば、レートデマッチング及びデインターリーブを一括して実行するようにしたものがあった（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００２／０６２００１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のレートデマッチング及びデインターリーブ回路では、１サイクルに処理できるデータの個数は１個のみであり、回路の動作周波数を上げない限りはスループットを上げることはできなかった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、回路の動作周波数を上げるといった手段を用いることなく高いスループットを実現することのできるレートデマッチング及びデインターリーブ回路を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るレートデマッチング及びデインターリーブ回路は、受信データのうち、偶数行のデータをコードブロック単位に格納する偶数行データ記憶回路と、受信データのうち、奇数行のデータをコードブロック単位に格納する奇数行データ記憶回路と、偶数行データ記憶回路及び奇数行データ記憶回路へデータの書き込みを行うための書き込みアドレスを生成する書き込みアドレス生成回路と、偶数行データ記憶回路及び奇数行データ記憶回路からデータの読み出しを行うための読み出しアドレスを生成する読み出しアドレス生成部と、偶数行データ記憶回路及び奇数行データ記憶回路のどちらの記憶回路からデータの書き込みを始めたかを列単位に記憶する先頭位置記憶回路とを備え、読み出しアドレス生成部は、先頭位置記憶回路で記憶されたデータを用いて、偶数行データ記憶回路及び奇数行データ記憶回路からの読み出しアドレスを生成するようにしたものである。
【発明の効果】
【０００７】
この発明のレートデマッチング及びデインターリーブ回路は、偶数行のデータをコードブロック単位に格納する偶数行データ記憶回路と、受信データのうち、奇数行のデータをコードブロック単位に格納する奇数行データ記憶回路を設け、偶数行データ記憶回路及び奇数行データ記憶回路のどちらの記憶回路からデータの書き込みを始めたかを列単位に記憶するようにしたので、回路の動作周波数を上げるといった手段を用いることなく高いスループットを実現することができる。
【図面の簡単な説明】
【０００８】
【図１】入力シンボルコードの長さがＭ値の３倍より大きい場合のレートデマッチングの動作を示す説明図である。
【図２】入力シンボルコードの長さがＭ値の３倍より小さい場合のレートデマッチングの動作を示す説明図である。
【図３】一般的なレートデマッチング及びデインターリーブ回路の構成図である。
【図４】デインターリーブにおける書き込みアドレスの制御を示す説明図である。
【図５】デインターリーブにおける読み出し順序を示す説明図である。
【図６】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の構成図である。
【図７】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の書き込みアドレス生成部の構成図である。
【図８】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の読み出しアドレス生成部の構成図である。
【図９】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の仮想メモリへのマッピング例を示す説明図（その１）である。
【図１０】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の仮想メモリへのマッピング例を示す説明図（その２）である。
【図１１】図９及び図１０の仮想メモリ空間を実装メモリ空間へ置き換えた場合の説明図（その１）である。
【図１２】図９及び図１０の仮想メモリ空間を実装メモリ空間へ置き換えた場合の説明図（その２）である。
【図１３】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路のサブコードブロック０の偶数行データ記憶回路及び奇数行データ記憶回路へのデータ書き込みタイミングを示す説明図である。
【図１４】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路のサブコードブロック０の偶数行データ記憶回路及び奇数行データ記憶回路からのデータ読み出しタイミングを示す説明図である。
【図１５】この発明の実施の形態１によるレートデマッチング及びデインターリーブ回路の実装メモリ空間における読み出し順序を示す説明図である。
【図１６】この発明の実施の形態２によるレートデマッチング及びデインターリーブ回路の構成図である。
【図１７】この発明の実施の形態２によるレートデマッチング及びデインターリーブ回路のＭ値が奇数となる場合の仮想メモリへのマッピング例を示す説明図（その１）である。
【図１８】この発明の実施の形態２によるレートデマッチング及びデインターリーブ回路のＭ値が奇数となる場合の仮想メモリへのマッピング例を示す説明図（その２）である。
【図１９】図１７及び図１８の仮想メモリ空間を実装メモリ空間へ置き換えた場合の説明図（その１）である。
【図２０】図１７及び図１８の仮想メモリ空間を実装メモリ空間へ置き換えた場合の説明図（その２）である。
【図２１】この発明の実施の形態２によるレートデマッチング及びデインターリーブ回路のＭ値が奇数の設定にて折り返しが発生した場合のサブコードブロック０の偶数行用メモリ及び奇数行用メモリへのデータ書き込みタイミングを示す説明図である。
【図２２】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路の構成図である。
【図２３】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路のＭ値が３２〜６３となる場合の仮想メモリへのマッピング例を示す説明図（その１）である。
【図２４】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路のＭ値が３２〜６３となる場合の仮想メモリへのマッピング例を示す説明図（その２）である。
【図２５】図２３及び図２４の仮想メモリ空間を実装メモリ空間へ置き換えた例を示す説明図（その１）である。
【図２６】図２３及び図２４の仮想メモリ空間を実装メモリ空間へ置き換えた例を示す説明図（その２）である。
【図２７】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路のＭ値が１７〜３１となる場合の仮想メモリへのマッピング例を示す説明図である。
【図２８】図２７の仮想メモリ空間を実装メモリ空間へ置き換えた例を示す説明図である。
【図２９】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路のＭ値が４３の場合のサブコードブロック０の偶数行用メモリ及び奇数行用メモリへのデータ書き込みタイミングを示す説明図である。
【図３０】この発明の実施の形態３によるレートデマッチング及びデインターリーブ回路のＭ値が２０の場合のサブコードブロック０の偶数行用メモリ及び奇数行用メモリへのデータ書き込みタイミングを示す説明図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
この発明の実施の形態のレートデマッチング及びデインターリーブ回路の説明に先立ち、レートデマッチングとデインターリーブについて説明する。
図１及び図２は、レートデマッチングの動作を示したものである。入力するシンボルコードをサブコードブロック（Ｍ値：最小値１７）の大きさに３分割し、記憶回路に格納する。図１は入力シンボルコードの長さがＭ値の３倍より大きい場合を表す。この場合、余剰なデータは先頭に折り返し、既に記憶回路に書き込まれているデータの値と加算して再度記憶回路に格納される。入力シンボルコード長が大きい場合やＭ値が小さい場合において、折り返しは複数回発生する場合がある。図２は入力シンボルコードの長さがＭ値の３倍より小さい場合を表す。不足する分はＡｌｌ−０データを補填し、出力する。
【００１０】
図３は、一般的なレートデマッチング及びデインターリーブ回路の構成図である。この回路は、入力シンボルコードはサブコードブロック毎に３つの記憶回路１０１に分けて格納される。入力シンボルコードを先頭から（１），（２），（３），（４），…とする。書き込みアドレス生成部１０２は、記憶回路１０１への書き込みアドレス及び制御信号を生成及び出力する。読み出しアドレス生成部１０３は、記憶回路１０１への読み出しアドレス及び制御信号を生成及び出力する。
【００１１】
デインターリーブは、書き込みアドレス生成部及び読み出しアドレス生成部で生成されるアドレスのいずれかを制御することで行われる。図４及び図５は書き込みアドレスを制御することでデインターリーブを実施する場合の例である。Ｍ値は２００とする。図４は記憶回路への書き込み順序を表しており、列単位に以下の式１に記載の順序で並べ替えて書き込みが行われる。図４は２５列目までの４列分の順序を記載している。図５は記憶回路からの読み出し順序を表しており、行単位にラスタスキャンで読み出される。
【００１２】
１，１７，９，２５，５，２１，１３，２９，３，１９，１１，２７，７，２３，１５，３１，０，１６，８，２４，４，２０，１２，２８，２，１８，１０，２６，６，２２，１４，３０            （式１）
【００１３】
次に、実施の形態１におけるレートデマッチング及びデインターリーブ回路について説明する。
図６は、実施の形態１のレートデマッチング及びデインターリーブ回路の構成図である。図示のレートデマッチング及びデインターリーブ回路は、偶数行データ記憶回路１１、奇数行データ記憶回路１２、書き込みアドレス生成部２、読み出しアドレス生成部３、先頭位置記憶回路４、選択回路（ＳＥＬ）５を備える。偶数行データ記憶回路１１及び奇数行データ記憶回路１２は、受信データをコードブロック単位に格納する記憶回路であり、偶数行データ記憶回路１１は、偶数行のデータを格納するための記憶回路、奇数行データ記憶回路１２は、奇数行のデータを格納するための記憶回路である。書き込みアドレス生成部２は、偶数行データ記憶回路１１及び奇数行データ記憶回路１２へ書き込みを行うための書き込みアドレス及び制御信号を生成する回路である。読み出しアドレス生成部３は、偶数行データ記憶回路１１及び奇数行データ記憶回路１２からの読み出しを行うための読み出しアドレス及び制御信号を生成する回路である。先頭位置記憶回路４は、偶数行データ記憶回路１１及び奇数行データ記憶回路１２のどちらの記憶回路から書き込み始めたかを列単位に記憶する回路である。選択回路５は、読み出しアドレス生成部３からの選択信号に基づいて偶数行データ記憶回路１１及び奇数行データ記憶回路１２からの読み出しデータを選択する回路である。
【００１４】
図７は、書き込みアドレス生成部２の構成図である。書き込みアドレス生成部２は、統合行アドレスカウンタ２０１、列アドレスカウンタ２０２、ビットスワップ回路２０３、行アドレス制御回路２０４、偶数行アドレス生成回路２０５、奇数行アドレス生成回路２０６、書き込みメモリ選択回路２０７を備える。
統合行アドレスカウンタ２０１は、データ入力に伴って統合行アドレスのカウントアップを行うカウンタである。
列アドレスカウンタ２０２は、統合行アドレスカウンタ２０１からのカウントアップ信号に基づき、奇数行アドレス生成回路２０６からのカウントアップ値でカウントアップを行い、列アドレスの元となるカウンタ値を出力するカウンタである。
書き込みメモリ選択回路２０７は、外部から入力するイネーブルをカウントし、図６の３組の記憶回路のうちの書き込む組を指定するセレクト信号を出力する。また、統合行アドレスカウンタ２０１と列アドレスカウンタ２０２のクリア信号を生成する。
ビットスワップ回路２０３は、列アドレスカウンタ２０２から出力されるカウンタ値の上位ビットと下位ビットをスワップさせ、並べ替えに必要な列アドレスを生成させる回路である。
【００１５】
行アドレス制御回路２０４は、統合行アドレスカウンタ２０１から出力されるカウンタ値と、ビットスワップ回路２０３から出力される列アドレスと、外部から入力するＭ値を用いて、列アドレスカウンタ２０２のカウントアップと統合行アドレスカウンタ２０１のクリアを判定する回路である。すなわち、行アドレス制御回路２０４は、カウントアップするかしないかを判定する回路であり、その判定としては、列の最後まで書き込んだ場合に統合行アドレスカウンタ２０１へのクリア信号を出力し、列アドレスカウンタ２０２へのカウントアップ信号を出力する。また、行アドレス制御回路２０４は、偶数行アドレス生成回路２０５から出力される偶数行アドレスとは異なるアドレスを奇数行アドレス生成回路２０６が出力するよう列アドレス位置信号を奇数行アドレス生成回路２０６に出力すると共に、列単位の先頭位置を先頭位置記憶回路４に出力する。
【００１６】
偶数行アドレス生成回路２０５は、統合行アドレスカウンタ２０１から出力されるカウンタ値と、ビットスワップ回路２０３から出力される列アドレスを組み合わせて偶数行データ記憶回路１１の書き込みアドレスを生成する回路である。
奇数行アドレス生成回路２０６は、統合行アドレスカウンタ２０１から出力されるカウンタ値と、列アドレスカウンタ２０２から出力されるカウンタ値と、行アドレス制御回路２０４から出力される列アドレス位置信号と、外部から入力するＭ値とを用いて奇数行データ記憶回路１２の書き込みアドレスを生成する回路である。また、奇数行アドレス生成回路２０６は、これらの入力データに基づいてカウントアップ値を生成して列アドレスカウンタ２０２に出力するよう構成されている。
【００１７】
図８は、読み出しアドレス生成部３の構成図である。読み出しアドレス生成部３は、列アドレスカウンタ３０１、統合行アドレスカウンタ３０２、アドレス生成回路３０３を備える。
列アドレスカウンタ３０１はデータ読み出しに伴って列アドレスのカウントアップを行い、列アドレスとして出力するカウンタである。列アドレスカウンタ３０１から出力される列アドレスは、先頭位置記憶回路４の読み出しアドレスとしても使用される。
統合行アドレスカウンタ３０２は、統合行アドレスのカウントアップを行うカウンタであり、列アドレスカウンタ３０１の値が３１に達したら統合行アドレスカウンタ３０２を１カウントアップする。
アドレス生成回路３０３は、列アドレスカウンタ３０１から出力される列アドレスと、統合行アドレスカウンタ３０２から出力されるカウンタ値と、先頭位置記憶回路４から読み出される列単位の先頭位置情報を用いて、偶数行データ記憶回路１１及び奇数行データ記憶回路１２の読み出しアドレスを生成すると共に、偶数行データ記憶回路１１からの読み出しデータと奇数行データ記憶回路１２からの読み出しデータのいずれを選択するかを示す選択信号を選択回路５に出力する回路である。
【００１８】
図９及び図１０は、本実施の形態における仮想メモリへのマッピング例を表している。Ｍ値は２００とする。なお、列アドレス０〜３１列のうち、図９は０〜１５列、図１０は１６〜３１列を示している。メモリ空間は行と列の単純な２次元空間であり実装のメモリ空間とは異なるが、まずはこの空間にマッピングすることを想定する。列の数は３２なので、２００を３２で割った余りの８列目（列アドレス７）までは７行、９列目（列アドレス８）以降は６行存在する。
【００１９】
入力データの先頭（１ａ），（１ｂ）は２列目（列アドレス１）の１行目（行アドレス０）と２行目（行アドレス１）に配置される。ａは上位ワード、ｂは下位ワードを表し、ワード単位に並べた場合、上位ワードの方が下位ワードに比べて時間軸で先行する。従って、例えば、入力から４サイクル目の上位ワード（４ａ）は、２列目（列アドレス１）の７行目（行アドレス６）に配置されるが、下位ワード（４ｂ）は１８列目（列アドレス１７）の１行目（行アドレス０）に列が分かれて配置される。このように、列の最後では、同一サイクルに入力する２個のデータが同じ列に配置される場合と異なる列に配置される場合の２種類が存在する。図９及び図１０では１１０サイクルまで書き込まれた状態を表しているが、３００サイクルで全ての空間にデータが書き込まれる。
【００２０】
図１１及び図１２は図９及び図１０の仮想メモリ空間を実装メモリ空間へ置き換えたものである。ここで、０〜７は統合行アドレスを示し、Ｅｖｅｎ０，Ｏｄｄ０〜Ｅｖｅｎ３，Ｏｄｄ３は個別メモリアドレスを示している。
行方向のアドレスは、統合アドレスの偶数行目が偶数行データ記憶回路１１の格納空間となり、統合アドレスの奇数行目が奇数行データ記憶回路１２の格納空間となる。仮想メモリ空間では、データ４ａは７行目（行アドレス６）、データ４ｂは１行目（行アドレス０）に格納されるが、実装メモリ空間では両方とも偶数行データ記憶回路１１の格納空間となる。同一サイクルに２個のデータを同一記憶回路に書き込むことは不可能であるため、実装メモリ空間ではデータ４ｂを奇数行データ記憶回路１２の方である２行目（統合行アドレス１）に書き込む。
【００２１】
続けてデータ５ａ，５ｂも仮想メモリ空間ではそれぞれ２行目（行アドレス１）、３行目（行アドレス２）に配置されるが、実装メモリ空間では４ｂに続けて３行目（統合行アドレス２）、４行目（統合行アドレス３）に書き込む。すなわち実装メモリ空間では、同一サイクルの上位ワード（ａ）を偶数行データ記憶回路１１に、下位ワード（ｂ）を奇数行データ記憶回路１２に書き込む。
【００２２】
実装メモリ空間では図１１及び図１２に示した書き込み順序であるため、データを読み出す際に１行の中で偶数行データ記憶回路１１から読み出すサイクルと奇数行データ記憶回路１２から読み出すサイクルが存在する。そこで本発明では、１列の書き込みが偶数行データ記憶回路１１から始まったか奇数行データ記憶回路１２から始まったかを識別する１ビットの情報を記憶する先頭位置記憶回路４を設け、書き込みの際に情報を記憶させ読み出しの際に使用することで所望のデータを読み出すことが可能となるようにした。
【００２３】
図１３は、サブコードブロック０の偶数行データ記憶回路１１及び奇数行データ記憶回路１２へのデータ書き込みタイミングを示す説明図である。なお、図中、偶数行ライトイネーブル、偶数行水平ライトアドレス、…は、それぞれ偶数行データ記憶回路１１に対する信号を示し、データ奇数行ライトイネーブル、奇数行水平ライトアドレス、…はそれぞれ奇数行データ記憶回路１２の信号を示している。また、先頭位置ライトイネーブル、先頭位置ライトデータは、先頭位置記憶回路４に対する信号である。
【００２４】
偶数行データ記憶回路１１における各列の最終データ書き込みサイクルで、カウントアップ信号が統合行アドレスカウンタ２０１からアサートされ、次のサイクルで列アドレスカウンタ２０２から出力される列アドレスがカウントアップする（図１３中の矢印で示す）。Ｍ値が６４以上の場合、列アドレスカウンタ２０２は１ずつカウントアップする。また、行アドレス制御回路２０４は、偶数行データ記憶回路１１のアドレスと奇数行データ記憶回路１２のアドレスとが同じサイクルでは、先頭位置記憶回路４に対して０を書き込む（例えば、図１３中の先頭位置記憶回路ライトデータ１１０を参照）。一方、偶数行データ記憶回路１１のアドレスと奇数行データ記憶回路１２のアドレスとが異なるサイクルは、次の列の読み出しが奇数行データ記憶回路１２から始まることを表すので、先頭位置記憶回路４に１を書き込む（例えば、図中の先頭位置記憶回路ライトデータ１１１を参照）。先頭位置記憶回路４の書き込みアドレスには、奇数行データ記憶回路１２のライトアドレスを使用する。
【００２５】
図１４はサブコードブロック０の偶数行データ記憶回路１１及び奇数行データ記憶回路１２からのデータ読み出しタイミングを示す説明図である。なお、図中、先頭位置アドレス、…、偶数行リードイネーブル、…、奇数行リードイネーブル、…は、それぞれ先頭位置記憶回路４、偶数行データ記憶回路１１、奇数行データ記憶回路１２の信号を示している。
【００２６】
読み出しアドレス生成部３は、まず先頭位置記憶回路４をアドレス昇順に読み出す。読み出された値が０であれば（図中、矢印１１２で示す）、偶数行メモリからデータを読み出す（図中、矢印１１３で示す）。一方、読み出された値が１であれば（図中、矢印１１４で示す）。奇数行データ記憶回路１２からデータを読み出す（図中、矢印１１５で示す）。選択回路５は、読み出しアドレス生成部３からの選択信号に基づいて、偶数行リードデータと奇数行リードデータを選択して、これらの読み出したデータを出力シンボルコードとして出力する。図１５は、実装メモリ空間にて、読み出し順序を示している。
【００２７】
以上説明したように、実施の形態１のレートデマッチング及びデインターリーブ回路によれば、受信データのうち、偶数行のデータをコードブロック単位に格納する偶数行データ記憶回路と、受信データのうち、奇数行のデータをコードブロック単位に格納する奇数行データ記憶回路と、偶数行データ記憶回路及び奇数行データ記憶回路へデータの書き込みを行うための書き込みアドレスを生成する書き込みアドレス生成回路と、偶数行データ記憶回路及び奇数行データ記憶回路からデータの読み出しを行うための読み出しアドレスを生成する読み出しアドレス生成部と、偶数行データ記憶回路及び奇数行データ記憶回路のどちらの記憶回路からデータの書き込みを始めたかを列単位に記憶する先頭位置記憶回路とを備え、読み出しアドレス生成部は、先頭位置記憶回路で記憶されたデータを用いて、偶数行データ記憶回路及び奇数行データ記憶回路からの読み出しアドレスを生成するようにしたので、回路の動作周波数を上げるといった手段を用いることなく高いスループットを実現することができる。
【００２８】
実施の形態２．
実施の形態２は、Ｍ値が奇数の場合に対応するようにした例である。
図１６は、実施の形態２のレートデマッチング及びデインターリーブ回路における偶数行データ記憶回路１１及び奇数行データ記憶回路１２の詳細を示す構成図である。
図示の偶数行データ記憶回路１１及び奇数行データ記憶回路１２は、偶数行用メモリ１３、奇数行用メモリ１４、スイッチ（ＳＷ）１５，フリップフロップ１６、セレクタ（ＳＥＬ）１７、加算器１８，１９、ＡＮＤゲート２０，２１、遅延回路２２、セレクタ（ＳＥＬ）２３を備える。なお、選択回路５は図６の選択回路５を示している。
【００２９】
偶数行用メモリ１３及び奇数行用メモリ１４は、偶数行データ記憶回路１１及び奇数行データ記憶回路１２における記憶部を構成するためのメモリである。スイッチ１５は、与えられるスイッチ信号により入力シンボルコードの上位ワードと下位ワードを入れ替えるスイッチである。なお、このスイッチ信号は、書き込みアドレス生成部２における書き込みメモリ選択回路２０７から出力される信号である。フリップフロップ１６は、スイッチ１５でスイッチされた下位ワードを１サイクル遅延させるための回路である。セレクタ１７は、スイッチ１５でスイッチ動作を行う場合はフリップフロップ１６で１サイクル遅延させたデータを選択し、スイッチ１５でスイッチ動作を行わない場合は遅延させないデータを選択する選択回路である。加算器１８及び加算器１９は、それぞれ偶数行用メモリ１３及び奇数行用メモリ１４に書き込むデータと、偶数行用メモリ１３及び奇数行用メモリ１４から読み出したデータとの加算を行う加算器である。ＡＮＤゲート２０及びＡＮＤゲート２１は、入力シンボル長がＭ値の３倍より大きくなり、折り返しが発生した場合は偶数行用メモリ１３及び奇数行用メモリ１４から読み出したデータを通し、それ以外の場合はデータを０に固定するよう設定されている。遅延回路２２は、折り返しが発生した場合の読み出しアドレスと、読み出したデータと入力データとの加算値を書き込むための書き込みアドレスとのタイミング差を補償するための遅延回路である。また、この遅延回路２２は、スイッチ１５でデータのスイッチが発生し、フリップフロップ１６でデータを１サイクル遅延させた場合、偶数行用メモリ１３の書き込みアドレスも遅延させる機能も有している。セレクタ２３は、折り返しが発生している期間は書き込みアドレス生成部２から出力されるアドレスを、それ以外は読み出しアドレス生成部３から出力される読み出しアドレスを選択する。
【００３０】
次に、実施の形態２におけるレートデマッチング及びデインターリーブ回路の動作を説明する。
図１７及び図１８はＭ値が奇数となる場合の仮想メモリへのマッピング例を表している。Ｍ値は２０５とする。なお、列アドレス０〜３１列のうち、図１７は０〜１５列、図１８は１６〜３１列を示している。この時１０３サイクル目のデータ（１０３ａ），（１０３ｂ）は、上位ワード（１０３ａ）がサブコードブロック０に属するが、下位ワード（１０３ｂ）はサブコードブロック１に属する。従って、サブコードブロック１の仮想メモリ上では、同一サイクル内の上位ワード（ａ）と下位ワード（ｂ）が、サブコードブロック０とはずれて逆の位置に配置される。サブコードブロック１とサブコードブロック２、サブコードブロック２と折り返した場合のサブコードブロック等、隣り合うサブコードブロック同士は全て同様の関係になる。
【００３１】
図１９及び図２０は図１７及び図１８の仮想メモリ空間を実装メモリ空間へ置き換えたものである。サブコードブロック１では、下位ワード（ｂ）と次のサイクルの上位ワード（ａ）とをペアにし、同一サイクルでそれぞれ偶数行用メモリ１３と奇数行用メモリ１４に書き込む。このようにすることで、サブコードブロック間において同じデータ配置でデータを書き込むことができる。これにより、折り返しが発生した場合でも、メモリからの読み出しと入力データとの加算値の書き込みとで同じアドレスを使用することが可能となる。
【００３２】
図２１はＭ値が奇数の設定にて折り返しが発生した場合の、サブコードブロック０の偶数行用メモリ１３及び奇数行用メモリ１４へのデータ書き込みタイミング図を示す。
Ｍ値が偶数であれば、入力シンボルコードの上位ワードは加算器１８に、下位ワードは加算器１９に入力する。しかし、Ｍ値が奇数の場合、入力シンボルコードの上位ワードが加算器１９に、下位ワードの１サイクル遅延が加算器１８に入力する（図中の加算器１８入力及び加算器１９入力参照）。
シンボルコードの入力タイミングに合うように、先に偶数行用メモリ１３及び奇数行用メモリ１４内のデータを読み出しておく（図中の偶数行用リードデータ及び奇数行用リードデータ参照）。
入力シンボルコードの下位ワードと偶数行用メモリ１３から読み出されたデータが加算器１８で加算され、再び偶数行用メモリ１３に書き戻される（図中の偶数行用ライトデータ参照）。また、入力シンボルコードの上位ワードと奇数行用メモリ１４から読み出されたデータが加算器１９で加算され、再び奇数行用メモリ１４に書き戻される（図中の奇数行ライトデータ参照）。
【００３３】
以上説明したように、実施の形態２のレートデマッチング及びデインターリーブ回路によれば、受信データをサブコードブロック単位に分割して記憶回路に格納するレートデマッチング処理において、受信データの上位ワードのデータと下位ワードのデータとを入れ替えるスイッチ回路と、切り替え後のデータを１サイクル遅延させる遅延回路とを備え、これらスイッチ回路と遅延回路を偶数行データ記憶回路及び奇数行データ記憶回路の前段に設け、上位ワードを偶数行データ記憶回路に格納し、下位ワードを奇数行データ記憶回路に格納するか、上位ワードを奇数行データ記憶回路に格納し、下位ワードを偶数行データ記憶回路に格納するようにしたので、Ｍ値が奇数の場合でも処理が可能である。
【００３４】
実施の形態３．
実施の形態３は、行数が１または２となるような小さいＭ値であっても処理を可能とした例である。
図２２は、実施の形態３のレートデマッチング及びデインターリーブ回路における奇数行アドレス生成回路２０６を示す構成図である。なお、この奇数行アドレス生成回路２０６を含む書き込みアドレス生成部２の構成及びその他の構成は図７及び図１に示す構成と同様であるため、その他の構成についての説明は省略する。
図２２に示す奇数行アドレス生成回路２０６は、列アドレスカウントアップ判定部４０１、加算器４０２，４０３，４０４、ビットスワップ回路４０５，４０６，４０７、列アドレスカウントアップ値生成部４０８、セレクタ４０９を備える。
【００３５】
列アドレスカウントアップ判定部４０１は、行アドレス制御回路２０４から取得する列アドレス位置信号と、統合行アドレスカウンタ２０１から取得する統合行アドレスと、Ｍ値とを元に、上位ワード（ａ）と下位ワード（ｂ）が同じ列アドレスになるか否かを判定する処理部である。加算器４０２は、列アドレスカウントアップ判定部４０１において上位ワード（ａ）と下位ワード（ｂ）が同じ列アドレスにならないと判定された場合に、列アドレスカウンタ２０２から取得する列アドレスカウンタ値を１インクリメントする加算器である。また、加算器４０３は、列アドレスカウンタ値に固定値２を加算する加算器であり、加算器４０４は、列アドレスカウンタ値に固定値３を加算する加算器である。ビットスワップ回路４０５，４０６，４０７は、それぞれ、ビットスワップ回路２０３と同じ機能を有する回路である。列アドレスカウントアップ値生成部４０８は、ビットスワップ回路４０５，４０６，４０７から出力される値とＭ値とを用いて、列アドレスカウンタ２０２のカウントアップ値を決定する処理部である。なお、カウントアップ値は１〜４である。また、列アドレスカウントアップ値生成部４０８は、カウントアップ値に基づいて、セレクタ４０９への選択信号を出力するよう構成されている。セレクタ４０９は、列アドレスカウントアップ値生成部４０８から出力される選択信号に基づき、ビットスワップ回路４０５から出力される値とビットスワップ回路４０６から出力される値のいずれかを選択し、奇数行アドレスの下位ビットとして出力する選択回路である。
【００３６】
次に、実施の形態３のレートデマッチング及びデインターリーブ回路の動作について説明する。
列アドレスカウントアップ判定部４０１は、列アドレス位置信号と統合行アドレスとＭ値を元に、上位ワード（ａ）と下位ワード（ｂ）が同じ列アドレスになるか否かを判定する。判定の結果、同じ列アドレスになる場合は、統合行アドレスを１インクリメントし、最下位ビットを切り捨てたものを出力し、同じ列アドレスにならない場合は０を奇数行アドレスの上位ビットとして出力する。
【００３７】
加算器４０２は、列アドレスカウントアップ判定部４０１において、上位ワード（ａ）と下位ワード（ｂ）が同じ列アドレスにならないと判定された場合に、入力される列アドレスカウンタ値を１インクリメントする。また、加算器４０３は、列アドレスカウンタ値に固定値２を加算し、加算器４０４は、列アドレスカウンタ値に固定値３を加算する。
【００３８】
列アドレスカウントアップ値生成部４０８は、ビットスワップ回路４０５〜４０７から出力される値とＭ値を用いて、列アドレスカウンタ値のカウントアップ値を決定する。カウントアップ値は１〜４である。セレクタ４０９は、列アドレスカウントアップ値生成部４０８から出力される選択信号に基づいて、ビットスワップ回路４０５から出力される値とビットスワップ回路４０６から出力される値のいずれかを選択し、これを奇数行アドレスの下位ビットとして出力する。
【００３９】
図２３及び図２４は、Ｍ値が３２〜６３となる場合の仮想メモリへのマッピング例を示している。Ｍ値は４３とする。なお、列アドレス０〜３１列のうち、図２３は０〜１５列、図２４は１６〜３１列を示している。図示のように、３サイクル目の上位ワード（３ａ）は１０列目（列アドレス９）の２行目（行アドレス１）に配置され、下位ワード（３ｂ）は２６列目（列アドレス２５）の１行目（行アドレス０）に配置される。このとき、４サイクル目の上位ワード（４ａ）は６列目（列アドレス５）に配置することになり、列アドレスカウンタ２０２は２カウントアップする必要がある。図２５及び図２６は図２３及び図２４の仮想メモリ空間を実装メモリ空間へ置き換えたものである。
【００４０】
図２７は、Ｍ値が１７〜３１となる場合の仮想メモリへのマッピング例を示している。Ｍ値は２０とする。１サイクル目の上位ワード（１ａ）は２列目（列アドレス１）に配置され、下位ワード（１ｂ）は１８列目（列アドレス１７）に配置される。このとき、２サイクル目の上位ワード（２ａ）は１０列目（列アドレス９）に配置することになり、列アドレスカウンタ２０２は２カウントアップする必要がある。
また、４サイクル目の上位ワード（４ａ）は２０列目（列アドレス１９）に配置され、下位ワード（４ｂ）は１２列目（列アドレス１１）に配置される。このとき、５サイクル目の上位ワード（５ａ）は、実施の形態１で示した式１の順に従えば２８列目（列アドレス２７）に配置されるべきところであるが、Ｍ値が小さいため２８列目は配置不可である。そこで次の８列目（列アドレス７）に配置することになり、列アドレスカウンタ２０２は３カウントアップする必要がある。
【００４１】
また、２サイクル目の上位ワード（２ａ）は１０列目（列アドレス９）に配置されるが、下位ワード（２ｂ）は式１の順に従えば２６列目（列アドレス２５）に配置されるべきところである。しかし、Ｍ値が小さく２６列目は配置不可であるため、次の６列目（列アドレス５）に配置される。更に、３サイクル目の上位ワード（３ａ）は式１の順に従えば２２列目（列アドレス２１）に配置されるべきところである。しかし、Ｍ値が小さく２２列目は配置不可であるため、次の１４列目（列アドレス１３）に配置することになり、列アドレスカウンタ２０２は４カウントアップする必要がある。図２８は図２７の仮想メモリ空間を実装メモリ空間へ置き換えたものである。
【００４２】
図２９はＭ値が４３の場合、図３０はＭ値が２０の場合のサブコードブロック０の偶数行用メモリ１３及び奇数行用メモリ１４へのデータ書き込みタイミング図を示している。Ｍ値が３２〜６３の場合、１行しか存在しない列があるため、列アドレスのカウントアップ値が２になるケースがある（図２９中の列アドレスカウントアップ値参照）。Ｍ値が１７〜３１の場合、１行も存在しない列があるため、列アドレスのカウントアップ値が３や４になるケースがある（図３０中の列アドレスカウントアップ値参照）。
【００４３】
以上説明したように、実施の形態３のレートデマッチング及びデインターリーブ回路によれば、書き込みアドレス生成回路は、受信データをサブコードブロック単位にｍ列×ｎ行（ｍ及びｎは自然数）の記憶回路に格納し、行単位にデータｍ個の並べ替えを行うデインターリーブ処理を行う場合、奇数行のアドレスを生成する奇数行アドレス生成回路として、列アドレスの元となるカウンタ値を生成する列アドレスカウンタの出力値にそれぞれ異なる固定値を加算する複数の加算器と、複数の加算器におけるそれぞれの出力に対してデインターリーブ処理を行う複数のビットスワップ回路と、サブコードブロックの長さに基づいて、複数のビットスワップ回路のうち、いずれかのビットスワップ回路の出力を選択して、列アドレスカウンタのカウントアップ値を生成する列アドレスカウントアップ値生成部とを備え、列アドレスカウンタは、カウントアップ値に従って次のサイクルのカウンタ値を生成するようにしたので、行数が１または２になるような小さいＭ値においても処理が可能である。
【００４４】
なお、上記各実施の形態では列の大きさを３２としたが、この値に限定されるものではなく、他の値であっても上記各実施の形態と同様の効果がある。また、偶数行データ記憶回路１１及び奇数行データ記憶回路１２の行数についてもどのような値であっても適用可能である。
【００４５】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００４６】
２  書き込みアドレス生成部、３  読み出しアドレス生成部、４  先頭位置記憶回路、５  選択回路、１１  偶数行データ記憶回路、１２  奇数行データ記憶回路、１３  偶数行用メモリ、１４  奇数行用メモリ、１５  スイッチ、１６  フリップフロップ、１７，２３  セレクタ、１８，１９  加算器、２０，２１  ＡＮＤゲート、２２  遅延回路、２０１  統合行アドレスカウンタ、２０２  列アドレスカウンタ、２０３  ビットスワップ回路、２０４  行アドレス制御回路、２０５  偶数行アドレス生成回路、２０６  奇数行アドレス生成回路、２０７  書き込みメモリ選択回路、３０１  列アドレスカウンタ、３０２  統合行アドレスカウンタ、３０３  アドレス生成回路、４０１  列アドレスカウントアップ判定部、４０２，４０３，４０４  加算器、４０５，４０６，４０７  ビットスワップ回路、４０８  列アドレスカウントアップ値生成部、４０９  セレクタ。
【図１】
2018207386.tif 000003
【図２】
2018207386.tif 000004
【図３】
2018207386.tif 000005
【図４】
2018207386.tif 000006
【図５】
2018207386.tif 000007
【図６】
2018207386.tif 000008
【図７】
2018207386.tif 000009
【図８】
2018207386.tif 000010
【図９】
2018207386.tif 000011
【図１０】
2018207386.tif 000012
【図１１】
2018207386.tif 000013
【図１２】
2018207386.tif 000014
【図１３】
2018207386.tif 000015
【図１４】
2018207386.tif 000016
【図１５】
2018207386.tif 000017
【図１６】
2018207386.tif 000018
【図１７】
2018207386.tif 000019
【図１８】
2018207386.tif 000020
【図１９】
2018207386.tif 000021
【図２０】
2018207386.tif 000022
【図２１】
2018207386.tif 000023
【図２２】
2018207386.tif 000024
【図２３】
2018207386.tif 000025
【図２４】
2018207386.tif 000026
【図２５】
2018207386.tif 000027
【図２６】
2018207386.tif 000028
【図２７】
2018207386.tif 000029
【図２８】
2018207386.tif 000030
【図２９】
2018207386.tif 000031
【図３０】
2018207386.tif 000032