MMは正の整数列の入力データをNNはM>Nを満たす正の整数列に変換する列変換回路であって、変換後の列数Nを表す列変換モードを設定する列変換モード設定部と、少なくともM個の所定サイズのメモリと、前記M個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成するとともに、前記M個の各メモリにおいて該ライトアドレスの示す位置に前記M列の入力データの各ビットが格納されると、次のM列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新するライトアドレス生成部と、前記M列の入力データの各ビットを、前記M個の各メモリの前記ライトアドレスの示す位置に書き込むよう制御するライトデータ制御部と、前記M個のメモリのうち選択対象となるN個を示す選択信号を前記列変換モードに応じて生成するとともに、該選択信号が示すN個のメモリからデータが出力されると、次の他のN個を示すよう、前記列変換モードに応じて前記選択信号を更新する選択信号生成部と、前記選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成するリードアドレス生成部と、前記選択信号の更新に伴い、前記リードアドレス生成部を前記列変換モードに応じて制御するリードアドレス更新制御部と、前記M個のメモリから、前記選択信号および前記リードアドレスにしたがってN列のデータを読み出して出力するデータ選択出力部と、を備えた列変換回路。前記M列の入力データのn個分に相当するM×nビットが変換後の列数Nで割り切れるような1以上の整数をnとしたとき、前記ライトデータ制御部および前記データ選択出力部は、任意のn個の前記M列の入力データを前記メモリに順次書き込むライト動作の開始から、該n個のM列の入力データをN列に変換して順次出力するリード動作の開始までを、一定期間に保つようそれぞれ前記ライト動作および前記リード動作を実行することを特徴とする請求項1に記載の列変換回路。前記リードアドレス生成部によって生成される前記M個の各メモリにおけるリードアドレスをモニタリングするリードアドレスモニタリング部をさらに備えることを特徴とする請求項1または請求項2に記載の列変換回路。少なくともMMは正の整数個の所定サイズのメモリを用いて、変換後の列数NNはM>Nを満たす正の整数を表す列変換モードを設定し、前記M個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成し、前記M列の入力データの各ビットを、前記M個の各メモリの前記ライトアドレスの示す位置に書き込み、前記M個の各メモリにおいて次のM列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新していきながら、以降のM列の入力データの書き込みを順次行い、前記M個のメモリのうち選択対象となるN個を示す選択信号を前記列変換モードに応じて生成し、前記選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成し、前記M個のメモリから、前記選択信号および前記リードアドレスにしたがってN列のデータを読み出して出力し、前記M個のメモリのうち次の選択対象となる他のN個を示すよう、前記列変換モードに応じて前記選択信号を更新し、更新される選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すよう、前記列変換モードに応じて前記リードアドレスを生成し、選択信号が更新される毎に、該選択信号、および、該選択信号に応じて生成されたリードアドレスにしたがって、以降のN列のデータの出力を行う、列変換方法。前記M列の入力データのn個分に相当するM×nビットが変換後の列数Nで割り切れるような1以上の整数をnとしたとき、任意のn個の前記M列の入力データを前記メモリに順次書き込むライト動作の開始から、該n個のM列の入力データをN列に変換して順次出力するリード動作の開始までを、一定期間に保つようそれぞれ前記ライト動作および前記リード動作を実行することを特徴とする請求項4に記載の列変換方法。ここで、図24に示した列変換回路90において、さらに他の列変換モード例えば、6~16列変換に機能拡張することを考える。列変換回路90は、列変換モードの拡張のためには、列変換モードに応じた個数のライトバッファ92を必要とする。例えば、16列入力データに対して、6列変換機能を実現させるには、3つのライトバッファ92が必要となる。また、16列入力データに対して、7列変換機能を実現させるには、7つのライトバッファ92が必要となる。また、16列入力データに対して、8列変換機能を実現させるには、2つのライトバッファ92が必要となる。また、16列入力データに対して、9列変換モードを実現させるには、9つのライトバッファ92が必要となる。また、16列入力データに対して、10列変換モードを実現させるには、5つのライトバッファ92が必要となる。このように、図24に示した列変換回路90では、16ビット入力データに対して変換可能な列数列変換モードを拡張するためには、ライト側における論理回路の増大が問題となる。また、図24に示した列変換回路90において、変換可能な列数の増加に伴い、データセレクト回路94におけるデータ選択の論理段数が膨大に膨れ上がる。したがって、図24に示した列変換回路90では、変換可能な列数の拡張には、リード側における論理回路の増大も問題となる。このように、図24の列変換回路90では、変換可能な列数の拡張には、論理回路の多大な増加が必要となるという課題があった。また、特許文献1に記載された列変換回路において、多様な列数Nへ変換可能な列変換モードを搭載することを考える。例えば、特許文献1の図1には、4列の入力データを1列に変換する回路が図示されている。この列変換回路において、変換可能な列数を拡張するためには、メモリに入力されるバス幅の増加、分周回路の増設、列変換回路の複雑化が必要となる。したがって、特許文献1においても、多様な列数へ変換可能な列変換モードを拡張する際の、論理回路の増大を抑制することは難しかった。本発明は、上述の課題を解決するためになされたもので、変換後の列数を設定する列変換モードを搭載した列変換回路において、論理回路の増大を抑えながら変換後の列数を容易に拡張可能な列変換回路を提供することを目的とする。本発明の列変換回路は、MMは正の整数列の入力データをNNはM>Nを満たす正の整数列に変換する列変換回路であって、変換後の列数Nを表す列変換モードを設定する列変換モード設定部と、少なくともM個の所定サイズのメモリと、前記M個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成するとともに、前記M個の各メモリにおいて該ライトアドレスの示す位置に前記M列の入力データの各ビットが格納されると、次のM列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新するライトアドレス生成部と、前記M列の入力データの各ビットを、前記M個の各メモリの前記ライトアドレスの示す位置に書き込むよう制御するライトデータ制御部と、前記M個のメモリのうち選択対象となるN個を示す選択信号を前記列変換モードに応じて生成するとともに、該選択信号が示すN個のメモリからデータが出力されると、次の他のN個を示すよう、前記列変換モードに応じて前記選択信号を更新する選択信号生成部と、前記選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成するリードアドレス生成部と、前記選択信号の更新に伴い、前記リードアドレス生成部を前記列変換モードに応じて制御するリードアドレス更新制御部と、前記M個のメモリから、前記選択信号および前記リードアドレスにしたがってN列のデータを読み出して出力するデータ選択出力部と、を備える。また、本発明の列変換方法は、少なくともMMは正の整数個の所定サイズのメモリを用いて、変換後の列数NNはM>Nを満たす正の整数を表す列変換モードを設定し、前記M個の各メモリにおけるデータ書き込み位置を示すライトアドレスを生成し、前記M列の入力データの各ビットを、前記M個の各メモリの前記ライトアドレスの示す位置に書き込み、前記M個の各メモリにおいて次のM列の入力データのデータ書き込み位置を示すよう前記ライトアドレスを更新していきながら、以降のM列の入力データの書き込みを順次行い、前記M個のメモリのうち選択対象となるN個を示す選択信号を前記列変換モードに応じて生成し、前記選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すリードアドレスを生成し、前記M個のメモリから、前記選択信号および前記リードアドレスにしたがってN列のデータを読み出して出力し、前記M個のメモリのうち次の選択対象となる他のN個を示すよう、前記列変換モードに応じて前記選択信号を更新し、更新された選択信号が示すN個の前記各メモリにおけるデータ読み出し位置を示すよう、前記列変換モードに応じて前記リードアドレスを生成し、選択信号が更新される毎に、該選択信号、および、該選択信号に応じて生成されたリードアドレスにしたがって、以降のN列のデータの出力を行う。変換後の列数を設定する列変換モードを搭載した列変換回路において、論理回路の増大を抑えながら変換後の列数を容易に拡張可能な列変換回路を提供することができる。以下、本発明の実施の形態について、図面を参照して詳細に説明する。第1の実施の形態本発明の第1の実施の形態としての列変換回路1のブロック構成を図1に示す。図1において、列変換回路1は、列変換モード設定部11と、M個のメモリ120~12Mー1以下、総称してメモリ12ともいうと、ライトアドレス生成部13と、ライトデータ制御部14と、選択信号生成部15と、リードアドレス生成部16と、リードアドレス更新制御部17と、データ選択出力部18とを備える。列変換回路1は、入力されるM列のデータを、N列に変換して出力する回路である。列変換回路1において、入力データの列数Mはあらかじめ定められている。また、出力列数Nは、あらかじめ定められた1つ以上の列数から選択可能となっている。なお、本実施の形態において、MおよびNは正の整数であり、M>Nである。列変換モード設定部11は、変換後の列数Nを表す列変換モードを設定する。つまり、列変換回路1は、M列の入力データを、列変換モード設定部11において設定された列変換モードが示すN列に変換する。各メモリ12は、所定サイズWを有している。例えば、各メモリ12は、256ビットのRAMRandomAccessMemoryによって構成されていてもよい。M個の各メモリ12には、M列の入力データの各ビットが格納される。つまり、M個のメモリ12は、M列の入力データを、W個まで格納することが可能である。ライトアドレス生成部13は、M個の各メモリ12において共通のデータ書き込み位置を示すライトアドレスを生成する。もし、各メモリ12のサイズが256ビットであれば、ライトアドレスは、1ビット目~256ビット目までのいずれかを示す情報である。M個の各メモリ12において、ライトアドレス生成部13が生成したライトアドレスが示す位置には、M列の入力データの各ビットが格納される。また、ライトアドレス生成部13は、M個の各メモリ12のライトアドレスが示す位置にM列の入力データの各ビットが格納されると、次のM列の入力データの書き込み位置を示すようライトアドレスを更新する。例えば、ライトアドレスがiビット目を示しているとき、次のライトアドレスは、i1ビット目を示すものであってもよい。ライトデータ制御部14は、M列の入力データの各ビットを、各メモリ12のライトアドレスの示す位置に書き込む。例えば、ライトアドレスが1ビット目を示している場合、ライトデータ制御部14は、M個の各メモリ12の1ビット目合計Mビットに、M列の入力データを書き込む。選択信号生成部15は、M個のメモリ12のうちN個を示す選択信号を生成する。このNは、列変換モード設定部11において設定された列変換モードが示す数値である。つまり、選択信号生成部15は、列変換モード設定部11の設定内容に応じて動作する。また、選択信号生成部15は、選択信号が示すN個のメモリ12からデータが出力されると、次の他のN個を示すよう選択信号を更新する。例えば、Mが16でNが2である場合、選択信号生成部15が、ある時点でメモリ1215~1214を示す選択信号を生成していたとする。そして、このメモリ1215~1214からデータが出力されると、選択信号生成部15は、次のメモリ1213~1212を示す選択信号を生成する。また、選択信号生成部15は、全てのメモリ12を順次示す選択信号を生成した後は、再び最初に選択したメモリ12からを順次示す選択信号を生成していく。例えば、Mが16でNが4である場合、選択信号生成部15は、メモリ1215~1212、メモリ1211~128、メモリ127~124、メモリ123~120をそれぞれ示すよう、選択信号を順次更新した後、再びメモリ1215~1212から順に示すよう、選択信号を更新していく。また、Mが16でNが5である場合、選択信号生成部15は、メモリ1215~1211、メモリ1210~126、メモリ125~121をそれぞれ示すよう、選択信号を順次更新した後、メモリ120およびメモリ1215~1212、メモリ1211~127の順に示すよう、選択信号を更新していく。リードアドレス生成部16は、選択信号が示すN個の各メモリ12におけるリードアドレスを生成する。もし、各メモリ12のサイズが256ビットであれば、リードアドレスは、1ビット目~256ビット目までのいずれかを示す情報である。このとき、リードアドレス生成部16は、選択信号が示すN個のメモリ12のうち、既に一旦リードアドレスを生成済みのメモリ12については、前回生成したリードアドレスの位置を次の位置に更新するようにする。例えば、前回のリードアドレスがiビット目を示しているとき、次のリードアドレスは、i1ビット目であってもよい。リードアドレス更新制御部17は、リードアドレス生成部16を、列変換モードに応じて制御する。つまり、リードアドレス更新制御部17は、リードアドレス生成部16に対して、変換後の列数Nに応じて次にいずれのN個のメモリ12におけるリードアドレスを更新すればよいかを通知する。データ選択出力部18は、選択信号およびリードアドレスに基づいて、M個のメモリ12からN列のデータを読み出して出力する。つまり、データ選択出力部18は、M個のメモリ12のうち選択信号が示すN個のメモリ12において、各リードアドレスが示す各位置の計Nビットを選択出力する。以上のように構成された列変換回路1の動作について説明する。なお、列変換モード設定部11には、変換後の列数Nを表す列変換モードがあらかじめ設定されているものとする。まず、ライト側の動作について説明する。M列の入力データが列変換回路1に入力されると、列変換回路1はライト動作を開始する。ここでは、まず、ライトアドレス生成部13は、M個の各メモリ12におけるライトアドレスを生成する。ここで、最初に生成されるライトアドレスは、例えば、M個の各メモリ12における1ビット目を示すものであってもよい。次に、ライトデータ制御部14は、1つ目のM列の入力データの各ビットを、M個の各メモリ12のライトアドレスが示す位置に書き込む。次に、ライトアドレス生成部13は、M個の各メモリ12における次のデータ書き込み位置を示すようライトアドレスを更新する。ここで、更新されるライトアドレスは、例えば、前回の1ビット目に1を加算した2ビット目を示すものであってもよい。次に、ライトデータ制御部14は、2つ目のM列の入力データを、M個の各メモリ12のライトアドレスが示す位置に書き込む。このように、ライトアドレス生成部13により更新されるライトアドレスを用いて、ライトデータ制御部14は、M列の入力データをM個のメモリ12に書き込んでいく。次に、リード側の動作について説明する。1つ目のM列の入力データがM個のメモリ12に書き込まれた後、列変換回路1は、任意の時点からリード動作を開始する。ここでは、まず、選択信号生成部15は、M個のメモリ12のうち選択対象となるN個を示す選択信号を、列変換モードに応じて生成する。例えば、選択信号生成部15は、Mが16でNが2であれば、メモリ1215およびメモリ1214を示す選択信号を生成してもよい。次に、リードアドレス生成部16は、生成された選択信号が示すN個の各メモリ12におけるリードアドレスを生成する。例えば、リードアドレス生成部16は、メモリ1215およびメモリ1214の各1ビット目を示すリードアドレスを生成する。次に、データ選択出力部18は、M個のメモリ12から、選択信号およびリードアドレスにしたがって、N列のデータを読み出し、1つ目のN列変換データとして出力する。例えば、選択信号がメモリ1215およびメモリ1214を示しており、これらの各メモリにおけるリードアドレスが1ビット目を示している場合、データ選択出力部18は、メモリ1215およびメモリ1214の各1ビット目に格納されている合計2ビットのデータを、1つ目の2列変換データとして出力する。次に、選択信号生成部15は、M個のメモリ12のうち次の選択対象となる他のN個を示すよう、列変換モードに応じて選択信号を更新する。例えば、選択信号生成部15は、メモリ1213およびメモリ1212を示すよう選択信号を更新してもよい。次に、リードアドレス更新制御部17は、更新された選択信号が示すN個の各メモリ12におけるリードアドレスを生成するよう、リードアドレス生成部16に通知する。例えば、リードアドレス更新制御部17は、メモリ1213およびメモリ1212の各リードアドレスを生成するよう、リードアドレス生成部16に通知する。そして、リードアドレス生成部16は、リードアドレス更新制御部17の制御にしたがって、リードアドレスを生成する。例えば、リードアドレス生成部16は、メモリ1213およびメモリ1212の各1ビット目を示すリードアドレスを生成する。次に、データ選択出力部18は、M個のメモリ12から、選択信号およびリードアドレスにしたがって、N列のデータを読み出し、2つ目のN列変換データとして出力する。例えば、選択信号がメモリ1213およびメモリ1212を示しており、これらの各メモリにおけるリードアドレスが1ビット目を示している場合、データ選択出力部18は、メモリ1213およびメモリ1212の各1ビット目に格納されている合計2ビットのデータを、2つ目の2列変換データとして出力する。このようなリード動作を繰り返すことにより、列変換回路1は、1つ目のM列の入力データのMビットをN列変換して出力する。例えば、Mが16でNが2であれば、列変換回路1は、8つ目まで2列変換データを出力すると、1つ目の16列入力データの2列変換処理を終えたことになる。次に、選択信号生成部15は、M個のメモリ12のうち次の選択対象となるN個を示すよう、列変換モードに応じて選択信号を更新する。ここで、選択信号生成部15は、M個のメモリ12の全てを順次示す選択信号を生成済みなので、再度、最初のN個を示すよう選択信号を更新する。例えば、Mが16でNが2の場合について説明する。このとき、既にメモリ1215からメモリ120までの16個を順次示す選択信号を生成済みなので、選択信号生成部15は、再度メモリ1215およびメモリ1214を示すよう選択信号を更新する。次に、リードアドレス更新制御部17は、更新された選択信号が示すN個の各メモリ12におけるリードアドレスを更新するよう、リードアドレス生成部16に通知する。例えば、リードアドレス更新制御部17は、メモリ1215およびメモリ1214におけるリードアドレスを生成するよう、リードアドレス生成部16に通知する。そして、リードアドレス生成部16は、リードアドレス更新制御部17の制御にしたがって、リードアドレスを更新する。例えば、リードアドレス更新制御部17からメモリ1215およびメモリ1214のリードアドレス生成を通知された場合について説明する。この場合、リードアドレス生成部16は、既にこれらの各メモリについて1ビット目を示すリードアドレスを生成しているので、これらに1を加算して2ビット目を示すよう各リードアドレスを更新する。次に、データ選択出力部18は、M個のメモリ12から、選択信号およびリードアドレスにしたがって、N列のデータを読み出し、N列変換データとして出力する。例えば、選択信号がメモリ1215およびメモリ1214を示し、これらの各メモリにおけるリードアドレスが2ビット目を示している場合、データ選択出力部18は、メモリ1215およびメモリ1214の各2ビット目に格納されている合計2ビットのデータを、9つ目の2列変換データとして出力する。列変換回路1は、このようなリード動作を繰り返す。なお、上記動作の説明では、MがNで割り切れるM=16、N=2場合を例として説明を行ったが、これ以外の場合も、列変換回路1は同様に動作することにより列変換処理を行う。例えば、16列変換データを5列に変換する場合M=16、N=5の動作について説明する。この場合も、列変換回路1のライト側の動作は、上述の動作と同様である。また、この場合、リード動作において、選択信号生成部15は、メモリ12を5つずつ示すよう選択信号を更新していく。例えば、選択信号生成部15は、メモリ1215~メモリ1211の5つ、メモリ1210~メモリ126の5つ、メモリ125~メモリ121の5つ、メモリ120およびメモリ1215~メモリ1212の5つ、といった順に選択信号を更新していけばよい。そして、リードアドレス更新制御部17は、メモリ1215~メモリ1211の5つ、メモリ1210~メモリ126の5つ、メモリ125~メモリ121の5つ、メモリ120およびメモリ1215~メモリ1212の5つ、といった順に、リードアドレスを生成するよう、リードアドレス生成部16に通知していけばよい。ここで、リードアドレス生成部16は、メモリ120およびメモリ1215~メモリ1212の5つにおけるリードアドレスを更新するよう通知された場合、メモリ1215については、1ビット目を示すリードアドレスを生成し、メモリ120~メモリ123については、前回の1ビット目を更新して2ビット目を示すリードアドレスを生成するようにすればよい。そして、このとき、データ選択出力部18は、メモリ120の1ビット目およびメモリ1215~メモリ1212の2ビット目の合計5ビットを、4つ目の5列変換データとして出力することになる。以上で、列変換回路1の動作の説明を終了する。なお、上述の動作において、列変換回路1は、任意のn個のM列入力データのライト動作開始から、該n個のM列入力データをN列変換して出力するリード動作開始までを一定期間に保つよう動作することが好ましい。ここで、nは、M列入力データn個分に相当するM×nビットが変換後の列数Nで割り切れるような値である。例えば、Mが16でNが5であれば、nは5となる。この場合、列変換回路1は、任意の5個のM列入力データのライト動作開始から、該5個のM列入力データをN列変換して出力するリード動作開始までを一定期間に保つよう動作することが好ましい。次に、本発明の第1の実施の形態の効果について述べる。本実施の形態としての列変換回路は、論理回路の増大を抑えながら、変換後の列数を容易に拡張可能である。その理由は、本実施の形態において、ライト側におけるライトアドレス生成部およびライトデータ制御部の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、ライトアドレス生成部は、ライトアドレスを同様に更新する。そして、ライトデータ制御部は、M列入力データを、M個のメモリにおいてライトアドレスが示す位置に格納していく。これにより、本実施の形態としての列変換回路は、列変換モードを拡張しても、ライト側に回路を増設する必要がない。また、リード側において、リードアドレス生成部およびデータ選択出力部の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、リードアドレス生成回路は、リードアドレス更新制御部の制御にしたがってN個ずつリードアドレスを更新する。また、どの列変換モードにおいても、データ選択出力部は、選択信号にしたがって、M個のメモリのうちN個においてリードアドレスの示す位置のデータを選択出力するからである。そして、本実施の形態としての列変換回路は、列変換モードを拡張する場合、拡張する列変換モードの列数に応じてリードアドレス更新制御部および選択信号生成部の構成を拡張すればよい。これらの各部の構成の拡張は、データセレクト回路の論理段数の増設等と比較して遙かに少ない増設量で済む。したがって、本実施の形態としての列変換回路は、列変換モードを拡張しても、リード側の回路増設量をより低減することができる。第2の実施の形態次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。<構成>まず、本発明の第2の実施の形態としての列変換回路10の構成を、図2に示す。図2において、列変換回路10は、16列入力データを、2列、4列、5列、6列、および7列のいずれかに変換可能な回路である。つまり、本発明において、Mに16を適用し、Nに2、4、5、6、7を適用したものである。図2において、列変換回路10は、本発明の列変換モード設定部の一実施形態として、列変換モード設定信号110が入力されるインタフェースを含む。また、列変換回路10は、本発明のメモリの一実施形態として、16個のRAM0~RAM15を含む。また、列変換回路10は、本発明のライトアドレス生成部の一実施形態として、ライトアドレス生成回路130を含む。また、列変換回路10は、本発明のライトデータ制御部の一実施形態として、ライトデータ制御回路140を含む。また、列変換回路10は、本発明のリードアドレス生成部の一実施形態として、リードアドレス生成回路160を含む。また、列変換回路10は、本発明のリードアドレス更新制御部の一実施形態としてリードイネーブル生成回路170を含む。また、列変換回路10は、本発明の選択信号生成部の一実施形態として、リードデータセレクト生成回路150を含む。また、列変換回路10は、本発明のデータ選択出力部の一実施形態として、データセレクトリタイミング回路180を含む。また、ライトアドレス生成回路130およびライトデータ制御回路140は、クロック信号ライトCLKに基づいて動作する。また、リードデータセレクト生成回路150と、リードアドレス生成回路160と、リードイネーブル生成回路170と、データセレクトリタイミング回路180とは、クロック信号リードCLKに基づいて動作する。リードCLKは、ライトCLKに対して2倍の周波数で動作するクロック信号である。図2において、列変換モード設定信号110は、2列変換モード、4列変換モード、5列変換モード、6列変換モード、および7列変換モードのいずれかを表す。例えば、000は2列変換モードを表し、001は、4列変換モードを表し、010は、5列変換モードを表し、011は、6列変換モードを表し、100は、7列変換モードを表していてもよい。ライトデータ[15:0]は、16列入力データである。ライトデータ[15:0]は、先頭の16列から順次入力される。図3を用いて、ライトデータ[15:0]について説明する。図3において、i番目に入力されるライトデータ[15:0]は、i-15~i-0で表されている。また、以降、i-jを、i番目に入力されるライトデータ[15:0]のjビット目ともいう。また、ライトデータ先頭パルスは、1番目のライトデータ[15:0]が入力されたことを示す信号である。また、ライトデータ[15:0]は、256個合計4096ビット分を、1ユニットとして入力されていく。各RAM0~15は、1ビットのデータを256個格納可能なRAM1bit×256WRAMによって構成される。図4に、RAM0~15のデータ格納領域を示す。図4において、i-jは、RAMjにおけるiビット目の格納領域を表している。つまり、図4に示すRAMjただし、jは0~15の記載の右に並ぶ1-j~256-jまでが、1つのRAMjのデータ格納領域を表している。このように、16個のRAM0~15は、ライトデータ1ユニット16列データ×256=4096ビット分のデータを、格納可能である。ライトアドレス生成回路130は、0~255までの値を繰り返すライトアドレス[7:0]を生成する。このライトアドレス[7:0]は、16個のRAMjにおいて共通のデータ書き込み位置を示す。すなわち、ライトアドレス0~255は、各RAMjの1~256ビット目の位置を表している。ライトアドレス生成回路130は、ライトデータイネーブル信号が有効‘H’となる度に、ライトアドレス[7:0]を1カウントアップする。ここで、ライトデータイネーブル信号について説明する。ライトデータイネーブル信号は、16列ライトデータ[15:0]をRAMに書き込むタイミングを示す信号である。ライトデータイネーブル信号は、列変換モードに応じて異なるタイミングで有効となる。これは、ライト動作およびリード動作が一定期間を保ちながら行われるようにするためである。ライトデータイネーブル信号については詳細を後述する。図2に戻り、ライトデータ制御回路140について説明する。ライトデータ制御回路140は、ライトデータ[15:0]をRAM15~0に格納するタイミングを制御する。つまり、ライトデータ制御回路140は、ライトデータ[15:0]の各ビットを、ライトデータイネーブル信号に基づくタイミングで、RAM15~0に出力する。このとき、ライトデータ[15:0]の各ビットは、RAM15~0において、ライトアドレス[7:0]が示す位置に格納される。リードアドレス生成回路160は、16個の各RAMjについて、リードアドレス[7:0]を生成する。1つのリードアドレス[7:0]は、1個のRAMjにおけるデータ読み出し位置を示す。リードアドレス生成回路160は、後述のリードイネーブル生成回路170から出力されるRAMEN[15:0]信号に基づいて、16本のリードアドレス[7:0]のうちN本を更新する。リードイネーブル生成回路170から出力されるRAMEN[15:0]信号は、列変換モードに応じて異なるものである。したがって、リードアドレス生成回路160は、16本のリードアドレス[7:0]を、列変換モードに応じて異なるタイミングでそれぞれ更新していく。リードアドレス生成回路160の詳細を、図5に示す。リードアドレス生成回路160は、16個のカウンタRDADR15~0を用いて、16本のリードアドレス[7:0]を生成する。これらのカウンタRDADR15~0の初期値は、列変換モードにより異なるものが設定される。ここで、カウンタRDADR15~0の初期値について説明する。まず、2列変換モードにおけるカウンタRDADR15~RDADR0の初期設定値を、表1に示す。次に、4列変換モードにおけるカウンタRDADR15~RDADR0の初期設定値を、表2に示す。次に、5列変換モードにおけるカウンタRDADR15~RDADR0の初期設定値を、表3に示す。次に、6列変換モードにおけるカウンタRDADR15~RDADR0の初期設定値を、表4に示す。次に、7列変換モードにおけるカウンタRDADR15~RDADR0の初期設定値を、表5に示す。上記表1~表5に示したように、カウンタRDADR15~RDADR0は、リードデータ先頭パルスが有効時に、リードCLKの立ち上がりエッジで、各表に示した値に初期設定される。すなわち、これらの値が、各変換モードにおける16本のリードアドレスの初期値となる。そして、これらのカウンタRDADR15~0は、リードCLKに基づく所定のタイミングで、対応する入力信号RAMEN15~RAMEN0が‘H’であれば、1のカウントアップを実行する。RAMEN信号については、詳細を後述する。これにより、リードアドレス生成回路160は、16本のリードアドレスとして、それぞれの初期値から初めて、0~255を繰り返す値を生成する。また、図5に示すように、リードアドレス生成回路160は、生成した16本のリードアドレスをRAM15~0に対して出力する。これにより、RAM15~0からは、それぞれのリードアドレスの示す位置に格納された1ビットずつの合計16ビットのRAM格納データ[15:0]が出力されることになる。次に、リードイネーブル生成回路170およびリードデータセレクト生成回路150の詳細を、図6を用いて説明する。図6において、リードデータセレクト生成回路150は、列変換モード毎に、リードデータセレクト信号を生成する回路を含む。ここで、リードデータセレクト信号は、本発明の選択信号の一実施形態である。リードデータセレクト信号は、M個のRAMjのうち選択対象となるN個を示す。具体的には、リードデータセレクト生成回路150は、2列変換リードデータセレクト生成回路150a、4列変換リードデータセレクト生成回路150b、5列変換リードデータセレクト生成回路150c、6列変換リードデータセレクト生成回路150d、7列変換リードデータセレクト生成回路150e以降、総称してN列変換リードデータセレクト生成回路150ともいうを有する。各N列変換リードデータセレクト生成回路150は、それぞれ対応する列変換モードに応じてリードデータセレクト信号RAMSEL[15:0]を生成し、データセレクトリタイミング回路180に出力する。このリードデータセレクト信号RAMSEL[15:0]は、16個のRAM15~RAM0から出力される16ビットのRAM格納データ[15:0]において、選択対象となるNビットのデータ位置を示しているとも言える。また、各N列変換リードデータセレクト生成回路150は、カウント値RDENCNTが変化する度にRAMSEL[15:0]を更新する。ここで、カウント値RDENCNTについて説明する。カウント値RDENCNTは、リードCLKの4CLK毎にカウントアップされる信号である。ただし、列変換モード設定信号110に応じて、RDENCNTの最大カウント値には、異なる値が設定される。カウント値RDENCNTは、16個のRAMjのうちN個ずつが順次選択されていく際に、再び同一の組み合わせのN個のRAMjが選択されるまでの選択回数に基づき設定される。例えば、2列変換モードでは、RDENCNTが0のとき、RAM15、RAM14が選択され、RDENCNTが1のとき、RAM13、RAM12が選択されていくとすると、RDENCNTが7のとき、RAM1、RAM0が選択されることになる。そして、次に選択されるのは、再びRAM15、RAM14となるため、RDENCNTの最大カウント値は7である。また、同様に、4列変換モードでは、RDENCNTの最大カウント値は3である。また、同様に、5列変換モードでは、RDENCNTの最大カウント値は15である。また、同様に、6列変換モードでは、RDENCNTの最大カウント値は7である。また、同様に、7列変換モードでは、RDENCNTの最大カウント値は15である。次に、2列変換リードデータセレクト生成回路150aについて説明する。2列変換リードデータセレクト生成回路150aは、2列変換モードで0~7を繰り返すカウンタRDENCNTを用いて動作する。2列変換リードデータセレクト生成回路150aが、RDENCNTの値に応じて出力する信号の一覧を、表6に示す。表6に示すように、例えば、2列変換リードデータセレクト生成回路150aは、RDENCNT=0ならば、データセレクトリタイミング回路180に対して、RAMSEL15=‘H’およびRAMSEL14=‘H’を出力する。また、例えば、2列変換リードデータセレクト生成回路150aは、RDENCNT=1ならば、データセレクトリタイミング回路180に対して、RAMSEL13=‘H’およびRAMSEL12=‘H’を出力する。このように、2列変換リードデータセレクト生成回路150aは、RDENCNTが変化する度に、そのカウント値に応じて、RAMSEL[15:0]のうち2つずつを‘H’とするよう切り替えながら出力していく。次に、4列変換リードデータセレクト生成回路150bについて説明する。4列変換リードデータセレクト生成回路150bは、4列変換モードで0~3を繰り返すカウンタRDENCNTを用いて動作する。4列変換リードデータセレクト生成回路150bが、RDENCNTの値に応じて出力する信号の一覧を、表7に示す。表7に示すように、例えば、4列変換リードデータセレクト生成回路150bは、RDENCNT=0ならば、データセレクトリタイミング回路180に対して、RAMSEL15~RAMSEL12を有効‘H’にして出力する。また、例えば、4列変換リードデータセレクト生成回路150bは、RDENCNT=1ならば、データセレクトリタイミング回路180に対して、RAMSEL11~RAMSEL8を有効‘H’にして出力する。このように、4列変換リードデータセレクト生成回路150bは、RDENCNTが変化する度に、そのカウント値に応じて、RAMSEL[15:0]のうち4つずつを‘H’とするよう切り替えながら出力していく。次に、5列変換リードデータセレクト生成回路150cについて説明する。5列変換リードデータセレクト生成回路150cは、5列変換モードで0~15を繰り返すカウンタRDENCNTを用いて動作する。5列変換リードデータセレクト生成回路150cが、RDENCNTの値に応じて出力する信号の一覧を、表8に示す。表8に示すように、例えば、5列変換リードデータセレクト生成回路150cは、RDENCNT=0ならば、データセレクトリタイミング回路180に対して、RAMSEL15~RAMSEL11を有効‘H’にして出力する。また、例えば、5列変換リードデータセレクト生成回路150cは、RDENCNT=1ならば、データセレクトリタイミング回路180に対して、RAMSEL10~RAMSEL6を有効‘H’にして出力する。このように、5列変換リードデータセレクト生成回路150cは、RDENCNTが変化する度に、そのカウント値に応じて、RAMSELのうち5つずつを‘H’とするよう切り替えながら出力していく。次に、6列変換リードデータセレクト生成回路150dについて説明する。6列変換リードデータセレクト生成回路150dは、6列変換モードで0~7を繰り返すカウンタRDENCNTを用いて動作する。6列変換リードデータセレクト生成回路150dが、RDENCNTの値に応じて出力する信号の一覧を、表9に示す。表9に示すように、例えば、6列変換リードデータセレクト生成回路150dは、RDENCNT=0ならば、データセレクトリタイミング回路180に対して、RAMSEL15~RAMSEL10を有効‘H’にして出力する。また、例えば、6列変換リードデータセレクト生成回路150dは、RDENCNT=1ならば、データセレクトリタイミング回路180に対して、RAMSEL9~RAMSEL4を有効‘H’にして出力する。このように、6列変換リードデータセレクト生成回路150dは、RDENCNTが変化する度に、そのカウント値に応じて、RAMSEL[15:0]のうち6つずつを‘H’とするよう切り替えながら出力していく。次に、7列変換リードデータセレクト生成回路150eについて説明する。7列変換リードデータセレクト生成回路150eは、7列変換モードで0~15を繰り返すカウンタRDENCNTを用いて動作する。7列変換リードデータセレクト生成回路150eが、RDENCNTの値に応じて出力する信号の一覧を、表10に示す。表10に示すように、例えば、7列変換リードデータセレクト生成回路150eは、RDENCNT=0ならば、データセレクトリタイミング回路180に対して、RAMSEL15~RAMSEL9を有効‘H’にして出力する。また、例えば、7列変換リードデータセレクト生成回路150eは、RDENCNT=1ならば、データセレクトリタイミング回路180に対して、RAMSEL8~RAMSEL2を有効‘H’にして出力する。このように、7列変換リードデータセレクト生成回路150eは、RDENCNTが変化する度に、そのカウント値に応じて、RAMSEL[15:0]のうち7つずつを‘H’とするよう切り替えながら出力していく。次に、リードイネーブル生成回路170について説明する。図6において、リードイネーブル生成回路170は、列変換モード毎に、リードイネーブル信号を生成する回路を含む。ここで、リードイネーブル信号は、16本のリードアドレスのうち、更新対象となるN本を示す。具体的には、リードイネーブル生成回路170は、2列変換リードイネーブル生成回路170aと、4列変換リードイネーブル生成回路170bと、5列変換リードイネーブル生成回路170cと、6列変換リードイネーブル生成回路170dと、7列変換リードイネーブル生成回路170eとを含む。これらの各回路を、以降、総称してN列変換リードイネーブル生成回路170ともいう。各N列変換リードイネーブル生成回路170は、16本のリードアドレスのうち更新対象となるN本を示すリードイネーブル信号RAMEN[15:0]を、リードアドレス生成回路160に対して出力する。また、各N列変換リードイネーブル生成回路170は、カウント値RDENCNTに応じて、RDTIM信号が有効となると、RAMEN[15:0]を更新する。ここで、RDTIM信号は、カウント値RDENCNTが変化後リードCLKで3CLK目に1CLK期間有効となる信号である。言い換えると、RDTIM信号は、カウント値RDENCNTが変化する直前の1CLK期間で有効となる。これにより、各N列変換リードイネーブル生成回路170は、RDENCNT値の次の変化のタイミングでリードアドレスが更新されるよう、RAMEN[15:0]信号をリードアドレス生成回路160に出力することになる。次に、2列変換リードイネーブル生成回路170aについて説明する。2列変換リードイネーブル生成回路170aは、2列変換モードで0~7を繰り返すカウンタRDENCNTを用いて動作する。ここで、2列変換リードイネーブル生成回路170aが、RDENCNTの値に応じて出力する信号の一覧を、表11に示す。表11に示すように、例えば、2列変換リードイネーブル生成回路170aは、RDENCNT=0およびRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN13=‘H’およびRAMEN12=‘H’を出力する。また、例えば、2列変換リードイネーブル生成回路170aは、RDENCNT=1かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN11=‘H’およびRAMEN10=‘H’を出力する。このように、2列変換リードイネーブル生成回路170aは、RDTIM=‘H’となる度、RDENCNTの値に応じて、RAMEN[15:0]のうち2つずつを‘H’とするよう切り替えながら出力していく。次に、4列変換リードイネーブル生成回路170bについて説明する。4列変換リードイネーブル生成回路170bは、4列変換モードで0~3を繰り返すカウンタRDENCNTを用いて動作する。4列変換リードイネーブル生成回路170bが、RDENCNTの値に応じて出力する信号の一覧を、表12に示す。表12に示すように、例えば、4列変換リードイネーブル生成回路170bは、RDENCNT=0かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN11~RAMEN8をそれぞれ‘H’として出力する。また、例えば、4列変換リードイネーブル生成回路170bは、RDENCNT=1かつRDTIM=‘H’ならば、RAMEN7~RAMEN4をそれぞれ‘H’として出力する。このように、4列変換リードイネーブル生成回路170bは、RDTIM=‘H’となる度、RDENCNTの値に応じて、RAMEN[15:0]のうち4つずつを‘H’とするよう切り替えながら出力していく。次に、5列変換リードイネーブル生成回路170cについて説明する。5列変換リードイネーブル生成回路170cは、5列変換モードで0~15を繰り返すカウンタRDENCNTを用いて動作する。5列変換リードイネーブル生成回路170cが、RDENCNTの値に応じて出力する信号の一覧を、表13に示す。表13に示すように、例えば、5列変換リードイネーブル生成回路170cは、RDENCNT=0かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN10~RAMEN6をそれぞれ‘H’として出力する。また、例えば、5列変換リードイネーブル生成回路170cは、RDENCNT=1かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN5~RAMEN1をそれぞれ‘H’として出力する。このように、5列変換リードイネーブル生成回路170cは、RDTIM=‘H’となる度、RDENCNTの値に応じて、RAMEN[15:0]のうち5つずつを‘H’とするよう切り替えながら出力していく。次に、6列変換リードイネーブル生成回路170dについて説明する。6列変換リードイネーブル生成回路170dは、6列変換モードで0~7を繰り返すカウンタRDENCNTを用いて動作する。6列変換リードイネーブル生成回路170dが、RDENCNTの値に応じて出力する信号の一覧を、表14に示す。表14に示すように、例えば、6列変換リードイネーブル生成回路170dは、RDENCNT=0かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN9~RAMEN4をそれぞれ‘H’として出力する。また、例えば、6列変換リードイネーブル生成回路170dは、RDENCNT=1かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN3~RAMEN0およびRAMEN15~RAMEN14をそれぞれ‘H’として出力する。このように、6列変換リードイネーブル生成回路170dは、RDTIM=‘H’となる度、RDENCNTの値に応じて、RAMEN[15:0]のうち6つずつを‘H’とするよう切り替えながら出力していく。次に、7列変換リードイネーブル生成回路170eについて説明する。7列変換リードイネーブル生成回路170eは、7列変換モードで0~15を繰り返すカウンタRDENCNTを用いて動作する。7列変換リードイネーブル生成回路170eが、RDENCNTの値に応じて出力する信号の一覧を、表15に示す。表15に示すように、例えば、7列変換リードイネーブル生成回路170eは、RDENCNT=0かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN8~RAMEN2をそれぞれ‘H’として出力する。また、例えば、7列変換リードイネーブル生成回路170eは、RDENCNT=1かつRDTIM=‘H’ならば、リードアドレス生成回路160に対して、RAMEN1~RAMEN0およびRAMEN15~RAMEN11をそれぞれ‘H’として出力する。このように、7列変換リードイネーブル生成回路170eは、RDTIM=‘H’となる度、RDENCNTの値に応じて、RAMENのうち7つずつを‘H’とするよう切り替えながら出力していく。次に、図2に戻り、データセレクトリタイミング回路180について説明する。データセレクトリタイミング回路180は、データセレクト回路181およびリタイミング回路182を有する。データセレクト回路181には、RAM格納データ[15:0]およびRAMSEL[15:0]が入力される。前述のように、RAM格納データ[15:0]は、RAM15~RAM0においてそれぞれのリードアドレスの示す位置に格納された1ビットずつの合計16ビットのデータである。データセレクト回路181は、前述のRDENCNTのカウント値が変わる毎に、RAM格納データ[15:0]のうち、RAMSEL[15:0]の示す位置に格納されたデータを選択する。ここで、RAMSEL[15:0]は、16ビットのうち列変換モードに応じたNビットが有効‘H’となっている。よって、データセレクト回路181は、列変換モードに応じたN列を選択することになる。そして、リタイミング回路182は、データセレクト回路181により選択されたN列のデータを、RDTIM信号の有効‘H’後、リードCLKの立ち上がりエッジでリタイミングして出力する。データセレクトリタイミング回路180から出力されるデータが、N列変換データ[N-1:0となる。<動作>以上のように構成された列変換回路10の動作について、図面を参照して詳細に説明する。<ライト動作>まず、ライト動作について、図7~図11を参照して説明する。列変換回路10は、ライトデータ先頭パルスが有効‘H’になると、ライト動作を開始する。ライトデータ先頭パルスは、図7~図11に示すように、2列変換モードでは16CLK期間、4列変換モードでは8CLK期間、5列~7列変換モードでは4CLK期間、それぞれ有効となる。以降、列変換回路10には、ライトデータイネーブル信号が所定のタイミングで入力される。ここで、ライトデータイネーブル信号は、列変換モードに応じて異なるタイミングで有効となる。2列変換モードでは、図7に示すように、ライトデータイネーブル信号は、ライトCLKの16CLK毎に1CLKの期間有効となる。4列変換モードでは、図8に示すように、ライトデータイネーブル信号は、ライトCLKの8CLK毎に1CLKの期間有効となる。5列変換モードでは、図9に示すように、ライトデータイネーブル信号は、ライトCLKの4CLK毎に2回、8CLK毎に3回、合計で32CLK毎に5回、それぞれ1CLKの期間有効となる。6列変換モードでは、図10に示すように、ライトデータイネーブル信号は、ライトCLKの4CLK毎に2回、8CLK毎に1回、合計16CLK毎に3回、それぞれ1CLKの期間有効となる。7列変換モードでは、図11に示すように、ライトデータイネーブル信号は、ライトCLKの4CLK毎に6回、8CLK毎に1回、合計32CLK毎に7回、それぞれ1CLKの期間有効となる。以降のライト動作の説明は、各列変換モードにおいて共通である。ライトアドレス生成回路130は、ライトデータ先頭パルスおよびライトデータイネーブル信号が共に有効‘H’時に、ライトCLKの立ち上がりエッジにより、ライトアドレスを0に初期化する。そして、ライトアドレス生成回路130は、ライトデータイネーブル信号が有効‘H’時に、ライトCLKの立ち上がりエッジにより、ライトアドレスに対して1のカウントアップを実行する。そして、ライトアドレス生成回路130は、ライトアドレスが255であり、かつ、ライトデータイネーブル信号が有効‘H’時に、ライトCLKの立ち上がりエッジにより、ライトアドレスを再度0に初期化する。これにより、ライトアドレスは、0~255を繰り返すことになる。各変換モードにおけるライトアドレスは、図2~図7にそれぞれ示した通りとなる。次に、ライトデータ制御回路140は、ライトデータ[15:0]を、RAM15~0に対して出力する。このとき、ライトデータ制御回路140は、ライトデータイネーブル信号を用いることにより、ライトアドレスおよびライトデータの変化点が一致するよう、タイミングを調整する。具体的には、ライトデータ制御回路140は、ライトデータ[15:0]のうちライトデータ15を、RAM15に対して出力する。同様に、ライトデータ制御回路140は、ライトデータ[15:0]のうちライトデータjを、RAMjに対して出力する。言い換えると、ライトデータ制御回路140は、ライトデータ[15:0]を1列データに分割し、各1列データを、RAM15~RAM0のそれぞれに対して出力する。例えば、図2~図7において、1つ目のライトデータ[15:0]1000hexは、ライトデータイネーブル信号に同期して16個のRAMjのアドレス0の位置に格納される。同様に、2番目のライトデータ[15:0]1001hexは、ライトデータイネーブル信号に同期して16個のRAMjのアドレス1の位置に格納される。このように、列変換回路10は、列変換モードの設定に関わらず、ライトアドレスを0~255まで繰り返し更新する。そして、列変換回路10は、ライトアドレスが更新される毎に、次のライトデータ[15:0]を16個のRAMjのライトアドレスが示す位置に格納していく。このような列変換回路10のライト動作により、RAM15~RAM0に格納されるライトデータのイメージを図12に示す。図12において、1ユニット目の先頭の16ビットのライトデータ115~10は、ライトアドレスが0となるタイミングで、RAM15~RAM0の1ビット目115~10に格納される。次に、2番目の16ビットライトデータ215~20は、ライトアドレスが1となるタイミングで、RAM15~RAM0の2ビット目215~20に格納される。そして、1ユニット目の最後にあたる256番目の16ビットライトデータ25615~2560は、ライトアドレスが255となるタイミングで、RAM15~RAM0の256ビット目25615~2560に格納される。以降、2ユニット目のライトデータは、再びRAM15~RAM0のライトアドレス0から順に格納されていく。なお、各RAM15~10の各ライトアドレスの位置に既に格納されているデータは、同一のライトアドレスの位置に次のユニットのライトデータが格納される前に、後述のリード動作により読み出されている。以上で、ライト動作の説明を終了する。次に、リード動作について説明する。<2列変換モードにおけるリード動作>2列変換モードにおけるリード側のタイミングチャートを図13に示す。ここでは、まず、リードデータ先頭パルスが有効‘H’となると、列変換回路10は、リード動作を開始する。リードCLKカウンタは、リードデータ先頭パルスが有効‘H’時に、リードCLKの立ち上がりエッジでカウント値を0に初期化する。その後、リードCLKカウンタは、リードCLKに同期して0~3までを繰り返しカウントする。リードイネーブルRDTIM信号は、リードCLKカウンタが3で有効‘H’となる。RDTIM信号は、リードイネーブル生成回路160から出力されるRAMEN[15:0]の更新タイミングを示す。また、RDTIM信号は、リタイミング回路182から変換データを出力するタイミングも示している。リードイネーブルカウンタRDENCNTは、リードデータ先頭パルスが有効時に、0に初期化される。この時、リード側の2列変換モード000が設定されるとともに、RDENCNTの最大カウント値が7にセットされる。前述のように、リードイネーブルカウンタRDENCNTは、リードイネーブル信号RAMEN[15:0]およびリードデータセレクト信号RAMSEL[15:0]の更新を制御する値となる。また、リードデータ先頭パルスが有効時に、RAM15およびRAM14のリードアドレスは、0に初期設定される。また、RAM13~RAM0のリードアドレスは、255に初期設定される。これらの値は、前述のように、表1に示した16個のカウンタRDADR15~RDADR0の初期設定値である。次に、データセレクト回路181は、列変換先頭パルスが有効になると、初期設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=0であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL15およびRAMSEL14が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[15:14]を選択する。次に、リタイミング回路182は、RDENCNT=0かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[15:14]をリタイミングして出力する。これが、1つ目の2列変換データ[1:0]となる。図13には、1つ目の2列変換データ[1:0]として、002進表記を示している。これは、図7に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の15~14ビット目に相当する。なお、前述のように、16列入力データの0~15ビット目とは、最下位~最上位までの各ビットをそれぞれ示すものとする。次に、RDENCNT=0、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN13およびRAMEN12を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM13およびRAM12におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM13およびRAM12のリードアドレスを、それまでの255を1カウントアップして0に更新する。この時点で、RAM15~RAM12のリードアドレスは、0に設定され、RAM11~RAM0のリードアドレスは、255に設定されている。次に、データセレクト回路181は、更新された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=1であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL13およびRAMSEL12が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[13:12]を選択する。次に、リタイミング回路182は、RDENCNT=1かつRDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[13:12]をリタイミングして出力する。これが、2つ目の2列変換データ[1:0]となる。図13には、2つ目の2列変換データ[1:0]として、012進表記を示している。これは、図7に示した1つ目の16列入力データの一例100016進表記、すなわち、=00010000000000002進表記の13~12ビット目に相当する。このようにして、2列変換モードでは、RDENCNTのカウント値が0~7を繰り返す。そして、リードデータセレクト生成回路150は、RDENCNTのカウント値が変化すると、RAM15~RAM0の16個のRAMのうち選択対象となる2つのRAMを示すよう、RAMSEL[15:0]のうち‘H’となる2ビットを順次切り替える。また、リードイネーブル生成回路170は、RDTIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する2本のリードアドレスを示すよう、RAMEN[15:0]のうち‘H’となる2ビットを順次切り替える。そして、リードアドレス生成回路160は、RAMEN[15:0]が示すRAMjにおけるリードアドレスをカウントアップする。そして、データセレクトリタイミング回路180は、RAMSEL[15:0]およびリードアドレスに基づいて、2列変換データを選択出力していく。このようにして出力される2列変換データは、図14に示すとおりとなる。図14において、i-jは、i番目に入力されたライトデータのjビット目のデータを示している。つまり、1番目のライトデータの15~14ビット目のデータが、1つ目の2列変換データであることを表している。以上のように動作することにより、2列変換モードでは、列変換回路10は、16列入力データ1つ分を1単位として、ライト動作およびリード動作を繰り返していく。これは、16列入力データ1つ分の16ビットが変換後の列数2で割り切れるためである。このとき、列変換回路10は、任意の1つの16列入力データのライト動作の開始から、該1つの16列入力データを2列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。以上で、2列変換モードにおける列変換回路10の動作の説明を終了する。<4列変換モードにおけるリード動作>次に、4列変換モードにおけるリード側のタイミングチャートを図15に示す。ここでは、4列変換モードにおける列変換回路10の動作が、2列変換モードにおける動作と異なる点を中心に述べる。まず、リードデータ先頭パルスが有効‘H’となると、列変換回路10はリード動作を開始する。リードイネーブルカウンタRDENCNTの最大カウント値は、4列変換モードでは、3にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、2列変換モードの場合と同様である。また、16本のリードアドレスの初期値は、2列変換モードの場合と異なる。リードデータ先頭パルスが有効時に、RAM15~RAM12のリードアドレスは、0に初期設定される。また、RAM11~RAM0のリードアドレスは、255に初期設定される。これらの値は、前述のように、表2に示した16個のカウンタRDADR15~RDADR0の初期設定値である。次に、データセレクト回路181は、列変換先頭パルスが有効になると、初期設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=0であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL15~RAMSEL12が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[15:12]を選択する。次に、リタイミング回路182は、RDENCNT=0かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[15:12]をリタイミングして出力する。これが、1つ目の4列変換データ[3:0]となる。図15には、1つ目の4列変換データ[3:0]として、116進表記、すなわち、00012進表記を示している。これは、図8に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の15~12ビット目に相当する。次に、RDENCNT=0、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN11~RAMEN8を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM11~RAM8におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM11~RAM8のリードアドレスを、それまでの255を1カウントアップして0に更新する。この時点で、RAM15~RAM8のリードアドレスは、0に設定され、RAM7~RAM0のリードアドレスは、255に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=1であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL11~RAMSEL8が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[11:8]を選択する。次に、リタイミング回路182は、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[11:8]をリタイミングして出力する。これが、2つ目の4列変換データ[3:0]となる。図15には、2つ目の4列変換データ[3:0]として、016進表記、すなわち、00002進表記を示している。これは、図8に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の11~8ビット目に相当する。このようにして、4列変換モードでは、RDENCNTのカウント値が0~3を繰り返す。そして、リードデータセレクト生成回路150は、RDENCNTのカウント値が変化すると、RAM15~RAM0の16個のRAMのうち選択対象となる4つのRAMを示すよう、RAMSEL[15:0]のうち‘H’となる4ビットを順次切り替える。また、リードイネーブル生成回路170は、RDTIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する4本のリードアドレスを示すよう、RAMEN[15:0]のうち‘H’となる4ビットを順次切り替える。そして、リードアドレス生成回路160は、RAMEN[15:0]が示すRAMjにおけるリードアドレスをカウントアップする。そして、データセレクトリタイミング回路180は、RAMSEL[15:0]およびリードアドレスに基づいて、4列変換データを選択出力していく。このようにして出力される4列変換データは、図16に示すとおりとなる。図16において、i-jは、i番目に入力されたライトデータのjビット目のデータを示している。つまり、1番目のライトデータの15~13ビット目までの4ビットのデータが、1つ目の4列変換データであることを表している。以上のように動作することにより、4列変換モードでは、列変換回路10は、16列入力データ1つ分を1単位として、ライト動作およびリード動作を繰り返していく。これは、16列入力データ1つ分の16ビットが変換後の列数4で割り切れるためである。このとき、列変換回路10は、任意の1つの16列入力データのライト動作の開始から、該1つの16列入力データを4列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。以上で、4列変換モードにおける列変換回路10の動作の説明を終了する。<5列変換モードにおけるリード動作>次に、5列変換モードにおけるリード側のタイミングチャートを図17に示す。ここでは、5列変換モードにおける列変換回路10の動作が、2列変換モードにおける動作と異なる点を中心に述べる。まず、リードデータ先頭パルスが有効‘H’となると、列変換回路10はリード動作を開始する。リードイネーブルカウンタRDENCNTの最大カウント値は、5列変換モードでは、15にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、2列変換モードの場合と同様である。また、16本のリードアドレスの初期値は、2列変換モードの場合と異なる。リードデータ先頭パルス有効時に、RAM15~RAM11のリードアドレスは、0に初期設定される。また、RAM10~RAM0のリードアドレスは、255に初期設定される。これらの値は、前述のように、表3に示した16個のカウンタRDADR15~RDADR0の初期設定値である。次に、データセレクト回路181は、列変換先頭パルスが有効になると、初期設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=0であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL15~RAMSEL11が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[15:11]を選択する。次に、リタイミング回路182は、RDENCNT=0かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[15:11]をリタイミングして出力する。これが、1つ目の5列変換データ[4:0]となる。図17には、1つ目の5列変換データ[4:0]として、0216進表記、すなわち、000102進表記を示している。これは、図9に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の15~11ビット目に相当する。次に、RDENCNT=0、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN10~RAMEN6を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM10~RAM6におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM10~RAM6のリードアドレスを、それまでの255を1カウントアップして0に更新する。この時点で、RAM15~RAM6のリードアドレスは、0に設定され、RAM5~RAM0のリードアドレスは、255に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=1であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL10~RAMSEL6が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[10:6]を選択する。次に、リタイミング回路182は、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[10:6]をリタイミングして出力する。これが、2つ目の5列変換データ[4:0]となる。図17には、1つ目の5列変換データ[4:0]として、0016進表記、すなわち、000002進表記を示している。これは、図9に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の10~6ビット目に相当する。このようにして、5列変換モードでは、RDENCNTのカウント値が0~15を繰り返す。そして、リードデータセレクト生成回路150は、RDENCNTのカウント値が変化すると、RAM15~RAM0の16個のRAMのうち選択対象となる5つのRAMを示すよう、RAMSEL[15:0]のうち‘H’となる5ビットを順次切り替える。また、リードイネーブル生成回路170は、RDTIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する5本のリードアドレスを示すよう、RAMEN[15:0]のうち‘H’となる5ビットを順次切り替える。そして、リードアドレス生成回路160は、RAMEN[15:0]が示すRAMjにおけるリードアドレスをカウントアップする。そして、データセレクトリタイミング回路180は、RAMSEL[15:0]およびリードアドレスに基づいて、5列変換データを選択出力していく。このようにして出力される5列変換データは、図18に示すとおりとなる。図18において、i-jは、i番目に入力されたライトデータのjビット目のデータを示している。つまり、1番目のライトデータの15~11ビット目までの5ビットのデータが、1つ目の5列変換データであることを表している。以上のように動作することにより、5列変換モードでは、列変換回路10は、16列入力データ5つ分を1単位として、ライト動作およびリード動作を繰り返していく。これは、16列入力データ5つ分の80ビットが変換後の列数5で割り切れるためである。このとき、列変換回路10は、任意の5つの16列入力データのライト動作の開始から、該5つの16列入力データを5列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。以上で、5列変換モードにおける列変換回路10の動作の説明を終了する。<6列変換モードにおけるリード動作>次に、6列変換モードにおけるリード側のタイミングチャートを図19に示す。ここでは、6列変換モードにおける列変換回路10の動作が、2列変換モードにおける動作と異なる点を中心に述べる。まず、リードデータ先頭パルスが有効‘H’となると、列変換回路10はリード動作を開始する。リードイネーブルカウンタRDENCNTの最大カウント値は、6列変換モードでは、7にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、2列変換モードの場合と同様である。また、16本のリードアドレスの初期値は、2列変換モードの場合と異なる。リードデータ先頭パルス有効時に、RAM15~RAM10のリードアドレスは、0に初期設定される。また、RAM9~RAM0のリードアドレスは、255に初期設定される。これらの値は、前述のように、表4に示した16個のカウンタRDADR15~RDADR0の初期設定値である。次に、データセレクト回路181は、列変換先頭パルスが有効になると、初期設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=0であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL15~RAMSEL10が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[15:10]を選択する。次に、リタイミング回路182は、RDENCNT=0かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[15:10]をリタイミングして出力する。これが、1つ目の6列変換データ[5:0]となる。図19には、1つ目の6列変換データ[5:0]として、0416進表記、すなわち、0001002進表記を示している。これは、図10に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の15~10ビット目に相当する。次に、RDENCNT=0、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN9~RAMEN4を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM9~RAM4におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM9~RAM4のリードアドレスを、それまでの255を1カウントアップして0に更新する。この時点で、RAM15~RAM4のリードアドレスは、0に設定され、RAM3~RAM0のリードアドレスは、255に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=1であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL9~RAMSEL4が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[9:4]を選択する。次に、リタイミング回路182は、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[9:4]をリタイミングして出力する。これが、2つ目の6列変換データ[4:0]となる。図19には、2つ目の6列変換データ[5:0]として、0016進表記、すなわち、0000002進表記を示している。これは、図10に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の9~4ビット目に相当する。次に、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN3~RAMEN0およびRAMEN15~RAMEN14を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM3~RAM0およびRAMEN15~RAMEN14におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM3~RAM0のリードアドレスを、それまでの255を1カウントアップして0に更新する。また、リードアドレス生成回路160は、RAM15~RAM14のリードアドレスを、それまでの0を1カウントアップして1に更新する。この時点で、RAM15~RAM14のリードアドレスは、1に設定され、RAM13~RAM0のリードアドレスは、0に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=2であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL3~RAMSEL0およびRAMSEL15~RAMSEL14が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[3:0][15:14]を選択する。次に、リタイミング回路182は、RDENCNT=2、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[3:0][15:14]をリタイミングして出力する。これが、3つ目の6列変換データ[4:0]となる。図19には、3つ目の6列変換データ[5:0]として、0016進表記、すなわち、0000002進表記を示している。これは、図10に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の3~0ビット目、および、2つ目の16列入力データの一例100116進表記、すなわち、00010000000000012進表記の15~14ビット目に相当する。このようにして、6列変換モードでは、RDENCNTのカウント値が0~7を繰り返す。そして、リードデータセレクト生成回路150は、RDENCNTのカウント値が変化すると、RAM15~RAM0の16個のRAMのうち選択対象となる6つのRAMを示すよう、RAMSEL[15:0]のうち‘H’となる6ビットを順次切り替える。また、リードイネーブル生成回路170は、RDTIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する6本のリードアドレスを示すよう、RAMEN[15:0]のうち‘H’となる6ビットを順次切り替える。そして、リードアドレス生成回路160は、RAMEN[15:0]が示すRAMjにおけるリードアドレスをカウントアップする。そして、データセレクトリタイミング回路180は、RAMSEL[15:0]およびリードアドレスに基づいて、6列変換データを選択出力していく。このようにして出力される6列変換データは、図20に示すとおりとなる。図20において、i-jは、i番目に入力されたライトデータのjビット目のデータを示している。つまり、1番目のライトデータの15~10ビット目までの6ビットのデータが、1つ目の6列変換データであることを表している。以上のように動作することにより、6列変換モードでは、列変換回路10は、16列入力データ3つ分を1単位として、ライト動作およびリード動作を繰り返していく。これは、16列入力データ3つ分の48ビットが変換後の列数6で割り切れるためである。このとき、列変換回路10は、任意の3つの16列入力データのライト動作の開始から、該3つの16列入力データを6列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。以上で、6列変換モードにおける列変換回路10の動作の説明を終了する。<7列変換モードにおけるリード動作>次に、7列変換モードにおけるリード側のタイミングチャートを図21に示す。ここでは、7列変換モードにおける列変換回路10の動作が、2列変換モードにおける動作と異なる点を中心に述べる。まず、リードデータ先頭パルスが有効‘H’となると、列変換回路10はリード動作を開始する。リードイネーブルカウンタRDENCNTの最大カウント値は、7列変換モードでは、15にセットされる。RDENCNTの初期化およびカウントアップのタイミングは、2列変換モードの場合と同様である。また、16本のリードアドレスの初期値は、2列変換モードの場合と異なる。リードデータ先頭パルス有効時に、RAM15~RAM9のリードアドレスは、0に初期設定される。また、RAM8~RAM0のリードアドレスは、255に初期設定される。これらの値は、前述のように、表5に示した16個のカウンタRDADR15~RDADR0の初期設定値である。次に、データセレクト回路181は、列変換先頭パルスが有効になると、初期設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=0であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL15~RAMSEL9が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[15:9]を選択する。次に、リタイミング回路182は、RDENCNT=0かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[15:9]をリタイミングして出力する。これが、1つ目の7列変換データ[6:0]となる。図21には、1つ目の7列変換データ[6:0]として、0816進表記、すなわち、00010002進表記を示している。これは、図11に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の15~9ビット目に相当する。次に、RDENCNT=0、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN8~RAMEN2を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM8~RAM2におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM8~RAM2のリードアドレスを、それまでの255を1カウントアップして0に更新する。この時点で、RAM15~RAM2のリードアドレスは、0に設定され、RAM1~RAM0のリードアドレスは、255に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=1であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL8~RAMSEL2が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[8:2]を選択する。次に、リタイミング回路182は、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[8:2]をリタイミングして出力する。これが、2つ目の7列変換データ[6:0]となる。図21には、2つ目の7列変換データ[6:0]として、0016進表記、すなわち、00000002進表記を示している。これは、図11に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の8~2ビット目に相当する。次に、RDENCNT=1、かつ、RDTIM=‘H’のタイミングで、リードイネーブル生成回路170は、RAMEN1~RAMEN0およびRAMEN15~RAMEN11を‘H’としてRAMEN[15:0]を出力する。つまり、リードイネーブル生成回路170は、リードアドレス生成回路160に対して、次の選択先となるRAM1~RAM0およびRAMEN15~RAMEN11におけるリードアドレスを1カウントアップするタイミングを出力している。次に、リードアドレス生成回路160は、RAM1~RAM0のリードアドレスを、それまでの255を1カウントアップして0に更新する。また、リードアドレス生成回路160は、RAM15~RAM11のリードアドレスを、それまでの0を1カウントアップして1に更新する。この時点で、RAM15~RAM11のリードアドレスは、1に設定され、RAM10~RAM0のリードアドレスは、0に設定されている。次に、データセレクト回路181は、新たに設定された16個のリードアドレス値を用いて、リードCLKの立ち上がりエッジにより、RAM15~RAM0からRAM格納データ[15:0]を読み出す。このとき、RDENCNT=2であるため、リードデータセレクト生成回路150から出力されるリードデータセレクト信号RAMSEL[15:0]のうち、RAMSEL1~RAMSEL0およびRAMSEL15~RAMSEL11が有効‘H’となっている。そこで、データセレクト回路181は、RAMSEL[15:0]にしたがって、RAM格納データ[15:0]のうち、RAM格納データ[1:0][15:11]を選択する。次に、リタイミング回路182は、RDENCNT=2、かつ、RDTIM=‘H’のタイミングで、リードCLKの立ち上がりエッジにより、RAM格納データ[1:0][15:11]をリタイミングして出力する。これが、3つ目の7列変換データ[6:0]となる。図21には、3つ目の7列変換データ[6:0]として、0216進表記、すなわち、00000102進表記を示している。これは、図11に示した1つ目の16列入力データの一例100016進表記、すなわち、00010000000000002進表記の1~0ビット目と、図11に示した2つ目の16列入力データの一例100116進表記、すなわち、00010000000000012進表記の15~11ビット目に相当する。このようにして、7列変換モードでは、RDENCNTのカウント値が0~15を繰り返す。そして、リードデータセレクト生成回路150は、RDENCNTのカウント値が変化すると、RAM15~RAM0の16個のRAMのうち選択対象となる7つのRAMを示すよう、RAMSEL[15:0]のうち‘H’となる7ビットを順次切り替える。また、リードイネーブル生成回路170は、RDTIM信号が有効となる毎に、RDENCNTのカウント値の次の変化のタイミングで更新する7本のリードアドレスを示すよう、RAMEN[15:0]のうち‘H’となる7ビットを順次切り替える。そして、リードアドレス生成回路160は、RAMEN[15:0]が示すRAMjにおけるリードアドレスをカウントアップする。そして、データセレクトリタイミング回路180は、RAMSEL[15:0]およびリードアドレスに基づいて、7列変換データを選択出力していく。このようにして出力される7列変換データは、図22に示すとおりとなる。図22において、i-jは、i番目に入力されたライトデータのjビット目のデータを示している。つまり、1番目のライトデータの15~9ビット目までの7ビットのデータが、1つ目の7列変換データであることを表している。以上のように動作することにより、7列変換モードでは、列変換回路10は、16列入力データ7つ分を1単位として、ライト動作およびリード動作を繰り返していく。これは、16列入力データ7つ分の112ビットが変換後の列数7で割り切れるためである。このとき、列変換回路10は、任意の7つの16列入力データのライト動作の開始から、該7つの16列入力データを7列変換データに変換して順次出力するリード動作の開始までを一定期間に保つように動作している。以上で、7列変換モードにおける列変換回路10の動作の説明を終了する。<列変換モードの拡張>次に、列変換回路10の列変換モードを拡張する場合を考える。例えば、列変換回路10を、新たに8列変換モード、9列変換モード、10列変換モードに対応させる。このとき、列変換回路10は、ライト側の回路を列変換モードに関わらず共有しているので、新たな回路をライト側に必要としない。ただし、列変換回路10には、8列、9列、10列の各変換モードに応じたライトデータイネーブル信号が入力されるようにする。また、この場合、列変換回路10は、リード側で、リードイネーブル信号RAMEN[15:0]およびリードデータセレクト信号RAMSEL[15:0]を列変換モードに応じて生成する必要がある。したがって、図23に破線で示すように、列変換回路10は、リードイネーブル生成回路170に、8列変換リードイネーブル生成回路170fと、9列変換リードイネーブル生成回路170gと、10列変換リードイネーブル生成回路170hとをさらに含めるようにすればよい。そして、リードアドレスの初期値は、8列、9列、10列の各変換モードに応じて適宜設定されればよい。また、図23に破線で示すように、列変換回路10は、リードデータセレクト生成回路150に、8列変換リードデータセレクト生成回路150fと、9列変換リードデータセレクト生成回路150gと、10列変換リードデータセレクト生成回路150hとをさらに含めるようにすればよい。そして、リードデータセレクト信号の初期値は、8列、9列、10列の各変換モードに応じて適宜設定されればよい。<効果>次に、本発明の第2の実施の形態の効果について述べる。本実施の形態としての列変換回路は、論理回路の増大を抑えながら、変換後の列数を容易に拡張可能である。その理由は、本実施の形態において、ライトアドレス生成回路およびライトデータ制御回路の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、ライトアドレス生成回路は、同一の範囲0~255の値を繰り返すライトアドレスを生成する。また、どの列変換モードにおいても、ライトデータ制御回路は、16列入力データを、16個のRAMにおいてライトアドレスが示す位置に格納する。これにより、本実施の形態としての列変換回路は、列変換モードを拡張しても、ライト側に新たな回路を必要としない。また、さらなる理由として、本実施の形態において、リードアドレス生成回路およびデータセレクトリタイミング回路の構成および動作は、列変換モードの設定に依存することがないからである。どの列変換モードにおいても、リードアドレス生成回路は、リードイネーブル信号にしたがうことによりN個ずつリードアドレスを更新する。また、どの列変換モードにおいても、データセレクトリタイミング回路は、リードデータセレクト信号にしたがうことにより、16個のRAMのうちN個のRAMにおいてリードアドレスの示す位置のデータを選択出力するからである。そして、本実施の形態としての列変換回路は、列変換モードを拡張するためには、拡張列数に応じたリードイネーブル信号を生成するリードイネーブル生成回路、および、拡張列数に応じたリードデータセレクト信号を生成するリードデータセレクト生成回路を増設するだけでよい。このようなリードイネーブル生成回路およびリードデータセレクト生成回路の増設は、データセレクト回路の論理段数の増強等と比較して少ない増設量で済む。また、本実施の形態としての列変換回路は、所定サイズの16個のメモリを使用し、ライト動作およびリード動作を一定間隔に保ちながら実行することにより、より多くのデータを溜めることができる。したがって、本実施の形態としての列変換回路は、16列の入力データの入力開始後、リード動作を開始するタイミングの自由度を向上させることになる。なお、本実施の形態としての列変換回路は、さらに各メモリにおけるリードアドレスをモニタリングするリードアドレスモニタリング部を備えてもよい。これにより、本実施の形態としての列変換回路は、変換後の列数を容易に拡張可能な列変換回路の実行処理の観測を容易にすることができる。なお、本実施の形態の説明において、16列入力データを、2列、4列、5列、6列、および、7列に変換する列変換回路を中心に説明を行ったが、本発明において、MおよびNの値を限定するものではない。その他の列数Mの入力データに対応させる場合、列変換回路は、各種カウンタの初期値や最大値を適切な値に設定する。また、この場合、列変換回路は、MビットのうちRDENCNT値に応じたNビットを有効とするリードイネーブル信号を生成するリードイネーブル生成回路を、各列変換モードに応じて備えるようにする。また、この場合、列変換回路は、MビットのうちRDENCNT値に応じたNビットを有効とするリードデータセレクト信号を生成するリードデータセレクト生成回路を、各列変換モードに応じて備えるようにする。これにより、本実施の形態としての列変換回路は、M列の入力データを多様な列数に変換する列変換モードを、容易に拡張可能となる。また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。