BBTBBT-019(ADC019(ADCADC-SiTCPSiTCP-V2)
V2)評価用ファームウェア
BBTBBT-019019-FV01
FV01

機能仕様書

2018 年 2 月 27 日 1.6 版㈱Bee Beans Technologies

改版履歴
版数FPGAVersion

日付

内容

1.0A0160921

2016 年 9 月 21 日

初版

2016 年 9 月 27 日

説明の追加

2016 年 9 月 27 日

誤記訂正2016 年 9 月 28 日

FPGA バグ修正、誤記訂正、追記

1,1
1.2

A0160927

1.3
1.4

1.5

A0160928

A0161028

2016 年 10 月 26 日

2016 年 10 月 28 日

Time from T0 の単位明記
誤記修正
SiTCP の時間パラメータの誤り訂正
本文変更なし
ADC の初期化シーケンス修正

1.6A01802272018 年 2 月 27 日SiTCP ライブラリを V11 に更改
本文修正なし目次
1.

概要 ........................................................................................................................................ 1

2.

BBT-019-FV01 の機能概要.................................................................................................... 1

3.

BBT-019-FV01 のブロック図................................................................................................... 2

4.

3.1.

極性変換回路 .................................................................................................................. 3

3.2.

ペデスタル・クランプ回路 .................................................................................................. 3

3.3.

積算遅延回路 .................................................................................................................. 3

3.4.

積算回路 ......................................................................................................................... 33.5.

ピーク検出回路 ............................................................................................................... 33.6.

期間極値検出回路 .......................................................................................................... 43.7.

定遅延補償回路 .............................................................................................................. 4

3.8.

極性復旧・イベント要求回路 ............................................................................................. 4

3.9.

コインシデンス回路 .......................................................................................................... 43.10.

イベントバッファ回路..................................................................................................... 5SiTCP（TCP）データ ................................................................................................................ 64.1.

5.

6.

SiTCP データフォーマット ................................................................................................ 6RBCP（UDP）アクセス ............................................................................................................. 7
5.1.

Version Register (0x00000000～0x00000003) ............................................................. 85.2.

Jumper Register (0x00000004) ..................................................................................... 85.3.

Mode Register (0x00000005) ........................................................................................ 85.4.

Coincidence Time Register (0x00000006) ..................................................................... 95.5.

Peaking Time Register (0x00000007)............................................................................ 95.6.

LLD Register (0x00000009~0x0000000B) .................................................................... 95.7.

Coincidence Mode Register (0x0000000C~0x0000000F) ......................................... 10

5.8.

T0 Counter Register (0x00000010~0x00000013)...................................................... 10初期値の設定 ........................................................................................................................ 11
6.1.

LLD の初期値（ペデスタルクランプ ON の場合） ............................................................ 11

6.2.

LLD の初期値（ペデスタルクランプ OFF の場合） .......................................................... 11

1. 概要本資料は BBT-019(ADC-SiTCP-V2)評価用ファームウェアの機能を記述するものです。BBT-019には複数のファームウェアがありますが、本仕様書は BBT で作成したイベント処理型ファームウェアである BBT-019-FV01 の機能を記述するものです。

2. BBT-019-FV01 の機能概要の機能概要
BBT-019-FV01 は、40Msps でサンプルしたアナログデータをパルスの高さ、パルスの積分値、期間中の極大値の何れかを測定し、イベント形式で TCP を用いて出力します。NIM-IN1 入力からの T0信号を検出してから信号を検出するまでの時間も測定します。さらに、内部的には信号を２種類の信号に分類してコインシデンスを取る事も出来ます。複数基板を用いたコインシデンスを可能とするため、検出を出力する NIM-OUT とイベント出力を許可する NIM-IN2 入力を備えます。

表 2-1 BBTBBT-019019-FV01 の機能
機能説明
積算検出

信号検出
（注 1）

ピーク検出

（注 2）

期間極値

正極性

指定期間の積算値が+LLD 以上の場合検出

負極値

指定期間の積算値が-LLD 以下の場合検出極大値

前後２サンプルに対して最大値であり+LLD 以上の場合検出極小値

前後２サンプルに対して最小値であり-LLD 以下の場合検出最大値

