(57)【要約】【課題】論理回路の増大を抑制しながら列変換モードを拡張可能な列変換回路を提供すること。【解決手段】変換後の列数Ｎを設定する列変換モード設定部１１と、Ｍ個のメモリ１２と、各メモリ１２におけるライトアドレスを生成するとともに次のＭ列入力データの書込位置を示すようライトアドレスを更新するライトアドレス生成部１３と、Ｍ列入力データの各ビットを、各メモリ１２のライトアドレスの位置に書き込むライトデータ制御部１４と、Ｍ個のメモリ１２のうちＮ個を示す選択信号を生成するとともに次の他のＮ個を示すよう選択信号を更新する選択信号生成部１５と、選択信号が示すＮ個の各メモリ１２におけるリードアドレスを生成するリードアドレス生成部１６と、リードアドレス生成部１６を制御するリードアドレス更新制御部１７と、選択信号およびリードアドレスに従いＭ個のメモリ１２からＮ列データを読み出すデータ選択出力部１８とを備える。【選択図】      図１
2013066083.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ（Ｍは正の整数）列の入力データをＮ（ＮはＭ＞Ｎを満たす正の整数）列に変換する列変換回路であって、
変換後の列数Ｎを表す列変換モードを設定する列変換モード設定部と、
少なくともＭ個の所定サイズのメモリと、
前記Ｍ個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成するとともに、前記Ｍ個の各メモリにおいて該ライトアドレスの示す位置に前記Ｍ列の入力データの各ビットが格納されると、次のＭ列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新するライトアドレス生成部と、
前記Ｍ列の入力データの各ビットを、前記Ｍ個の各メモリの前記ライトアドレスの示す位置に書き込むよう制御するライトデータ制御部と、
前記Ｍ個のメモリのうち選択対象となるＮ個を示す選択信号を前記列変換モードに応じて生成するとともに、該選択信号が示すＮ個のメモリからデータが出力されると、次の他のＮ個を示すよう、前記列変換モードに応じて前記選択信号を更新する選択信号生成部と、
前記選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成するリードアドレス生成部と、
前記選択信号の更新に伴い、前記リードアドレス生成部を前記列変換モードに応じて制御するリードアドレス更新制御部と、
前記Ｍ個のメモリから、前記選択信号および前記リードアドレスにしたがってＮ列のデータを読み出して出力するデータ選択出力部と、
を備えた列変換回路。
【請求項２】
前記Ｍ列の入力データのｎ個分に相当するＭ×ｎビットが変換後の列数Ｎで割り切れるような１以上の整数をｎとしたとき、
前記ライトデータ制御部および前記データ選択出力部は、任意のｎ個の前記Ｍ列の入力データを前記メモリに順次書き込むライト動作の開始から、該ｎ個のＭ列の入力データをＮ列に変換して順次出力するリード動作の開始までを、一定期間に保つようそれぞれ前記ライト動作および前記リード動作を実行することを特徴とする請求項１に記載の列変換回路。
【請求項３】
前記リードアドレス生成部によって生成される前記Ｍ個の各メモリにおけるリードアドレスをモニタリングするリードアドレスモニタリング部をさらに備えることを特徴とする請求項１または請求項２に記載の列変換回路。
【請求項４】
少なくともＭ（Ｍは正の整数）個の所定サイズのメモリを用いて、
変換後の列数Ｎ（ＮはＭ＞Ｎを満たす正の整数）を表す列変換モードを設定し、
前記Ｍ個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成し、
前記Ｍ列の入力データの各ビットを、前記Ｍ個の各メモリの前記ライトアドレスの示す位置に書き込み、
前記Ｍ個の各メモリにおいて次のＭ列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新していきながら、以降のＭ列の入力データの書き込みを順次行い、
前記Ｍ個のメモリのうち選択対象となるＮ個を示す選択信号を前記列変換モードに応じて生成し、
前記選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成し、
前記Ｍ個のメモリから、前記選択信号および前記リードアドレスにしたがってＮ列のデータを読み出して出力し、
前記Ｍ個のメモリのうち次の選択対象となる他のＮ個を示すよう、前記列変換モードに応じて前記選択信号を更新し、
更新される選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すよう、前記列変換モードに応じて前記リードアドレスを生成し、
選択信号が更新される毎に、該選択信号、および、該選択信号に応じて生成されたリードアドレスにしたがって、以降のＮ列のデータの出力を行う、列変換方法。
【請求項５】
前記Ｍ列の入力データのｎ個分に相当するＭ×ｎビットが変換後の列数Ｎで割り切れるような１以上の整数をｎとしたとき、
任意のｎ個の前記Ｍ列の入力データを前記メモリに順次書き込むライト動作の開始から、該ｎ個のＭ列の入力データをＮ列に変換して順次出力するリード動作の開始までを、一定期間に保つようそれぞれ前記ライト動作および前記リード動作を実行することを特徴とする請求項４に記載の列変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル信号の伝送において信号列数の変換を行う列変換回路に関する。
【背景技術】
【０００２】
ディジタル信号の伝送において、信号列数の変換を行う列変換回路が知られている。このような列変換回路は、例えば、多値変復調通信方式によるディジタル信号の伝送において用いられる。
【０００３】
このような列変換回路の一例が、特許文献１に記載されている。特許文献１に記載された列変換回路は、第１のクロック信号により入力されるＭ列の入力データを、Ｍ／Ｎ倍の周波数の第２のクロック信号によりＮ列に変換して出力する。この列変換回路は、第１および第２のクロック信号のうち高周波数側のクロック信号を発生する発振回路と、この発振回路からのクロック信号をＭとＮの比で分周して低周波数側のクロック信号とする分周回路と、Ｍ列をＮ列に変換する回路とを備えている。
【０００４】
また、このような列変換回路の他の一例を図２４に示す。
【０００５】
図２４において、列変換回路９０は、１６列入力データを２列、４列、または５列に変換する回路である。この列変換回路９０は、ライトデータ制御回路９１と、５個のライトバッファ（16bit FF）９２０〜９２４（以降、総称してライトバッファ９２ともいう）と、リードデータ制御回路９３と、データセレクト回路９４とを含む。１つのライトバッファ９２は、１６ビットのデータを格納可能なバッファ（フリップフロップ回路）である。図２４に示すＱ（ｉ）は、各ライトバッファ９２に保持される各ビットのデータを表している。また、図２４に示すＣｏｍｂ（ｉ）は、各Ｑ（ｉ）から読み出されるデータを表している。また、この列変換回路９０では、２列、４列、または５列のいずれの列数に変換するかを示す列変換モード設定信号が設定される。
【０００６】
ライトデータ制御回路９１は、列変換モードに応じて、１６列入力データの書き込み先のライトバッファ９２の選択およびその書き込みタイミングを制御する。具体的には、ライトデータ制御回路９１は、列変換モードに応じて、ライトＥＮ（ｉ）信号を所定のタイミングで有効（Ｈｉｇｈ：以降、‘Ｈ’とも記載する）にする。有効となっているライトＥＮ（ｉ）に対応したライトバッファ９２ｉには、１６列入力データが格納される。以降、１６列入力データを、“ライトデータ［１５：０］”とも記載する。また、以降において、データの名称の後に記載する“［ｍ−１：０］”は、そのデータがｍビットであることを表す。また、そのデータの名称の後に“［ｉ：ｊ］”と記載した場合は、そのｍビットのデータのうち、最下位を０ビット目と数えて、下位からｉビット目からｊビット目までのデータを表しているものとする。
【０００７】
例えば、２列変換モードであれば、ライトデータ制御回路９１は、ライトＥＮ（０）およびライトＥＮ（１）を、所定のタイミングで交互に有効にする。これにより、２列変換モードであれば、ライトバッファ９２０、９２１に、ライトデータ［１５：０］が順次格納される。
【０００８】
リードデータ制御回路９３は、列変換モードに応じて、ライトバッファ９２に格納されたデータの読み出しタイミングを制御する。具体的には、リードデータ制御回路９３は、リードカウントRDENCNT（０から列変換モードに応じた上限値までをカウント）を生成する。例えば、２列変換モードであれば、リードデータ制御回路９３は、０〜１５までのリードカウントを生成する。
【０００９】
データセレクト回路９４は、リードデータ制御回路９３の制御の基に、ライトバッファ９２に格納されたデータを、列変換モードに応じた列数ずつ選択して出力する。具体的には、データセレクト回路９４は、リードカウントにしたがって、ライトバッファ９２ｉに格納されたデータを、列変換モードに対応したN列（２列、４列、または、５列）に並び替える。例えば、２列変換モードであれば、データセレクト回路９４は、ライトバッファ９２０のＱ（１５）〜Ｑ（０）およびライトバッファ９２１のＱ（３１）〜Ｑ（１６）の計３２ビットから２列ずつを、リードカウント０〜１５にしたがって順次選択して出力する。
【００１０】
このような図２４の列変換回路９０の動作について、図面を参照して説明する。
【００１１】
まず、２列変換モードにおけるライト側タイミングチャートを図２５に示す。ライト側は、ライトＣＬＫにしたがって動作する。
【００１２】
ライトデータ先頭パルスは、１６列入力データの入力開始時に有効‘Ｈ’となる信号である。
【００１３】
ライトデータイネーブル信号は、ライトデータ［１５：０］のライトタイミングを制御する信号である。ライトデータイネーブル信号は、列変換モード設定信号に応じた所定のタイミングで有効‘Ｈ’となる。例えば、２列変換モードの場合、１６ＣＬＫ毎に１ＣＬＫの期間有効‘Ｈ’となる。
【００１４】
ライトデータ［１５：０］は、１６列入力データである。図示の“１０００（ｈｅｘ）”、“１００１（ｈｅｘ）”は、１６列入力データの一例を１６進表記したものである。
【００１５】
ライトアドレスカウンタは、ライトデータ制御回路９１において、０から最大カウント値までを繰り返しカウントするカウンタである。この最大カウント値は、列変換モードに応じて設定される。図２５では、２列変換モードなので、ライトアドレスカウンタの最大カウント値として1がセットされている。ライトアドレスカウンタは、ライトデータ先頭パルスおよびライトデータイネーブル信号が共に有効‘Ｈ’時に、ライトＣＬＫに同期して０に初期化される。そして、ライトデータイネーブル信号が有効となる度に、ライトＣＬＫに同期して１へのカウントアップおよび０への初期化を繰り返す。
【００１６】
ライトＥＮ（ｉ）信号は、ライトアドレスカウンタがｉに変化すると、ライトＣＬＫに同期して‘Ｈ’となる。
【００１７】
ライトデータ［１５：０］は、ライトＥＮ（ｉ）が‘Ｈ’となったタイミングで、ライトＣＬＫの立ち上がりエッジでライトバッファ９２ｉに格納される。
【００１８】
このようにして、２列変換モードでは、ライトデータ［１５：０］は、ライトバッファ９２０およびライトバッファ９２１に順次格納される。
【００１９】
次に、２列変換モードにおけるリード側タイミングチャートを図２６に示す。リード側は、リードＣＬＫにしたがって動作する。リードＣＬＫは、ライトＣＬＫの２倍の周波数で動作するクロック信号である。
【００２０】
リードデータ先頭パルスは、リード動作の開始を示している。リードデータ先頭パルスは、ライトデータ先頭パルス‘Ｈ’およびライトＥＮ（０）‘Ｈ’の論理積をライトＣＬＫの立ち上がりエッジで１回サンプリングした信号を、リードＣＬＫに乗せ換えて生成される。
【００２１】
リードＣＬＫカウンタは、リードデータ先頭パルスが有効時に、リードＣＬＫに同期して０に初期化される。また、リードＣＬＫカウンタは、リードＣＬＫに同期して、０〜３までを繰り返しカウントする。
【００２２】
リードアドレスカウンタRDENCNTは、リードデータ先頭パルスが有効時に、リードＣＬＫに同期して０に初期化される。また、リードアドレスカウンタは、リードＣＬＫカウンタが３となった時、リードＣＬＫに同期して、＋１のカウントアップを実行する。また、２列変換モードにおいて、リードアドレスカウンタRDENCNTの最大カウント値は１５にセットされる。つまり、リードアドレスカウンタは、０〜１５までを繰り返しカウントする。
【００２３】
このリードアドレスカウンタRDENCNTは、データセレクト回路９４において選択するデータを示している。例えば、データセレクト回路９４は、リードアドレスカウンタが０の時は、ライトバッファ９２０のＣｏｍｂ（１５−１４）を選択し、リードアドレスカウンタが１の時は、Ｃｏｍｂ（１３−１２）を選択する。同様に、データセレクト回路９４は、リードアドレスカウンタが７までは、ライトバッファ９２０に格納されたデータの２つを選択する。また、データセレクト回路９４は、リードアドレスカウンタが８の時は、ライトバッファ９２１のＣｏｍｂ（３１−３０）を選択し、リードアドレスカウンタが９の時は、Ｃｏｍｂ（２９−２８）を選択する。同様に、データセレクト回路９４は、リードアドレスカウンタが１５までは、ライトバッファ９２１に格納されたデータの２つを選択する。そして、データセレクト回路９４は、リードデータ先頭パルスに基づいて生成される列変換後先頭パルスが有効となると、選択した２列のデータを順次出力する。
【００２４】
次に、このような図２４の列変換回路９０の４列変換モードにおける動作について、タイミングチャート図２７〜図２８を用いて説明する。
【００２５】
４列変換モードでも、２列変換モードと同様に、２つのライトバッファ９２０および９２１が用いられる。したがって、図２７において、４列変換モードにおけるライト側の動作は、２列変換モードにおける動作とほぼ同様である。ただし、４列変換モードでは、ライトデータイネーブル信号は、８ＣＬＫ毎に１ＣＬＫ期間有効‘Ｈ’となる。
【００２６】
次に、４列変換モードにおけるリード側タイミングチャートを図２８に示す。
【００２７】
リードアドレスカウンタRDENCNTの最大カウント値は、４列変換モードにおいて７にセットされる。つまり、リードアドレスカウンタRDENCNTは、リードデータ先頭パルスが有効時にリードＣＬＫに同期して０に初期化された後、０〜７までを繰り返しカウントする。リードアドレスカウンタのカウントアップは、２列変換モードと同様、リードＣＬＫカウンタが３となった時に実行される。
【００２８】
４列変換モードにおいて、データセレクト回路９４は、リードアドレスカウンタが０の時は、ライトバッファ９２０のＣｏｍｂ（１５−１２）を選択し、リードアドレスカウンタが１の時は、Ｃｏｍｂ（１１−８）を選択する。同様に、データセレクト回路９４は、リードアドレスカウンタが３までは、ライトバッファ９２０に格納されたデータの４つを選択する。また、データセレクト回路９４は、リードアドレスカウンタが４の時は、ライトバッファ９２１のＣｏｍｂ（３１−２８）を選択し、リードアドレスカウンタが５の時は、Ｃｏｍｂ（２７−２４）を選択する。同様に、データセレクト回路９４は、リードアドレスカウンタが７までは、ライトバッファ９２１に格納されたデータの４つを選択する。そして、データセレクト回路９４は、リードデータ先頭パルスに基づいて生成される列変換後先頭パルスが有効となると、選択した４列の出力データを順次出力する。
【００２９】
同様に、図２４に示した列変換回路９０は、５列変換モードにおいては、ライトバッファ９２０〜９２４を用いる。すなわち、５列変換モードにおいて、ライトアドレスカウンタの最大カウント値は、４にセットされる。そして、ライトデータ制御回路９１は、ライトＥＮ（０）〜ライトＥＮ（４）のうち１つずつを順次有効‘Ｈ’に切り替えていく。そして、ライトＥＮ（０）〜ライトＥＮ（４）にしたがい、ライトバッファ９２０〜９２４にライトデータ［１５：０］が順次格納される。
【００３０】
また、５列変換モードにおいて、リード側では、リードアドレスカウンタの最大カウント値は１５にセットされる。つまり、リードアドレスカウンタは、０〜１５までを繰り返しカウントする。そして、データセレクト回路９４は、リードアドレスカウンタの値にしたがって、ライトバッファ９２０のＣｏｍｂ（１５−０）〜ライトバッファ９２４のＣｏｍｂ（７９−６４）までの計８０ビットから５列ずつを、リードカウント０〜１５にしたがって順次選択して出力する。
【００３１】
このように、図２４に示した列変換回路９０は、変換後の列数（列変換モード）に応じた個数のライトバッファ９２を必要とする。これは、１６ビットの入力データが格納されたライトバッファ９２から、変換後の列数であるＮビットずつ選択出力していくためには、１６ビット×ライトバッファの個数ｎ＝Ｍ×ｎビットが、Ｎで割り切れるだけの個数ｎのライトバッファを必要とするからである。ただし、図２４に示した列変換回路９０は、このように算出された個数ｎが１となった場合であっても、最低２つのライトバッファ９２を必要としている。これは、格納されたデータが読み出されないうちに次のデータで上書きされることを防ぐためである。
【先行技術文献】
【特許文献】
【００３２】
【特許文献１】特開平５-２１８９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００３３】
ここで、図２４に示した列変換回路９０において、さらに他の列変換モード（例えば、６〜１６列変換）に機能拡張することを考える。列変換回路９０は、列変換モードの拡張のためには、列変換モードに応じた個数のライトバッファ９２を必要とする。
【００３４】
例えば、１６列入力データに対して、６列変換機能を実現させるには、３つのライトバッファ９２が必要となる。また、１６列入力データに対して、７列変換機能を実現させるには、７つのライトバッファ９２が必要となる。また、１６列入力データに対して、８列変換機能を実現させるには、２つのライトバッファ９２が必要となる。また、１６列入力データに対して、９列変換モードを実現させるには、９つのライトバッファ９２が必要となる。また、１６列入力データに対して、１０列変換モードを実現させるには、５つのライトバッファ９２が必要となる。
【００３５】
このように、図２４に示した列変換回路９０では、１６ビット入力データに対して変換可能な列数（列変換モード）を拡張するためには、ライト側における論理回路の増大が問題となる。
【００３６】
また、図２４に示した列変換回路９０において、変換可能な列数の増加に伴い、データセレクト回路９４におけるデータ選択の論理段数が膨大に膨れ上がる。したがって、図２４に示した列変換回路９０では、変換可能な列数の拡張には、リード側における論理回路の増大も問題となる。
【００３７】
このように、図２４の列変換回路９０では、変換可能な列数の拡張には、論理回路の多大な増加が必要となるという課題があった。
【００３８】
また、特許文献１に記載された列変換回路において、多様な列数Ｎへ変換可能な列変換モードを搭載することを考える。例えば、特許文献１の図１には、４列の入力データを１列に変換する回路が図示されている。この列変換回路において、変換可能な列数を拡張するためには、メモリに入力されるバス幅の増加、分周回路の増設、列変換回路の複雑化が必要となる。したがって、特許文献１においても、多様な列数へ変換可能な列変換モードを拡張する際の、論理回路の増大を抑制することは難しかった。
【００３９】
本発明は、上述の課題を解決するためになされたもので、変換後の列数を設定する列変換モードを搭載した列変換回路において、論理回路の増大を抑えながら変換後の列数を容易に拡張可能な列変換回路を提供することを目的とする。
【課題を解決するための手段】
【００４０】
本発明の列変換回路は、Ｍ（Ｍは正の整数）列の入力データをＮ（ＮはＭ＞Ｎを満たす正の整数）列に変換する列変換回路であって、変換後の列数Ｎを表す列変換モードを設定する列変換モード設定部と、少なくともＭ個の所定サイズのメモリと、前記Ｍ個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成するとともに、前記Ｍ個の各メモリにおいて該ライトアドレスの示す位置に前記Ｍ列の入力データの各ビットが格納されると、次のＭ列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新するライトアドレス生成部と、前記Ｍ列の入力データの各ビットを、前記Ｍ個の各メモリの前記ライトアドレスの示す位置に書き込むよう制御するライトデータ制御部と、前記Ｍ個のメモリのうち選択対象となるＮ個を示す選択信号を前記列変換モードに応じて生成するとともに、該選択信号が示すＮ個のメモリからデータが出力されると、次の他のＮ個を示すよう、前記列変換モードに応じて前記選択信号を更新する選択信号生成部と、前記選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成するリードアドレス生成部と、前記選択信号の更新に伴い、前記リードアドレス生成部を前記列変換モードに応じて制御するリードアドレス更新制御部と、前記Ｍ個のメモリから、前記選択信号および前記リードアドレスにしたがってＮ列のデータを読み出して出力するデータ選択出力部と、を備える。
【００４１】
また、本発明の列変換方法は、少なくともＭ（Ｍは正の整数）個の所定サイズのメモリを用いて、変換後の列数Ｎ（ＮはＭ＞Ｎを満たす正の整数）を表す列変換モードを設定し、前記Ｍ個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成し、前記Ｍ列の入力データの各ビットを、前記Ｍ個の各メモリの前記ライトアドレスの示す位置に書き込み、前記Ｍ個の各メモリにおいて次のＭ列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新していきながら、以降のＭ列の入力データの書き込みを順次行い、前記Ｍ個のメモリのうち選択対象となるＮ個を示す選択信号を前記列変換モードに応じて生成し、前記選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成し、前記Ｍ個のメモリから、前記選択信号および前記リードアドレスにしたがってＮ列のデータを読み出して出力し、前記Ｍ個のメモリのうち次の選択対象となる他のＮ個を示すよう、前記列変換モードに応じて前記選択信号を更新し、更新された選択信号が示すＮ個の前記各メモリにおけるデータ読み出し位置を示すよう、前記列変換モードに応じて前記リードアドレスを生成し、選択信号が更新される毎に、該選択信号、および、該選択信号に応じて生成されたリードアドレスにしたがって、以降のＮ列のデータの出力を行う。
【発明の効果】
【００４２】
変換後の列数を設定する列変換モードを搭載した列変換回路において、論理回路の増大を抑えながら変換後の列数を容易に拡張可能な列変換回路を提供することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の第１の実施の形態としての列変換回路の構成を示すブロック図である。
【図２】本発明の第２の実施の形態としての列変換回路の構成を示す図である。
【図３】本発明の第２の実施の形態としての列変換回路に入力される１６列入力データを模式的に説明する図である。
【図４】本発明の第２の実施の形態におけるメモリのデータ格納領域を模式的に説明する図である。
【図５】本発明の第２の実施の形態におけるリードアドレス生成回路の構成を示す図である。
【図６】本発明の第２の実施の形態におけるリードイネーブル生成回路およびリードデータセレクト生成回路の構成を示す図である。
【図７】本発明の第２の実施の形態としての列変換回路の２列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図８】本発明の第２の実施の形態としての列変換回路の４列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図９】本発明の第２の実施の形態としての列変換回路の５列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図１０】本発明の第２の実施の形態としての列変換回路の６列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図１１】本発明の第２の実施の形態としての列変換回路の７列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図１２】本発明の第２の実施の形態としての列変換回路によって１６列入力データの各ビットが１６個のメモリに格納されることを説明する模式図である。
【図１３】本発明の第２の実施の形態としての列変換回路の２列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図１４】本発明の第２の実施の形態としての列変換回路が出力する２列変換データを模式的に説明する図である。
【図１５】本発明の第２の実施の形態としての列変換回路の４列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図１６】本発明の第２の実施の形態としての列変換回路が出力する４列変換データを模式的に説明する図である。
【図１７】本発明の第２の実施の形態としての列変換回路の５列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図１８】本発明の第２の実施の形態としての列変換回路が出力する５列変換データを模式的に説明する図である。
【図１９】本発明の第２の実施の形態としての列変換回路の６列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図２０】本発明の第２の実施の形態としての列変換回路が出力する６列変換データを模式的に説明する図である。
【図２１】本発明の第２の実施の形態としての列変換回路の７列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図２２】本発明の第２の実施の形態としての列変換回路が出力する７列変換データを模式的に説明する図である。
【図２３】本発明の第２の実施の形態としての列変換回路に８列変換モード、９列変換モード、および１０列変換モードを拡張する場合の回路構成を示す図である。
【図２４】関連技術の列変換回路の構成を示す図である。
【図２５】関連技術の列変換回路の２列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図２６】関連技術の列変換回路の２列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【図２７】関連技術の列変換回路の４列変換モードにおけるライト側の動作を説明するタイミングチャートである。
【図２８】関連技術の列変換回路の４列変換モードにおけるリード側の動作を説明するタイミングチャートである。
【発明を実施するための形態】
【００４４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００４５】
（第１の実施の形態）
本発明の第１の実施の形態としての列変換回路１のブロック構成を図１に示す。
【００４６】
図１において、列変換回路１は、列変換モード設定部１１と、Ｍ個のメモリ１２０〜１２Ｍー１（以下、総称してメモリ１２ともいう）と、ライトアドレス生成部１３と、ライトデータ制御部１４と、選択信号生成部１５と、リードアドレス生成部１６と、リードアドレス更新制御部１７と、データ選択出力部１８とを備える。列変換回路１は、入力されるＭ列のデータを、Ｎ列に変換して出力する回路である。列変換回路１において、入力データの列数Ｍはあらかじめ定められている。また、出力列数Ｎは、あらかじめ定められた１つ以上の列数から選択可能となっている。なお、本実施の形態において、ＭおよびＮは正の整数であり、Ｍ＞Ｎである。
【００４７】
列変換モード設定部１１は、変換後の列数Ｎを表す列変換モードを設定する。つまり、列変換回路１は、Ｍ列の入力データを、列変換モード設定部１１において設定された列変換モードが示すＮ列に変換する。
【００４８】
各メモリ１２は、所定サイズＷを有している。例えば、各メモリ１２は、２５６ビットのＲＡＭ（Random Access Memory）によって構成されていてもよい。Ｍ個の各メモリ１２には、Ｍ列の入力データの各ビットが格納される。つまり、Ｍ個のメモリ１２は、Ｍ列の入力データを、Ｗ個まで格納することが可能である。
【００４９】
ライトアドレス生成部１３は、Ｍ個の各メモリ１２において共通のデータ書き込み位置を示すライトアドレスを生成する。もし、各メモリ１２のサイズが２５６ビットであれば、ライトアドレスは、１ビット目〜２５６ビット目までのいずれかを示す情報である。Ｍ個の各メモリ１２において、ライトアドレス生成部１３が生成したライトアドレスが示す位置には、Ｍ列の入力データの各ビットが格納される。
【００５０】
また、ライトアドレス生成部１３は、Ｍ個の各メモリ１２のライトアドレスが示す位置にＭ列の入力データの各ビットが格納されると、次のＭ列の入力データの書き込み位置を示すようライトアドレスを更新する。例えば、ライトアドレスがｉビット目を示しているとき、次のライトアドレスは、ｉ＋１ビット目を示すものであってもよい。
【００５１】
ライトデータ制御部１４は、Ｍ列の入力データの各ビットを、各メモリ１２のライトアドレスの示す位置に書き込む。例えば、ライトアドレスが１ビット目を示している場合、ライトデータ制御部１４は、Ｍ個の各メモリ１２の１ビット目（合計Ｍビット）に、Ｍ列の入力データを書き込む。
【００５２】
選択信号生成部１５は、Ｍ個のメモリ１２のうちＮ個を示す選択信号を生成する。このＮは、列変換モード設定部１１において設定された列変換モードが示す数値である。つまり、選択信号生成部１５は、列変換モード設定部１１の設定内容に応じて動作する。
【００５３】
また、選択信号生成部１５は、選択信号が示すＮ個のメモリ１２からデータが出力されると、次の他のＮ個を示すよう選択信号を更新する。例えば、Ｍが１６でＮが２である場合、選択信号生成部１５が、ある時点でメモリ１２１５〜１２１４を示す選択信号を生成していたとする。そして、このメモリ１２１５〜１２１４からデータが出力されると、選択信号生成部１５は、次のメモリ１２１３〜１２１２を示す選択信号を生成する。また、選択信号生成部１５は、全てのメモリ１２を順次示す選択信号を生成した後は、再び最初に選択したメモリ１２からを順次示す選択信号を生成していく。例えば、Ｍが１６でＮが４である場合、選択信号生成部１５は、メモリ１２１５〜１２１２、メモリ１２１１〜１２８、メモリ１２７〜１２４、メモリ１２３〜１２０をそれぞれ示すよう、選択信号を順次更新した後、再びメモリ１２１５〜１２１２から順に示すよう、選択信号を更新していく。また、Ｍが１６でＮが５である場合、選択信号生成部１５は、メモリ１２１５〜１２１１、メモリ１２１０〜１２６、メモリ１２５〜１２１をそれぞれ示すよう、選択信号を順次更新した後、メモリ１２０およびメモリ１２１５〜１２１２、メモリ１２１１〜１２７の順に示すよう、選択信号を更新していく。
【００５４】
リードアドレス生成部１６は、選択信号が示すＮ個の各メモリ１２におけるリードアドレスを生成する。もし、各メモリ１２のサイズが２５６ビットであれば、リードアドレスは、１ビット目〜２５６ビット目までのいずれかを示す情報である。このとき、リードアドレス生成部１６は、選択信号が示すＮ個のメモリ１２のうち、既に一旦リードアドレスを生成済みのメモリ１２については、前回生成したリードアドレスの位置を次の位置に更新するようにする。例えば、前回のリードアドレスがｉビット目を示しているとき、次のリードアドレスは、ｉ＋１ビット目であってもよい。
【００５５】
リードアドレス更新制御部１７は、リードアドレス生成部１６を、列変換モードに応じて制御する。つまり、リードアドレス更新制御部１７は、リードアドレス生成部１６に対して、変換後の列数Ｎに応じて次にいずれのＮ個のメモリ１２におけるリードアドレスを更新すればよいかを通知する。
【００５６】
データ選択出力部１８は、選択信号およびリードアドレスに基づいて、Ｍ個のメモリ１２からＮ列のデータを読み出して出力する。つまり、データ選択出力部１８は、Ｍ個のメモリ１２のうち選択信号が示すＮ個のメモリ１２において、各リードアドレスが示す各位置の計Ｎビットを選択出力する。
【００５７】
以上のように構成された列変換回路１の動作について説明する。なお、列変換モード設定部１１には、変換後の列数Ｎを表す列変換モードがあらかじめ設定されているものとする。
【００５８】
まず、ライト側の動作について説明する。
【００５９】
Ｍ列の入力データが列変換回路１に入力されると、列変換回路１はライト動作を開始する。
【００６０】
ここでは、まず、ライトアドレス生成部１３は、Ｍ個の各メモリ１２におけるライトアドレスを生成する。ここで、最初に生成されるライトアドレスは、例えば、Ｍ個の各メモリ１２における１ビット目を示すものであってもよい。
【００６１】
次に、ライトデータ制御部１４は、１つ目のＭ列の入力データの各ビットを、Ｍ個の各メモリ１２のライトアドレスが示す位置に書き込む。
【００６２】
次に、ライトアドレス生成部１３は、Ｍ個の各メモリ１２における次のデータ書き込み位置を示すようライトアドレスを更新する。ここで、更新されるライトアドレスは、例えば、前回の１ビット目に１を加算した２ビット目を示すものであってもよい。
【００６３】
次に、ライトデータ制御部１４は、２つ目のＭ列の入力データを、Ｍ個の各メモリ１２のライトアドレスが示す位置に書き込む。
【００６４】
このように、ライトアドレス生成部１３により更新されるライトアドレスを用いて、ライトデータ制御部１４は、Ｍ列の入力データをＭ個のメモリ１２に書き込んでいく。
【００６５】
次に、リード側の動作について説明する。
【００６６】
１つ目のＭ列の入力データがＭ個のメモリ１２に書き込まれた後、列変換回路１は、任意の時点からリード動作を開始する。
【００６７】
ここでは、まず、選択信号生成部１５は、Ｍ個のメモリ１２のうち選択対象となるＮ個を示す選択信号を、列変換モードに応じて生成する。例えば、選択信号生成部１５は、Ｍが１６でＮが２であれば、メモリ１２１５およびメモリ１２１４を示す選択信号を生成してもよい。
【００６８】
次に、リードアドレス生成部１６は、生成された選択信号が示すＮ個の各メモリ１２におけるリードアドレスを生成する。例えば、リードアドレス生成部１６は、メモリ１２１５およびメモリ１２１４の各１ビット目を示すリードアドレスを生成する。
【００６９】
次に、データ選択出力部１８は、Ｍ個のメモリ１２から、選択信号およびリードアドレスにしたがって、Ｎ列のデータを読み出し、１つ目のＮ列変換データとして出力する。例えば、選択信号がメモリ１２１５およびメモリ１２１４を示しており、これらの各メモリにおけるリードアドレスが１ビット目を示している場合、データ選択出力部１８は、メモリ１２１５およびメモリ１２１４の各１ビット目に格納されている合計２ビットのデータを、１つ目の２列変換データとして出力する。
【００７０】
次に、選択信号生成部１５は、Ｍ個のメモリ１２のうち次の選択対象となる他のＮ個を示すよう、列変換モードに応じて選択信号を更新する。例えば、選択信号生成部１５は、メモリ１２１３およびメモリ１２１２を示すよう選択信号を更新してもよい。
【００７１】
次に、リードアドレス更新制御部１７は、更新された選択信号が示すＮ個の各メモリ１２におけるリードアドレスを生成するよう、リードアドレス生成部１６に通知する。例えば、リードアドレス更新制御部１７は、メモリ１２１３およびメモリ１２１２の各リードアドレスを生成するよう、リードアドレス生成部１６に通知する。
【００７２】
そして、リードアドレス生成部１６は、リードアドレス更新制御部１７の制御にしたがって、リードアドレスを生成する。例えば、リードアドレス生成部１６は、メモリ１２１３およびメモリ１２１２の各１ビット目を示すリードアドレスを生成する。
【００７３】
次に、データ選択出力部１８は、Ｍ個のメモリ１２から、選択信号およびリードアドレスにしたがって、Ｎ列のデータを読み出し、２つ目のＮ列変換データとして出力する。例えば、選択信号がメモリ１２１３およびメモリ１２１２を示しており、これらの各メモリにおけるリードアドレスが１ビット目を示している場合、データ選択出力部１８は、メモリ１２１３およびメモリ１２１２の各１ビット目に格納されている合計２ビットのデータを、２つ目の２列変換データとして出力する。
【００７４】
このようなリード動作を繰り返すことにより、列変換回路１は、１つ目のＭ列の入力データのＭビットをＮ列変換して出力する。例えば、Ｍが１６でＮが２であれば、列変換回路１は、８つ目まで２列変換データを出力すると、１つ目の１６列入力データの２列変換処理を終えたことになる。
【００７５】
次に、選択信号生成部１５は、Ｍ個のメモリ１２のうち次の選択対象となるＮ個を示すよう、列変換モードに応じて選択信号を更新する。ここで、選択信号生成部１５は、Ｍ個のメモリ１２の全てを順次示す選択信号を生成済みなので、再度、最初のＮ個を示すよう選択信号を更新する。例えば、Ｍが１６でＮが２の場合について説明する。このとき、既にメモリ１２１５からメモリ１２０までの１６個を順次示す選択信号を生成済みなので、選択信号生成部１５は、再度メモリ１２１５およびメモリ１２１４を示すよう選択信号を更新する。
【００７６】
次に、リードアドレス更新制御部１７は、更新された選択信号が示すＮ個の各メモリ１２におけるリードアドレスを更新するよう、リードアドレス生成部１６に通知する。例えば、リードアドレス更新制御部１７は、メモリ１２１５およびメモリ１２１４におけるリードアドレスを生成するよう、リードアドレス生成部１６に通知する。
【００７７】
そして、リードアドレス生成部１６は、リードアドレス更新制御部１７の制御にしたがって、リードアドレスを更新する。例えば、リードアドレス更新制御部１７からメモリ１２１５およびメモリ１２１４のリードアドレス生成を通知された場合について説明する。この場合、リードアドレス生成部１６は、既にこれらの各メモリについて１ビット目を示すリードアドレスを生成しているので、これらに１を加算して２ビット目を示すよう各リードアドレスを更新する。
【００７８】
次に、データ選択出力部１８は、Ｍ個のメモリ１２から、選択信号およびリードアドレスにしたがって、Ｎ列のデータを読み出し、Ｎ列変換データとして出力する。例えば、選択信号がメモリ１２１５およびメモリ１２１４を示し、これらの各メモリにおけるリードアドレスが２ビット目を示している場合、データ選択出力部１８は、メモリ１２１５およびメモリ１２１４の各２ビット目に格納されている合計２ビットのデータを、９つ目の２列変換データとして出力する。
【００７９】
列変換回路１は、このようなリード動作を繰り返す。
【００８０】
なお、上記動作の説明では、ＭがＮで割り切れる（Ｍ＝１６、Ｎ＝２）場合を例として説明を行ったが、これ以外の場合も、列変換回路１は同様に動作することにより列変換処理を行う。
【００８１】
例えば、１６列変換データを５列に変換する場合（Ｍ＝１６、Ｎ＝５）の動作について説明する。この場合も、列変換回路１のライト側の動作は、上述の動作と同様である。
【００８２】
また、この場合、リード動作において、選択信号生成部１５は、メモリ１２を５つずつ示すよう選択信号を更新していく。例えば、選択信号生成部１５は、メモリ１２１５〜メモリ１２１１の５つ、メモリ１２１０〜メモリ１２６の５つ、メモリ１２５〜メモリ１２１の５つ、メモリ１２０およびメモリ１２１５〜メモリ１２１２の５つ、といった順に選択信号を更新していけばよい。
【００８３】
そして、リードアドレス更新制御部１７は、メモリ１２１５〜メモリ１２１１の５つ、メモリ１２１０〜メモリ１２６の５つ、メモリ１２５〜メモリ１２１の５つ、メモリ１２０およびメモリ１２１５〜メモリ１２１２の５つ、といった順に、リードアドレスを生成するよう、リードアドレス生成部１６に通知していけばよい。ここで、リードアドレス生成部１６は、メモリ１２０およびメモリ１２１５〜メモリ１２１２の５つにおけるリードアドレスを更新するよう通知された場合、メモリ１２１５については、１ビット目を示すリードアドレスを生成し、メモリ１２０〜メモリ１２３については、前回の１ビット目を更新して２ビット目を示すリードアドレスを生成するようにすればよい。
【００８４】
そして、このとき、データ選択出力部１８は、メモリ１２０の１ビット目およびメモリ１２１５〜メモリ１２１２の２ビット目の合計５ビットを、４つ目の５列変換データとして出力することになる。
【００８５】
以上で、列変換回路１の動作の説明を終了する。
【００８６】
なお、上述の動作において、列変換回路１は、任意のｎ個のＭ列入力データのライト動作開始から、該ｎ個のＭ列入力データをＮ列変換して出力するリード動作開始までを一定期間に保つよう動作することが好ましい。ここで、ｎは、Ｍ列入力データｎ個分に相当するＭ×ｎビットが変換後の列数Ｎで割り切れるような値である。例えば、Ｍが１６でＮが５であれば、ｎは５となる。この場合、列変換回路１は、任意の５個のＭ列入力データのライト動作開始から、該５個のＭ列入力データをＮ列変換して出力するリード動作開始までを一定期間に保つよう動作することが好ましい。
【００８７】
次に、本発明の第１の実施の形態の効果について述べる。
【００８８】
本実施の形態としての列変換回路は、論理回路の増大を抑えながら、変換後の列数を容易に拡張可能である。
【００８９】
その理由は、本実施の形態において、ライト側におけるライトアドレス生成部およびライトデータ制御部の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、ライトアドレス生成部は、ライトアドレスを同様に更新する。そして、ライトデータ制御部は、Ｍ列入力データを、Ｍ個のメモリにおいてライトアドレスが示す位置に格納していく。これにより、本実施の形態としての列変換回路は、列変換モードを拡張しても、ライト側に回路を増設する必要がない。
【００９０】
また、リード側において、リードアドレス生成部およびデータ選択出力部の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、リードアドレス生成回路は、リードアドレス更新制御部の制御にしたがってＮ個ずつリードアドレスを更新する。また、どの列変換モードにおいても、データ選択出力部は、選択信号にしたがって、Ｍ個のメモリのうちＮ個においてリードアドレスの示す位置のデータを選択出力するからである。そして、本実施の形態としての列変換回路は、列変換モードを拡張する場合、拡張する列変換モードの列数に応じてリードアドレス更新制御部および選択信号生成部の構成を拡張すればよい。これらの各部の構成の拡張は、データセレクト回路の論理段数の増設等と比較して遙かに少ない増設量で済む。したがって、本実施の形態としての列変換回路は、列変換モードを拡張しても、リード側の回路増設量をより低減することができる。
【００９１】
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。
【００９２】
＜構成＞
まず、本発明の第２の実施の形態としての列変換回路１０の構成を、図２に示す。図２において、列変換回路１０は、１６列入力データを、２列、４列、５列、６列、および７列のいずれかに変換可能な回路である。つまり、本発明において、Ｍに１６を適用し、Ｎに２、４、５、６、７を適用したものである。
【００９３】
図２において、列変換回路１０は、本発明の列変換モード設定部の一実施形態として、列変換モード設定信号１１０が入力されるインタフェースを含む。また、列変換回路１０は、本発明のメモリの一実施形態として、１６個のＲＡＭ（０）〜ＲＡＭ（１５）を含む。また、列変換回路１０は、本発明のライトアドレス生成部の一実施形態として、ライトアドレス生成回路１３０を含む。また、列変換回路１０は、本発明のライトデータ制御部の一実施形態として、ライトデータ制御回路１４０を含む。また、列変換回路１０は、本発明のリードアドレス生成部の一実施形態として、リードアドレス生成回路１６０を含む。また、列変換回路１０は、本発明のリードアドレス更新制御部の一実施形態としてリードイネーブル生成回路１７０を含む。また、列変換回路１０は、本発明の選択信号生成部の一実施形態として、リードデータセレクト生成回路１５０を含む。また、列変換回路１０は、本発明のデータ選択出力部の一実施形態として、データセレクト・リタイミング回路１８０を含む。
【００９４】
また、ライトアドレス生成回路１３０およびライトデータ制御回路１４０は、クロック信号（ライトＣＬＫ）に基づいて動作する。また、リードデータセレクト生成回路１５０と、リードアドレス生成回路１６０と、リードイネーブル生成回路１７０と、データセレクト・リタイミング回路１８０とは、クロック信号（リードＣＬＫ）に基づいて動作する。リードＣＬＫは、ライトＣＬＫに対して２倍の周波数で動作するクロック信号である。
【００９５】
図２において、列変換モード設定信号１１０は、２列変換モード、４列変換モード、５列変換モード、６列変換モード、および７列変換モードのいずれかを表す。例えば、"000"は２列変換モードを表し、"001"は、４列変換モードを表し、"010"は、５列変換モードを表し、"011"は、６列変換モードを表し、"100"は、７列変換モードを表していてもよい。
【００９６】
ライトデータ［１５：０］は、１６列入力データである。ライトデータ［１５：０］は、先頭の１６列から順次入力される。図３を用いて、ライトデータ［１５：０］について説明する。図３において、ｉ番目に入力されるライトデータ［１５：０］は、“ｉ−１５”〜”ｉ−０”で表されている。また、以降、”ｉ−ｊ”を、「ｉ番目に入力されるライトデータ［１５：０］のｊビット目」ともいう。また、ライトデータ先頭パルスは、１番目のライトデータ［１５：０］が入力されたことを示す信号である。また、ライトデータ［１５：０］は、２５６個（合計４０９６ビット分）を、１ユニットとして入力されていく。
【００９７】
各ＲＡＭ（０）〜（１５）は、１ビットのデータを２５６個格納可能なＲＡＭ（1bit×256W_RAM）によって構成される。図４に、ＲＡＭ（０）〜（１５）のデータ格納領域を示す。図４において、“ｉ−ｊ”は、ＲＡＭ（ｊ）におけるｉビット目の格納領域を表している。つまり、図４に示す“ＲＡＭ（ｊ）”（ただし、ｊは０〜１５）の記載の右に並ぶ“１−ｊ”〜“２５６−ｊ”までが、１つのＲＡＭ（ｊ）のデータ格納領域を表している。このように、１６個のＲＡＭ（０）〜（１５）は、ライトデータ１ユニット（１６列データ×２５６＝４０９６ビット分）のデータを、格納可能である。
【００９８】
ライトアドレス生成回路１３０は、０〜２５５までの値を繰り返すライトアドレス［７：０］を生成する。このライトアドレス［７：０］は、１６個のＲＡＭ（ｊ）において共通のデータ書き込み位置を示す。すなわち、ライトアドレス０〜２５５は、各ＲＡＭ（ｊ）の１〜２５６ビット目の位置を表している。ライトアドレス生成回路１３０は、ライトデータイネーブル信号が有効‘Ｈ’となる度に、ライトアドレス［７：０］を＋１カウントアップする。
【００９９】
ここで、ライトデータイネーブル信号について説明する。ライトデータイネーブル信号は、１６列ライトデータ［１５：０］をＲＡＭに書き込むタイミングを示す信号である。ライトデータイネーブル信号は、列変換モードに応じて異なるタイミングで有効となる。これは、ライト動作およびリード動作が一定期間を保ちながら行われるようにするためである。ライトデータイネーブル信号については詳細を後述する。
【０１００】
図２に戻り、ライトデータ制御回路１４０について説明する。ライトデータ制御回路１４０は、ライトデータ［１５：０］をＲＡＭ（１５）〜（０）に格納するタイミングを制御する。つまり、ライトデータ制御回路１４０は、ライトデータ［１５：０］の各ビットを、ライトデータイネーブル信号に基づくタイミングで、ＲＡＭ（１５）〜（０）に出力する。このとき、ライトデータ［１５：０］の各ビットは、ＲＡＭ（１５）〜（０）において、ライトアドレス［７：０］が示す位置に格納される。
【０１０１】
リードアドレス生成回路１６０は、１６個の各ＲＡＭ（ｊ）について、リードアドレス［７：０］を生成する。1つのリードアドレス［７：０］は、１個のＲＡＭ（ｊ）におけるデータ読み出し位置を示す。リードアドレス生成回路１６０は、後述のリードイネーブル生成回路１７０から出力されるRAM_EN［１５：０］信号に基づいて、１６本のリードアドレス［７：０］のうちＮ本を更新する。リードイネーブル生成回路１７０から出力されるRAM_EN［１５：０］信号は、列変換モードに応じて異なるものである。したがって、リードアドレス生成回路１６０は、１６本のリードアドレス［７：０］を、列変換モードに応じて異なるタイミングでそれぞれ更新していく。
【０１０２】
リードアドレス生成回路１６０の詳細を、図５に示す。リードアドレス生成回路１６０は、１６個のカウンタRD_ADR（１５）〜（０）を用いて、１６本のリードアドレス［７：０］を生成する。これらのカウンタRD_ADR（１５）〜（０）の初期値は、列変換モードにより異なるものが設定される。ここで、カウンタRD_ADR（１５）〜（０）の初期値について説明する。
【０１０３】
まず、２列変換モードにおけるカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値を、表１に示す。
【０１０４】
【表１】
2013066083.tif 000003
【０１０５】
次に、４列変換モードにおけるカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値を、表２に示す。
【０１０６】
【表２】
2013066083.tif 000004
【０１０７】
次に、５列変換モードにおけるカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値を、表３に示す。
【０１０８】
【表３】
2013066083.tif 000005
【０１０９】
次に、６列変換モードにおけるカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値を、表４に示す。
【０１１０】
【表４】
2013066083.tif 000006
【０１１１】
次に、７列変換モードにおけるカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値を、表５に示す。
【０１１２】
【表５】
2013066083.tif 000007
【０１１３】
上記表１〜表５に示したように、カウンタRD_ADR（１５）〜RD_ADR（０）は、リードデータ先頭パルスが有効時に、リードＣＬＫの立ち上がりエッジで、各表に示した値に初期設定される。すなわち、これらの値が、各変換モードにおける１６本のリードアドレスの初期値となる。そして、これらのカウンタRD_ADR（１５）〜（０）は、リードＣＬＫに基づく所定のタイミングで、対応する入力信号RAM_EN（１５）〜RAM_EN（０）が‘H’であれば、＋１のカウントアップを実行する。RAM_EN信号については、詳細を後述する。これにより、リードアドレス生成回路１６０は、１６本のリードアドレスとして、それぞれの初期値から初めて、０〜２５５を繰り返す値を生成する。
【０１１４】
また、図５に示すように、リードアドレス生成回路１６０は、生成した１６本のリードアドレスをＲＡＭ（１５）〜（０）に対して出力する。これにより、ＲＡＭ（１５）〜（０）からは、それぞれのリードアドレスの示す位置に格納された１ビットずつの合計１６ビットのＲＡＭ格納データ［１５：０］が出力されることになる。
【０１１５】
次に、リードイネーブル生成回路１７０およびリードデータセレクト生成回路１５０の詳細を、図６を用いて説明する。
【０１１６】
図６において、リードデータセレクト生成回路１５０は、列変換モード毎に、リードデータセレクト信号を生成する回路を含む。ここで、リードデータセレクト信号は、本発明の選択信号の一実施形態である。リードデータセレクト信号は、Ｍ個のＲＡＭ（ｊ）のうち選択対象となるＮ個を示す。具体的には、リードデータセレクト生成回路１５０は、２列変換リードデータセレクト生成回路１５０ａ、４列変換リードデータセレクト生成回路１５０ｂ、５列変換リードデータセレクト生成回路１５０ｃ、６列変換リードデータセレクト生成回路１５０ｄ、７列変換リードデータセレクト生成回路１５０ｅ（以降、総称してＮ列変換リードデータセレクト生成回路１５０ともいう）を有する。
【０１１７】
各Ｎ列変換リードデータセレクト生成回路１５０は、それぞれ対応する列変換モードに応じてリードデータセレクト信号RAM_SEL［１５：０］を生成し、データセレクト・リタイミング回路１８０に出力する。このリードデータセレクト信号RAM_SEL［１５：０］は、１６個のＲＡＭ（１５）〜ＲＡＭ（０）から出力される１６ビットのＲＡＭ格納データ［１５：０］において、選択対象となるＮビットのデータ位置を示しているとも言える。
【０１１８】
また、各Ｎ列変換リードデータセレクト生成回路１５０は、カウント値RDENCNTが変化する度にRAM_SEL［１５：０］を更新する。
【０１１９】
ここで、カウント値RDENCNTについて説明する。カウント値RDENCNTは、リードＣＬＫの４ＣＬＫ毎にカウントアップされる信号である。ただし、列変換モード設定信号１１０に応じて、RDENCNTの最大カウント値には、異なる値が設定される。カウント値RDENCNTは、１６個のＲＡＭ（ｊ）のうちＮ個ずつが順次選択されていく際に、再び同一の組み合わせのＮ個のＲＡＭ（ｊ）が選択されるまでの選択回数に基づき設定される。例えば、２列変換モードでは、RDENCNTが０のとき、ＲＡＭ（１５）、ＲＡＭ（１４）が選択され、RDENCNTが１のとき、ＲＡＭ（１３）、ＲＡＭ（１２）が選択されていくとすると、RDENCNTが７のとき、ＲＡＭ（１）、ＲＡＭ（０）が選択されることになる。そして、次に選択されるのは、再びＲＡＭ（１５）、ＲＡＭ（１４）となるため、RDENCNTの最大カウント値は７である。また、同様に、４列変換モードでは、RDENCNTの最大カウント値は３である。また、同様に、５列変換モードでは、RDENCNTの最大カウント値は１５である。また、同様に、６列変換モードでは、RDENCNTの最大カウント値は７である。また、同様に、７列変換モードでは、RDENCNTの最大カウント値は１５である。
【０１２０】
次に、２列変換リードデータセレクト生成回路１５０ａについて説明する。２列変換リードデータセレクト生成回路１５０ａは、２列変換モードで０〜７を繰り返すカウンタRDENCNTを用いて動作する。２列変換リードデータセレクト生成回路１５０ａが、RDENCNTの値に応じて出力する信号の一覧を、表６に示す。
【０１２１】
【表６】
2013066083.tif 000008
【０１２２】
表６に示すように、例えば、２列変換リードデータセレクト生成回路１５０ａは、RDENCNT＝０ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１５）＝‘Ｈ’およびRAM_SEL（１４）＝‘Ｈ’を出力する。
【０１２３】
また、例えば、２列変換リードデータセレクト生成回路１５０ａは、RDENCNT＝１ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１３）＝‘Ｈ’およびRAM_SEL（１２）＝‘Ｈ’を出力する。
【０１２４】
このように、２列変換リードデータセレクト生成回路１５０ａは、RDENCNTが変化する度に、そのカウント値に応じて、RAM_SEL［１５：０］のうち２つずつを‘H’とするよう切り替えながら出力していく。
【０１２５】
次に、４列変換リードデータセレクト生成回路１５０ｂについて説明する。４列変換リードデータセレクト生成回路１５０ｂは、４列変換モードで０〜３を繰り返すカウンタRDENCNTを用いて動作する。４列変換リードデータセレクト生成回路１５０ｂが、RDENCNTの値に応じて出力する信号の一覧を、表７に示す。
【０１２６】
【表７】
2013066083.tif 000009
【０１２７】
表７に示すように、例えば、４列変換リードデータセレクト生成回路１５０ｂは、RDENCNT＝０ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１５）〜RAM_SEL（１２）を有効‘H’にして出力する。
【０１２８】
また、例えば、４列変換リードデータセレクト生成回路１５０ｂは、RDENCNT＝１ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１１）〜RAM_SEL（８）を有効‘H’にして出力する。
【０１２９】
このように、４列変換リードデータセレクト生成回路１５０ｂは、RDENCNTが変化する度に、そのカウント値に応じて、RAM_SEL［１５：０］のうち４つずつを‘H’とするよう切り替えながら出力していく。
【０１３０】
次に、５列変換リードデータセレクト生成回路１５０ｃについて説明する。５列変換リードデータセレクト生成回路１５０ｃは、５列変換モードで０〜１５を繰り返すカウンタRDENCNTを用いて動作する。５列変換リードデータセレクト生成回路１５０ｃが、RDENCNTの値に応じて出力する信号の一覧を、表８に示す。
【０１３１】
【表８】
2013066083.tif 000010
【０１３２】
表８に示すように、例えば、５列変換リードデータセレクト生成回路１５０ｃは、RDENCNT＝０ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１５）〜RAM_SEL（１１）を有効‘H’にして出力する。
【０１３３】
また、例えば、５列変換リードデータセレクト生成回路１５０ｃは、RDENCNT＝１ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１０）〜RAM_SEL（６）を有効‘H’にして出力する。
【０１３４】
このように、５列変換リードデータセレクト生成回路１５０ｃは、RDENCNTが変化する度に、そのカウント値に応じて、RAM_SELのうち５つずつを‘H’とするよう切り替えながら出力していく。
【０１３５】
次に、６列変換リードデータセレクト生成回路１５０ｄについて説明する。６列変換リードデータセレクト生成回路１５０ｄは、６列変換モードで０〜７を繰り返すカウンタRDENCNTを用いて動作する。６列変換リードデータセレクト生成回路１５０ｄが、RDENCNTの値に応じて出力する信号の一覧を、表９に示す。
【０１３６】
【表９】
2013066083.tif 000011
【０１３７】
表９に示すように、例えば、６列変換リードデータセレクト生成回路１５０ｄは、RDENCNT＝０ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１５）〜RAM_SEL（１０）を有効‘H’にして出力する。
【０１３８】
また、例えば、６列変換リードデータセレクト生成回路１５０ｄは、RDENCNT＝１ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（９）〜RAM_SEL（４）を有効‘H’にして出力する。
【０１３９】
このように、６列変換リードデータセレクト生成回路１５０ｄは、RDENCNTが変化する度に、そのカウント値に応じて、RAM_SEL［１５：０］のうち６つずつを‘H’とするよう切り替えながら出力していく。
【０１４０】
次に、７列変換リードデータセレクト生成回路１５０ｅについて説明する。７列変換リードデータセレクト生成回路１５０ｅは、７列変換モードで０〜１５を繰り返すカウンタRDENCNTを用いて動作する。７列変換リードデータセレクト生成回路１５０ｅが、RDENCNTの値に応じて出力する信号の一覧を、表１０に示す。
【０１４１】
【表１０】
2013066083.tif 000012
【０１４２】
表１０に示すように、例えば、７列変換リードデータセレクト生成回路１５０ｅは、RDENCNT＝０ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（１５）〜RAM_SEL（９）を有効‘H’にして出力する。
【０１４３】
また、例えば、７列変換リードデータセレクト生成回路１５０ｅは、RDENCNT＝１ならば、データセレクト・リタイミング回路１８０に対して、RAM_SEL（８）〜RAM_SEL（２）を有効‘H’にして出力する。
【０１４４】
このように、７列変換リードデータセレクト生成回路１５０ｅは、RDENCNTが変化する度に、そのカウント値に応じて、RAM_SEL［１５：０］のうち7つずつを‘H’とするよう切り替えながら出力していく。
【０１４５】
次に、リードイネーブル生成回路１７０について説明する。
【０１４６】
図６において、リードイネーブル生成回路１７０は、列変換モード毎に、リードイネーブル信号を生成する回路を含む。ここで、リードイネーブル信号は、１６本のリードアドレスのうち、更新対象となるＮ本を示す。具体的には、リードイネーブル生成回路１７０は、２列変換リードイネーブル生成回路１７０ａと、４列変換リードイネーブル生成回路１７０ｂと、５列変換リードイネーブル生成回路１７０ｃと、６列変換リードイネーブル生成回路１７０ｄと、７列変換リードイネーブル生成回路１７０ｅとを含む。これらの各回路を、以降、総称してＮ列変換リードイネーブル生成回路１７０ともいう。
【０１４７】
各Ｎ列変換リードイネーブル生成回路１７０は、１６本のリードアドレスのうち更新対象となるＮ本を示すリードイネーブル信号RAM_EN［１５：０］を、リードアドレス生成回路１６０に対して出力する。
【０１４８】
また、各Ｎ列変換リードイネーブル生成回路１７０は、カウント値RDENCNTに応じて、RD_TIM信号が有効となると、RAM_EN［１５：０］を更新する。ここで、RD_TIM信号は、カウント値RDENCNTが変化後リードＣＬＫで３ＣＬＫ目に１ＣＬＫ期間有効となる信号である。言い換えると、RD_TIM信号は、カウント値RDENCNTが変化する直前の１ＣＬＫ期間で有効となる。これにより、各Ｎ列変換リードイネーブル生成回路１７０は、RDENCNT値の次の変化のタイミングでリードアドレスが更新されるよう、RAM_EN［１５：０］信号をリードアドレス生成回路１６０に出力することになる。
【０１４９】
次に、２列変換リードイネーブル生成回路１７０ａについて説明する。２列変換リードイネーブル生成回路１７０ａは、２列変換モードで０〜７を繰り返すカウンタRDENCNTを用いて動作する。ここで、２列変換リードイネーブル生成回路１７０ａが、RDENCNTの値に応じて出力する信号の一覧を、表１１に示す。
【０１５０】
【表１１】
2013066083.tif 000013
【０１５１】
表１１に示すように、例えば、２列変換リードイネーブル生成回路１７０ａは、RDENCNT＝０およびRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（１３）＝‘Ｈ’およびRAM_EN（１２）＝‘Ｈ’を出力する。
【０１５２】
また、例えば、２列変換リードイネーブル生成回路１７０ａは、RDENCNT＝１かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（１１）＝‘Ｈ’およびRAM_EN（１０）＝‘Ｈ’を出力する。
【０１５３】
このように、２列変換リードイネーブル生成回路１７０ａは、RD_TIM＝‘Ｈ’となる度、RDENCNTの値に応じて、RAM_EN［１５：０］のうち２つずつを‘H’とするよう切り替えながら出力していく。
【０１５４】
次に、４列変換リードイネーブル生成回路１７０ｂについて説明する。４列変換リードイネーブル生成回路１７０ｂは、４列変換モードで０〜３を繰り返すカウンタRDENCNTを用いて動作する。４列変換リードイネーブル生成回路１７０ｂが、RDENCNTの値に応じて出力する信号の一覧を、表１２に示す。
【０１５５】
【表１２】
2013066083.tif 000014
【０１５６】
表１２に示すように、例えば、４列変換リードイネーブル生成回路１７０ｂは、RDENCNT＝０かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（１１）〜RAM_EN（８）をそれぞれ‘Ｈ’として出力する。
【０１５７】
また、例えば、４列変換リードイネーブル生成回路１７０ｂは、RDENCNT＝１かつRD_TIM＝‘Ｈ’ならば、RAM_EN（７）〜RAM_EN（４）をそれぞれ‘Ｈ’として出力する。
【０１５８】
このように、４列変換リードイネーブル生成回路１７０ｂは、RD_TIM＝‘Ｈ’となる度、RDENCNTの値に応じて、RAM_EN［１５：０］のうち４つずつを‘H’とするよう切り替えながら出力していく。
【０１５９】
次に、５列変換リードイネーブル生成回路１７０ｃについて説明する。５列変換リードイネーブル生成回路１７０ｃは、５列変換モードで０〜１５を繰り返すカウンタRDENCNTを用いて動作する。５列変換リードイネーブル生成回路１７０ｃが、RDENCNTの値に応じて出力する信号の一覧を、表１３に示す。
【０１６０】
【表１３】
2013066083.tif 000015
【０１６１】
表１３に示すように、例えば、５列変換リードイネーブル生成回路１７０ｃは、RDENCNT＝０かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（１０）〜RAM_EN（６）をそれぞれ‘Ｈ’として出力する。
【０１６２】
また、例えば、５列変換リードイネーブル生成回路１７０ｃは、RDENCNT＝１かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（５）〜RAM_EN（１）をそれぞれ‘Ｈ’として出力する。
【０１６３】
このように、５列変換リードイネーブル生成回路１７０ｃは、RD_TIM＝‘H’となる度、RDENCNTの値に応じて、RAM_EN［１５：０］のうち５つずつを‘H’とするよう切り替えながら出力していく。
【０１６４】
次に、６列変換リードイネーブル生成回路１７０ｄについて説明する。６列変換リードイネーブル生成回路１７０ｄは、６列変換モードで０〜７を繰り返すカウンタRDENCNTを用いて動作する。６列変換リードイネーブル生成回路１７０ｄが、RDENCNTの値に応じて出力する信号の一覧を、表１４に示す。
【０１６５】
【表１４】
2013066083.tif 000016
【０１６６】
表１４に示すように、例えば、６列変換リードイネーブル生成回路１７０ｄは、RDENCNT＝０かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（９）〜RAM_EN（４）をそれぞれ‘Ｈ’として出力する。
【０１６７】
また、例えば、６列変換リードイネーブル生成回路１７０ｄは、RDENCNT＝１かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（３）〜RAM_EN（０）およびRAM_EN（１５）〜RAM_EN（１４）をそれぞれ‘Ｈ’として出力する。
【０１６８】
このように、６列変換リードイネーブル生成回路１７０ｄは、RD_TIM＝‘H’となる度、RDENCNTの値に応じて、RAM_EN［１５：０］のうち６つずつを‘H’とするよう切り替えながら出力していく。
【０１６９】
次に、７列変換リードイネーブル生成回路１７０ｅについて説明する。７列変換リードイネーブル生成回路１７０ｅは、７列変換モードで０〜１５を繰り返すカウンタRDENCNTを用いて動作する。７列変換リードイネーブル生成回路１７０ｅが、RDENCNTの値に応じて出力する信号の一覧を、表１５に示す。
【０１７０】
【表１５】
2013066083.tif 000017
【０１７１】
表１５に示すように、例えば、７列変換リードイネーブル生成回路１７０ｅは、RDENCNT＝０かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（８）〜RAM_EN（２）をそれぞれ‘Ｈ’として出力する。
【０１７２】
また、例えば、７列変換リードイネーブル生成回路１７０ｅは、RDENCNT＝１かつRD_TIM＝‘Ｈ’ならば、リードアドレス生成回路１６０に対して、RAM_EN（１）〜RAM_EN（０）およびRAM_EN（１５）〜RAM_EN（１１）をそれぞれ‘Ｈ’として出力する。
【０１７３】
このように、７列変換リードイネーブル生成回路１７０ｅは、RD_TIM＝‘H’となる度、RDENCNTの値に応じて、RAM_ENのうち7つずつを‘H’とするよう切り替えながら出力していく。
【０１７４】
次に、図２に戻り、データセレクト・リタイミング回路１８０について説明する。
【０１７５】
データセレクト・リタイミング回路１８０は、データセレクト回路１８１およびリタイミング回路１８２を有する。
【０１７６】
データセレクト回路１８１には、ＲＡＭ格納データ［１５：０］およびRAM_SEL［１５：０］が入力される。前述のように、ＲＡＭ格納データ［１５：０］は、ＲＡＭ（１５）〜ＲＡＭ（０）においてそれぞれのリードアドレスの示す位置に格納された１ビットずつの合計１６ビットのデータである。データセレクト回路１８１は、前述のRDENCNTのカウント値が変わる毎に、ＲＡＭ格納データ［１５：０］のうち、RAM_SEL［１５：０］の示す位置に格納されたデータを選択する。ここで、RAM_SEL［１５：０］は、１６ビットのうち列変換モードに応じたNビットが有効‘Ｈ’となっている。よって、データセレクト回路１８１は、列変換モードに応じたN列を選択することになる。
【０１７７】
そして、リタイミング回路１８２は、データセレクト回路１８１により選択されたＮ列のデータを、RD_TIM信号の有効‘Ｈ’後、リードＣＬＫの立ち上がりエッジでリタイミングして出力する。データセレクト・リタイミング回路１８０から出力されるデータが、Ｎ列変換データ［Ｎ−１：０]となる。
【０１７８】
＜動作＞
以上のように構成された列変換回路１０の動作について、図面を参照して詳細に説明する。
【０１７９】
＜ライト動作＞
まず、ライト動作について、図７〜図１１を参照して説明する。列変換回路１０は、ライトデータ先頭パルスが有効‘Ｈ’になると、ライト動作を開始する。ライトデータ先頭パルスは、図７〜図１１に示すように、２列変換モードでは１６ＣＬＫ期間、４列変換モードでは８ＣＬＫ期間、５列〜７列変換モードでは４ＣＬＫ期間、それぞれ有効となる。
【０１８０】
以降、列変換回路１０には、ライトデータイネーブル信号が所定のタイミングで入力される。ここで、ライトデータイネーブル信号は、列変換モードに応じて異なるタイミングで有効となる。
【０１８１】
２列変換モードでは、図７に示すように、ライトデータイネーブル信号は、ライトＣＬＫの１６ＣＬＫ毎に１ＣＬＫの期間有効となる。
【０１８２】
４列変換モードでは、図８に示すように、ライトデータイネーブル信号は、ライトＣＬＫの８ＣＬＫ毎に１ＣＬＫの期間有効となる。
【０１８３】
５列変換モードでは、図９に示すように、ライトデータイネーブル信号は、ライトＣＬＫの４ＣＬＫ毎に２回、８ＣＬＫ毎に３回、合計で３２ＣＬＫ毎に５回、それぞれ１ＣＬＫの期間有効となる。
【０１８４】
６列変換モードでは、図１０に示すように、ライトデータイネーブル信号は、ライトＣＬＫの４ＣＬＫ毎に２回、８ＣＬＫ毎に１回、合計１６ＣＬＫ毎に３回、それぞれ１ＣＬＫの期間有効となる。
【０１８５】
７列変換モードでは、図１１に示すように、ライトデータイネーブル信号は、ライトＣＬＫの４ＣＬＫ毎に６回、８ＣＬＫ毎に１回、合計３２ＣＬＫ毎に７回、それぞれ１ＣＬＫの期間有効となる。
【０１８６】
以降のライト動作の説明は、各列変換モードにおいて共通である。
【０１８７】
ライトアドレス生成回路１３０は、ライトデータ先頭パルスおよびライトデータイネーブル信号が共に有効‘Ｈ’時に、ライトＣＬＫの立ち上がりエッジにより、ライトアドレスを０に初期化する。
【０１８８】
そして、ライトアドレス生成回路１３０は、ライトデータイネーブル信号が有効‘Ｈ’時に、ライトＣＬＫの立ち上がりエッジにより、ライトアドレスに対して＋１のカウントアップを実行する。
【０１８９】
そして、ライトアドレス生成回路１３０は、ライトアドレスが２５５であり、かつ、ライトデータイネーブル信号が有効‘Ｈ’時に、ライトＣＬＫの立ち上がりエッジにより、ライトアドレスを再度０に初期化する。
【０１９０】
これにより、ライトアドレスは、０〜２５５を繰り返すことになる。各変換モードにおけるライトアドレスは、図２〜図７にそれぞれ示した通りとなる。
【０１９１】
次に、ライトデータ制御回路１４０は、ライトデータ［１５：０］を、ＲＡＭ（１５）〜（０）に対して出力する。このとき、ライトデータ制御回路１４０は、ライトデータイネーブル信号を用いることにより、ライトアドレスおよびライトデータの変化点が一致するよう、タイミングを調整する。具体的には、ライトデータ制御回路１４０は、ライトデータ［１５：０］のうちライトデータ（１５）を、ＲＡＭ（１５）に対して出力する。同様に、ライトデータ制御回路１４０は、ライトデータ［１５：０］のうちライトデータ（ｊ）を、ＲＡＭ（ｊ）に対して出力する。言い換えると、ライトデータ制御回路１４０は、ライトデータ［１５：０］を１列データに分割し、各１列データを、ＲＡＭ（１５）〜ＲＡＭ（０）のそれぞれに対して出力する。例えば、図２〜図７において、１つ目のライトデータ［１５：０］“１０００（ｈｅｘ）”は、ライトデータイネーブル信号に同期して１６個のＲＡＭ（ｊ）のアドレス０の位置に格納される。同様に、２番目のライトデータ［１５：０］“１００１（ｈｅｘ）”は、ライトデータイネーブル信号に同期して１６個のＲＡＭ（ｊ）のアドレス１の位置に格納される。
【０１９２】
このように、列変換回路１０は、列変換モードの設定に関わらず、ライトアドレスを０〜２５５まで繰り返し更新する。そして、列変換回路１０は、ライトアドレスが更新される毎に、次のライトデータ［１５：０］を１６個のＲＡＭ（ｊ）のライトアドレスが示す位置に格納していく。
【０１９３】
このような列変換回路１０のライト動作により、ＲＡＭ（１５）〜ＲＡＭ（０）に格納されるライトデータのイメージを図１２に示す。図１２において、１ユニット目の先頭の１６ビットのライトデータ（1-15〜1-0）は、ライトアドレスが０となるタイミングで、ＲＡＭ（１５）〜ＲＡＭ（０）の１ビット目（1-15〜1-0）に格納される。次に、２番目の１６ビットライトデータ（2-15〜2-0）は、ライトアドレスが１となるタイミングで、ＲＡＭ（１５）〜ＲＡＭ（０）の２ビット目（2-15〜2-0）に格納される。そして、１ユニット目の最後にあたる256番目の１６ビットライトデータ（256-15〜256-0）は、ライトアドレスが２５５となるタイミングで、ＲＡＭ（１５）〜ＲＡＭ（０）の２５６ビット目（256-15〜256-0）に格納される。以降、２ユニット目のライトデータは、再びＲＡＭ（１５）〜ＲＡＭ（０）のライトアドレス０から順に格納されていく。なお、各ＲＡＭ（１５）〜（１０）の各ライトアドレスの位置に既に格納されているデータは、同一のライトアドレスの位置に次のユニットのライトデータが格納される前に、後述のリード動作により読み出されている。
【０１９４】
以上で、ライト動作の説明を終了する。
【０１９５】
次に、リード動作について説明する。
【０１９６】
＜２列変換モードにおけるリード動作＞
２列変換モードにおけるリード側のタイミングチャートを図１３に示す。
【０１９７】
ここでは、まず、リードデータ先頭パルスが有効‘Ｈ’となると、列変換回路１０は、リード動作を開始する。
【０１９８】
リードＣＬＫカウンタは、リードデータ先頭パルスが有効‘Ｈ’時に、リードＣＬＫの立ち上がりエッジでカウント値を０に初期化する。その後、リードＣＬＫカウンタは、リードＣＬＫに同期して０〜３までを繰り返しカウントする。
【０１９９】
リードイネーブルRD_TIM信号は、リードＣＬＫカウンタが３で有効‘Ｈ’となる。RD_TIM信号は、リードイネーブル生成回路１６０から出力されるRAM_EN［１５：０］の更新タイミングを示す。また、RD_TIM信号は、リタイミング回路１８２から変換データを出力するタイミングも示している。
【０２００】
リードイネーブルカウンタRDENCNTは、リードデータ先頭パルスが有効時に、０に初期化される。この時、リード側の２列変換モード"000"が設定されるとともに、RDENCNTの最大カウント値が７にセットされる。前述のように、リードイネーブルカウンタRDENCNTは、リードイネーブル信号RAM_EN［１５：０］およびリードデータセレクト信号RAM_SEL［１５：０］の更新を制御する値となる。
【０２０１】
また、リードデータ先頭パルスが有効時に、ＲＡＭ（１５）およびＲＡＭ（１４）のリードアドレスは、０に初期設定される。また、ＲＡＭ（１３）〜ＲＡＭ（０）のリードアドレスは、２５５に初期設定される。これらの値は、前述のように、表１に示した１６個のカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値である。
【０２０２】
次に、データセレクト回路１８１は、列変換先頭パルスが有効になると、初期設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝０であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１５）およびRAM_SEL（１４）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１５：１４］を選択する。
【０２０３】
次に、リタイミング回路１８２は、RDENCNT＝０かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１５：１４］をリタイミングして出力する。これが、１つ目の２列変換データ［１：０］となる。図１３には、１つ目の２列変換データ［１：０］として、“００”（２進表記）を示している。これは、図７に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１５〜１４ビット目に相当する。なお、前述のように、１６列入力データの０〜１５ビット目とは、最下位〜最上位までの各ビットをそれぞれ示すものとする。
【０２０４】
次に、RDENCNT＝０、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（１３）およびRAM_EN（１２）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（１３）およびＲＡＭ（１２）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２０５】
次に、リードアドレス生成回路１６０は、ＲＡＭ（１３）およびＲＡＭ（１２）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（１２）のリードアドレスは、０に設定され、ＲＡＭ（１１）〜ＲＡＭ（０）のリードアドレスは、２５５に設定されている。
【０２０６】
次に、データセレクト回路１８１は、更新された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝１であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１３）およびRAM_SEL（１２）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１３：１２］を選択する。
【０２０７】
次に、リタイミング回路１８２は、RDENCNT＝１かつRD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１３：１２］をリタイミングして出力する。これが、２つ目の２列変換データ［１：０］となる。図１３には、２つ目の２列変換データ［１：０］として、“０１”（２進表記）を示している。これは、図７に示した１つ目の１６列入力データの一例“１０００” （１６進表記）、すなわち、＝”０００１  ００００  ００００  ００００”（２進表記）の１３〜１２ビット目に相当する。
【０２０８】
このようにして、２列変換モードでは、RDENCNTのカウント値が０〜７を繰り返す。そして、リードデータセレクト生成回路１５０は、RDENCNTのカウント値が変化すると、ＲＡＭ（１５）〜ＲＡＭ（０）の１６個のＲＡＭのうち選択対象となる２つのＲＡＭを示すよう、RAM_SEL［１５：０］のうち‘Ｈ’となる２ビットを順次切り替える。また、リードイネーブル生成回路１７０は、RD_TIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する２本のリードアドレスを示すよう、RAM_EN［１５：０］のうち‘Ｈ’となる２ビットを順次切り替える。そして、リードアドレス生成回路１６０は、RAM_EN［１５：０］が示すＲＡＭ（ｊ）におけるリードアドレスをカウントアップする。そして、データセレクト・リタイミング回路１８０は、RAM_SEL［１５：０］およびリードアドレスに基づいて、２列変換データを選択出力していく。
【０２０９】
このようにして出力される２列変換データは、図１４に示すとおりとなる。図１４において、ｉ−ｊは、ｉ番目に入力されたライトデータのｊビット目のデータを示している。つまり、１番目のライトデータの１５〜１４ビット目のデータが、１つ目の２列変換データであることを表している。
【０２１０】
以上のように動作することにより、２列変換モードでは、列変換回路１０は、１６列入力データ１つ分を１単位として、ライト動作およびリード動作を繰り返していく。これは、１６列入力データ１つ分の１６ビットが変換後の列数２で割り切れるためである。このとき、列変換回路１０は、任意の１つの１６列入力データのライト動作の開始から、該１つの１６列入力データを２列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。
【０２１１】
以上で、２列変換モードにおける列変換回路１０の動作の説明を終了する。
【０２１２】
＜４列変換モードにおけるリード動作＞
次に、４列変換モードにおけるリード側のタイミングチャートを図１５に示す。
【０２１３】
ここでは、４列変換モードにおける列変換回路１０の動作が、２列変換モードにおける動作と異なる点を中心に述べる。
【０２１４】
まず、リードデータ先頭パルスが有効‘Ｈ’となると、列変換回路１０はリード動作を開始する。
【０２１５】
リードイネーブルカウンタRDENCNTの最大カウント値は、４列変換モードでは、３にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、２列変換モードの場合と同様である。
【０２１６】
また、１６本のリードアドレスの初期値は、２列変換モードの場合と異なる。リードデータ先頭パルスが有効時に、ＲＡＭ（１５）〜ＲＡＭ（１２）のリードアドレスは、０に初期設定される。また、ＲＡＭ（１１）〜ＲＡＭ（０）のリードアドレスは、２５５に初期設定される。これらの値は、前述のように、表２に示した１６個のカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値である。
【０２１７】
次に、データセレクト回路１８１は、列変換先頭パルスが有効になると、初期設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝０であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１５）〜RAM_SEL（１２）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１５：１２］を選択する。
【０２１８】
次に、リタイミング回路１８２は、RDENCNT＝０かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１５：１２］をリタイミングして出力する。これが、１つ目の４列変換データ［３：０］となる。図１５には、１つ目の４列変換データ［３：０］として、“１”（１６進表記）、すなわち、“０００１”（２進表記）を示している。これは、図８に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１５〜１２ビット目に相当する。
【０２１９】
次に、RDENCNT＝０、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（１１）〜RAM_EN（８）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（１１）〜ＲＡＭ（８）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２２０】
次に、リードアドレス生成回路１６０は、ＲＡＭ（１１）〜ＲＡＭ（８）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（８）のリードアドレスは、０に設定され、ＲＡＭ（７）〜ＲＡＭ（０）のリードアドレスは、２５５に設定されている。
【０２２１】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝１であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１１）〜RAM_SEL（８）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１１：８］を選択する。
【０２２２】
次に、リタイミング回路１８２は、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１１：８］をリタイミングして出力する。これが、２つ目の４列変換データ［３：０］となる。図１５には、２つ目の４列変換データ［３：０］として、“０”（１６進表記）、すなわち、“００００”（２進表記）を示している。これは、図８に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１１〜８ビット目に相当する。
【０２２３】
このようにして、４列変換モードでは、RDENCNTのカウント値が０〜３を繰り返す。そして、リードデータセレクト生成回路１５０は、RDENCNTのカウント値が変化すると、ＲＡＭ（１５）〜ＲＡＭ（０）の１６個のＲＡＭのうち選択対象となる４つのＲＡＭを示すよう、RAM_SEL［１５：０］のうち‘Ｈ’となる４ビットを順次切り替える。また、リードイネーブル生成回路１７０は、RD_TIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する４本のリードアドレスを示すよう、RAM_EN［１５：０］のうち‘Ｈ’となる４ビットを順次切り替える。そして、リードアドレス生成回路１６０は、RAM_EN［１５：０］が示すＲＡＭ（ｊ）におけるリードアドレスをカウントアップする。そして、データセレクト・リタイミング回路１８０は、RAM_SEL［１５：０］およびリードアドレスに基づいて、４列変換データを選択出力していく。
【０２２４】
このようにして出力される４列変換データは、図１６に示すとおりとなる。図１６において、ｉ−ｊは、ｉ番目に入力されたライトデータのｊビット目のデータを示している。つまり、１番目のライトデータの１５〜１３ビット目までの４ビットのデータが、１つ目の４列変換データであることを表している。
【０２２５】
以上のように動作することにより、４列変換モードでは、列変換回路１０は、１６列入力データ１つ分を１単位として、ライト動作およびリード動作を繰り返していく。これは、１６列入力データ１つ分の１６ビットが変換後の列数４で割り切れるためである。このとき、列変換回路１０は、任意の１つの１６列入力データのライト動作の開始から、該１つの１６列入力データを４列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。
【０２２６】
以上で、４列変換モードにおける列変換回路１０の動作の説明を終了する。
【０２２７】
＜５列変換モードにおけるリード動作＞
次に、５列変換モードにおけるリード側のタイミングチャートを図１７に示す。
【０２２８】
ここでは、５列変換モードにおける列変換回路１０の動作が、２列変換モードにおける動作と異なる点を中心に述べる。
【０２２９】
まず、リードデータ先頭パルスが有効‘Ｈ’となると、列変換回路１０はリード動作を開始する。
【０２３０】
リードイネーブルカウンタRDENCNTの最大カウント値は、５列変換モードでは、１５にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、２列変換モードの場合と同様である。
【０２３１】
また、１６本のリードアドレスの初期値は、２列変換モードの場合と異なる。リードデータ先頭パルス有効時に、ＲＡＭ（１５）〜ＲＡＭ（１１）のリードアドレスは、０に初期設定される。また、ＲＡＭ（１０）〜ＲＡＭ（０）のリードアドレスは、２５５に初期設定される。これらの値は、前述のように、表３に示した１６個のカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値である。
【０２３２】
次に、データセレクト回路１８１は、列変換先頭パルスが有効になると、初期設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝０であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１５）〜RAM_SEL（１１）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１５：１１］を選択する。
【０２３３】
次に、リタイミング回路１８２は、RDENCNT＝０かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１５：１１］をリタイミングして出力する。これが、１つ目の５列変換データ［４：０］となる。図１７には、１つ目の５列変換データ［４：０］として、“０２”（１６進表記）、すなわち、“０００１０”（２進表記）を示している。これは、図９に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１５〜１１ビット目に相当する。
【０２３４】
次に、RDENCNT＝０、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（１０）〜RAM_EN（６）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（１０）〜ＲＡＭ（６）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２３５】
次に、リードアドレス生成回路１６０は、ＲＡＭ（１０）〜ＲＡＭ（６）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（６）のリードアドレスは、０に設定され、ＲＡＭ（５）〜ＲＡＭ（０）のリードアドレスは、２５５に設定されている。
【０２３６】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝１であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１０）〜RAM_SEL（６）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１０：６］を選択する。
【０２３７】
次に、リタイミング回路１８２は、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１０：６］をリタイミングして出力する。これが、２つ目の５列変換データ［４：０］となる。図１７には、１つ目の５列変換データ［４：０］として、“００”（１６進表記）、すなわち、“０００００”（２進表記）を示している。これは、図９に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１０〜６ビット目に相当する。
【０２３８】
このようにして、５列変換モードでは、RDENCNTのカウント値が０〜１５を繰り返す。そして、リードデータセレクト生成回路１５０は、RDENCNTのカウント値が変化すると、ＲＡＭ（１５）〜ＲＡＭ（０）の１６個のＲＡＭのうち選択対象となる５つのＲＡＭを示すよう、RAM_SEL［１５：０］のうち‘Ｈ’となる５ビットを順次切り替える。また、リードイネーブル生成回路１７０は、RD_TIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する５本のリードアドレスを示すよう、RAM_EN［１５：０］のうち‘Ｈ’となる５ビットを順次切り替える。そして、リードアドレス生成回路１６０は、RAM_EN［１５：０］が示すＲＡＭ（ｊ）におけるリードアドレスをカウントアップする。そして、データセレクト・リタイミング回路１８０は、RAM_SEL［１５：０］およびリードアドレスに基づいて、５列変換データを選択出力していく。
【０２３９】
このようにして出力される５列変換データは、図１８に示すとおりとなる。図１８において、ｉ−ｊは、ｉ番目に入力されたライトデータのｊビット目のデータを示している。つまり、１番目のライトデータの１５〜１１ビット目までの５ビットのデータが、１つ目の５列変換データであることを表している。
【０２４０】
以上のように動作することにより、５列変換モードでは、列変換回路１０は、１６列入力データ５つ分を１単位として、ライト動作およびリード動作を繰り返していく。これは、１６列入力データ５つ分の８０ビットが変換後の列数５で割り切れるためである。このとき、列変換回路１０は、任意の５つの１６列入力データのライト動作の開始から、該５つの１６列入力データを５列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。
【０２４１】
以上で、５列変換モードにおける列変換回路１０の動作の説明を終了する。
【０２４２】
＜６列変換モードにおけるリード動作＞
次に、６列変換モードにおけるリード側のタイミングチャートを図１９に示す。
【０２４３】
ここでは、６列変換モードにおける列変換回路１０の動作が、２列変換モードにおける動作と異なる点を中心に述べる。
【０２４４】
まず、リードデータ先頭パルスが有効‘Ｈ’となると、列変換回路１０はリード動作を開始する。
【０２４５】
リードイネーブルカウンタRDENCNTの最大カウント値は、６列変換モードでは、７にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、２列変換モードの場合と同様である。
【０２４６】
また、１６本のリードアドレスの初期値は、２列変換モードの場合と異なる。リードデータ先頭パルス有効時に、ＲＡＭ（１５）〜ＲＡＭ（１０）のリードアドレスは、０に初期設定される。また、ＲＡＭ（９）〜ＲＡＭ（０）のリードアドレスは、２５５に初期設定される。これらの値は、前述のように、表４に示した１６個のカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値である。
【０２４７】
次に、データセレクト回路１８１は、列変換先頭パルスが有効になると、初期設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝０であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１５）〜RAM_SEL（１０）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１５：１０］を選択する。
【０２４８】
次に、リタイミング回路１８２は、RDENCNT＝０かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１５：１０］をリタイミングして出力する。これが、１つ目の６列変換データ［５：０］となる。図１９には、１つ目の６列変換データ［５：０］として、“０４”（１６進表記）、すなわち、“０００１００”（２進表記）を示している。これは、図１０に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１５〜１０ビット目に相当する。
【０２４９】
次に、RDENCNT＝０、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（９）〜RAM_EN（４）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（９）〜ＲＡＭ（４）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２５０】
次に、リードアドレス生成回路１６０は、ＲＡＭ（９）〜ＲＡＭ（４）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（４）のリードアドレスは、０に設定され、ＲＡＭ（３）〜ＲＡＭ（０）のリードアドレスは、２５５に設定されている。
【０２５１】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝１であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（９）〜RAM_SEL（４）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［９：４］を選択する。
【０２５２】
次に、リタイミング回路１８２は、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［９：４］をリタイミングして出力する。これが、２つ目の６列変換データ［４：０］となる。図１９には、２つ目の６列変換データ［５：０］として、“００”（１６進表記）、すなわち、“００００００”（２進表記）を示している。これは、図１０に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の９〜４ビット目に相当する。
【０２５３】
次に、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（３）〜RAM_EN（０）およびRAM_EN（１５）〜RAM_EN（１４）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（３）〜ＲＡＭ（０）およびRAM_EN（１５）〜RAM_EN（１４）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２５４】
次に、リードアドレス生成回路１６０は、ＲＡＭ（３）〜ＲＡＭ（０）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。また、リードアドレス生成回路１６０は、ＲＡＭ（１５）〜ＲＡＭ（１４）のリードアドレスを、それまでの０を＋１カウントアップして１に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（１４）のリードアドレスは、１に設定され、ＲＡＭ（１３）〜ＲＡＭ（０）のリードアドレスは、０に設定されている。
【０２５５】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝２であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（３）〜RAM_SEL（０）およびRAM_SEL（１５）〜RAM_SEL（１４）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［３：０］［１５：１４］を選択する。
【０２５６】
次に、リタイミング回路１８２は、RDENCNT＝２、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［３：０］［１５：１４］をリタイミングして出力する。これが、３つ目の６列変換データ［４：０］となる。図１９には、３つ目の６列変換データ［５：０］として、“００”（１６進表記）、すなわち、“００００００”（２進表記）を示している。これは、図１０に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の３〜０ビット目、および、２つ目の１６列入力データの一例“１００１”（１６進表記）、すなわち、”０００１  ００００  ００００  ０００１”（２進表記）の１５〜１４ビット目に相当する。
【０２５７】
このようにして、６列変換モードでは、RDENCNTのカウント値が０〜７を繰り返す。そして、リードデータセレクト生成回路１５０は、RDENCNTのカウント値が変化すると、ＲＡＭ（１５）〜ＲＡＭ（０）の１６個のＲＡＭのうち選択対象となる６つのＲＡＭを示すよう、RAM_SEL［１５：０］のうち‘Ｈ’となる６ビットを順次切り替える。また、リードイネーブル生成回路１７０は、RD_TIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する６本のリードアドレスを示すよう、RAM_EN［１５：０］のうち‘Ｈ’となる６ビットを順次切り替える。そして、リードアドレス生成回路１６０は、RAM_EN［１５：０］が示すＲＡＭ（ｊ）におけるリードアドレスをカウントアップする。そして、データセレクト・リタイミング回路１８０は、RAM_SEL［１５：０］およびリードアドレスに基づいて、６列変換データを選択出力していく。
【０２５８】
このようにして出力される６列変換データは、図２０に示すとおりとなる。図２０において、ｉ−ｊは、ｉ番目に入力されたライトデータのｊビット目のデータを示している。つまり、１番目のライトデータの１５〜１０ビット目までの６ビットのデータが、１つ目の６列変換データであることを表している。
【０２５９】
以上のように動作することにより、６列変換モードでは、列変換回路１０は、１６列入力データ３つ分を１単位として、ライト動作およびリード動作を繰り返していく。これは、１６列入力データ３つ分の４８ビットが変換後の列数６で割り切れるためである。このとき、列変換回路１０は、任意の３つの１６列入力データのライト動作の開始から、該３つの１６列入力データを６列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。
【０２６０】
以上で、６列変換モードにおける列変換回路１０の動作の説明を終了する。
【０２６１】
＜７列変換モードにおけるリード動作＞
次に、７列変換モードにおけるリード側のタイミングチャートを図２１に示す。
【０２６２】
ここでは、７列変換モードにおける列変換回路１０の動作が、２列変換モードにおける動作と異なる点を中心に述べる。
【０２６３】
まず、リードデータ先頭パルスが有効‘Ｈ’となると、列変換回路１０はリード動作を開始する。
【０２６４】
リードイネーブルカウンタRDENCNTの最大カウント値は、７列変換モードでは、１５にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、２列変換モードの場合と同様である。
【０２６５】
また、１６本のリードアドレスの初期値は、２列変換モードの場合と異なる。リードデータ先頭パルス有効時に、ＲＡＭ（１５）〜ＲＡＭ（９）のリードアドレスは、０に初期設定される。また、ＲＡＭ（８）〜ＲＡＭ（０）のリードアドレスは、２５５に初期設定される。これらの値は、前述のように、表５に示した１６個のカウンタRD_ADR（１５）〜RD_ADR（０）の初期設定値である。
【０２６６】
次に、データセレクト回路１８１は、列変換先頭パルスが有効になると、初期設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝０であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１５）〜RAM_SEL（９）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１５：９］を選択する。
【０２６７】
次に、リタイミング回路１８２は、RDENCNT＝０かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１５：９］をリタイミングして出力する。これが、１つ目の７列変換データ［６：０］となる。図２１には、１つ目の７列変換データ［６：０］として、“０８”（１６進表記）、すなわち、“０００１０００”（２進表記）を示している。これは、図１１に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１５〜９ビット目に相当する。
【０２６８】
次に、RDENCNT＝０、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（８）〜RAM_EN（２）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（８）〜ＲＡＭ（２）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２６９】
次に、リードアドレス生成回路１６０は、ＲＡＭ（８）〜ＲＡＭ（２）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（２）のリードアドレスは、０に設定され、ＲＡＭ（１）〜ＲＡＭ（０）のリードアドレスは、２５５に設定されている。
【０２７０】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝１であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（８）〜RAM_SEL（２）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［８：２］を選択する。
【０２７１】
次に、リタイミング回路１８２は、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［８：２］をリタイミングして出力する。これが、２つ目の７列変換データ［６：０］となる。図２１には、２つ目の７列変換データ［６：０］として、“００”（１６進表記）、すなわち、“０００００００”（２進表記）を示している。これは、図１１に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の８〜２ビット目に相当する。
【０２７２】
次に、RDENCNT＝１、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードイネーブル生成回路１７０は、RAM_EN（１）〜RAM_EN（０）およびRAM_EN（１５）〜RAM_EN（１１）を‘H’としてRAM_EN［１５：０］を出力する。つまり、リードイネーブル生成回路１７０は、リードアドレス生成回路１６０に対して、次の選択先となるＲＡＭ（１）〜ＲＡＭ（０）およびRAM_EN（１５）〜RAM_EN（１１）におけるリードアドレスを＋１カウントアップするタイミングを出力している。
【０２７３】
次に、リードアドレス生成回路１６０は、ＲＡＭ（１）〜ＲＡＭ（０）のリードアドレスを、それまでの２５５を＋１カウントアップして０に更新する。また、リードアドレス生成回路１６０は、ＲＡＭ（１５）〜ＲＡＭ（１１）のリードアドレスを、それまでの０を＋１カウントアップして１に更新する。この時点で、ＲＡＭ（１５）〜ＲＡＭ（１１）のリードアドレスは、１に設定され、ＲＡＭ（１０）〜ＲＡＭ（０）のリードアドレスは、０に設定されている。
【０２７４】
次に、データセレクト回路１８１は、新たに設定された１６個のリードアドレス値を用いて、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ（１５）〜ＲＡＭ（０）からＲＡＭ格納データ［１５：０］を読み出す。このとき、RDENCNT＝２であるため、リードデータセレクト生成回路１５０から出力されるリードデータセレクト信号RAM_SEL［１５：０］のうち、RAM_SEL（１）〜RAM_SEL（０）およびRAM_SEL（１５）〜RAM_SEL（１１）が有効‘Ｈ’となっている。そこで、データセレクト回路１８１は、RAM_SEL［１５：０］にしたがって、ＲＡＭ格納データ［１５：０］のうち、ＲＡＭ格納データ［１：０］［１５：１１］を選択する。
【０２７５】
次に、リタイミング回路１８２は、RDENCNT＝２、かつ、RD_TIM＝‘Ｈ’のタイミングで、リードＣＬＫの立ち上がりエッジにより、ＲＡＭ格納データ［１：０］［１５：１１］をリタイミングして出力する。これが、３つ目の７列変換データ［６：０］となる。図２１には、３つ目の７列変換データ［６：０］として、“０２”（１６進表記）、すなわち、“０００００１０”（２進表記）を示している。これは、図１１に示した１つ目の１６列入力データの一例“１０００”（１６進表記）、すなわち、”０００１  ００００  ００００  ００００”（２進表記）の１〜０ビット目と、図１１に示した２つ目の１６列入力データの一例“１００１”（１６進表記）、すなわち、”０００１  ００００  ００００  ０００１”（２進表記）の１５〜１１ビット目に相当する。
【０２７６】
このようにして、７列変換モードでは、RDENCNTのカウント値が０〜１５を繰り返す。そして、リードデータセレクト生成回路１５０は、RDENCNTのカウント値が変化すると、ＲＡＭ（１５）〜ＲＡＭ（０）の１６個のＲＡＭのうち選択対象となる７つのＲＡＭを示すよう、RAM_SEL［１５：０］のうち‘Ｈ’となる７ビットを順次切り替える。また、リードイネーブル生成回路１７０は、RD_TIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する７本のリードアドレスを示すよう、RAM_EN［１５：０］のうち‘Ｈ’となる７ビットを順次切り替える。そして、リードアドレス生成回路１６０は、RAM_EN［１５：０］が示すＲＡＭ（ｊ）におけるリードアドレスをカウントアップする。そして、データセレクト・リタイミング回路１８０は、RAM_SEL［１５：０］およびリードアドレスに基づいて、７列変換データを選択出力していく。
【０２７７】
このようにして出力される７列変換データは、図２２に示すとおりとなる。図２２において、ｉ−ｊは、ｉ番目に入力されたライトデータのｊビット目のデータを示している。つまり、１番目のライトデータの１５〜９ビット目までの７ビットのデータが、１つ目の７列変換データであることを表している。
【０２７８】
以上のように動作することにより、７列変換モードでは、列変換回路１０は、１６列入力データ７つ分を１単位として、ライト動作およびリード動作を繰り返していく。これは、１６列入力データ７つ分の１１２ビットが変換後の列数７で割り切れるためである。このとき、列変換回路１０は、任意の７つの１６列入力データのライト動作の開始から、該７つの１６列入力データを７列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。
【０２７９】
以上で、７列変換モードにおける列変換回路１０の動作の説明を終了する。
【０２８０】
＜列変換モードの拡張＞
次に、列変換回路１０の列変換モードを拡張する場合を考える。例えば、列変換回路１０を、新たに８列変換モード、９列変換モード、１０列変換モードに対応させる。このとき、列変換回路１０は、ライト側の回路を列変換モードに関わらず共有しているので、新たな回路をライト側に必要としない。ただし、列変換回路１０には、８列、９列、１０列の各変換モードに応じたライトデータイネーブル信号が入力されるようにする。
【０２８１】
また、この場合、列変換回路１０は、リード側で、リードイネーブル信号RAM_EN［１５：０］およびリードデータセレクト信号RAM_SEL［１５：０］を列変換モードに応じて生成する必要がある。したがって、図２３に破線で示すように、列変換回路１０は、リードイネーブル生成回路１７０に、８列変換リードイネーブル生成回路１７０ｆと、９列変換リードイネーブル生成回路１７０ｇと、１０列変換リードイネーブル生成回路１７０ｈとをさらに含めるようにすればよい。そして、リードアドレスの初期値は、８列、９列、１０列の各変換モードに応じて適宜設定されればよい。また、図２３に破線で示すように、列変換回路１０は、リードデータセレクト生成回路１５０に、８列変換リードデータセレクト生成回路１５０ｆと、９列変換リードデータセレクト生成回路１５０ｇと、１０列変換リードデータセレクト生成回路１５０ｈとをさらに含めるようにすればよい。そして、リードデータセレクト信号の初期値は、８列、９列、１０列の各変換モードに応じて適宜設定されればよい。
【０２８２】
＜効果＞
次に、本発明の第２の実施の形態の効果について述べる。
【０２８３】
本実施の形態としての列変換回路は、論理回路の増大を抑えながら、変換後の列数を容易に拡張可能である。
【０２８４】
その理由は、本実施の形態において、ライトアドレス生成回路およびライトデータ制御回路の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、ライトアドレス生成回路は、同一の範囲（０〜２５５）の値を繰り返すライトアドレスを生成する。また、どの列変換モードにおいても、ライトデータ制御回路は、１６列入力データを、１６個のＲＡＭにおいてライトアドレスが示す位置に格納する。これにより、本実施の形態としての列変換回路は、列変換モードを拡張しても、ライト側に新たな回路を必要としない。
【０２８５】
また、さらなる理由として、本実施の形態において、リードアドレス生成回路およびデータセレクト・リタイミング回路の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、リードアドレス生成回路は、リードイネーブル信号にしたがうことによりＮ個ずつリードアドレスを更新する。また、どの列変換モードにおいても、データセレクト・リタイミング回路は、リードデータセレクト信号にしたがうことにより、１６個のＲＡＭのうちＮ個のＲＡＭにおいてリードアドレスの示す位置のデータを選択出力するからである。そして、本実施の形態としての列変換回路は、列変換モードを拡張するためには、拡張列数に応じたリードイネーブル信号を生成するリードイネーブル生成回路、および、拡張列数に応じたリードデータセレクト信号を生成するリードデータセレクト生成回路を増設するだけでよい。このようなリードイネーブル生成回路およびリードデータセレクト生成回路の増設は、データセレクト回路の論理段数の増強等と比較して少ない増設量で済む。
【０２８６】
また、本実施の形態としての列変換回路は、所定サイズの１６個のメモリを使用し、ライト動作およびリード動作を一定間隔に保ちながら実行することにより、より多くのデータを溜めることができる。したがって、本実施の形態としての列変換回路は、１６列の入力データの入力開始後、リード動作を開始するタイミングの自由度を向上させることになる。
【０２８７】
なお、本実施の形態としての列変換回路は、さらに各メモリにおけるリードアドレスをモニタリングするリードアドレスモニタリング部を備えてもよい。これにより、本実施の形態としての列変換回路は、変換後の列数を容易に拡張可能な列変換回路の実行処理の観測を容易にすることができる。
【０２８８】
なお、本実施の形態の説明において、１６列入力データを、２列、４列、５列、６列、および、７列に変換する列変換回路を中心に説明を行ったが、本発明において、ＭおよびＮの値を限定するものではない。その他の列数Ｍの入力データに対応させる場合、列変換回路は、各種カウンタの初期値や最大値を適切な値に設定する。また、この場合、列変換回路は、ＭビットのうちRDENCNT値に応じたＮビットを有効とするリードイネーブル信号を生成するリードイネーブル生成回路を、各列変換モードに応じて備えるようにする。また、この場合、列変換回路は、ＭビットのうちRDENCNT値に応じたＮビットを有効とするリードデータセレクト信号を生成するリードデータセレクト生成回路を、各列変換モードに応じて備えるようにする。これにより、本実施の形態としての列変換回路は、Ｍ列の入力データを多様な列数に変換する列変換モードを、容易に拡張可能となる。
【０２８９】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【０２９０】
１、１０    列変換回路
１１    列変換モード設定部
１２、１２０〜１２Ｍ−１    メモリ
１３    ライトアドレス生成部
１４    ライトデータ制御部
１５    選択信号生成部
１６    リードアドレス生成部
１７    リードアドレス更新制御部
１８    データ選択出力部
１３０    ライトアドレス生成回路
１４０    ライトデータ制御回路
１５０    リードデータセレクト生成回路
１５０ａ〜１５０ｈ    Ｎ列変換リードデータセレクト生成回路
１６０    リードアドレス生成回路
１７０    リードイネーブル生成回路
１７０ａ〜１７０ｈ    Ｎ列変換リードイネーブル生成回路
１８０    データセレクト・リタイミング回路
１８１    データセレクト回路
１８２    リタイミング回路
９０    列変換回路
９１    ライトデータ制御回路
９２、９２０〜９２４    ライトバッファ
９３    リードデータ制御回路
９４    データセレクト回路
【図１】
2013066083.tif 000018
【図２】
2013066083.tif 000019
【図３】
2013066083.tif 000020
【図４】
2013066083.tif 000021
【図５】
2013066083.tif 000022
【図６】
2013066083.tif 000023
【図７】
2013066083.tif 000024
【図８】
2013066083.tif 000025
【図９】
2013066083.tif 000026
【図１０】
2013066083.tif 000027
【図１１】
2013066083.tif 000028
【図１２】
2013066083.tif 000029
【図１３】
2013066083.tif 000030
【図１４】
2013066083.tif 000031
【図１５】
2013066083.tif 000032
【図１６】
2013066083.tif 000033
【図１７】
2013066083.tif 000034
【図１８】
2013066083.tif 000035
【図１９】
2013066083.tif 000036
【図２０】
2013066083.tif 000037
【図２１】
2013066083.tif 000038
【図２２】
2013066083.tif 000039
【図２３】
2013066083.tif 000040
【図２４】
2013066083.tif 000041
【図２５】
2013066083.tif 000042
【図２６】
2013066083.tif 000043
【図２７】
2013066083.tif 000044
【図２８】
2013066083.tif 000045