FPGA を用いた相関計測装置の開発
電気通信大学 森永研究室
福田 冬傑
1.研究の背景・目的

NJM360D

検査装置や制御装置、計測装置は一般的応答時間が最大 20ns の電圧比較器。2 つにセンサーなどからの入力信号に対して演の入力端子の電圧を比較して High ,Low

算処理を行い、その結果に基づいて動作をを出力する。

する。このような装置の多くはマイクロコ

FPGA ボード Papilio Pro

ンピュータを内蔵していて何らかのソフト

本研究で用いた FPGA ボード。ラインアウェア処理を行っている。だが、CPU によップを表 2.1 に示す。

るソフトウェア処理は瞬時に結果が必要だ

表 2.1 FPGA ボード Papilio のラインアップ

ったりする場合などは処理が追いつかず、性能や速度が不足することも少なくない。
FPGA(Field Programmable Gate Array)
ボードは回路構造の書き換えができる集積回路である。さらに FPGA ボードで信号処理を行えば、信号処理部分にパソコンのLogicStart MegaWingような大きさを必要とせず、装置の小型化

FPGA の拡張ボードで、ジョイスティッを図ることができる。

クスイッチや 7 セグメント LED が搭載

本研究の目的は、FPGA と PC の組み合わされている。

せて高速かる高度な処理を行える光子相関

ISE Design Suite

計測システムを構築するころである。

Papilio は ZAP IDE を使わずに、ザイリンクスの FPGA 開発環境 ISE を使っても回路を書き込める。

2.準備

Papilio Loader

以下に本研究で用いる主な装置、用語、ソFPGA 書き込みソフトウェア。図 2.5 にフトについて説明する。

例を示す。Papilio は独自の書き込み回路

MPPC モジュール(JTAG 回路)が搭載されており、Papilio

MPPC を内蔵した微弱光検出が可能な光Lorder を使って JTAG 経由で FPGA フ計測モジュール。光子の計数計測も可能。

ラッシュメモリに BIT ファイルを書き込TC7660める。

チャージポン電圧変換器で、1.5V〜10V 入力を-1.5V〜-10V に変換する。

3.相関計測装置
光検出器が光子を感知した時の波形はアナログの波形であり、このままだと FPGAに送ることができない。そのため、この電圧比較器を用いて High と Low の二つの状
図 3.1 相関計測装置のしくみ態しかない 2 進数の波形に変換してやる装置は上図のようなしくみになっている。

必要がある。

まず、2 つある光検出器が光子を感知する。

次の図 4.3 は光検出器全体の動作を簡略

そしてその信号を FPGA に送り、FPGAしたものである。

内で光子の発生時刻を記録していく。最後にその記録したデータを PC 上に送り、どういう時間差で来たのかなど、相関を計算する。
光検出器の製作にあたり、作成した回路を以下に示す。図 4.1 は負電源を供給するための接続を示している。
図 4.3 光検出器の動作環境
まず、+5V の電源を 3 つの装置につなぎ、TC7660 で-5V の負電源を作り、それをMPPC モジュールと NMJ360D につなげる。MPPC モジュールが光を感知したとき
図 4.1 負電源変換回路の波形を一度電圧変換器で波形を 2 進数

-5V の負電源が必要な理由は、光計測をすのものに変換し、それを FPGA に送ってる MPPC モジュールが ±5V の電圧をいる。

供給 しないと動作しないためである。
次に電圧変換器の回路を図 4.2 に示す。

また図 4.4 は実際に作製した光検出器である。

図 4.2 電圧変換器の回路

図 4.4 光検出器

5.制御装置の制作

VHDL どちらも使用した。

制御装置を作るにあたって、FPGA と回路

図 5.2 にストップウォッチの回路を示す

書き換えソフトなどの使い方を知るために、ストップウォッチを作製した。
5.1 ストップウォッチの作成
ストップウォッチの仕様は以下のようにした。
・計測停止中に SW_0 が押されると計測開始

図 5.2 ストップウォッチの回路

・計測中に SW_0 が押されると計測停止
・計測停止中に SW_1 が押されたら０秒に戻す

5.2 PC 上にデータを表示
FPGA で記録したデータを PC に送り、・SW_2 が押されたら０に戻し、計測も停止する（リセット）画面に表示させた。そのときの様子を図 5.3に示す。

・７セグメント LED に 10ms で計測時間を表示する
制作に関する作業内容を図 5.1 に示す。

図 5.3 PC 画面に表示した様子
ストップウォッチのカウンタの最小単位を10ms に設定したため、この場合は 6.08秒となる。図の右側は PC のシリアルポー
トにその値を表示させている様子である。
図 5.1 作業フロー

5.3 カウンタの値の変更

ソースコードの作成から BIT ファイル作

作成したストップウォッチは最小単位が成までの作業はすべて ISE Design Suite

10ms だが、見たい相関時間はずっと短い上で行った。BIT ファイルは設定したデーためカウントの周期をもっと小さくしなけタを格納したバイナリファイルである。

ればならない。使用した FPGA のクロッ

BIT ファイルを FPGA に書き込むのにはク周波数が 32MHz であるので、これをそPapilio Loader を用いた。のままカウントすればよい。つまり 31.25ns

また、今回用いた言語は HDL(Hardwareが最小となるので、そのままこの周波数をDescription Language)で、Verilog HDL と利用した。

6 まとめ・展望

FIFO とは First In First Out の略で、最初残念ながら、装置はまだ完成しておらず、に入ったデータを最初に取り出すというも課題がいくつか残っているの状態である。のである。

現状は、光検出器の作製、FPGA の記録したデータを PC に送信し表示させるプログラムの作成まではできている。残りの課

7.参考文献題としては、光検出器と制御装置を分けてFPGA 版 Arduino!! Papilio でつくるディ作業を行ったため、この 2 つをつなぐことジタル・ガジェット」、 著者:横溝 憲治/岩が必要である。また、ストップウォッチは手田 利王/土井 滋貴/平 一平、CQ 出版

動でスイッチを押して計測開始していたが、(2014)

相関計測装置は光検出器からの信号に反応

Papilio Pro ハードウェアガイドして自動的に記録しなければならない。そhttp://Papilio.cc/index.php?n=Papilio.Papのため、そういう動作をするプログラムをilio Pro組まなければならない。

ZPUino ユーザ・マニュアル

今考えているのは、光子を感知する周期はhttp://www.alvie.com/zpuino/downloads/z

かなり小さく、信号を FPGA に送って処

puino-1.0.pdf

理を行っている間に次の光子の信号が来る

Arduino リファレンス・サイトと、取りこぼすことになるため、それを防が

http://www.musashinodenpa.com/arduino

なければならない。そのために、一旦データ/ref/を収納するスペースを作ってやれば、光子

http://ww1.microchip.com/downloads/en/を感知した信号をとりこぼすことはなくな

DeviceDoc/21465C.pdf

るのではないかと考えている。その略図をhttp://www.njr.co.jp/products/semicon/P

以下の図 6.1 に示す。また、32MHz の外部

DF/NJM360_J.pdf

クロックを直接用いるのではなく PLL を使

https://www.hamamatsu.com/jp/ja/4163.h

用し、更にデシリアライザを併用することtmlによって 1ns 程度の時間分解能を実現した
い。

図 6.1 処理構造の略図
FPGA 内部の真ん中に位置している２つのブロックがその収納スペースで、これにFIFO メモリを使用する予定である。