NIM-IN2 アクティブ期間中の最大値を出力

最小値

NIM-IN2 アクティブ期間中の最小値を出力
NIM-IN1 検出から信号検出までの時間を 25ns 単位で測定

TDC
コインシデンス（注 3）なし

信号検出すると無条件に出力します。

内部

入力を A、B に分類し、A と B に検出があった場合のみ出力

外部検出で NIM-OUT に出力、NIM-IN2 がアサート時のみ出力（注 1） 「積算検出」は自動ペデスタルでのみ、「ピーク検出」と「期間極値」は信号直接と自動ペデスタルの選択が可能です（注 2） 「期間極値」では、LLD の設定は無視されます。
（注 3）コインシデンスを使用しない場合でもコインシデンス期間は新たな検出はできません。

1

3. BBT-019-FV01 のブロック図
フロントエンド処理は 16 チャネルを独立に処理します。バックエンド処理は全チャネル共通のコモン回路群で構成されます。各チャネルはコモン回路であるコインシデンス回路にデータ出力の許可を要求します。コインシデンス回路からの許可があると各チャネルは同じくコモン回路であるイベントバッファに出力します。NIM_IN2 と NIM_IN1 には内部処理時間を補償するための処理遅延補償回路を有します。
各チャネルの処理は、初めに最小値を処理する場合は極性を反転させます。処理の最後で極性を戻すことで最小値の処理としています。ペデスタル・クランプで DC レベルの補償を行う事も出来ます。ただし、積算検出を使用する場合は必ずペデスタル・クランプ回路を使用します。
積算遅延回路は、積算時間分だけ遅延する回路です。各検出回路で信号を検出します。定遅延保障回路は処理遅延が常に積算時間の 4 倍となるように遅延時間を調整します。これは、積算回路がLLD を超えてから積算計算が終わるまでの時間が変動するためです。

CH0CH0Ch0Ch0～Ch15Ch15極性変換ペデスタル・クランプ

積算遅延

LLD

積算回路

ピーク検出

期間極値検出処理遅延補償

ＮＩＭ_IN2

定遅延補償
16

極性復旧
イベント要求コインシデンス

ＮＩＭ_OUT

1616

時間カウンタTCPデータTCPデータ

SiTCP

イベントバッファ

処理遅延補償回数カウンタ

図 3-1 BBTBBT-019019-FV01 のブロック図2

ＮＩＭ_IN1

3.1. 極性変換回路
極性変換回路は、負極性積算値、極小値や最小値を選択した場合に極性を反転する回路です。
極性反転後に正極性積算値、極大値、最大値の処理をして、結果を再度極性反転する事で負極性積算値、極小値、最小値を出力します。

3.2. ペデスタル・クランプ回路
ペデスタル・クランプ回路は、０レベルを自動的に調整するための回路です。パルスが単極性であり、波形の多くの時間が０レベルの場合のみ使用可能です。4 サンプル中の最大値を代表値として、ペデスタル・レベルが大きい場合、ペデスタル・レベルを 1 減少させます。最小値の更新がされないまま 400 サンプル（10μs）経過するとペデスタル・レベルを 1 増加させます。
積算検出ではこの回路を常に使用します。ピーク検出や期間極値の場合は、この回路を使用しない事が出来ます。

3.3. 積算遅延回路
積算検出では、ピーキングタイムの積算値が LLD を上回ると積算を開始します。ピーキングタイム経過した時の積算値を知る必要があるため、この積算遅延回路でピーキングタイム分遅延させています。
ピーク検出や期間極値の場合は、この遅延は不要ですが処理時間を同じにするためにこの遅延回路を通過しています。

3.4. 積算回路
積算検出の為の回路です。積算検出では現在からピーキングタイム後の積算値が LLD を超える事が確認できた時から積算を開始します。積算開始からピーキングタイムを経過した後で、さらに現積算時刻からピーキングタイム経過するまでの積算値が LLD/8 を下回るか、全積算時間がピーキングタイムの 3 倍経過した場合に積算を終了します。
なお、検出時刻は積算値が LLD を超過した時刻となります。

