説明

ビット並べ替え回路およびそれを用いた試験装置

【課題】データビットの並べ替え回路の小型化および/または低消費電力化にある。
【解決手段】入力フリップフロップ10は、(m×n)ビットを単位とする入力データDINのうち、連続するmビットを含むワードデータDWDを順次保持する。複数のデコーダ回路DEC1〜mは、ワードデータDWDの各ビットごとに設けられ、それぞれがワードデータの対応するビットおよびその並べ替え後の位置を示す格納先データを受け、(m×n)ビットを有するデコードデータDDECを生成する。デコードデータDDECは、対応するビットが0のとき全ビットが0、対応するビットが1のとき、その並べ替え後の位置に対応するビットが1、残りのビットが0である。メモリ回路20は、(m×n)ビットの記憶領域を含み、m個のデコードデータDDEC1〜mを受け、各デコードデータの1が格納されているビットに対応する記憶領域のビットに1を書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シリアル形式のデータ信号の各ビットを、任意の順番で並べ替え可能な回路の提供にある。
【背景技術】
【0002】
CMOSイメージセンサなどのデバイスは、撮像した各画素の輝度を示すデータ(画素データと称する)を、シリアルデータとして出力する。ここで各画素データは、8、10、12、14、16ビットとさまざまである。
【0003】
ここでCMOSイメージセンサからの画素データは、必ずしも連続的に配置されるとは限らない。図1は、画素データが12ビットの場合のビット配列の一例を示す図である。この例では、CMOSイメージセンサの出力データは3バイト(24ビット)を1グループとして構成される。
【0004】
CMOSイメージセンサの出力データを受けるインタフェース回路は、連続する複数の画素データを含むシリアルデータを並べ替え、画素ごとに切り分ける必要がある。図1の例では、3バイトが1つの繰り返しの単位となっているが、繰り返しバイト数が8バイト、あるいは16バイトのデバイスも存在する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平10−164596号公報
【特許文献2】特開2010−28241号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
たとえば繰り返しビット数が16バイト(128ビット)のシリアルデータを、任意に並べ替えるには、128入力1出力(128to1)のマルチプレクサ(セレクタ)を128個設ければよい。あるいは、1入力128出力(1to128)のデマルチプレクサを128個設ければよい。
【0007】
ところが、128個ものマルチプレクサを配置すると、回路面積が膨大となり、回路の消費電力も大きくなる。特にFPGA(Field Programmable Gate Array)を用いてインタフェース回路を構成する場合、その問題は顕著となる。
【0008】
本発明のある態様は係る課題に鑑みてなされたものであり、その例示的な目的のひとつは、データビットの並べ替え回路の小型化および/または低消費電力化にある。
【課題を解決するための手段】
【0009】
本発明のある態様は、(m×n)ビット(m、nは自然数)を単位とする入力データを任意の順番に並べ替えるビット並べ替え回路に関する。ビット並べ替え回路は、入力データのうち、連続するmビットを含むワードデータを順次保持する入力フリップフロップと、入力データに含まれる(m×n)ビットそれぞれの、並べ替え後の位置を示す格納先データを保持する格納先データメモリと、m個のデコーダ回路と、メモリ回路を備える。
m個のデコーダ回路は、ワードデータの各ビットごとに設けられ、ワードデータの対応するビットおよびその並べ替え後の位置を示す格納先データを受ける。各デコーダ回路は、(m×n)ビットを有するデコードデータを生成する。あるデコーダ回路に入力される、対応するビットが0のとき、デコードデータは全ビットが0である。入力される対応するビットが1のとき、デコードデータは、その並べ替え後の位置に対応するビットが1、残りのビットが0である。
メモリ回路は、(m×n)ビットの記憶領域を含み、m個のデコーダ回路それぞれからのデコードデータを受け、各デコードデータの1が格納されているビットに対応する記憶領域のビットに1を書き込む。
【0010】
この態様によると、入力データの各ビットを任意の順番に並べ替えることができる。入力データのビット数が大きくても、膨大なマルチプレクサやデマルチプレクサを用いる必要がないため、回路面積を小さくでき、および/または消費電力を低減できる。
【0011】
メモリ回路は、記憶領域である(m×n)ビットのフリップフロップと、m個のデコーダ回路からの(m×n)ビットのデコードデータの論理和を生成する第1論理ゲートと、フリップフロップの出力データと論理ゲートの出力データとの論理和を生成する第2論理ゲートと、を含んでもよい。第2論理ゲートの出力データがフリップフロップに書き込まれてもよい。
デコードデータは、新たなワードデータが入力されるごとに更新される。この構成によれば、フリップフロップのデータは、一旦アサートされたビットについてはその状態を保持しつつ、新たなデコードデータの値を上書きすることができる。
【0012】
入力データは、複数の画素を含む画像データであってもよい。ビット並べ替え回路は、入力データの周期ごとに、フリップフロップに格納されるデータを、1画素のビット数で切り分けて出力する画素切り出し回路をさらに備えてもよい。
【0013】
本発明の別の態様は、試験装置である。この装置は、上述のビット並べ替え回路を備える。
この態様によれば、さまざまな出力形式の被試験デバイスを試験することができる。
【0014】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【0015】
本発明のある態様によれば、小型の、および/または低消費電力のビットの並べ替え回路を提供できる。
【図面の簡単な説明】
【0016】
【図1】画素データが12ビットの場合のビット配列の一例を示す図である。
【図2】実施の形態に係るビット並べ替え回路の構成を示す回路図である。
【図3】図2のビット並べ替え回路を用いた試験装置の構成を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【0018】
本明細書において、「部材Aが、部材Bと接続された状態」とは、部材Aと部材Bが物理的に直接的に接続される場合のほか、部材Aと部材Bが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。同様に、「部材Cが、部材Aと部材Bの間に設けられた状態」とは、部材Aと部材C、あるいは部材Bと部材Cが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【0019】
図2は、実施の形態に係るビット並べ替え回路100の構成を示す回路図である。
ビット並べ替え回路100は、(m×n)ビット(m、nは自然数)を単位とする入力データDIN[1:m×n]を受け、それを指定された任意の順番に並べ替えて出力する。本実施の形態では、m=8ビットとする。nは可変であり、たとえば1〜16の任意の値を取り得る。
【0020】
入力データDINは、n個のワードデータDWD1〜DWDnに分割される。ワードデータDWDは、入力データDINの連続するmビットを含む。ワードデータDWD1、DWD2、…DWDnは、ビット並べ替え回路100の入力端子PINにパラレル形式で順次入力される。ビット並べ替え回路100のデータ有効端子には、新たなワードデータDWDが入力されるたびにアサートされるデータ有効信号Data_validが入力される。
【0021】
ビット並べ替え回路100は、ひとつの入力データDINを並べ替えるために、n個のワードデータDWDについて同様の信号処理を繰り返し行う。ここで理解の容易のために、ビット並べ替え回路100が現在、何番目のワードデータDWDを処理しているかを示す値j(1≦j≦n)を導入する。
【0022】
ビット並べ替え回路100は、入力フリップフロップ10、フリップフロップ11a〜11c、格納先データメモリ(Destination Memory)12、メモリアドレスカウンタ14、デコーダ回路DEC〜DEC、メモリ回路20、フリップフロップ23、画素切り出し回路30を備える。
【0023】
ビット並べ替え回路100の各論理ゲートや回路ブロックには、同期すべきクロック信号CLKが供給されている。フリップフロップ11a〜11c、フリップフロップ23は、各信号のタイミングを合わせるために設けられている。
【0024】
入力フリップフロップ10は、各サイクルjごとに順次入力されるmビットのワードデータDWDj[1:m]を保持する。ワードデータDWDjのi番目のビットDWDj[i]は、入力データDINの(j−1)×m+i番目のビットに対応する。
WDj[i]=DIN[(j−1)×m+i]
【0025】
格納先データメモリ12は、入力データDINの(m×n)ビットそれぞれの、並べ替え後の位置を示す格納先データDESTを保持する。格納先データDESTはそれぞれがLビット(L=log(m×n))である。本実施の形態では、格納先データDESTが7ビット(=log(128))の場合を示している。m×nビットの入力データDINのk番目のビットDIN[k]に対応する格納先データを、DESTと表記する。
【0026】
格納先データメモリ12は、並べ替え規則に応じて、ビット並べ替え回路100のユーザが自由に書き換え可能である。複数の並べ替え規則を切かえ可能とする場合には、規則ごとに格納先データを用意し、その中から使用する格納先データを選択可能としてもよい。
【0027】
格納先データメモリ12は、一度の読み出しで、現在、ビット並べ替え回路100に入力されているワードデータDWDを構成するmビットそれぞれに対応するm個の格納先データDESTを同時に出力する。つまり格納先データメモリ12の出力バス幅は、m×Lビットである。
【0028】
格納先データメモリ12は、出力すべき格納先データDESTを制御するための端子Aを備える。メモリアドレスカウンタ14は、現在ビット並べ替え回路100に入力されているワードデータDWDに応じた制御信号(アドレスカウント)S1を、格納先データメモリ12の端子Aに与える。アドレスカウントS1は、上述したサイクル数jより1小さい数(j−1)を示す。メモリアドレスカウンタ14には、データ有効信号Data_validと、アドレスリセット信号ADD_RSTと、ワード数信号NUM_WORDが入力される。ワード数信号NUM_WORDは、入力データDINに含まれるワードデータDWDの個数nにより1小さい値(n−1)を示すデータであり、nの最大値が16のとき、4ビットで表される。NUM_WORD=[1111]はn=16を、NUM_WORD=[0000]はn=1を示す。
【0029】
メモリアドレスカウンタ14は、アドレスカウントS1を0〜(n−1)の範囲で繰り返しカウントアップする。つまり、メモリアドレスカウンタ14は、サイクル数j(=1〜n)をカウントする。
【0030】
アドレスリセット信号ADD_RSTは、入力データDINとメモリアドレスカウンタ14のカウント値との同期をとるための信号であり、最初に1回、アサートされる。メモリアドレスカウンタ14は、アドレスリセット信号ADD_RSTがアサートされると、アドレスカウントS1をその最大値(n−1)に初期化する。続いて最初のデータ有効信号Data_validがアサートされと、アドレスカウントS1がゼロに戻り、その後データ有効信号Data_validがアサートされるたびに、アドレスカウントS1を1インクリメントする。アドレスカウントS1が、値(n−1)に達すると、再びゼロに戻る。
【0031】
格納先データメモリ12は、アドレスカウントS1を先頭とするm個の格納先データDEST(j−1)×m+1〜DEST(j−1)×m+mを出力する。
【0032】
デコーダ回路DEC〜DECは、ワードデータDWDjの各ビットごとに設けられる。i番目のデコーダ回路DECは、ワードデータDWDjの対応するビットDWDj[i]と、その並べ替え後の位置を示す格納先データDEST(j−1)×m+iを受ける。i番目のデコーダ回路DECは、(m×n)ビットのデコードデータDDECiを生成する。入力されるビットDWDj[i]が0(偽を示す値)のとき、デコーダ回路DECは、デコードデータDDECiの全ビットを0とする。入力されるビットDWDj[i]が1(真を示す値)のとき、デコーダ回路DECは、デコードデータDDECiのうち、その並べ替え後の位置に対応するビットを1、残りのビットを0とする。
【0033】
たとえば、ワードデータDWDjの3番目のビットの並べ替え後の位置が、先頭から64番目であるとする。この場合、格納先データDEST(j−1)×m+3の値は64である。ワードデータDWDjの3番目のビットの値が1のとき、デコーダ回路DECは、128ビットのうち、64番目のビットに1を、残りに0を格納したデコードデータDDEC3を出力する。
【0034】
メモリ回路20は、(m×n)ビットの記憶領域を含む。図2ではこの記憶領域はフリップフロップ22である。メモリ回路20は、m個のデコーダ回路DEC〜DECそれぞれからのデコードデータDDEC1〜DDECmを受ける。メモリ回路20は、デコードデータDDEC1〜DDECmそれぞれの1が格納されているビットに対応する記憶領域のビットに1を書き込む。
【0035】
たとえば、DDEC1の3番目のビットに1が格納されており、DDEC2の62番目のビットに1が格納されており、DDEC3〜DDECmは全ビットが0であるとする。このときフリップフロップ22の3番目および62番目のビットに1が書き込まれる。
【0036】
具体的には、メモリ回路20は、フリップフロップ22に加えて、第1ORゲート24、第2ORゲート26、ANDゲート28を備える。
第1ORゲート24は、m個のデコーダ回路DEC〜DECからの(m×n)ビットのデコードデータDDEC1〜DDECmの論理和を生成する。
第2ORゲート26は、フリップフロップ22の出力データと、第1ORゲート24の出力データとの論理和を生成する。フリップフロップ22には、第2ORゲート26の出力データが書き込まれる。
この構成により、フリップフロップ22には、一度、値1が格納されたビットはそれ以降保持され、新たに別のビットに1が発生すると、そのビットに1が追記される。
【0037】
フリップフロップ22は、入力データDINの周期の先頭ごとにクリアされる。このためにメモリ回路20はANDゲート28を備える。
メモリアドレスカウンタ14は、フリップフロップ22のクリアを指示する制御信号S2を生成する。メモリアドレスカウンタ14は、アドレスカウントS1=0となるたびに制御信号S2をアサート(=0)する。制御信号S2=0が入力されると、フリップフロップ22に蓄積されたデータがANDゲート28によってマスクされ、フリップフロップ22には、新たに入力されたデコードデータDDEC1〜DDECmが書き込まれる。このようにして、フリップフロップ22はサイクルごとにリセットされる。
【0038】
入力データDINが複数の画素を含む画像データである場合、画素切り出し回路30が設けられる。画素切り出し回路30は、入力データDINの周期ごとに、フリップフロップ22に格納されるデータを、1画素のビット数で切り分けて出力する。切り分けのタイミングを示す制御信号S3は、メモリアドレスカウンタ14によって生成される。具体的には、制御信号S3は、アドレスカウントS1が(n−1)に達するたびにアサートされる。
【0039】
また画素切り出し回路30には、1画素の長さ(ビット数)pを示すデータPIX_LENと、ひとつの入力データDINに含まれる画素の数qを示すデータPIX_NUMが入力される。たとえば1画素のビット数pが8、10、12、・・・24ビットで可変の場合、データPIX_LENは5ビットである。1画素のビット数が1バイト単位で可変の場合、たとえば8、16、24ビットで可変する場合、データPIX_LENは、1画素の長さ(バイト数)を示すデータとしてもよく、この場合、データPIX_LENは2ビットとすることができる。
また、たとえば入力データDINに含まれる画素の個数qが1〜16の範囲で可変の場合、データPIX_NUMは4ビットである。画素切り出し回路30は、フリップフロップ22の出力データから、pビットを単位として、q個の画素データを出力する。
【0040】
以上がビット並べ替え回路100の構成である。続いてその動作を説明する。
いま、ビット並び替え回路100に、m=8、n=16、128ビットを単位とする入力データDINが入力されるとする。このとき、ワード数信号NUM_WORDは、n=16を示す値に設定される。また、入力データDINが入力される前のタイミングにおいて、アドレスリセット信号ADD_RSTがアサートされ、メモリアドレスカウンタ14のカウント値S1が(n−1)に初期化される。
【0041】
ビット並べ替え回路100には、1番目のワードデータDWD1が入力され、それとともにデータ有効信号Data_validがアサートされる。これを受けてメモリアドレスカウンタ14は、カウント値S1をゼロとする。ビット並べ替え回路100は、ワードデータDWD1の各ビットを、フリップフロップ22の対応する位置(ビット)に書き込む。
【0042】
続いて、ワードデータDWD2、DWD3、…が入力され、その都度、データ有効信号Data_validがアサートされ、メモリアドレスカウンタ14のアドレスカウントS1がインクリメントされていく。そして各ワードデータDWD2、DWD3、…に含まれるビットが、フリップフロップ22の適切な位置に書き込まれていく。
【0043】
すべてのワードデータDWD1〜DWDnについての書き込み処理が完了すると、フリップフロップ22に、入力データDINをメモリアドレスカウンタ14に格納された並べ替え規則にしたがって再配置したビット列を得ることができる。このとき、メモリアドレスカウンタ14のアドレスカウントS1が(n−1)となり、制御信号S3がアサートされる。これを受けて、画素切り出し回路30によって、フリップフロップ22に格納された再配置後のビット列が、画素ごとのデータとして切り出され、後段へと出力される。
【0044】
このように、図2のビット並べ替え回路100によれば、入力データDINを任意の順序に並べ替えることができる。そしてビット並べ替え回路100の回路面積は、m×n個のマルチプレクサを用いる場合に比べて格段に小さくなり、また回路の消費電力も低減することができる。
【0045】
続いてビット並べ替え回路100の好適なアプリケーションを説明する。図3は、図2のビット並べ替え回路100を用いた試験装置の構成を示す図である。DUT1は、CMOSセンサをはじめとする撮像デバイスであり、各画素の輝度を示す画素データを含む画像データをシリアル形式で出力する。すでに説明したように、画像データ内の画素データの配置は、DUT1の種類や各画素のビット数に応じてさまざまである。
【0046】
試験装置2は、DUT1からの画像データを受け、それを適切に再配置し、画素ごとのデータに切り分けた後に、1画面に対応するフレームデータが形成される。そして画像処理を用いて、フレームデータが期待値と一致するか否かを判定し、DUT1の良否を判定したり、その不良箇所を特定する。あるいは各画素の輝度が期待値と一致するかを判定してもよい。
【0047】
試験装置2は、レベルコンパレータCP、ラッチ(タイミングラッチ)TL、バッファメモリBUF、ビット並べ替え回路100、論理比較器DCを備える。
レベルコンパレータCPは、DUT1からの画像データ(ビット列)を、所定のしきい値電圧と比較し、ハイレベルまたはローレベルを判定する。タイミングラッチTLは、クロック信号CLKと同期して、レベルコンパレータCPの判定結果を示すデータをラッチする。バッファメモリBUFはたとえばFIFOであり、シリアル形式の画像データを保持する。
【0048】
バッファメモリBUFに蓄えられた画像データは、複数の画素を含む単位である入力データDINごとに、後段のビット並べ替え回路100へと入力される。ビット並べ替え回路100は、入力データDINを画素データDPIX1、DPIX2、…に切り分ける。論理比較器DCは、複数の画素データDPIXにより構成されるフレームデータに演算処理を施すことにより、DUT1が正常に機能しているかを示すパスフェイルデータPASS/FAILを出力する。パスフェイルデータは図示しないフェイルメモリに書き込まれる。
【0049】
図2のビット並べ替え回路100を用いることにより、試験装置2は、さまざまな配列の画像データを出力するDUT1を汎用的に試験することができる。
【0050】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセス、それらの組み合わせには、さまざまな変形例が存在しうる。以下、こうした変形例について説明する。
【0051】
実施の形態では、デジタル信号処理における「真の値」を1、「偽の値」を0に割り当てる場合を説明したが、本発明はそれに限定されず、0と1を反転したものも当然に本発明の範囲に含まれる。
【0052】
実施の形態では、m=8の場合を説明したが、mの値は限定されず、mは1、2、4など任意の値を選択することができる。
【0053】
実施の形態では、画像データの並べ替えを例に説明したが、ビット並べ替え回路100の用途はそれには限定されず、さまざまなビット列の並べ替えに利用可能である。またビット並べ替え回路100の用途として試験装置を例に説明したが、DUT1である画像センサを搭載する電子機器に搭載され、画像センサからの信号を処理するDSPに利用することも可能である。
【0054】
実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【0055】
10…入力フリップフロップ、11…フリップフロップ、12…格納先データメモリ、14…メモリアドレスカウンタ、DEC…デコーダ回路、20…メモリ回路、22,23…フリップフロップ、24…第1ORゲート、26…第2ORゲート、28…ANDゲート、30…画素切り出し回路、100…ビット並べ替え回路、1…DUT、2…試験装置、4…タイミングコンパレータ。

