以下、本発明の実施形態について図面を参照して説明する。
(第1実施形態)
第1実施形態に係るヒストグラムカウンタについて、図1〜図7を参照して説明する。本実施形態では、後述する下位ビットカウンタ及び上位ビットカウンタが、それぞれ独立した記憶回路により構成される場合を例に説明する。
図1は、本実施形態に係るヒストグラムカウンタの一例を示す図である。図1のヒストグラムカウンタは、制御回路1と、下位ビットカウンタ2A,2Bと、マルチプレクサ3と、上位ビットカウンタ4と、マルチプレクサ5と、を備える。
制御回路1は、外部装置から、読み出しトリガと、カウントトリガと、Bin値と、を入力され、読み出し値を出力する。
読み出しトリガは、下位ビットカウンタ2A,2B及び上位ビットカウンタ4によりカウントされたカウント値の読み出しを指示するトリガであり、所定の時間間隔で入力される。以下、読み出しトリガが入力される時間間隔をサイクル期間という。
Bin値は、ヒストグラムカウンタによるカウントの対象となる値である。制御回路1には、予め設定された範囲(例えば、0〜255)に含まれる任意のBin値が、任意のタイミングで入力される。ヒストグラムカウンタは、サイクル期間の間に各Bin値が入力された回数をカウントする。
カウントトリガは、入力されたBin値のカウントを指示するトリガである。カウントトリガは,任意のBin値が入力された際に併せて入力される。
読み出し値は、サイクル期間の間にカウントされた各Bin値のカウント値のことである。本実施形態では、各Bin値のカウント値は、下位ビットと、上位ビットと、に分けてカウントされる。各Bin値の読み出し値は、各Bin値の下位ビットのカウント値と、各Bin値の上位ビットのカウント値と、に基づいて計算される。
制御回路1は、入力された読み出しトリガ、Bin値、及びカウントトリガに応じて、下位ビットカウンタ2A,2B、マルチプレクサ3、上位ビットカウンタ4、及びマルチプレクサ5を制御する。具体的には、制御回路1は、制御信号により、下位ビットカウンタ2A,2B及び上位ビットカウンタ4の動作を制御する。また、制御回路1は、切替信号により、マルチプレクサ3,5の出力信号の切替を制御する。制御回路1による制御は、制御回路1が、制御シーケンスを実行することにより実現される。制御回路1による制御について、詳しくは後述する。
制御回路1は、汎用目的プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、プログラム可能論理回路(PLD)、専用集積回路、及びこれらの組合せを用いて構成することができる。プロセッサとして、例えば、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラ、マイクロコントローラ、状態マシン、特定用途向け集積回路等も含まれてよい。
下位ビットカウンタ2A(第1の下位ビットカウンタ)は、制御回路1に入力されたBin値の回数の下位ビットをカウントし、カウント値を記憶する。下位ビットカウンタ2Aは、例えば、フリップフロップ回路や不揮発性記憶回路などの、独立した記憶回路(第1の記憶回路)により構成される。
下位ビットカウンタ2Aは、Bin値のカウント値の下位ビットをカウントするBin値用カウンタを備える。Bin値用カウンタは、各Bin値に対して1つ設けられてもよい。この場合、Bin値の数と、Bin値用カウンタの数と、は一致する。したがって、Bin値が0〜255の場合、256個のBin値用カウンタが設けられる。
また、Bin値用カウンタは、複数のBin値に対して1つ設けられてもよい。この場合、Bin値の数と、Bin値用カウンタの数と、は一致しない。例えば、Bin値用カウンタが、4つのBin値に対して1つ設けられ、Bin値が0〜255の場合、64個のBin値用カウンタが設けられる。
以下では、Bin値用カウンタが各Bin値に対して1つ設けられる場合を例に説明する。Bin値Xに対応するBin値用カウンタを、BinX用カウンタという。BinX用カウンタは、Bin値Xが入力された回数をカウントする。BinX用カウンタのカウント値が、Bin値Xのカウント値の下位ビットに相当する。
各Bin値用カウンタは、複数ビットの記憶素子を備える。各Bin値用カウンタのビット数をnとすると、各Bin値用カウンタのカウント値(各Bin値の下位ビットのカウント値)は0〜2n−1となる。BinX値カウンタは、カウント値が2n−1を超えると、桁上げ信号を出力し、カウント値をリセットする。桁上げ信号は、マルチプレクサ3を介して、上位ビットカウンタ4に入力される。
下位ビットカウンタ2B(第2の下位ビットカウンタ)は、制御回路1に入力されたBin値の回数の下位ビットをカウントし、カウント値を記憶する。下位ビットカウンタ2Bは、例えば、フリップフロップ回路や不揮発性記憶回路などの、独立した記憶回路(第2の記憶回路)により構成される。
下位ビットカウンタ2Bは、Bin値のカウント値の下位ビットをカウントするBin値用カウンタを備える。Bin値用カウンタは、各Bin値に対して1つ設けられてもよい。この場合、Bin値の数と、Bin値用カウンタの数と、は一致する。したがって、Bin値が0〜255の場合、256個のBin値用カウンタが設けられる。
また、Bin値用カウンタは、複数のBin値に対して1つ設けられてもよい。この場合、Bin値の数と、Bin値用カウンタの数と、は一致しない。例えば、Bin値用カウンタが、4つのBin値に対して1つ設けられ、Bin値が0〜255の場合、64個のBin値用カウンタが設けられる。
以下では、Bin値用カウンタが各Bin値に対して1つ設けられる場合を例に説明する。Bin値Xに対応するBin値用カウンタを、BinX用カウンタという。BinX用カウンタは、Bin値Xが入力された回数をカウントする。BinX用カウンタのカウント値が、Bin値Xのカウント値の下位ビットに相当する。
各Bin値用カウンタは、複数ビットの記憶素子を備える。各Bin値用カウンタのビット数をnとすると、各Bin値用カウンタのカウント値(各Bin値の下位ビットのカウント値)は0〜2n−1となる。BinX値カウンタは、カウント値が2n−1を超えると、桁上げ信号を出力し、カウント値をリセットする。桁上げ信号は、マルチプレクサ3を介して、上位ビットカウンタ4に入力される。
マルチプレクサ3は、下位ビットカウンタ2A,2Bから桁上げ信号を入力される。マルチプレクサ3は、入力された2つの桁上げ信号のうち、一方の桁上げ信号を選択的に出力する。マルチプレクサ3が出力した桁上げ信号は、上位ビットカウンタ4に入力される。マルチプレクサ3の出力信号(桁上げ信号)の切替は、制御回路1により制御される。
上位ビットカウンタ4は、Bin値のカウント値の上位ビットをカウントする。上位ビットカウンタ4は、例えば、フリップフロップ回路や不揮発性記憶回路などの、独立した記憶回路(第3の記憶回路)により構成される。
上位ビットカウンタ4は、Bin値のカウント値の上位ビットをカウントするBin値用カウンタを備える。Bin値用カウンタは、下位ビットカウンタ2A,2Bと同様に、各Bin値に対して1つ設けられてもよいし、複数のBin値に対して1つ設けられてもよい。
以下では、Bin値用カウンタが各Bin値に対して1つ設けられる場合を例に説明する。Bin値Xに対応するBin値用カウンタを、BinX用カウンタという。BinX用カウンタは、Bin値Xが入力された回数をカウントする。BinX用カウンタのカウント値が、Bin値Xのカウント値の上位ビットに相当する。
各Bin値用カウンタは、複数ビットの記憶素子を備える。各Bin値用カウンタのビット数をNとすると、各Bin値用カウンタのカウント値(各Bin値の上位ビットのカウント値)は0〜2N−1となる。上位ビットカウンタ4のBin値用カウンタは、マルチプレクサ3から桁上げ信号を入力される度に、カウント値が1大きくなる。
制御回路1は、各Bin値の下位ビットのカウント値と、各Bin値の上位ビットのカウント値の2n倍と、の合計値を、各Bin値の読み出し値として出力する。
マルチプレクサ5は、下位ビットカウンタ2A,2B及び上位ビットカウンタ4からカウント値を入力される。マルチプレクサ5は、入力された3つのカウント値のうち、1つのカウント値を選択的に出力する。マルチプレクサ3が出力したカウント値は、制御回路1に入力される。マルチプレクサ5の出力信号(カウント値)の切替は、制御回路1により制御される。
次に、図1のヒストグラムカウンタの動作について説明する。図2は、図1のヒストグラムカウンタの動作状態の遷移を示す状態遷移図である。
状態S1は、ヒストグラムカウンタが、上位ビットカウンタ4(上位)及び下位ビットカウンタ2A(下位A)によるカウント動作(第1のカウント動作)を実行している状態である。
状態S1では、制御信号により、上位ビットカウンタ4及び下位ビットカウンタ2Aは、カウント動作可能な状態に制御され、下位ビットカウンタ2Bは、カウント動作不能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Aの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、下位ビットカウンタ2Bのカウント値を出力する状態に制御される。状態S1において、下位ビットカウンタ2Bのカウント値は0である。マルチプレクサ5は、出力信号を停止された状態に制御されてもよい。
制御回路1に読み出しトリガが入力されると、ヒストグラムカウンタの動作状態は、状態S1から状態S2に遷移する。
状態S2は、ヒストグラムカウンタが、下位ビットカウンタ2B(下位B)によるカウント動作(第2のカウント動作)を実行し、上位ビットカウンタ4(上位)のカウント値の読み出しを実行している状態である。
状態S2では、制御信号により、上位ビットカウンタ4及び下位ビットカウンタ2Aは、カウント動作不能な状態に制御され、下位ビットカウンタ2Bは、カウント動作可能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Bの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、上位ビットカウンタ4のカウント値を出力する状態に制御される。
上位ビットカウンタ4のカウント値は、マルチプレクサ5を介して制御回路1に入力される。すなわち、上位ビットカウンタ4のカウント値は、制御回路1により読み出される。制御回路1は、入力された上位ビットカウンタ4のカウント値を一時的に記憶する。
上位ビットカウンタ4のカウント値の読み出しが完了すると、ヒストグラムカウンタの動作状態は、状態S2から状態S3に遷移する。
状態S3は、ヒストグラムカウンタが、上位ビットカウンタ4(上位)及び下位ビットカウンタ2B(下位B)によるカウント動作(第3のカウント動作)を実行し、下位ビットカウンタ2A(下位A)のカウント値の読み出しを実行している状態である。上位ビットカウンタ4は、カウント値の読み出しが完了すると、カウント値をリセットし、カウント動作を開始する。
状態S3では、制御信号により、下位ビットカウンタ2Aは、カウント動作不能な状態に制御され、上位ビットカウンタ4及び下位ビットカウンタ2Bは、カウント動作可能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Bの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、下位ビットカウンタ2Aのカウント値を出力する状態に制御される。
下位ビットカウンタ2Aのカウント値は、マルチプレクサ5を介して制御回路1に入力される。すなわち、下位ビットカウンタ2Aのカウント値は、制御回路1により読み出される。制御回路1は、入力された下位ビットカウンタ2Aのカウント値を一時的に記憶する。そして、制御回路1は、下位ビットカウンタ2Aのカウント値と、上位ビットカウンタ4のカウント値の2n倍と、を合計した値を、前回のサイクルの読み出し値として出力する。
下位ビットカウンタ2Aのカウント値の読み出しが完了すると、ヒストグラムカウンタの動作状態は、状態S3から状態S4に遷移する。
状態S4は、ヒストグラムカウンタが、上位ビットカウンタ4(上位)及び下位ビットカウンタ2B(下位B)によるカウント動作(第3のカウント動作)を実行している状態である。状態S4は、状態S1に対応する動作状態である。
状態S4では、制御信号により、上位ビットカウンタ4及び下位ビットカウンタ2Bは、カウント動作可能な状態に制御され、下位ビットカウンタ2Aは、カウント動作不能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Bの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、下位ビットカウンタ2Aのカウント値を出力する状態に制御される。状態S4において、下位ビットカウンタ2Aのカウント値は0である。マルチプレクサ5は、出力信号を停止された状態に制御されてもよい。
制御回路1に読み出しトリガが入力されると、ヒストグラムカウンタの動作状態は、状態S4から状態S5に遷移する。
状態S5は、ヒストグラムカウンタが、下位ビットカウンタ2A(下位A)によるカウント動作(第4のカウント動作)を実行し、上位ビットカウンタ4(上位)のカウント値の読み出しを実行している状態である。状態S5は、状態S2に対応する動作状態である。
状態S5では、制御信号により、上位ビットカウンタ4及び下位ビットカウンタ2Bは、カウント動作不能な状態に制御され、下位ビットカウンタ2Aは、カウント動作可能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Aの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、上位ビットカウンタ4のカウント値を出力する状態に制御される。
上位ビットカウンタ4のカウント値は、マルチプレクサ5を介して制御回路1に入力される。すなわち、上位ビットカウンタ4のカウント値は、制御回路1により読み出される。制御回路1は、入力された上位ビットカウンタ4のカウント値を一時的に記憶する。
上位ビットカウンタ4のカウント値の読み出しが完了すると、ヒストグラムカウンタの動作状態は、状態S5から状態S6に遷移する。
状態S6は、ヒストグラムカウンタが、上位ビットカウンタ4(上位)及び下位ビットカウンタ2A(下位A)によるカウント動作(第1のカウント動作)を実行し、下位ビットカウンタ2B(下位B)のカウント値の読み出しを実行している状態である。上位ビットカウンタ4は、カウント値の読み出しが完了すると、カウント値をリセットし、カウント動作を開始する。状態S6は、状態S3に対応する動作状態である。
状態S6では、制御信号により、下位ビットカウンタ2Bは、カウント動作不能な状態に制御され、上位ビットカウンタ4及び下位ビットカウンタ2Aは、カウント動作可能な状態に制御される。また、切替信号により、マルチプレクサ3は、下位ビットカウンタ2Aの桁上げ信号を出力する状態に制御され、マルチプレクサ5は、下位ビットカウンタ2Bのカウント値を出力する状態に制御される。
下位ビットカウンタ2Bのカウント値は、マルチプレクサ5を介して制御回路1に入力される。すなわち、下位ビットカウンタ2Bのカウント値は、制御回路1により読み出される。制御回路1は、入力された下位ビットカウンタ2Bのカウント値を一時的に記憶する。そして、制御回路1は、下位ビットカウンタ2Bのカウント値と、上位ビットカウンタ4のカウント値の2n倍と、を合計した値を、前回のサイクルの読み出し値として出力する。
下位ビットカウンタ2Bのカウント値の読み出しが完了すると、ヒストグラムカウンタの動作状態は、状態S6から状態S1に遷移する。
ヒストグラムカウンタは、以上説明した状態S1〜S6の動作状態を繰り返しながら動作する。状態S2〜S4及び状態S5〜S1が、それぞれヒストグラムカウンタの1サイクル分の動作に相当する。
図3は、図1のヒストグラムカウンタの動作の具体例を示すタイミングチャートである。図3の例では、3つのサイクル1〜3のタイミングチャートが示されている。また、図3の例では、読み出しトリガ及びカウントトリガの入力は、読み出しトリガ及びカウントトリガの立ち上がりにそれぞれ相当する。また、図3の例では、一例として、下位ビットカウンタ2A,2B及び上位ビットカウンタ4の4ビットのBin1用カウンタのカウント値が示されている。
まず、サイクル1について説明する。サイクル1は、制御回路1に1つ目の読み出しトリガが入力されてから、2つ目の読み出しトリガが入力されるまでの期間である。
制御回路1は、1つ目の読み出しトリガが入力されると、サイクル1を開始し、下位ビットカウンタ2Aにカウント動作を開始させる。すなわち、制御回路1は、下位ビットカウンタ2Aを、カウント動作可能な状態に制御する。また、制御回路1は、下位ビットカウンタ2Bにカウント値を保持させ、上位ビットカウンタ4のカウント値の読み出しを開始する。このときのヒストグラムカウンタの動作状態は、状態S5に相当する。
上位ビットカウンタ4のカウント値の読み出しが完了すると、制御回路1は、読み出した上位ビットのカウント値を一時記憶し、上位ビットカウンタ4のカウント値をリセットし、上位ビットカウンタ4にカウント動作を開始させ、下位ビットカウンタ2Bのカウント値の読み出しを開始する。このときのヒストグラムカウンタの動作状態は、状態S6に相当する。
以上のことからわかるように、下位ビットカウンタ2Aは、制御回路1が上位ビットカウンタ4のカウント値の読み出し及びリセットを実行している間、単独でBin値をカウントする必要がある。下位ビットカウンタ2Aの各Bin値用カウンタのビット数が小さいと、この期間にカウント値の繰り上げが発生する。しかしながら、上位ビットカウンタ4は、カウント値の読み出し中であるため、繰り上げ信号に応じてカウント値を繰り上げることができない。この結果、カウント値の繰り上げが上位ビットのカウント値に反映されず、ヒストグラムの精度が劣化する。
このため、下位ビットカウンタ2Aの各Bin値用カウンタは、上位ビットカウンタ4のカウント値の読み出し及びリセットに要する時間tの間にカウントされるBin値の最大カウント値をカウント可能なビット数を有するのが好ましい。例えば、時間tの間に、あるBit値が最大で10回入力される、すなわち、最大カウント値が10である場合、各Bin値用カウンタのビット数を、4ビット以上とすればよい。最大カウント値は、実験やシミュレーションにより求めればよい。
下位ビットカウンタ2Bのカウント値の読み出しが完了すると、制御回路1は、読み出した下位ビットのカウント値を一時記憶し、一時記憶した上位ビット及び下位ビットのカウント値に基づいて、読み出し値を計算し、計算した読み出し値を、サイクル1の前のサイクル(図示省略)の読み出し値として出力する。読み出し値の計算方法は、上述の通りである。
また、制御回路1は、下位ビットカウンタ2Bのカウント値をリセットし、下位ビットカウンタ2Bの動作を停止させる。すなわち、制御回路1は、下位ビットカウンタ2Bを、カウント動作不能な状態に制御する。このときのヒストグラムカウンタの動作状態は、状態S1に相当する。
以降、2つ目の読み出しトリガが入力されるまで、状態S1が継続される。すなわち、ヒストグラムカウンタは、下位ビットカウンタ2A及び上位ビットカウンタ4によるカウント動作を継続する。
図3の例では、サイクル1において、制御回路1に、Bin値1,2,1,5が順に入力されており、それぞれのBin値に対応するカウントトリガが入力されている。制御回路1は、Bin値1に対応するカウントトリガが入力されると、下位ビットカウンタ2AのBin1用カウンタにカウントトリガを入力する。Bin1用カウンタは、制御回路1からカウントトリガを入力される度に、保持しているカウント値を1大きくする。結果として、サイクル1の終了時において、Bin1用カウンタのカウント値は、2となる。
本実施形態では、下位ビットカウンタ2Aは、独立した記憶回路により構成されている。このため、上記のように、下位ビットカウンタ2Aの各Bin値用カウンタのカウント値の更新は、下位ビットカウンタ2Aが行う。
次に、サイクル2について説明する。サイクル2は、制御回路1に2つ目の読み出しトリガが入力されてから、3つ目の読み出しトリガが入力されるまでの期間である。
制御回路1は、2つ目の読み出しトリガが入力されると、サイクル2を開始し、下位ビットカウンタ2Bにカウント動作を開始させる。すなわち、制御回路1は、下位ビットカウンタ2Bを、カウント動作可能な状態に制御する。また、制御回路1は、下位ビットカウンタ2Aにカウント値(2)を保持させ、上位ビットカウンタ4のカウント値(0)の読み出しを開始する。このときのヒストグラムカウンタの動作状態は、状態S2に相当する。
上位ビットカウンタ4のカウント値の読み出しが完了すると、制御回路1は、読み出した上位ビットのカウント値を一時記憶し、上位ビットカウンタ4のカウント値をリセットし、上位ビットカウンタ4にカウント動作を開始させ、下位ビットカウンタ2Aのカウント値(2)の読み出しを開始する。このときのヒストグラムカウンタの動作状態は、状態S3に相当する。
以上のことからわかるように、下位ビットカウンタ2Bは、制御回路1が上位ビットカウンタ4のカウント値の読み出し及びリセットを実行している間、単独でBin値をカウントする必要がある。したがって、下位ビットカウンタ2Bの各Bin値用カウンタは、下位ビットカウンタ2Aと同様に、上位ビットカウンタ4のカウント値の読み出し及びリセットに要する時間tの間にカウントされるBin値の最大カウント値をカウント可能なビット数を有するのが好ましい。
下位ビットカウンタ2Aのカウント値(2)の読み出しが完了すると、制御回路1は、読み出した下位ビットのカウント値を一時記憶し、一時記憶した上位ビット及び下位ビットのカウント値に基づいて、読み出し値を計算し、計算した読み出し値を、サイクル1の読み出し値として出力する。読み出し値の計算方法は、上述の通りである。
また、制御回路1は、下位ビットカウンタ2Aのカウント値をリセットし、下位ビットカウンタ2Aの動作を停止させる。すなわち、制御回路1は、下位ビットカウンタ2Aを、カウント動作不能な状態に制御する。このときのヒストグラムカウンタの動作状態は、状態S4に相当する。
以降、3つ目の読み出しトリガが入力されるまで、状態S4が継続される。すなわち、ヒストグラムカウンタは、下位ビットカウンタ2B及び上位ビットカウンタ4によるカウント動作を継続する。
図3の例では、サイクル2において、制御回路1に、Bin値18,1,53が順に入力されており、それぞれのBin値に対応するカウントトリガが入力されている。制御回路1は、Bin値1に対応するカウントトリガが入力されると、下位ビットカウンタ2BのBin1用カウンタにカウントトリガを入力する。Bin1用カウンタは、制御回路1からカウントトリガを入力される度に、保持しているカウント値を1大きくする。結果として、サイクル1の終了時において、Bin1用カウンタのカウント値は、1となる。
本実施形態では、下位ビットカウンタ2Bは、独立した記憶回路により構成されている。このため、上記のように、下位ビットカウンタ2Bの各Bin値用カウンタのカウント値の更新は、下位ビットカウンタ2Bが行う。
次に、サイクル3について説明する。サイクル3は、制御回路1に3つ目の読み出しトリガが入力されてから、4つ目の読み出しトリガ(図示省略)が入力されるまでの期間である。サイクル3におけるヒストグラムカウンタの動作は、サイクル1と略同様である。サイクル3では、カウント値の繰り上げについて説明する。
図3の例では、サイクル3の途中で、下位ビットカウンタ2AのBin1用カウンタのカウント値が15になっており、その後、制御回路1にBin値1に対応するカウントトリガが入力されている。このカウントトリガを入力された制御回路1は、下位ビットカウンタ2AのBin1用カウンタにカウントトリガを入力する。
しかしながら、下位ビットカウンタ2AのBin1用カウンタは、4ビットであるため、カウント値を15より大きくすることができない。この場合、下位ビットカウンタ2Aは、Bin1用カウンタが保持しているカウント値(15)をリセットし、上位ビットカウンタ4のBin1用カウンタに対する繰り上げ信号を出力する。
上述の通り、状態S1では、マルチプレクサ3は、下位ビットカウンタ2Aの出力信号を出力するように制御されているため、下位ビットカウンタ2Aが出力した繰り上げ信号は、上位ビットカウンタ4に入力される。
繰り上げ信号を入力された上位ビットカウンタ4は、Bin1用カウンタが保持しているカウント値(0)を1大きくする。結果として、上位ビットカウンタ4のBin1用カウンタのカウント値は、1となる。
本実施形態では、上位ビットカウンタ4は、独立した記憶回路により構成されている。このため、上記のように、上位ビットカウンタ4の各Bin値用カウンタのカウント値の更新は、上位ビットカウンタ4が行う。
以上説明した通り、本実施形態に係るヒストグラムカウンタは、状態S1〜状態S6を繰り返しながら、Bin値のカウントを行う。いずれの状態であっても、ヒストグラムカウンタは、下位ビットカウンタ2A又は下位ビットカウンタ2Bにより、Bin値のカウント動作を実行するため、カウント動作を実行できないカウント動作不可期間が生じない。したがって、本実施形態に係るヒストグラムカウンタは、精度良くヒストグラムを生成することができる。
また、本実施形態に係るヒストグラムカウンタは、2つの下位ビットカウンタ2A,2Bを備えるものの、上位ビットカウンタ4は1つしか備えない。このため、本実施形態における下位ビットカウンタ2A(又は下位ビットカウンタ2B)及び上位ビットカウンタ4に相当する全ビットのカウンタ、を2つ備える従来のヒストグラムカウンタに比べて、本実施形態に係るヒストグラムカウンタは、回路面積が小さい。
したがって、本実施形態によれば、カウント動作不可期間がなく回路面積が小さいヒストグラムカウンタを実現することができる。
ここで、図4〜図6は、従来のヒストグラムカウンタの例を示す図である。
図4は、ヒストグラムカウンタの従来例1を示す図である。図4の従来例1は、制御回路と、全ビットのカウンタと、を備える。このカウンタは、各Bin値に対応するBin値用カウンタを備え、本実施形態における下位ビットカウンタ2A(又は下位ビットカウンタ2B)及び上位ビットカウンタ4に相当する。従来例1では、カウンタが分割されていないため、カウンタは、カウント値を読み出されている間、Bin値をカウントすることができない。したがって、従来例1は、カウンタの読み出し期間が、カウント動作不可期間となる。
図5は、ヒストグラムカウンタの従来例2を示す図である。図5の従来例2は、制御回路と、下位ビットカウンタと、上位ビットカウンタと、マルチプレクサと、を備える。従来例2では、カウント値の読み出しは、下位ビットカウンタ、上位ビットカウンタの順で行われる。従来例2は、図1のヒストグラムカウンタと異なり、下位ビットカウンタを1つしか備えない。このため、下位ビットカウンタの読み出し期間がカウント動作不可期間となる。カウンタを分割したことにより、従来例2は、従来例1に比べてカウント動作不可期間が短いものの、カウント動作不可期間は依然として存在する。
図6は、ヒストグラムカウンタの従来例3を示す図である。図6の従来例3は、制御回路と、2つの全ビットのカウンタと、マルチプレクサと、を備える。従来例3では、1サイクルごとに、カウント動作を実行するカウンタと、カウント値の読み出しを実行するカウンタと、が入れ替えられため、カウント動作不可期間が生じない。しかしながら、全ビットのカウンタを2つ備えるため、回路面積が大きい。
図7は、本実施形態に係るヒストグラムカウンタと、従来例1〜3に係るヒストグラムカウンタと、の比較結果を示す図である。比較条件は、カウントレートが100Mcps(サイクル期間が10ns)、Bin数(Bin値の数)が256、読み出し速度が1280Mbps、各Bin値用カウンタの全ビット数が8ビット、1Bin(1つのBin値)への偏重が20%、計測期間が12.8μs(1280サイクル)である。本実施形態及び従来例2に係るヒストグラムカウンタの下位ビットカウンタ及び上位ビットカウンタは、それぞれ4ビットである。また、回路面積は、制御回路を除外して比較している。これは、ヒストグラムカウンタの回路面積において、カウンタの回路面積が支配的なためである。
上記の比較条件で実験した結果、図7に示すように、従来例1〜3及び第1実施形態に係るヒストグラムカウンタのカウント動作不可期間は、それぞれ1.6μs,0.2μs,0μs,0μsとなった。
従来例1のカウント動作不可期間は、計測期間の約13%に相当する。このことから、従来例1により生成されるヒストグラムの精度は低いことがわかる。また、従来例2のカウント動作不可期間は、計測期間の約1.6%に相当する。このことから、従来例2により生成されるヒストグラムは、従来例1より精度が高いものの、従来例3及び第1実施形態に比べて精度が低いことがわかる。
一方、従来例1〜3及び第1実施形態に係るヒストグラムカウンタの回路面積の比率は、1:1:2:1.5である。このことから、第1実施形態の回路面積は、従来例3の回路面積に比べて25%小さいことがわかる。これは、下位ビットカウンタ2A,2B及び上位ビットカウンタ4がそれぞれ4ビットのためである。下位ビットカウンタ2A,2Bのビット数が小さくなる(上位ビットカウンタ4のビット数が大きくなる)ほど、本実施形態による回路面積の削減効果は大きくなる。
(第2実施形態)
第2実施形態に係るヒストグラムカウンタについて、図8を参照して説明する。本実施形態では、下位ビットカウンタ2A,2B及び上位ビットカウンタ4が、1つのRAM(Random Access Memory)により構成される場合を例に説明する。
図8は、本実施形態に係るヒストグラムカウンタの一例を示す図である。図1のヒストグラムカウンタは、制御回路1と、下位ビットカウンタ2A,2Bと、上位ビットカウンタ4と、を備える。制御回路1の構成は、第1実施形態と同様である。以下、第1実施形態との相違点を中心に説明する。
本実施形態では、下位ビットカウンタ2A,2B及び上位ビットカウンタ4は、RAM6により構成される。RAM6は、例えば、DRAM(Dynamic RAM)、SRAM(Static RAM)、MRAM(Magneto resistive RAM)、又はPRAM(Phase change RAM)であり、少なくとも2つのポートを有する。
より詳細には、本実施形態では、RAM6の一部の記憶領域が、下位ビットカウンタ2A,2B及び上位ビットカウンタ4として利用される。
下位ビットカウンタ2Aとして、例えば、下位ビットカウンタ2Aのビット値用カウンタのビット数に応じたビット線と、Bin値の数に応じたワード線と、により規定される記憶領域が利用される。
また、下位ビットカウンタ2Bとして、例えば、下位ビットカウンタ2Bのビット値用カウンタのビット数に応じたビット線と、Bin値の数に応じたワード線と、により規定される記憶領域が利用される。
また、上位ビットカウンタ4として、例えば、上位ビットカウンタ4のビット値用カウンタのビット数に応じたビット線と、Bin値の数に応じたワード線と、により規定される記憶領域が利用される。
本実施形態では、第1実施形態におけるマルチプレクサ3,5の機能も、制御回路1により実現される。また、本実施形態では、下位ビットカウンタ2A,2B及び上位ビットカウンタ4は、いずれもカウント値を更新できない。そこで、カウント値の更新は、制御回路1により実行される。
具体的には、制御回路1は、Bin値に対応するカウントトリガを入力されると、そのBin値のカウント値の下位ビットに対応するRAM6の記憶領域(下位ビットカウンタ2A,2B)からカウント値を読み出し、読み出したカウント値を1大きくして更新し、更新したカウント値を元の記憶領域(下位ビットカウンタ2A,2B)に書き込む。
制御回路1は、読み出したカウント値が、下位ビットカウンタ2A,2Bがカウント可能な最大値であった場合、カウント値をリセットして元の記憶領域(下位ビットカウンタ2A,2B)に書き込むとともに、そのBin値のカウント値の上位ビットに対応するRAM6の記憶領域(上位ビットカウンタ4)からカウント値を読み出し、読み出したカウント値を1大きくして更新し、更新したカウント値を元の記憶領域(上位ビットカウンタ4)に書き込む。
以上の処理は、制御回路1が制御シーケンスを実行することにより実現される。これにより、本実施形態の構成であっても、第1実施形態と同様に、カウント動作不可期間がなく回路面積が小さいヒストグラムカウンタを実現することができる。
また、本実施形態では、下位ビットカウンタ2A,2B及び上位ビットカウンタ4が、RAM6により構成される。RAM6は、記憶回路が高密度に集積されたものであるため、本実施形態によれば、独立した記憶回路を利用する第1実施形態に比べて、回路面積をさらに小さくすることができる。
(第3実施形態)
第3実施形態に係る放射線検出装置について、図9を参照して説明する。本実施形態に係る放射線検出装置は、第1実施形態又は第2実施形態に係るヒストグラムカウンタを備える。
図9は、本実施形態に係る放射線検出装置の一例を示す図である。図9の放射線検出装置100は、放射線検出器101と、放射線検出回路102と、を備える。
放射線検出器101は、シンチレータと、光電子増倍管と、により構成される。シンチレータは、入射した放射線のエネルギーに応じた電荷信号を出力する。光電子増倍管は、シンチレータが出力した電荷信号を増幅し、電流信号に変換して出力する。光電子増倍管が出力した電流信号が、放射線検出器101の出力信号となる。放射線検出器101が放射線を検出すると、出力信号はパルスとなる。
なお、放射線検出器101は、増幅回路、フィルタ、電流信号である出力信号を電圧信号に変換する電流電圧変換回路などを備えてもよい。また、これらの回路が放射線検出回路102に設けられてもよい。
放射線検出回路102は、放射線検出器101の出力信号に所定の信号処理を実行し、放射線検出器101に入射した放射線のエネルギーヒストグラムを出力する。放射線検出器101の出力信号が、放射線検出回路102の入力信号となる。放射線検出回路102は、例えば、放射線検出装置用のASIC(Application Specific Integrated Circuit)として構成される。
放射線検出回路102は、パルス検出回路103と、AD(Analog-to-Digital)変換器と、制御回路105と、ヒストグラムカウンタ106と、を備える。
パルス検出回路103は、入力信号に含まれるパルスを検出する。すなわち、パルス検出回路103は、放射線検出器101に放射線が入射したことを検出する。パルス検出回路103は、パルスを検出すると検出信号を出力する。検出信号は、制御回路105に入力される。
AD変換器104は、制御回路105から開始信号を入力されると、入力信号をAD変換し、入力信号をAD変換したAD変換値(デジタル値)を出力する。このAD変換値は、放射線検出器101に入射した放射線のエネルギーに応じたBin値に相当する。
また、AD変換器104は、AD変換が完了すると、カウントトリガを出力する。AD変換器104が出力したBin値及びカウントトリガは、ヒストグラムカウンタ106に入力される。なお、AD変換器104として、パイプラインAD変換器、ΔΣAD変換器、フラッシュAD変換器、逐次比較AD変換器など、任意のAD変換器を利用できる。
制御回路105は、プロセッサにより構成され、放射線検出回路102の動作を制御する。制御回路105は、パルス検出回路103から検出信号を入力されると、開始信号を出力する。この開始信号は、AD変換器104に入力される。また、制御回路105は、ヒストグラムカウンタ106に読み出しトリガを入力する。制御回路105は、外部から読み出しトリガを入力されてもよいし、外部から入力されたクロックなどに基づいて、読み出しトリガを生成し、ヒストグラムカウンタ106に入力してもよい。
ヒストグラムカウンタ106は、第1実施形態又は第2実施形態に係るヒストグラムカウンタである。AD変換器104が出力したBin値及びカウントトリガと、制御回路105が出力した読み出しトリガと、はヒストグラムカウンタ106の制御回路1に入力される。
上述の通り、制御回路1は、入力されたBin値、カウントトリガ、及び読み出しトリガに応じて、下位ビットカウンタ2A,2B及び上位ビットカウンタ4などを制御し、Bin値のカウント値をカウントし、読み出し値を出力する。この読み出し値は、放射線検出器101が検出した放射線のエネルギーヒストグラムに相当する。
以上説明した通り、本実施形態に係る放射線検出装置100は、ヒストグラムカウンタ106により放射線のエネルギーヒストグラムを生成する。ヒストグラムカウンタ106はカウント動作不可期間がないため、放射線検出装置100は、放射線のエネルギーヒストグラムを精度よく生成することができる。
また、本実施形態に係る放射線検出回路102は、ヒストグラムカウンタ106を備えるため、回路面積を小型化することができる。一般に、放射線検出回路102の回路面積において、ヒストグラムカウンタの回路面積が支配的であるため、本実施形態のより、回路面積の効果的に削減することができる。
なお、本実施形態では、ヒストグラムカウンタ106を放射線検出回路102に適用する場合について説明したが、ヒストグラムカウンタ106は、ガスクロマトグラフを構成するガス検出回路に適用することも可能である。この場合、ガス検出回路は、例えば、ASICとして構成される。これにより、ガス検出回路を小型化し、エネルギーヒストグラムの精度を向上させることができる。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。