3.5. ピーク検出回路
ピーク検出回路は、現時刻の 2 サンプル前の値がいずれも現在の値以下であり、現時刻の 2 サンプル後の値が現時刻より小さい時で、現時刻の値が LLD より大きい時にピーク検出となります。

33.6. 期間極値検出回路
期間極値検出回路は、NIM-IN2 がアサート（-0.4V 以下）されている期間の最大値を検索する回
路です。この回路が結果を出力するのは NIM-IN2 がネゲートした時（-0.4V 以上に変位した時）です。

3.7. 定遅延補償回路
定遅延保障回路は、積算回路の検出から積算終了までの時間を補償するための回路です。積算時間は、最少がピーキングタイムであり、最大がピーキングタイムの 3 倍です。
積算が終了した時刻にかかわらず、検出した時間から一定時間で検出結果を出すための遅延回路です。積算検出以外のモードでは、固定遅延回路となります。

3.8. 極性復旧・イベント要求回路
この回路は、検出結果の極性を戻して、コインシデンス時間のパルスを生成してコインシデンス回路に通知します。このパルス期間中にコインシデンス回路から応答があるとイベントを生成します。

3.9. コインシデンス回路
コインシデンス回路ではチャネル毎に出力されたパルスをグループ A、グループ B、NIM-OUTに分類します。どこに分類するは、チャネル単位に設定できます。それぞれのグループの値は割り当てられたチャネルの論理和となります。ただし、グループ A とグループ B は例外的に分類される
チャネルがない場合、無条件に真となります。
コインシデンス回路を使用しない場合は、グループ A かグループ B の何れか一方にすべてのチャネルを割り当てることで無条件に出力されます。１基板でコインシデンスを取る場合はグループ A とグループ B に分類して使用します。複数基板を使用する場合は NIM-OUT の出力を外部のコインシデンス回路で判定し NIM-IN2 に戻すことで実現します。

表 3-1 コインシデンス回路分類
コインシデンス回路分類
コインシデンス・モード

分類先

コインシデンス回路出力00

グループ A01

グループ B10

割り当てなし

出力なし

11

NIM-OUTNIM-IN2

グループ A かつ グループ B※設定 10 は、当該チャネル未使用の設定です。

43.10. イベントバッファ回路
イベントバッファ回路は、各チャネルで検出されたイベントを検出順にバッファリングする回路です。
なお、同時に発生したイベントは、T0 イベント、Ch15 イベント~Ch0 イベントの順に処理します。
複数基板での運用ではそれぞれの基板の T0 イベントの対応付けが必要になります。このため、
T0 イベントには T0 イベント回数が格納されています。このイベント回数はレジスタで設定できます。

5

4. SiTCP（（TCP））データ
ディップスイッチの 4 を ON にした場合、SiTCP の TCP/IP アドレスとポート番号は、表 4-1 の通りとなります。
表 4-1 ＳｉＴＣＰの設定値
項目値

ＩＰアドレス１９２．１６８．１０．１６

ポート番号

２４

4.1. SiTCP データフォーマット
TCP セッションが確立されていれば、イベントが発生すするたびに送信されます。イベントには T0 イ
ベント、データイベントの二つがあります。

1010

Ch

Time from T0

ADC Result

図 4-1 データイベント・フォーマット

表 4-2 データイベント・フォーマット中のフィールド
フィールド名フィールド長

説明

Ch

4bit

チャネル番号（0~F）

Time from T0

24bit

T0 からのイベント発生までの時間（25ns 単位）※

ADC Result

32bit

検出結果（二の補数表現）※イベントの発生はコインシデンス回路からの応答があった時となりますTime from T010110000

図 4-2

表 4-3

Pulse CountT0 イベント・フォーマット

T0 イベント・フォーマット中のフィールド

フィールド名フィールド長説明Time from T0

24bit

0x000000 固定

Pulse Count

32bit

T0 発生回数

65. RBCP（（UDP）アクセス）アクセス
RBCP 用いてモジュールのレジスタにアクセスします。RBCP で使用する IP アドレスとポート番号は、ディップスイッチの 4 を ON にした場合、表 5-1 の通り（IP アドレスは TCP と同じ）となります。RBCPのメモリマップを表 5-2 に示します。

表 5-1 RBCP の設定値
項目値

ＩＰアドレス１９２．１６８．１０．１６