【特許請求の範囲】
【請求項1】
(m×n)ビット(m、nは自然数)を単位とする入力データのうち、連続するmビットを含むワードデータを順次保持する入力フリップフロップと、
前記入力データに含まれる(m×n)ビットそれぞれの、並べ替え後の位置を示す格納先データを保持する格納先データメモリと、
前記ワードデータの各ビットごとに設けられるm個のデコーダ回路であって、それぞれが前記ワードデータの対応するビットおよびその並べ替え後の位置を示す前記格納先データを受け、(m×n)ビットを有するデコードデータであって、前記対応するビットが0のとき全ビットが0、前記対応するビットが1のとき、その並べ替え後の位置に対応するビットが1、残りのビットが0であるデコードデータを生成するm個のデコーダ回路と、
(m×n)ビットの記憶領域を含み、前記m個のデコーダ回路それぞれからのデコードデータを受け、各デコードデータの1が格納されているビットに対応する前記記憶領域のビットに1を書き込むメモリ回路と、
を備えることを特徴とするビット並べ替え回路。
【請求項2】
前記メモリ回路は、
前記記憶領域である(m×n)ビットのフリップフロップと、
前記m個のデコーダ回路からの前記(m×n)ビットのデコードデータの論理和を生成する第1論理ゲートと、
前記フリップフロップの出力データと前記第1論理ゲートの出力データとの論理和を生成する第2論理ゲートと、
を含み、前記第2論理ゲートの出力データが前記フリップフロップに書き込まれることを特徴とする請求項1に記載のビット並べ替え回路。
【請求項3】
前記入力データは、複数の画素を含む画像データであり、
前記ビット並べ替え回路は、前記入力データの周期ごとに、前記フリップフロップに格納されるデータを、1画素のビット数で切り分けて出力する画素切り出し回路をさらに備えることを特徴とする請求項1または2に記載のビット並べ替え回路。
【請求項4】
請求項1から3のいずれかに記載のビット並べ替え回路を備えることを特徴とする試験装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−248591(P2011−248591A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−120548(P2010−120548)
【出願日】平成22年5月26日(2010.5.26)
【出願人】(390005175)株式会社アドバンテスト (1,005)
【Fターム(参考)】