ポート番号４６６０

表 5-2 RBCP でのメモリマップ
アドレス（HEX）

用途

BYTE

開始

終了

0x00000000

0x00000003

4Version Register

0x00000004

0x00000004

1

Jumper Register

0x00000005

0x00000005

1

Mode Register

0x00000006

0x00000006

1

Coincidence Time Register

0x00000007

0x00000007

1

Peaking Time Register

0x00000008

0x00000008

1

未使用

0x00000009

0x0000000B

3

LLD Register

0x0000000C

0x0000000F

4

Coincidence Mode Register

0x00000010

0x00000013

4

T0 Counter Register

0x00004000

0x00005FFF

8192

ADC1 のレジスタ

0x00006000

0x00007FFF8192

ADC2 のレジスタ7

5.1. Version Register (0x00000000～～0x00000003)
FPGA のバージョンを区別する ID です。現仕様では初めの 1byte が A0 で次の 1byte の年の下二桁、次の 1 バイトの月、最後の 1byte の日で構成されています。日時はバージョンの新旧を区別する程度で、合成された日時等とは同じとは限りません。先頭の 1byte が 0xA0 である範囲では基本的に互換である事を示します。

5.2. Jumper Register (0x00000004)
BBT-019 の 8 個のジャンパピン設定を表示します。短絡設定すると 0、解放すると 1 となります。

5.3. Mode Register (0x00000005)
BBT-019-FV01 の動作を指定します。また、ディップスイッチの設定を読み出すこともできます。

表 5-3 Mode Register のビットマップのビットマップ
ビット位置

意味

bit7

ディップスイッチ 4 番の状態 0：OFF , 1：ON

Bit6

ディップスイッチ 3 番の状態 0：OFF , 1：ON

Bit5

ディップスイッチ 2 番の状態 0：OFF , 1：ON

bit4

ディップスイッチ 1 番の状態 0：OFF , 1：ON

bit3～bit00000(0)

極大値

Pedestal clamp ON0001(1)極小値

Pedestal clamp ONxx10(2)正極性積算Pedestal clamp ONxx11(3)

負極性積算

Pedestal clamp ON

0100(4)

極大値

Pedestal clamp OFF0101(5)極小値

Pedestal clamp OFF

1000(8)

期間最大値

Pedestal clamp ON

1001(9)

期間最小値

Pedestal clamp ON

1100(C)

期間最大値

Pedestal clamp OFF1101(D)

期間最小値

Pedestal clamp OFF8

5.4. Coincidence Time Register (0x00000006)
コインシデンス時間を 25ns 単位で設定します。信号を検出すると、ここで指定する時間のパルスを発生します。このパルス発生中にコインシデンス回路から応答があるとイベントを発生します。
パルスの時間は（設定値＋3）×25ns となります。NIM-OUT を使用する場合、3 以上を設定してください。これは、出力遅延と入力遅延の和を補償するためです。従って NIM-OUT を使用する場
合は、検出時間が 50ns～75ns 以上遅延します。

5.5. Peaking Time Register (0x00000007)
積算検出モード時の最低積算時間を設定します。（設定値＋1）個のデータを積算した値が LLDを超えた場合積算を開始します。積算検出モードでは（設定値＋1）×3 個の積算を上限とします。
何れのモードで使用する場合でも（設定値＋1）×100ns の処理時間を必要とします。

5.6. LLD Register (0x00000009~0x0000000B)
積算検出モード、ピーク検出でのみ有効です。このレジスタは二の補数表現で設定し、設定できる値は 0xF00000（-1,048,576）~0x0FFFFF(1,048,575)です。Mode Register の bit0 が 0 の場
合は、設定値が LLD となり、1 の場合は、設定値×-1 が LLD となります。ペデスタル・クランプがON の場合は、正の値（0x000000~0x0FFFFF）を設定します。

9

5.7. Coincidence Mode Register (0x0000000C~0x0000000F)
各チャネルのコインシデンス・モードを設定します。各チャネルの設定値は 2bit で 0x0000000Cの bit7,bit6 が Ch15 の設定で 0x0000000F の bit1 と bit0 が Ch0 の設定です。

表 5-4 Coincidence Mode のビットマップ
アドレス0x0000000C

0x0000000D

0x0000000E

0x0000000F

ビット位置

チャネル意味bit7～bit6

Ch15bit5～bit4

Ch14

bit3～bit2

Ch13bit1～bit0

Ch12bit7～bit6

Ch11

bit5～bit4

Ch10

bit3～bit2

Ch900：コインシデンス・グループ A

bit1～bit0

Ch801：コインシデンス・グループ B

bit7～bit6

Ch710：未使用チャネル

bit5～bit4

Ch611：外部コインシデンス(注 1) (注 2)

bit3～bit2

Ch5

bit1～bit0

Ch4

bit7～bit6

Ch3

bit5～bit4

Ch2

bit3～bit2

Ch1

bit1～bit0Ch0（注 1） NIM-OUT の出力を外部回路で判定して NIM-IN2 に戻すための設定です。
（注 2） イベント出力イネーブル入力として使用する事も可能です。その場合、NIM_IN2 は検出処理時間に相当する時間を遅延する必要があります。遅延時間は、Peaking Time Register(0x00000007)の設定値を N とすると、約 N×100ns＋925ns となります。

5.8. T0 Counter Register (0x00000010~0x00000013)
T0 イベントの Pulse Count の値です。書き込む場合は 0x00000010 から順に 0x00000013 まで書き込みます。0x00000013 を書きこんだタイミングで内部のカウンタに転送されます。
読み出す場合は、0x00000010 から順に 0x00000013 まで順に読み出して下さい。0x00000010
を読み出した時に残りのデータをラッチしますので、読み出し中に値が更新される事はありません。

10

6. 初期値の設定
レジスタの初期値を SiTCP の EEPROM を使って保存できます。設定レジスタは 0xFFFFFC3C～0xFFFFFC3F までの 4byte です。
以下の操作を誤ると、復旧する為以下の操作を誤ると、復旧する為 に修理が必要とに修理が必要となる場合がありますので、手順をよく確認の上でなる場合がありますので、手順をよく確認の上で行ってください。
これらのレジスタを変更するためには、0xFFFFFCFF に 0x00 を書きこんでライトプロテクトを解除した後に書き込む必要があります。プロテクトを解除した後に 0xFFFFFC3C～0xFFFFFC3F を変更できますが、それ以外の領域を書き換えると SiTCP が動かなくなる恐れがあります。
この状態では、SiTCP のすべてのパラメータを変更できるため、必要な変更を行った後に速やかに電源を切って再起動してください。（自動的にプロテクトがかかります）

表 6-1 Coincidence Mode のビットマップ
アドレス

ビット位置

意味

bit7～bit6

Coincidence Mode Register Ch15～Ch8 の初期値

bit5～bit4

Coincidence Mode Register Ch7～Ch0 の初期値

bit3～bit0

Mode Register の bit3～bit0 の初期値

0xFFFFFC3D

bit7～bit0

Coincidence Time Register の初期値

0xFFFFFC3E

bit7～bit0

Peaking Time Register の初期値

0xFFFFFC3C

bit7
0xFFFFFC3F

LLD の指数部または符号bit6～bit4LLD の指数部

bit4～bit0

LLD の仮数部

6.1. LLD の初期値（ペデスタルクランプの初期値（ペデスタルクランプ ON の場合）
bit7~bit4 で構成される値（0x0~0xF）を指数部 I とし、bit3~bit0 で構成される値（0x0~0xF）を仮数部 K とすると LLD の初期値は K×2I となります。
設定できる初期値の最小値は 0x00 の時で 0x000000、最大値は 0xFF で 0x78000（491,520）となります。

6.2. LLD の初期値（ペデスタルクランプの初期値（ペデスタルクランプ OFF の場合）
bit7 を符号 F、bit6~bit4 で構成される値（0x0~0x7）を指数部 I とし、bit3~bit0 で構成される値（0x0~0xF）を仮数部 K とすると、LLD の初期値は、F の値で異なり、F=0 ならば K×2I となり、
F=1 ならば、(-1×K×2I)-1 となります。
設定できる初期値の最小値は 0xFF の時で 0xFFF87F(-1921)、最大値は 0x7F で 0x780(1920)となります。
11