修士学位論文

LHC-ATLAS 実験における液体アルゴンカロリメータのアップグレードに向けたファームウェアの研究開発

Firmware development for the upgrade of the liquid argon
calorimeter at the LHC-ATLAS experiment東京大学大学院
理学系研究科 物理学専攻
田中研究室
宇野 健太

2017 年 1 月

目次
第1章
1.1
1.2
1.3

序論
本研究の背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
本研究の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
1
4
5

第 2 章 LHC-ATLAS 実験
2.1 LHC, ATLAS について . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 ATLAS 検出器概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 内部飛跡検出器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 カロリメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 ミューオンスペクトロメータ . . . . . . . . . . . . . . . . . . . . .
2.3 トリガーシステム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 TTC システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 ATLAS アップグレード計画 . . . . . . . . . . . . . . . . . . . . . . . . . .

6
6
7
7
9
11
12
13
13

第 3 章 LAr カロリメータアップグレード
3.1 現在の読み出し方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 フロントエンドエレクトロニクス . . . . . . . . . . . . . . . . . . .
3.1.2 バックエンドエレクトロニクス . . . . . . . . . . . . . . . . . . . .
3.1.3 L1Calo トリガーシステム . . . . . . . . . . . . . . . . . . . . . . .
3.2 アップグレード後読み出し方法 . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Layer Sum Board (LSB) . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 LAr Trigger Digitizer Board (LTDB) . . . . . . . . . . . . . . . . .
3.2.3 LAr Digital Processing Board (LDPB) . . . . . . . . . . . . . . . .
3.2.4 Feature Extractor module (FEX) . . . . . . . . . . . . . . . . . . .
3.3 Field Programmable Gate Array (FPGA) . . . . . . . . . . . . . . . . . .
3.3.1 Adaptive Logic Module (ALM) . . . . . . . . . . . . . . . . . . . .
3.3.2 Random Access Memory (RAM) . . . . . . . . . . . . . . . . . . .
3.3.3 Digital Signal Processor Block (DSP Block) . . . . . . . . . . . . .

15
15
16
17
20
20
21
21
22
23
24
24
24
26

第4章
4.1
4.2
4.3
4.4

28
28
29
29
30

デモンストレータプロジェクト
プロジェクト概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LTDB デモンストレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LDPB デモンストレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
バックエンド FPGA ファームウェア . . . . . . . . . . . . . . . . . . . . .

1

4.4.1 Front FPGA ファームウェア . . . . . . . . . . . . . . . . . . . . .
4.4.2 Back FPGA ファームウェア . . . . . . . . . . . . . . . . . . . . . .
Adc readout モジュールのファームウェア . . . . . . . . . . . . . . . . . .
4.5.1 Channel mixing issue . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 latency shift (pulse shift) issue . . . . . . . . . . . . . . . . . . . .
デモンストレータプロジェクトのまとめ . . . . . . . . . . . . . . . . . . .

31
31
32
38
41
44

第 5 章 LATOME プロジェクト
5.1 LATOME Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 LATOME ファームウェア . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Low Level Interface (LLI) . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Input stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3 Configurable remapping . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4 User Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.5 Output summing . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.6 TDAQ/Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.7 IPBus controller . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.8 TTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 User Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Filter の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Optimal filter 後の適切な選択条件 . . . . . . . . . . . . . . . . . .
5.3.3 τ の選択条件の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.4 エネルギー, 係数とペデスタルフォーマット . . . . . . . . . . . . .
5.3.5 サチュレーションした波形の同定方法 . . . . . . . . . . . . . . . .
5.3.6 コンフィグレーションの変更方法 . . . . . . . . . . . . . . . . . . .
5.3.7 Baseline Correction . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.8 ブロックダイアグラム . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 ファームウェア動作試験 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 インプット、チェッカーテストベンチ . . . . . . . . . . . . . . . . .
5.4.2 シミュレーションによる動作確認 . . . . . . . . . . . . . . . . . . .
5.4.3 ボードによる試験 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 統合試験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45
45
45
47
48
49
51
51
51
52
52
52
52
54
60
60
67
71
72
75
76
76
76
79
82

4.5

4.6

第 6 章 結論と今後に向けて
84
6.1 結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 今後に向けて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

2

図目次
トリガーレベルでの電磁カロリメータの読み出す領域。 . . . . . . . . . . .
電子収集効率 95%下でのエネルギー閾値とトリガーレート . . . . . . . . .
Trigger Tower と Super Cell . . . . . . . . . . . . . . . . . . . . . . . . . .
Super Cell 読み出しで使用可能になる変数 . . . . . . . . . . . . . . . . . .
LAr カロリメータの読み出し経路 . . . . . . . . . . . . . . . . . . . . . . .

2
2
3
4
5

2.1 LHC 加速器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 ATLAS 検出器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 内部飛跡検出器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 バレル部の SCT モジュール . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 それぞれの粒子に対してのカロリメータの応答 . . . . . . . . . . . . . . . .
2.6 ATLAS 電磁カロリメータのアコーディオン構造 . . . . . . . . . . . . . . .
2.7 バレル部 (η=0) における LAr カロリメータの層構造 . . . . . . . . . . . .
2.8 フォーワードカロリメータの構造 . . . . . . . . . . . . . . . . . . . . . . .
2.9 MDT の構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10 Run2 のトリガーシステムの流れ . . . . . . . . . . . . . . . . . . . . . . .
2.11 LHC のアップグレード計画 . . . . . . . . . . . . . . . . . . . . . . . . . .

6
7
7
8
9
10
10
11
12
13
14

3.1 液体アルゴンカロリメータの構造 . . . . . . . . . . . . . . . . . . . . . . .
3.2 カロリメータから得られる信号 . . . . . . . . . . . . . . . . . . . . . . . .
3.3 現在の液体アルゴンカロリメータの読み出しシステム . . . . . . . . . . . .
3.4 検出器から得られる信号とシェイピング後の信号 . . . . . . . . . . . . . .
3.5 L1Calo トリガーシステム . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 バレル部での 1 ビットの重み . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 LDPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 ATCA プラットフォーム . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 L1Calo アップグレードの全体図 . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Arria10 の ALM の配線図 . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11 StratixIV の ALM の配線図 . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12 Arria10 シリーズのメモリ機能 . . . . . . . . . . . . . . . . . . . . . . . . .
3.13 Arria10 シリーズの DSP Block の配線図 (18×19 モード) . . . . . . . . . .

15
16
16
17
20
22
23
23
24
25
25
26
27

1.1
1.2
1.3
1.4
1.5

4.1
4.2
4.3

デモンストレータ導入後の読み出しシステム . . . . . . . . . . . . . . . . . 28
LTDB のデータフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . 29
LTDB デモンストレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3

4.4 ABBA ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5 Front FPGA ファームウェアの全体図 . . . . . . . . . . . . . . . . . . . . . 31
4.6 Back FPGA ファームウェアの全体図 . . . . . . . . . . . . . . . . . . . . . 31
4.7 adc readout モジュールの設計図 . . . . . . . . . . . . . . . . . . . . . . . . 32
4.8 adc readout モジュールのインプットデータシークエンス . . . . . . . . . . 32
4.9 サーキュラーバッファのデータフロー . . . . . . . . . . . . . . . . . . . . . 33
4.10 address FIFO のデータフロー . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.11 ABBA が取得する波形データ . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.12 ABBA の Header と Trailer 一覧 . . . . . . . . . . . . . . . . . . . . . . . . 35
4.13 L1A ADC FIFO の読み出しシークエンス . . . . . . . . . . . . . . . . . . 36
4.14 64 ビットパケットフォーマット . . . . . . . . . . . . . . . . . . . . . . . . 36
4.15 Packet FIFO のデータシークエンス . . . . . . . . . . . . . . . . . . . . . . 37
4.16 IP bus からの request 信号と reply 信号 . . . . . . . . . . . . . . . . . . . . 37
4.17 Channel mixing が現れたデータ . . . . . . . . . . . . . . . . . . . . . . . . 38
4.18 セットアップスラック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.19 ホールドスラック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.20 Front FPGA ファームウェアの全経路でのワーストセットアップスラックの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.21 Front FPGA ファームウェアの全経路でのワーストホールドスラックの一覧 40
4.22 パルスシフトが起きた時の波形 . . . . . . . . . . . . . . . . . . . . . . . . 41
4.23 インプットデータシークエンス . . . . . . . . . . . . . . . . . . . . . . . . 41
4.24 近いタイミングで 2 つの ttc accept 信号が入った時の address FIFO の振舞い 42
4.25 連続した 2 つ ttc accept 信号の事象 . . . . . . . . . . . . . . . . . . . . . . 43
4.26 改善後のファームウェアのデータフロー . . . . . . . . . . . . . . . . . . . 43
5.1 LATOME Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 LATOME Board と Arria10 FPGA との接続の略図 . . . . . . . . . . . . .
5.3 LLI の全体図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 LATOME ファームウェア全体図 . . . . . . . . . . . . . . . . . . . . . . .
5.5 パラレル変換された時のデータフォーマット . . . . . . . . . . . . . . . . .
5.6 Input stage モジュールの全体図 . . . . . . . . . . . . . . . . . . . . . . . .
5.7 出力のデータシークエンス . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 Configurable remapping でのチャンネル並び替え . . . . . . . . . . . . . .
5.9 バレル部でのマッピングの一例 . . . . . . . . . . . . . . . . . . . . . . . .
5.10 エンドキャップ部でのマッピング一例 . . . . . . . . . . . . . . . . . . . . .
5.11 Optimal filter のファームウェア設計 . . . . . . . . . . . . . . . . . . . . .
5.12 Optimal filter のデータフロー . . . . . . . . . . . . . . . . . . . . . . . . .
5.13 L1Calo でのエネルギー再構成率 . . . . . . . . . . . . . . . . . . . . . . . .
5.14 S-Frame に使用した理想的な波形 g . . . . . . . . . . . . . . . . . . . . . .
5.15 カロリメータの信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.16 5 GeV と 20 GeV の目的事象に対する ET と τ の広がり . . . . . . . . . . .
5.17 分布の広がりのエネルギー依存性 . . . . . . . . . . . . . . . . . . . . . . .
4

45
46
46
47
48
48
49
50
50
51
53
54
55
56
56
57
57

5.18 τ の選択条件を課した時の目的事象の信号効率 . . . . . . . . . . . . . . . .
5.19 µ=80 におけるノイズのシミュレーション . . . . . . . . . . . . . . . . . .
5.20 フェイク事象の発生確率 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.21 τ の選択条件の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.22 multi linear region エンコーディング (eFEX の場合) . . . . . . . . . . . . .
5.23 multi linear region エンコーディングと平方根のエンコーディングの振舞い
5.24 R のエネルギー依存性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.25 multi linear region エンコーディング (jFEX の場合) . . . . . . . . . . . . .
5.26 エネルギーフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.27 Filter 計算の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.28 DSP Block の出力からエネルギーを抜き出す方法と誤った抜き出しの例 . .
5.29 レンジングチェックの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.30 デモンストレータから得られたサチュレーションした波形 . . . . . . . . .
5.31 ET ー ET · τ の相関図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.32 サチュレーションした信号に対する処理 . . . . . . . . . . . . . . . . . . .
5.33 2.5 GeV 以上でサチュレーションしてない Super Cell の η 分布 . . . . . . .
5.34 BCAV 再同定ファームウェア . . . . . . . . . . . . . . . . . . . . . . . . .
5.35 デュアルクロック、デュアルポート RAM . . . . . . . . . . . . . . . . . . .
5.36 係数、ペデスタルのコンフィグレーション設計 . . . . . . . . . . . . . . . .
5.37 IP Controller からのフォーマット . . . . . . . . . . . . . . . . . . . . . . .
5.38 ペデスタルのバンチ依存性 . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.39 MET のトリガーレートのバンチ番号依存性 . . . . . . . . . . . . . . . . .
5.40 ベースラインコレクションの設計 . . . . . . . . . . . . . . . . . . . . . . .
5.41 User Code Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.42 評価用 User Code ファームウェア . . . . . . . . . . . . . . . . . . . . . . .
5.43 ファームウェア中でのパラメータ定義の例 . . . . . . . . . . . . . . . . . .
5.44 シミュレーション結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.45 Arria10 評価ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.46 実験のセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.47 取得できた信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.48 LAr カロリメータ波形を入れた試験 . . . . . . . . . . . . . . . . . . . . . .
5.49 ファームウェア出力値の精度比較 . . . . . . . . . . . . . . . . . . . . . . .
5.50 チェッカー付き LATOME ファームウェア . . . . . . . . . . . . . . . . . .
5.51 ファームウェア統合状況 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

58
59
59
60
62
63
64
65
65
66
67
67
68
68
70
70
71
71
72
72
73
73
74
75
77
78
79
79
80
81
81
82
83
83

表目次
1.1

各読み出し方法の比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1

ATLAS 実験の予定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1

それぞれの領域に導入される LTDB 数とそのチャンネル数 . . . . . . . . . 21

4.1

adc readout モジュールに入る TTC 信号 . . . . . . . . . . . . . . . . . . . 33

5.1 各モジュールに要求されるデザイン段階のレイテンシ (1 BC=25 ns) . . . .
5.2 ファームウェア内で使用する DSP Block の使用率 . . . . . . . . . . . . . .
5.3 シミュレーションに用いた熱ノイズとパイルアップ値 . . . . . . . . . . . .
5.4 平方根ファームウェアを実装した場合のレイテンシと最大動作周波数 . . .
5.5 ベースラインコレクションを実装する際の様々なパラメータ . . . . . . . .
5.6 User Code のレイテンシ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7 User Code のパラメータ一覧 . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 シミュレーションのマイルストーン . . . . . . . . . . . . . . . . . . . . . .
5.9 チェッカー付き User Code ファームウェアのリソース . . . . . . . . . . . .
5.10 240 MHz クロックの最大動作周波数 . . . . . . . . . . . . . . . . . . . . .
5.11 統合したファームウェアのレイテンシとリソース . . . . . . . . . . . . . .

6

3

47
54
57
62
74
76
77
78
80
80
82

概要
欧州原子核研究機構にある Large Hadron Collider (LHC) は、世界最高の重心系エネル
ギーをもつ加速器である。ATLAS 実験は現在、この LHC 加速器で重心系エネルギー 13
TeV の Run2 実験を行っている。これと並行して、エネルギーとルミノシティを共に増強する予定の Run3 実験 (2021 年頃から開始予定) に向けて、検出器や読み出し回路の改善に関する研究が行われている。
LHC における全断面積は 100 mb と高く、陽子バンチの衝突を 25 ns 毎に起こすことから、全ての事象を記録出来ない。そのため、ATLAS 実験は 2 段階のトリガーシステムを設けている。1 段目のトリガー (L1 トリガー) は、ハードウェアベースで全事象に対して粗い選別を行い、電磁カロリメータの場合はエネルギーに閾値をかけている。しかしながら、ルミノシティの高輝度化につれて背景事象は多くなるため、L1 トリガーにおいて信号
事象との識別が困難になっていく。これは、信号事象の収集効率の低下につながる。そのため、Run3 実験では従来よりも 10 倍細かい読み出しへ変更する。これにより、トリガーレベルで背景事象との識別能力が向上し、信号事象の収集効率が保てる。この読み出しを実現するための一つとして、10 倍細かくした信号のエネルギーと時間を高速に算出することが挙げられる。本研究は、これを達成する FPGA ファームウェアを開発した。
効率的なエネルギー計算を考案するために、本研究は ATLAS 検出器の一部に導入されているデモンストレータを使用した。このデモンストレータにある FPGA で、10 倍細か
くした信号が Run2 実験で収集されている。しかし、この FPGA ファームウェアのテスト
ベンチが作成されていなかったので、信号取得の際に起きる問題の原因を特定できず、効率良い取得ができなかった。そのため、本研究では作成されていなかったテストベンチを開発し、問題の原因を特定した。それを元に改善を施したファームウェアは、安定的な信号取得を可能にした。
得られた信号から効率的なエネルギー計算方法を考案し、そのファームウェアを開発した。このファームウェアは 240 MHz で動作しており、処理時間は 112.5 ns である。この
結果は、ATLAS の L1 トリガーからくる要求値 (150 ns) を満たしている。また、開発したファームウェアは FPGA に実装可能なリソース量で、257.6 MHz の最大動作周波数をもっている。その後、ボードを用いて様々な試験を行い、ファームウェアの安定した動作を確認した。本研究によって、新しい読み出しに対応した FPGA ファームウェアの第 1 版が完成した。

第 1 章 序論
素粒子とその相互作用を記述する理論である標準模型は、現在の素粒子物理学の基礎となっている。2012 年にヒッグス粒子が欧州原子核研究機構 (CERN) の Large Hadron
Collider (LHC) で発見され、標準模型で予想される全ての粒子は実験的に発見された。しかしながら、暗黒物質の存在や階層性問題など標準模型では説明できない現象も数多く残っている。この標準模型を超える物理現象を見出すため、世界最高重心系エネルギーを誇る陽子・陽子衝突型円形加速器 LHC において ATLAS 実験を行っている。
ATLAS 実験は、陽子・陽子衝突事象を詳細に解析するために様々な検出器を用いている。また、効率的なデータ収集のために検出器からの情報を用いて事象 (イベント) を高速に取捨選択を行うトリガーシステムをもつ。本研究は液体アルゴン (LAr) 電磁カロリメー
タのトリガー読み出しの増強計画に根ざしたものである。LHC の高輝度化に伴って背景事象が増加し、興味ある事象との識別が困難になる状況が予想される。このアップグレー
ド計画は読み出し手法の改善であり、具体的には新しいエレクトロニクスの導入である。
本研究の目的は、このエレクトロニクスに不可欠な、FPGA に実装されるファームウェア
開発とその評価である。
この章では、本研究の背景と目的について簡単に述べる。

1.1

本研究の背景2015 年から行っている LHC-ATLAS Run2 実験は陽子陽子衝突 (全断面積は約 100 mb)
をおこし、そこで生成される事象の測定を行っている。その頻度は 40 MHz (25 ns) であり、全ての事象を記録することが困難である。そのため、ATLAS 実験は 2 段階のトリガーシステムを備えており、興味ある事象を選別し記録している。主にハードウェアで処理する 1 段目のトリガー (L1 トリガー) は粗い選別を行い、ソフトウェアで処理できるほどのデータ量まで減らす。その後、2 段目のトリガー (HLT) はオフラインデータ解析と同程度の性能をもつ選別をソフトウェアで行い、最終的に 1 kHz で記録する。
LAr 電磁カロリメータは粒子の通過する縦方向に 4 つの層をもつ。現行の L1 トリガー
レベルでは、∆η×∆ϕ=0.1×0.1 で測定した入射粒子のエネルギーを 4 層全て足し合わせて読み出している (図 1.1 左)。このセグメント方法は、Trigger Tower と呼ばれている。L1
トリガーのレートを落とす手段の 1 つに、Trigger Tower で読み出したエネルギーに閾値をかける。電子や光子の事象に対してのトリガーレートの要求値は 20 kHz である。これを達成するために、エネルギー閾値は 25 GeV に設定される。しかしながら、今後の実験はル
ミノシティを増加させる予定であるため、1 回の衝突で反応する陽子の数 (パイルアップ)が増える。そのため、従来のエネルギー閾値を超える事象数が増え、トリガーレート (トリガー発行頻度) が上昇する。実際は、要求されるトリガーレートを満たすためにエネル
1ギー閾値を上げる。2021 年から開始される予定の Run3 環境下で電子や光子の収集効率
95 %に保った時をシミュレーションすると、トリガーレート 20 kHz で 34 GeV 程度のエ
ネルギー閾値になる (図 1.2 青点)。この場合、Z や W から崩壊・生成された電子など興味ある事象が L1 トリガーを通らず、その収集効率が減少してしまう。
Trigger Tower読み出しΔη × Δϕ = 0.1× 0.1
φ

第3層

第2層

奥行き

第1層

η
第0層

Super Cell読み出し
第0 , 3 層 : Δη × Δϕ = 0.1× 0.1
第1 , 2 層 : Δη × Δϕ = 0.025 × 0.1
入射粒子

入射粒子

1 Trigger Tower = 1+4+4+1 = 10 Super Cell

図 1.1: トリガーレベルでの電磁カロリメータの読み出す領域 ((左)Trigger Tower、(右)Super
Cell)。Super Cell での第 1 層と第 2 層は、η 方向を細かく読み出す。

L1 Rates [kHz]𝑬𝑻 𝒕𝒉𝒓𝒆𝒔𝒉𝒐𝒍𝒅 𝑽𝑺 𝑳𝟏 𝒕𝒓𝒊𝒈𝒈𝒆𝒓 𝒓𝒂𝒕𝒆 𝒇𝒐𝒓 𝒔𝒊𝒏𝒈𝒍𝒆 𝑬𝑴 𝒐𝒃𝒆𝒋𝒆𝒄𝒕

104
ATLAS
Simulation103

s = 14 TeV, µ = 80
Electron efficiency = 95%2

10

20 kHz10
HadCore ≤ 1 GeV
HadCore cut + wη,2 < 0.0146

1

HadCore cut + R η > 0.93
HadCore + w η,2 + Rη cuts
HadCore + w η,2 + Rη cuts + f 3 < 0.02

~ 34GeV10-1 10 15 20 25 30 35 40 45 50 55
Run2閾値 (24 GeV)

L1 EM ET [GeV]

図 1.2: 電子収集効率 95%下でのエネルギー閾値とトリガーレート [1]。14 TeV かつ平均パイルアッ
プ数 µ=80 においてのシミュレーションであり、青点が Trigger Tower 読み出しにおける関係である。ハドロンカロリメータに落としたエネルギーを使用した変数 (HadCore) を用いると、34 GeV程度のエネルギー閾値 が必要になる。Super Cell 読み出しで数式 (1.1)∼(1.3) が新たに使用でき、最終的に黒丸で示される 23 GeV 程度のエネルギー閾値が得られる。

そこで、読み出し方法を、図 1.1 右のような構成に変更する。このセグメントは Super
Cell と呼ばれ、LAr カロリメータの 4 層をそれぞれ個別に読み出し、特に第 1, 2 層は∆η×∆ϕ= 0.025×0.1 として読み出す (表 1.1、図 1.3)。特別な領域を除き、1 個の Trigger
Tower は 10 個の Super Cell に対応している。
電子や光子とジェットの識別効率を上げるために、Super Cell 読み出しで可能な 3 つの変数を定義する。
(2)

Rη =ET,∆η×∆ϕ=0.075×0.2

(1.1)

(2)

ET,∆η×∆ϕ=0.175×0.2
2

表 1.1: 各読み出し方法の比較

0
1
2
3

Elementary Cell∆η × ∆ϕ
0.025×0.1
0.003125 ×0.1
0.025 ×0.025
0.05 ×0.025

Layer
Presampler
Front
MiddleBack

Trigger Towernη ×nϕ ∆η × ∆ϕ
4×1
0.1×0.1
32×1
0.1×0.1
4×4
0.1×0.1
2×4
0.1×0.1

Super Cellnη ×nϕ ∆η × ∆ϕ
4×1
0.1×0.1
8×1
0.025×0.1
1×4
0.025×0.1
2×4
0.1×0.1

LAr EM Barrel
Phase-I Upgrade

Existing System

Level-1 Trigger Granularity (Super Cells)
10 Super Cells per Trigger Tower

Level-1 Trigger Granularity (Trigger Towers)
60 cells per Trigger Tower; all layers summed
EM layer 3
Back: 2x4
x =0.05x0.025)

EM layer 3
Back: 2x4
x =0.05x0.025)

EM layer 2
Middle: 4x4x =0.025x0.025)

EM layer 2
Middle: 1x4
x =0.025x0.025)

EM layer 1
Front: 32x1
x =0.003125x0.1)

EM layer 1
Front: 8x1
x =0.003125x0.1)

EM layer 0
Presampler: 4x1
x =0.025x0.1)
EM layer 0
Presampler: 4x1
x =0.025x0.1)

Presampler
SC_layer=0
SC_region=0
SC_eta=0...13 [ =0.1]
SC_region=1
SC_eta=14(15) [ ~0.1(0.12)]
SC_phi=0...63 [ =0.1]

Front
SC_layer=1

MiddleSC_layer=2

Back
SC_layer=3

SC_region=1
SC_eta=56..58 [ =0.025]
SC_phi=0...63 [ =0.1]

SC_region=1
SC_eta=56 [ c0.075]
SC_phi=0...63 [ =0.1]

SC_eta=13 [ ~0.05]
SC_phi=0...63 [ =0.1]

SC_region=0
SC_region=0
SC_region=0
図 1.3:
Trigger Towerと Super Cell[1]SC_eta=0...55 [ =0.025]
SC_eta=0...55 [ =0.025]
SC_eta=0...12 [ =0.1]

wη,2 =vu ∑ (2))2( ∑ (2)u (E × η 2 )
2)
(E
×
η
u
∆η×∆ϕ=0.075×0.2∆η×∆ϕ=0.075×0.2
T
T
t
(1.2)
−
(2)
(2)

ET,∆η×∆ϕ=0.075×0.2

ET,∆η×∆ϕ=0.075×0.2

(3)

f3 =

ET,∆η×∆ϕ=0.2×0.2
(1)

(2)

(3)

(1.3)

ET,∆η×∆ϕ=0.075×0.2 + ET,∆η×∆ϕ=0.075×0.2 + ET,∆η×∆ϕ=0.2×0.2

Rη は、第 2 層で最もエネルギーを落とした Super Cell を中心にして ∆η×∆ϕ = 0.075×0.2
でクラスタを組んだエネルギーと、∆η × ∆ϕ = 0.175×0.2 のエネルギーとの比である。
√
電子や光子のシャワーの横方向の広がりは ∆R = ∆η 2 + ∆ϕ2 ∼= 0.08 である。そのため、第二層に落としたエネルギーは ∆η × ∆ϕ = 0.075×0.2 にほとんど含まれており、分布は 1 付近にピークをもつ。一方、 ジェットの広がりは R ∼= 0.8 程度で、∆η × ∆ϕ =0.075×0.2 の領域ではすべてのエネルギーを捉えられない (図 1.4 (1))。また、wη,2 は、第2 層の ∆η × ∆ϕ = 0.075×0.2 で見られるシャワーの広がりを示した変数であり、同様の理由で分布に違いが見える (図 1.4 (2))。
f3 は、第 3 層の ∆η × ∆ϕ = 0.2×0.2 エネルギーと、それに第 1,2 層の ∆η × ∆ϕ =0.075×0.2 を加えたエネルギーの比である。電子や光子は第 2 層までにエネルギーをほと(3)んど落とすので、ET,∆η×∆ϕ=0.2×0.2 が小さくなる。よって、f3 の分布は 0 付近にピークをもつ (図 1.4 (3))。一方、ジェットはハドロンカロリメータまで通過するので、電子や光子と比較すると、f3 は大きな値をとり得る。これらの変数を用いると電子や光子の識別能力が向上し、エネルギー閾値を上げずにトリガーレートが保てる (図 1.2 黒丸)。
3

0.12

ATLAS
Simulation

Simulations = 14 TeV, µ = 80

0.1

1
ATLAS
Simulation

10-1

s = 14 TeV, µ = 80

10-2Electronss = 14 TeV, µ = 80

10-2

0.08

Jets

-3

10

A.U.

A.U.

A.U.

ATLAS

10-1

0.06

Electrons

Electrons

-3

10

Jets

Jets

0.04

10-4

10-4
0.02

10-5
0

0.2

0.4

0.6

0.8

00

1

0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05

0.1

0.2

0.3

0.4

wη,2

Rη

(1) Rη

10-50(2) wη,2

0.5
f3(3) f3

図 1.4: Super Cell 読み出しで使用可能になる変数 [1]。黒が電子、赤がジェットの分布である。

このため、ATLAS LAr グループは Super Cell 読み出しを可能にするための研究開発を行っている。

1.2

本研究の目的

図 1.5 は、LAr カロリメータの読み出し経路をを示している。従来のトリガー経路の場
合、信号は Front-end Board から Tower Builder Board (TBB) へ流れる。L1 トリガーで使用する Trigger Tower 信号は、TBB で足し合わせされる。一方、アップグレード後のトリガー経路の場合、信号は Front-end Board から新しく導入する LAr Trigger Digitizer
Board (LTDB) へ流れる。LTDB は、Super Cell 信号を作成し、アナログデジタル変換 (AD変換) 後に 80 m 後方の LAr Digital Processing System (LDPS) に光ファイバーを用いて伝送する。LDPS では全ての Super Cell 信号をエネルギーに変換し、L1Calo トリガーシ
ステムへ伝送する。これらの通信速度は 50 Tbps 程度になるため、高速通信可能なボードと低レイテンシでエネルギー変換を行う FPGA ファームウェアの開発が必要になる。

4

Frontend electronics

Backend electronics

New part

L1Calo system

Update part
Frontend ~Backendà 80 m

図 1.5: LAr カロリメータの読み出し経路 [1]。緑で囲まれた部分がフロントエンド、青で囲まれた部分がバックエンドエレクトロニクスである。フロントエンドからバックエンドまでは、約 80 m
離れている。紫で囲まれた部分が、Tower Builder Board であり、アナログ信号を L1Calo へ伝送している。アップグレード後、赤く囲まれた LTDB と LDPS が新しく導入される。

本研究の目的は、LDPS で主要な役割を担うエネルギー計算の FPGA ファームウェア
を開発することである。私は、3 章で説明するフィルタリングアルゴリズムを用いて、全Super Cell のエネルギーを計算できるファームウェアの考案, 設計, ハードウェアでの動作
試験方法および試験を一から全て主導的に行った。本研究で開発したファームウェアは、
ATLAS の要求するレイテンシや FPGA のリソースの要求値を満たしている。また、LDPSで使用するボードを使用した試験も行った。このファームウェアは実際に、新しい読み出
し対応のファームウェアの一部に組み込まれている。

1.3

本論文の構成本論文では、第 2 章で LHC ATLAS 実験について述べる。第 3 章では、本研究の核である液体電磁カロリメータの読み出しについて述べる。第 4 章では、LTDB, LDPS のデ
モンストレータボードを使用した Super Cell 信号の収集について説明する。第 5 章は、デモンストレータボードで得られた Super Cell 信号を基にした FPGA ファームウェアの開発について纏めている。最後に、6 章で纏めと今後についてを述べる。

5

第 2 章 LHC-ATLAS 実験
LHC は、スイスのジュネーブ郊外の地下 50∼175 m の場所に位置し、円周約 27 km の加速器である (図 2.1)。LHC は 4 つの衝突点があり、それぞれの衝突点の中に A Toroidal LHC
ApparatuS (ATLAS), Compact Muon Solenoid (CMS), A Large Ion Collider (ALICE),
LHCb 検出器が設置されている。日本は ATLAS 実験に参加しているため、本論文は ATLAS
検出器に焦点を当てて説明する。

2.1

LHC, ATLAS について

ATLAS 実験は陽子と陽子を衝突させている。2011 年に 7 TeV、2012 年に 8 TeV の重心系エネルギーをもった Run1 実験が行われた。2015 年からは 13 TeV で Run2 実験が行われており、2018 年まで続ける。このような高いエネルギーでの実験が可能な理由として、衝突に使われている陽子が他の粒子に比べて容易にエネルギーを上げられるからである。これにより、前人未到のエネルギー領域で新しい物理現象を探索できる。しかし、陽子陽子衝突は、パイルアップ事象が多いため注意が必要である。パイルアップには in time
pileup と out of pileup の 2 種類ある。In time pileup は同じバンチ交差中に生じる別の衝
突由来の粒子、out of pileup は異なるバンチ交差で起きた衝突由来の粒子をさす。1 回の衝突で起きる平均パイルアップ数は、陽子の非弾性散乱断面積と衝突頻度から推定できる。

図 2.1: LHC 加速器 [2]

6

2.2

ATLAS 検出器概要

ATLAS 検出器は、長さ 44 m, 高さ 22 m, 重さが約 7000 トンある円形構造を持った大型汎用検出器であり、大きく 3 つの検出器に分けられる (図 2.2)。ATLAS は、検出器の衝突点を原点とした右手系を使用している。x 軸方向は衝突点から LHC リング中心方向、y軸方向は垂直方向、z 軸はビームパイプに沿った方向と定義されている。円柱座標系 (r,ϕ)
は xy 平面で使用され、r は衝突点からの動径方向、ϕ はビームパイプまわりの方位角と定義される。また、擬ラピディティη は η = -lntan( 2θ ) と定義される。

図 2.2: ATLAS 検出器 [2]2.2.1

内部飛跡検出器

内部飛跡検出器は、シリコンピクセル検出器 (Pixel), シリコンストリップ検出器 (SCT),
遷移輻射検出器 (TRT) で構成される。

図 2.3: 内部飛跡検出器 [2]7シリコンピクセル検出器
衝突点に一番近いこの検出器は 4 層構造を持ち、それぞれピクセル化されている。最内層以外のピクセル検出器は |η| ≤2.5 まで覆っており、そのサイズはビーム軸方向とその垂直方向に対して 400×50 µm2 である。最内層にあるピクセル検出器は Insertable b-Layer (IBL)と呼ばれ、r=33 mm の位置にある。IBL は |η| ≤3.0 まで覆っており、そのサイズは 250×50µm2 である。これらは非常に細かく分割されているため、1 ピクセルあたりのヒット占有率が減る上に位置分解能も良い。これにより、b メソンや τ 粒子特有の 2 次崩壊点を検出できる。

シリコンストリップ検出器
この検出器は、シリコンピクセル検出器の外側に 4 層配置されている。図 2.4 はバレル部の SCT モジュールで、ストリップ間隔が 80 µm 程度、ストリップ長が 128 mm である。
768 本のストリップを埋め込んだセンサーを 40 mrad つけて表裏に張り合わせることで、
2 次元座標点が得られる。

図 2.4: バレル部の SCT モジュール [2]遷移輻射検出器
内部飛跡検出器の一番外側にあるこの検出器は、ストロー型ドリフトチューブの 3 層構造であり、η ≤2.0 を覆っている。直径 4 mm 程度のストローが並べられおり、その間にキ
セノン、酸素、二酸化炭素の混合ガスが充満している。荷電粒子の通過によって、キセノ
ンガス中で粒子の電離が見られる。また、真空と混合ガス中の誘電率の違いから X 線輻射
が発生する。輻射の全光量はローレンツ因子に比例するため、質量の軽い電子が入射する

8

場合はこの X 線を検出できる。一方、π ± が入射する場合は遷移輻射はほとんど発生しない。そのため、電子の π ± の分布が異なる。

2.2.2

カロリメータATLAS 検出器は、電磁カロリメータとハドロンカロリメータの 2 つを用いている。どちらの検出器も測定器中の物質との相互作用によってカスケードシャワーを発生させ、そのエネルギーを測定する (図 2.5)。

内部飛跡検出器

電磁カロリメータ

電子

電磁シャワー光子

電磁シャワー

荷電ハドロン

ハドロンカロリメータ

ハドロンシャワー
電磁シャワー

中性ハドロン

ハドロンシャワー

μ粒子
ニュートリノ

実線は、飛跡が見えるもの。点線は、飛跡が見えないもの

図 2.5: それぞれの粒子に対してのカロリメータの応答。µ 粒子とニュートリノの反応の違いは、カロリメータの後ろにある µ 粒子検出器で確認できる。

電磁カロリメータ

ATLAS 電磁カロリメータは、鉛の吸収層と液体アルゴンの検出層を用いたサンプリン
グ型カロリメータを採用しており、|η| ≤3.2 を覆っている。アコーディオン構造をとることで、ϕ 方向の不感領域がなくなる (図 2.6)。電子や光子が入射すると、鉛の吸収層で電磁シャワーを起こす。電磁シャワーで生成された電子 (陽電子) や光子は、吸収層で検出される。液体アルゴンは荷電粒子の数と応答曲線の間で良い線型性をもつため、エネルギーを求めることができる。また、液体アルゴンは十分な放射線耐性をもっている。
液体アルゴン電磁カロリメータは、第 0 層から第 3 層までの 4 層の構造をとっている (図2.7)。第 0 層は |η| ≤1.8 にのみ設置されており、内部飛跡検出器やソレノイド等で電磁シャワーを起こした事象のエネルギー補正を行う。第 1 層は η 方向に細かく分割されている。
π 0 は物質と相互作用して π 0 → γγ と崩壊するため、この層で単一の光子と π 0 の識別ができる。第 2 層は奥行きが長いため、電磁シャワーのほとんどのエネルギーがこの層でおとす。第 3 層は、高エネルギー電子を検出する。それぞれの分割領域は、表 1.1 に記述している。
9図 2.6: ATLAS 電磁カロリメータのアコーディオン構造 [3]図 2.7: バレル部 (η=0) における LAr カロリメータの層構造 [3]

ハドロンカロリメータ
ハドロンカロリメータもサンプリング型カロリメータを採用しており、電磁カロリメー
タの外側に配置される。吸収層と検出層に使用する物質は、η によって異なる。|η|≤1.7 は、
鉄とプラスチックシンチレータ、1.7≤|η|≤3.2 は銅と液体アルゴンを使用している。

10

フォワードカロリメータ
フォワードカロリメータは、3.2≤|η|≤4.9 の領域に設置され、3 層構造をもつ。1 層目に電磁カロリメータ (銅と液体アルゴンのサンプリング型), 2 層目と 3 層目にハドロンカロ
リメータ (銅, タングステンと液体アルゴンのサンプリング型) が設置されている。また、フォワードカロリメータはビームパイプに近いため、アコーディオン構造でなくストロー構造が採用されている (図 2.8)。

The Forward Calorimeter

R (cm)

LAr gap

60

HEC

50

HEC
(back)(front)

EMEC

20

FCal 1

FCal 2

FCal 3

(EM)

(Had)

(Had)

Moderator shielding

sh LA
ie r
ld C
in al
g or
pl im
ug e

30

R

te

r

40

Beampipe
Warm
wall

10
Pump
0
350

400

450

500

550

600

650

z (cm)

Superinsulation
Cold
wall

図 2.8: エンドキャップ領域でのカロリメータの配置 (左) とフォワードカロリメータのストロー構
造 (右)[4]2.2.3

ミューオンスペクトロメータµ 粒子の質量を考えると、制動放射の断面積が電子よりも十分に小さくなるため、µ 粒子
は電磁カロリメータで止まらず通過する性質をもつ。そのため、ミューオンスペクトロメー
タは ATLAS 検出器の一番外側に配置されており、Big Wheel (BW) と Small Whell (SW)で構成されている 。BW と SW はそれぞれ精密測定用とトリガー判定用の検出器をもっており、その検出器はバレル部とエンドキャップ部で異なる。

Monitored Drift Tube (MDT)
精密測定用に使用されるこの検出器は、η ≤2.0 の領域に配置され 3 層構造を持っている (図 2.9)。最内層は 8 つのドリフトチューブで、残りの層は 6 つのドリフトチューブで構成される。ドリフトチューブの直径は約 30 mm、その位置分解能は 80 µm である。また、アルゴンと二酸化炭素を混合したガス (ArCO2 ) を使用している。

Cathod Strip Chamber (CST)CST は |η| ≥ 2.0 の領域に設置される高ヒットレート環境下で動作する精密測定用検出器で、MWPC を使用している。ドリフト時間が MDT よりも短く (30 ns 以下)、高レー
ト耐性があり、位置分解能は約 60 µm である。

11

図 2.9: MDT の構造 [5]Resistive Plate Chamber (RPC)
RPC はバレル用のトリガー検出器で、|η| ≤1.05 の領域に設置される。2 mm 程度の薄いガス層を平面電極で挟んでおり、時間分解能は 1.5 ns 程度である。また、10 mm 程度の位置分解能をもっている。高抵抗の電極を使用しているため、大きな電流が流れても一時的な電圧降下によって放電を抑制できる。

Thin Gap Chamber (TGC)TGC は、エンドキャップ用のトリガー検出器 (1.05≤ |η| ≤2.7) である。直行している
アノードワイヤーとカソードストリップを用いることで、2 次元の位置情報を読み出すことが可能である。電極間が狭いため、時間分解能が 4 ns 程度ある。また、位置分解能は 5mm 程度である。

2.3

トリガーシステム

ATLAS 実験は 40 MHz (25 ns) で衝突し、その事象はトリガーシステムで記録するかを判断される。ATLAS は 2 つのトリガーシステムをもつ (図 2.10)。

Level1 トリガー (L1 トリガー)
1 段目にあるトリガーシステムは L1 トリガーと呼ばれ、カロリメータとミューオン検出器の情報のみを使用したハードウェアベースで行われる。衝突が起きてから 2.5 µs で取捨選択するので、検出器の大まかな情報を用いた粗い選別を行い、最終的に 100 kHz 程度
レートにする。この大まかな情報は ROI (Regions of Interest) と定義され、後段の HighLevel トリガーに送られる。

12

High Level トリガー (HLT)
L1 トリガーで選別された事象に対し、ソフトウェアベースでよりオフラインに近い選別を行う。また、HLT では、L1 トリガーで使用されなかった飛跡検出器の情報も使用する。約 550 ms 処理時間で、1 kHz 程度のトリガーレートで記録する。

図 2.10: Run2 のトリガーシステムの流れ [6]。図中の 2012 は Run1、PostLS1 は Run2 を表して
いる。

2.4

TTC システム

トリガーが通った事象の情報を正しく記録するため、LHC、各検出器間の同期をとる。
そのための信号を扱うシステムが、TTC である。TTC は L1 トリガーの判定を行い、各検出器にその判定信号である Level1 accept 信号 (L1A) とどの条件で L1A が発行されたかを示す Trigger Type 信号を分配する。また、LHC のビームはバンチ構造をとっており、計 3564 バンチある。それぞれのバンチを識別するために、BCID (Bunch Crossing
Identification) 信号も分配する。

2.5

ATLAS アップグレード計画

Run2 実験が終わると、設計値が重心系エネルギー 14 TeV、瞬間ルミノシティ3×1034
cm−2 s−1 の Run3 実験に向けて、約 2 年間の Long shutdown 期間にはいる。この期間をPhase-1 アップグレードと呼び、Run3 実験に向けて新しい検出器の導入や読み出し回路のアップグレードが行われる。液体アルゴン電磁カロリメータでは検出器自体の入れ替えは行わず、読み出しエレクトロニクスの改善を施し入れ替える。これにより、より高輝度化
する Run3 実験でも質の良いデータ収集ができると期待されている。ミューオンスペクト
ロメータでは、SW を新しい検出器 (New Small Wheel) に交換する。これにより、フェイ
13クミューオン抑制効率が改善される。2026 年からは、瞬間ルミノシティ5×1034 cm−2 s−1の予定である High-Luminosity LHC (HL-LHC) を行う。これは約 10 年間稼働し、3000
fb−1 の統計をためることを目標としている。そのためのアップグレード期間として、2024
年からの約 2 年間の Long shutdown 期間で内部飛跡検出器の入れ替えなどが、行われる予定である (図 2.11)。

図 2.11: LHC のアップグレード計画 [7]

表 2.1: ATLAS 実験の予定

実験期間 [年]
重心系エネルギー [TeV]
最大瞬間ルミノシティ [cm−2 s−1 ]積分ルミノシティ [fb−1 ]バンチ間隔 [ns]平均パイルアップ数 [個]Run1
2011-2012
7、8
0.7×1034
25
50
10-35

14

Run2
2015-2018
13 (14)
1.33×1034
100
25
25

Run3
2021-2023
14
3.0×1034300
2580

HL-LHC
2026-2036
14
5.0×1034
3000
25
140

第 3 章 LAr カロリメータアップグレード
この章では、現在の LAr カロリメータの読み出しとそのアップグレードの概要を述べる。

3.1

現在の読み出し方法

臨界エネルギー以上の光子や電子がカロリメータに入射する場合、ほとんど対生成 (光子の場合) と制動放射 (電子の場合) プロセスが起きる。これは、その粒子の臨界エネルギーに到達するまで引き続き起こるため、電磁シャワーとなる。図 3.1 中の鉛は、このプロセスを起こすために使用される。また、2 つの鉛の間に、2 mm 程度の液体アルゴン (LAr)と 3 本の電極がある。電磁シャワー内の電子や陽電子が LAr を通過する際に、液体アルゴン中の原子を電離させる。電離して生成された電子は、2kV 程度に印加された電極に近付く。電離電子は液体アルゴン中をドリフトするため、最終的に 600 ns 程度の三角波信号が得られる (図 3.2)。また、この三角波信号の波高は電離した電子の数と比例関係にある
ため、波高から LAr 中で損失した粒子のエネルギーが求められる。
このようなサンプリング型は全吸収型に比べ、エネルギー分解能は劣るがセグメントを自由に分割できる。これにより良い位置分解能が得られ、電磁シャワーを 2 次元的に読み出せる。

図 3.1: 液体アルゴンカロリメータの構造 [8]。衝突から生成された電子 (光子) は、鉛を通過する際に電磁シャワーを起こす。電磁シャワーで生成された荷電粒子は、鉛の間にある LAr 中の原子を電離させる。生成された電離電子は 2 kV 程度に印加された電極に近づくため、電圧の変化が測
定できる。

15

V

HV

-

td

+

LArのギャップが⼩さいため、矩形波にみえる。

到着する時間をtdとする。

HV

-

0

time

V

それぞれのtdが異なるため、三⾓波が得られる。

0

time

+
-

+
-

+
-

+

LAr gap : ~ 2mm à 600 ns程度の三⾓波

図 3.2: カロリメータから得られる信号。1 個の電子が電極に近付く時、電圧は矩形波になる (上)。
矩形波の長さは、電子のドリフト時間に依存する。一方、電離した電子が複数ある時は三角波になる (下)。その理由は、それぞれの電子のドリフト時間が異なるからである。また、三角波の波高
は電離電子の数に比例するため、波高から損失エネルギーが求められる。

3.1.1

フロントエンドエレクトロニクス

図 3.3: 現在の液体アルゴンカロリメータの読み出しシステム [1]。図 1.5 中から、現在の読み出しシステムだけを抜き出している。

図 3.3 は、現在の読み出しシステムを示している。Front-end board (FEB) に入った信号は、最初にプレアンプで増幅される。増幅された信号はバイポーラフィルタ CR - (RC)2

16

をかけ、信号とノイズ比が良いバイポーラ波形にする (図 3.4)。バイポーラ波形にすることで、信号の重なり具合に依らずベースラインは常に一定になる。また、バイポーラ波形の波高は、三角波の波高に比例している。そのため、エネルギーの算出はバイポーラ波形の波高を測定すればよい 1 。また、時定数は 13 ns に設定している。これは、熱ノイズとパイルアップの寄与の重ね合わせが最小になるように選ばれている。前者は時定数が大きいほど減少し、後者は時定数が小さいほどほど減少する。システムの経路は 2 つあり、メイン経路の他にトリガー用経路がある。トリガー用経路において、信号は FEB から Tower
Builder Board (TBB) へ送られる。TBB では Trigger Tower 信号にして、アナログ信号のまま L1Calo システムへ送る。メイン経路にいく信号は、Switched Capacitor Array (SCA)
で 40 MHz でサンプルされる。その後、L1 トリガーからアクセプトされた事象に対して
アナログデジタル変換 (AD 変換) を行い、光ファイバーでバックエンドへ送る。

図 3.4: 検出器から得られる信号とシェイピング後の信号 [8]3.1.2

バックエンドエレクトロニクス

バックエンドは L1 アクセプト信号を受信し、Digital Signal Processors (DSP) を用いたデジタル信号処理で各セルに落としたエネルギーと正しい時間を求める。その算出方法
は、Optimal filter と呼ばれるフィルタリングアルゴリズムを使用する。

Optimal filter の原理
カロリメータから送られる信号は規格化された理想的な信号 g の相似形であり、エネル
ギーの大きさと波高の大きさは比例している。

1

LHC の衝突頻度 (25 ns) に比べて LAr 信号は非常に長い (600 ns 程度)。つまり、別のバンチから生成された信号 (outof pileup) の波形と重なり合った信号が測定される。バイポーラ波形にすることで、ベースラインが outof pileup に依らず常に一定となり、波高とエネルギーの線型性も保たれる。

17

得られた信号 S の波高を A とすると時刻 ti の入力信号は、

Si = Ag(ti − τ )

(3.1)

dg(t)
∼
|t=ti + ni
= Ag(ti ) − Aτdt
= Ag(ti ) − Aτ ġ(ti ) + ni

(3.2)
(3.3)

となる。τ は、理想的な信号からの位相のずれを表す。第 2 項では、S を τ の 1 次まで
Taylor 展開した。その際に、2 次以上の影響は小さいものとして無視し、熱ノイズとパイ
ルアップノイズの影響をあらわす ni を付加した。ここで、係数 ai と bi を用いて、

u=
v=

N
−1
∑
i=0
N
−1
∑

ai Si

(3.4)

bi Si

(3.5)

i=0

を定義する。まず、多数回の試行において、(3.4) と (3.5) の期待値は

<u> =
<v> =

N
−1
∑
i=0
N
−1
∑

{A < ai g(ti ) > −Aτ < ai ġ(ti ) > + < ai ni >}(3.6){A < bi g(ti ) > −Aτ < bi ġ(ti ) > + < bi ni >}

(3.7)

i=0

となる。多数回試行において、ノイズ以外は固定の値であると仮定する。また、ノイズの期待値は 0 (< ni > = 0) になる。これらを利用すると、<u> = A<v> = A

N
−1
∑
i=0
N
−1
∑

ai g(ti ) − Aτbi g(ti ) − Aτ

i=0

N
−1
∑
i=0
N
−1
∑

ai ġ(ti )(3.8)

bi ġ(ti )

(3.9)

i=0

となる。< u > = A, < v > = Aτ と定義すると、以下の係数の条件が得られる。
N
−1
∑
i=0
N
−1
∑
i=0
N
−1
∑
i=0
N
−1
∑

ai g(ti ) = 1(3.10)

ai ġ(ti ) = 0(3.11)bi g(ti ) = 0(3.12)

bi ġ(ti ) = −1

(3.13)i=0

次に、この条件を利用して u と v の分散を計算する。

V ar(u) = < u2 > − < u >2
18

=

N
−1 N
−1
∑
∑

< {Aai g(ti ) − Aτ ai ġ(ti ) + ai ni }{Aaj g(tj ) − Aτ aj ġ(tj ) + ai nj } >i=0 j=0

− <

N
−1
∑

{Aai g(ti ) − Aτ ai ġ(ti ) + ai ni } ><

i=0

=

N
−1 N
−1
∑
∑

N
−1
∑

{Aaj g(tj ) − Aτ aj ġ(tj ) + ai nj } >j=0

ai aj < ni nj > =i=0 j=0

N
−1 N
−1
∑
∑

Rij

(3.14)

bi bj Rij

(3.15)

i=0 j=0

同様に、

V ar(v) =

N
−1 N
−1
∑
∑

bi bj < ni nj > =i=0 j=0

N
−1 N
−1
∑
∑
i=0 j=0

Rij は、ノイズの自己相関関数である。ここで、Optimal filter は Var(u) と Var(v) を最小にする係数 ai と bi を要求する。これは、ノイズの影響を最小限にできる。Lagrange 乗数λ, κ, µ, ρ とし、
Iu =

N
−1 N
−1
∑
∑

N
−1
∑

Rij ai aj − λ(i=0 j=0

Iv =

N
−1 N
−1
∑
∑

ai g(ti ) − 1) − κ

ai ġ(ti )(3.16)

bi ġ(ti ) + 1)

(3.17)

i=0

Rij bi bj − µi=0 j=0

N
−1
∑

i=0
N
−1
∑

bi g(ti ) − ρ(

i=0

N
−1
∑

i=0

∂Iv
u
と定義する。Lagrange 未定乗数法から、 ∂I∂ai = 0 と ∂bi = 0 が成立する。これを用いると、以下の表式が得られる。
N−1∑

Rij aj= λg(ti ) − κġ(ti )(3.18)

Rij bj= µg(ti ) − ρġ(ti )(3.19)

j=0
N
−1
∑
j=0

V を行列 R の逆行列とすると、係数 a と b の行列式は以下で書ける。
a = λV g + κV ǵ

(3.20)b = µV g + ρV ǵ

(3.21)

また、式 (3.20) と式 (3.21) の両辺に左から g T , ġ T をかけると、4 つの未定乗数が算出される。式 (3.10) ∼ 式 (3.12) が算出する時に利用される。

λg T V g + κg T V ǵ = g T · a = 1(3.22)µg T V g + ρg T V ǵ = g T · b= 0(3.23)

λġ T V g + κġ T V ǵ = ġ T · a = 0(3.24)µġ T V g + ρġ T V ǵ = ġ T · b = −1

(3.25)

カロリメータのエネルギーを求めるためには、Optimal filter の係数が必要である。全ての領域に対してキャリブレーションパルスから理想的な信号 g とノイズの自己相関関数

19

Rij を測定し、それらから係数を算出する。Run2 のバックエンドでは、N=4 の Optimalfilter を実装している。これ以外にも、Run3 以降の実装を目指して、過去の点を使用した
24 点の Extended Optimal filter 等の研究開発も行われている。

3.1.3

L1Calo トリガーシステム

TBB からアナログの Trigger Tower 信号が送られてくる。このアナログ信号は、Preprocessor Module において 40 MHz のサンプリングでデジタル変換される。その後、有限インパルス応答 (FIR Filter) と Look-Up-Table (LUT) を用いて、デジタル化された信号からトリガー用のエネルギーが算出される。算出されたエネルギーは、Cluster Processing
Module (CPMs) と Jet Energy Modules (JEMs) に送られ、電子 (光子) や τ 粒子等を特定する (図 3.5)。

図 3.5: L1Calo トリガーシステム [1]3.2

アップグレード後読み出し方法

Trigger Tower から Super Cell の読み出しへ変更するために、LAr カロリメータ用とL1Calo 用のエレクトロニクスが新しく導入される。また、フロントエンドに導入されている LSB の入れ替えも行われる。それ以外にも LTDB と LDPB のデモンストレータはバ
レル部の一部領域に導入されており、Run2 データを収集している。デモンストレータについては、4 章で詳細を述べる。
フロントエンドエレクトロニクス• Layer Sum Boards (LSB)• LAr Trigger Digitizer Board (LTDB)
バックエンドエレクトロニクス• LAr Digital Processing Board (LDPB)
L1Calo エレクトロニクス• Feature Extractor module (FEX)20

3.2.1

Layer Sum Board (LSB)

Super Cell 信号を生成するために、カロリメータの第 1 層と第 2 層の信号を ∆η × ∆ϕ
= 0.025×0.1 の領域で足し合わせたアナログ信号が LTDB へ送られる。

3.2.2

LAr Trigger Digitizer Board (LTDB)

LTDB は Super Cell 信号を 12 ビット (0 ∼ 4095) のフラッシュADC を用いて 40 MHz
クロックでサンプリングし、LDPB へ光ファイバーを用いて伝送する。また、バックアップとして Run2 までと同様に TBB に Trigger Tower のアナログ信号を伝送する役割をもつ。1 つの LTDB で最大 320 個程度の Super Cell の信号を処理する必要があるため、1 本の光ファイバーは 5.12 Gbps で通信を行う (表 3.1)。
表 3.1: それぞれの領域に導入される LTDB 数とそのチャンネル数。チャンネル数は Super Cell の数に対応している。

LTDB TypeLTDB 数 per region

Channel 数 per LTDBEMBEMEC Std
EMEC Spec0
EMEC Spec1
HEC
FCal 0
FCal 1

64
32
8
8
8
2
2

290
312
240
160
192
192
192

Total

124

34048

デジタル化のダイナミックレンジを決める際に、デジタル化によるサチュレーションと量
子化誤差の問題を考慮に入れなければならない。ET を算出するために、それぞれの Super
Cell の sinθ が掛けられる。これにより、サチュレーションするエネルギーは η 依存性をもつ。1 ビットの重みを全ての Super Cell で固定すると、以下の問題点が挙げられる。

• 1 ビットの重みを大きい値にとると、デジタル化によるサチュレーションは防げる
が、量子化誤差が大きくなる。
• 1 ビットの重みを小さい値にとると、量子化誤差は小さくなるが、デジタル化によるサチュレーションが起き得る。
これを避けるために、1 ビットの重みを 1 mV にする。1 ビットの重みが η 依存性をもつが、各 Super Cell で適切な量子化誤差が設定できる (図 3.6)。また、増幅後の最大電圧は3.3 V であるため、デジタル化によるサチュレーションは起きない。

21

図 3.6: バレル部での 1 ビットの重み。y 軸は 1ADC による ET の値を示している。

3.2.3

LAr Digital Processing Board (LDPB)LDPB は光ファイバーを通じて、LTDB から約 34000 の Super Cell 信号を受け取る。
その後、FPGA 上でフィルタリングアルゴリズムを適用し、L1Calo へ転送する。全てのSuper Cell 信号を処理するために、31 枚の LDPB が使用される。図 3.7 は 1 枚の LDPBの簡易図である。4 枚の AMC (Advanced Mezzanine Card) がこの中に搭載されており、Super Cell 信号のエネルギー変換の役割を担っている。96 本の光ファイバー (48 本の RX、
48 本の TX) が 1 枚の AMC と接続されており、LTDB や FEX との通信をする。Super
Cell のエネルギーだけでなく、∆η × ∆ϕ=0.1×0.1, 0.2×0.2 で足し合わせたエネルギーも送るので、FEX へ送る通信量は 50 Tbps 程度 2 になる。現在は、光ファイバー 1 本の転送速度を約 11.2 Gbps を目指して開発が行われている。この通信速度を達成するトランシー
バーを計 96 本分搭載させる必要があるため、ALTERA (INTEL 社) からの最新バージョンである Arria10 FPGA が使用されている。
LDPB は、VME に代わり新たに使用する Advanced Telecommunications Computing
Architecture (ATCA) に準拠している。図 3.7 の右半分はモニタリング用として使用されており、ATCA のゾーン 2 を介して AMC からの信号を転送する役割をもつ。

Advanced Telecommunications Computing Architecture (ATCA)
ATCA は高速通信を支えるプラットフォームであり、カロリメータで VME の代わりに新しく導入される (図 3.8)。1 台の ATCA で最大 14 枚の ATCA 規格ボードが備え付けられ、バックプレーンを介してそれらと 10 Gbps の通信ができる。バックプレーンに、ゾー
ン 1 からゾーン 3 と呼ばれるインターフェイスがある。

2

FEX へ送るプロトコルは、シリアライズされる前に 32 ビットフォーマットになる。このデータクロッ
クは 320 MHz のため、光ファイバー 1 本あたりに求められる最低通信速度は 320 MHz×32=10.24 Gbps である。実際に、通信を行う光ファイバーは 1 つの AMC に対して 40 本なので、10.24×40×4×31 ∼ 50 Tbps
程度になる。

22

図 3.7: LDPB[1]3.2.4

Feature Extractor module (FEX)

アップグレード期間に、FEX と呼ばれるモジュールが新しく導入され、Super Cell のエ
ネルギーから粒子の特徴を考慮した同定を行う。FEX の中に 3 種類のサブモジュールがあり、電子や光子を同定する eFEX、ジェットや大きい消失横運動量エネルギー (MET) を同定する jFEX、そして Large-R ジェットを同定する gFEX に分かれている (図 3.9)。LDPB
は、それぞれのモジュールに適したエネルギーを送る。

図 3.8: ATCA プラットフォーム [9]。この ATCA は 14 スロットあり、高さ 12 U の (∼53 cm) である。

23

図 3.9: L1Calo アップグレードの全体図 [10]3.3

Field Programmable Gate Array (FPGA)

この節では、LDPB の中で重要な役割をはたす FPGA について述べる。
FPGA は Random Access Memory (RAM) や Look-up Table (LUT) などを組み込んでおり、ASIC と異なり製造後に回路の再設計が可能である。これによって、ハードウェアの欠点である低い柔軟性が克服され、回路制作が容易になった。近年の技術発展で高性能かつ高集積化が進んでおり、高エネルギー物理学実験でも多く使用されるようになってきた。
INTEL 社の ALTERA と XILINX 社が主に FPGA を製造している。LDPB は ALTERAの FPGA を使用するため、本論文では ALTERA の FPGA に焦点をあてて説明する。

3.3.1

Adaptive Logic Module (ALM)

ALM は、LUT と加算器とレジスタで構成されいる。ALTERA は、この ALM を最小単位ブロックとして実装している。ALM の構成要素や配線は ALTERA のシリーズごとに変わっている。図 3.10 と図 3.11 は、ALTERA シリーズの StratixIV と Arria10 の ALMの配線図である。ユーザーの意図に合わせて、LUT の構成を変更できる。例えば、1 つの ALM は 2 個の 3 入力の論理和と 1 個の 6 入力の論理和の両方に対応しているため、組
み合わせ回路を効率的に実装できる。Arria10 の ALM はレジスタを 4 つ所有しており、
結果的により多様な LUT にするための配線ができる。具体的には、Arria10 の ALM は、
StratixIV でサポートされていない 7 入力の LUT を構成できる。

3.3.2

Random Access Memory (RAM)

ALTERA の FPGA は、小規模メモリブロックと大規模メモリブロックを実装しており、デザインの要求によってそれらを使い分けられる。小規模メモリブロック (∼ 640 ビット)は MLAB と呼ばれ、大規模メモリブロックはビット数に応じて M9K, M10K, M20K な

24

図 3.10: Arria10 の ALM の配線図 [11]。1 つの ALM にレジスタは 4 つある。

図 3.11: StratixIV の ALM の配線図 [11]。1 つの ALM にレジスタは 2 つある。

25

どと呼ばれる。メモリの大きさ以外にも、MLAB は出力ポートを 2 つ配線できないなど、複雑なモードに対応していない (図 3.12)。しかし、MLAB はサイズの小さい FIFO (浅いFIFO ともいう) やシフトレジスタなどの実装に最適である。大規模メモリブロックのリ
ソースは MLAB よりも限られているので、サイズの大きさが必要ないデザインに実装することは非効率である。

図 3.12: Arria10 シリーズのメモリ機能 [11]3.3.3Digital Signal Processor Block (DSP Block)

DSP Block は乗算専用に配線されたブロックであるため、高速に乗算処理ができる。様々なフィルタに対応するために加算器も組み込まれており、デジタル信号処理のファームウェ
アには必須である。DSP Block 内の配線は各シリーズごとに異なるため、使用できるモードもシリーズに依存する。本論文では、多くのモードの中から本研究で使用した Arria10シリーズの 18×19 固定小数点シストリックモード (18×19 モード) についてのみ述べる。
図 3.13 は、Arria10 シリーズの DSP Block の配線図である。18×19 モードは、1 個の
DSP Block で 2 個の乗算器 3 を使用できる。乗算器の前に Pre-Adder 機能が備わっており、2 つの入力値の加算あるいは減算ができる。2 つの乗算結果に対しての加算器と、別
327×27 固定小数点シストリックモードの場合は、1 つの DSP Block で 1 個しか乗算器を使用できない

26

図 3.13: Arria10 シリーズの DSP Block の配線図 (18×19 モード) [11]の DSP Block から来た値に対しての加算器が、乗算器の後に備わっている。DSP Blockは 3 つのレジスタバンクをもっており、このバンクの使用数で DSP Block のレイテンシが決まる。DSP Block 内の動作安定性を最大限に引き出すためには、全てのレジスタバ
ンクは使用されるべきである。シストリックモードを選択すると、レジスタバンク以外に
3 つのシストリックレジスタが接続される。また、隣の DSP Block からの入力ポートとして chainin 信号、隣の DSP Block への出力ポートとして chainout 信号も接続される。
これにより、1 つの DSP Block で計算された値を chainout へ出力させ、別の DSP Blockの chainin に入力させることで複数の DSP Block を使用したデジタル信号処理が可能である。

27

第 4 章 デモンストレータプロジェクト
LTDB と LDPB のデモンストレータがバレルの一部領域に導入されており、Run2 でSuper Cell 読み出しの試験が行われている。これらは Run3 のための試験であるため、L1トリガーに直接関わらない上に Run2 実験の DAQ システムとは独立に運用している。本
研究の目的であるエネルギー計算ファームウェアを開発するために、実際の Super Cell 信号を収集することは重要である。この章では、デモンストレータプロジェクトの概要と私が研究開発に携わったバックエンドデモンストレータファームウェアについて述べる。

4.1

プロジェクト概要

このプロジェクトの大きな目的は 2 つある。

• Super Cell 信号の収集• ボードのインストールや運転における試験
Super Cell 信号を収集することで、ノイズやフィルタリングアルゴリズムの評価ができる。
また、問題点を知ることで、Run3 用のボードやファームウェア等の改善ができる。これらの目的のために、2014 年 8 月から ∆η × ∆ϕ=1.4×0.4 の領域 (0≤ η ≤1.4、1.8≤ ϕ ≤2.2)にデモンストレータを導入した (図 4.1)。

EM barrel

𝛥𝜂×𝛥𝜙= 1.4×0.4

Front-end Board

Back-end Board

Tower Builder
Board

L1 Calo system

LTDB
demonstrator

LDPB
demonstrator

既存のパート

新しく導入するパート

図 4.1: デモンストレータ導入後の読み出しシステム

28

4.2

LTDB デモンストレータ

このデモンストレータは Tower Builder Board にアナログ信号を、LDPB にデジタル化
した Suer Cell 信号を送る。LDPB への伝送は光ファイバーを用いており、4.8 Gbps の通信速度でシリアル伝送する。また、図 4.2 のデータフォーマットに 8b10b のエンコーディン
グが施される。図 4.3 は実際に導入された LTDB デモンストレータで、8 つの Super Cell
信号が含まれている。

図 4.2: LTDB のデータフォーマット [12]。Data CH1 から Data CH8 が 8 種類の Super Cell 信号に対応している。Super Cell 信号は 12 ビットで送られ、b0 から b11 がそれに対応している。一番下の k-comma 信号は 8 ビットのパターン信号である。転送等で問題があった場合、それぞれのチャンネルの b11 が k-comma 信号に置き換えられる。これによって、同期の確認ができる。

図 4.3: LTDB デモンストレータ。(左) アメリカにあるブルックヘブン国立研究所 (BNL) が製作した LTDB、(右) フランスにある LAL/Saclay 研究所が製作した LTDB。

4.3

LDPB デモンストレータ

LDPB デモンストレータは ATCA test Boards for Baseline Acquisition (ABBA) と呼ばれ、ATCA 規格で制作されている (図 4.4)。このボードの左に実装されている 4 組の29

Avago pPod (以後 pPod という) が、LTDB からのデータを受信する。pPod の数は、図3.7 中の AMC と同じである。つまり、1 個の ABBA は、1 個の LDPB で使用される AMCに対応している。
受信したデータは、2 つの FPGA (Front FPGA) で一時的に記録される。TTC から送られる信号の中に、デモンストレータ用のトリガー信号がある。この信号が Front FPGA
Y. Enari 27
へ入ると、記録しているデータの読み出しが行われ、後ろの FPGA (Back FPGA) へ送ら
ALTAS Liquid Arれる。Back FPGA は、Front FPGA からのデータに適当なフォーマットを付加し、
ATCA
Calorimeterのゾーン 2 を介して PC とイーサネット通信を行う。3 個の FPGA は全て ALTERA の
Demonstrator board
StratixIV を使用している。

rator boardの製作・テスト

ard

入完了
拠したボードのfunctionality(Designed by Annecy）
pPoD ∶ 𝑅𝑋, 𝑇𝑋

際にデータをみる。
Front FPGA

322mm

Ｃに依頼

Back FPGA

要な技術を保有にも対応してくれる
ATCA ゾーン2と接続構築

たデータ転送システム開発ATCAゾーン1と接続
電源電圧が供給される

280mm

処理のテスト
図 4.4: ABBA ボード。フランスにある LAPP 研究所で設計が行われた。日本でも制作が行われ、この図が日本で製作されたボードである。
等の機能
ケットの取り扱い

4.4

バックエンド FPGA ファームウェア

Front FPGA と Back FPGA の役割は異なるため、2 種類のファームウェアが ABBAに必要である。私が主導的に行ったことは、どちらのファームウェアのテストベンチをモ
ジュール毎に開発したことである。このテストベンチの作成によって、あらゆるパターン
でファームウェアの動作検証をシミュレーションできた。これにより、Back FPGA ファー
ムウェアが安定であることを示した。Front FPGA ファームウェアでは、実験中に起きていた問題を特定でき、修正を施すことによって安定したファームウェアを提供した。
この節では Front FPGA ファームウェアと Back FPGA ファームウェアの役割を簡単に説明する。これらのファームウェアの中で、最も重要で改善を施した adc readout モジュールについては次節で詳細に述べる。

30

4.4.1

Front FPGA ファームウェア

2 つの Front FPGA は、それぞれ 2 組の pPod (24 本の光ファイバー) と接続されている。この内、20 本光ファイバーのみ使用している。Front FPGA は、大きく分けて図 4.5
中の 4 つのモジュールに分けられる。Optical interface モジュールは pPod から送られる信号をデシリアライズさせ、各 Super Cell の ADC データを抜き出す。抜き出された ADC
データは、adc readout モジュールで後述するとおり適切な処理を行う。その後、back fpga
interface モジュールで、信号はシリアライズされる。また、TTC から送られる信号から
L1A 等を正確に抜き出すことを TTC decoding モジュールは行う。

Front FPGA module
To Back
FPGA

Fiber RXFiber TX

opticsinterfacemoduleadc readout
moduleback fpga
interfacemoduleFrom BackFPGA

LVDS links

TTC decoding module

図 4.5: Front FPGA ファームウェアの全体図

4.4.2

Back FPGA ファームウェア

PC とイーサネット通信するために、2 つの Front FPGA から受け取ったデータにイー
サネットフレームが付加される (図 4.6)。それぞれのモジュールは正常に動作しており、非常に安定したファームウェアが得られている。

図 4.6: Back FPGA ファームウェアの全体図

31

4.5

Adc readout モジュールのファームウェア

ここでは、本研究で開発したテストベンチを用いて改善したファームウェアの動作検証,
信号収集時に起きた問題の原因とその改善方法について述べる。
図 4.7 はこのモジュールの設計図である。1 個の Super Cell 信号は、12 ビットの ADC
データである。1 本の光ファイバーに含まれる 8 つの Super Cell 信号は、2 × 4 (パラレル
数 × シリアル数) のデータシークエンスでこのモジュールへ入る (図 4.8)。

ch7 ch5 ch3 ch1
ch6 ch4 ch2 ch0

ADC data

Circularbuffer
24bx2048

20 fiberread data
20 fiber

20 fiberadc readout
moduleL1A ADC
FIFO
24bx256
20 fiber

read
data

TTC data

address FIFO
11bx16

L1A
ttc recottc accept
TType
EVID
BCID

packeddata

20 fiberHeaderTrailerbuildermoduleHeaderTrailer

Packet Builder
modulereply

Packet
FIFO
64bx2048
request

図 4.7: adc readout モジュールの設計図

160 MHz clock

1 bit sop(start of packet)

i+1 BC

24 bit ADC data

i BC

ch3

ch1

ch7

ch5

ch3

ch1

ch7

ch5

ch3

ch1

ch7

ch5

ch3

ch2

ch0

ch6

ch4

ch2

ch0

ch6

ch4

ch2

ch0

ch6

ch4

ch2

12 + 12 = 24 bit

図 4.8: adc readout モジュールのインプットデータシークエンス。2 チャンネルが並列に入るため、
24 ビットの ADC データがインプットになる。

32

表 4.1: adc readout モジュールに入る TTC 信号

信号名

意味

L1A
BCID
EVID
TType
ttc recottc accpet

Level1 Accept (L1A) 信号
バンチを識別する番号
事象を識別する信号
どのトリガー L1A が発行されたトリガーを示す信号
L1A を持つ事象の BCID, EVID, TType を全て受け取った時に発行される信号
デモンストレータ用のトリガーが通った時に発行される信号

また、表 4.1 の信号が、TTC からこのモジュールに入ってくる。デモンストレータ領域に ET ≥50 GeV の EM オブジェクトがある場合、ttc accept 信号が発行される。このエネルギー閾値は、ファームウェアが安定してきた 2016 年 8 月から 25 GeV へ変更された。
以下、これらの信号を入れた時の各サブモジュールの役割の検証結果を述べる。

Circular buﬀer 図 4.8 の 24 ビット ADC データは、それぞれの光ファイバー毎にサーキュラーバッファ (リングバッファ) に記録される。このサーキュラーバッファの読み出しは、ttc accept 信号が来た時のみ開始される (図 4.9 上)。読み書き動作どちらもアドレス
は 1 つずつ増加していく特徴をもち、ttc accept 信号をもたない ADC データはサーキュ
ラーハッファ内で自動的に上書きされる (図 4.9 中央、下)。
Overview

L1A + bad TTypeà Donʼt read ADC data
Write ADC data in circular buffer
Read ADC datain circular buffer
L１A
L1A + good TTypettc recottc accept

Read operation
ttc accept信号が発行された事象から読み出す。

Write operation
Circular bufferのwrite address

RAMのサイズまで記録したら、アドレスは0に戻る。
à元々アドレス0に記録されていたADCデータは書き換えられる。
ttc accept信号が来るまではADCデータを記録できるRAMのサイズとなっている。

図 4.9: サーキュラーバッファのデータフロー。L1A と ttc reco や ttc accept 信号は同時に来ないが、L1A が来た順番に、その事象の ttc reco と ttc accept 信号は送られてくる。この図の場合、最初の L1A は ttc accept 信号を持っているが、2 番目の L1A は持っていない。そのため、1 番目の事象で記録された ADC データが読み出される。読み出しの詳細は、address FIFO モジュールで説明される。

33

Address FIFO サーキュラーバッファからデータを読み出すために、L1A をもった事
象のアドレスが FIFO に書き込まれる。実際にサーキュラーバッファから読み出す ADC
データは、この FIFO で記録されるアドレスから読み出される。波形が来る前の数 Bunch
Crossing (BC) でペデスタルを計算したいので、L1A 信号を持つ事象のアドレスからオフ
セットだけ差し引いたアドレスが FIFO に書き込まれる (図 4.10 上)。L1A 信号が来るレ
イテンシは固定なので、この信号が来た時のサーキュラーバッファの write address 信号からレイテンシ分を考慮すれば、FIFO に書き込みたいアドレスは算出できる。L1A 信号から約 1.2 µs 後に来る ttc reco 信号で FIFO からアドレスが読み出される。その際に ttc
accept 信号も来ていれば、読み出されたアドレスはサーキュラーバッファーの read address
信号に使用される (図 4.10 下)。その read address 信号は、読み出されたアドレスを基準に波形全体を取得できる程度のサンプル数まで生成される (図 4.11)。いくつかの L1A をもつ事象を残すために、FIFO の深さが決定されている。

Write operation
406 ‒ 400 = 6 is written in FIFO

レイテンシオフセット = 400

L1Aは、FIFOの書き込みenableに接続してる。

Read operation

ttc recottc accept

1つ目のttc reco à FIFOから読み出したデータは、62つ目のttc reco à FIFOから読み出したデータは、39à ttc accept信号は1つ目のみにあるので6を基準にサーキュラーバッファのread addressが生成される。

Read data in address FIFO

図 4.10: address FIFO のデータフロー。この図の場合、レイテンシオフセットは 400 である。FIFOに記録するアドレスは、サーキュラーバッファの write address 信号から 400 を差し引いた値になっている。L1A が来た時のみ FIFO の書き込みのイネーブル信号 (FIFO write) が立てられる。ttc
reco 信号が来たら FIFO に記録されていたアドレスが読み出され、ttc accept 信号の有無によってサーキュラーバッファの read address 信号を生成するか判断する。

34

図 4.11: ABBA が取得する波形データ。TTC は、i バンチに発行されている。LAr の波形の長さと最初の数 BC でペデスタルを計算したいことを考慮して、データの読み出しは i-L BC からはじめる (典型的な値 : L = 10, N = 50)。

Header Trailer builder module Bunch Crossing Identification (BCID) や Event
Identification (EVID) 等の TTC から信号は、ADC データと共に Back FPGA へ送られる。Back FPGA へ送る際のデータフォーマットは図 4.12 のように 64 ビット幅であり、この中に TTC からの信号が組み込まれる。このモジュールは、このフォーマットの作成を行う。
64 bit Format

HeaderATLAS event format
Header Marker

ATLAS event format
Header Size

ATLAS event format
Format Version

Source ID

run number
x"00000”

EVID
X"000000”

BCID

X"000000”detector event type

TType
ADC
samplenumberTrailer
2×Packet word

x"00000000”

図 4.12: ABBA の Header と Trailer 一覧。図中の x”0000”という表記は 16 進数表示であり、この場合 0 が 16 ビット続くことを意味する。PC 側との兼ね合いで 64 ビットフォーマットは、最後に2 分割される。そのため、Trailer の 2×Packet word は、32 ビットのワード数を示している。

L1A ADC FIFO 計 20 個のサーキュラーバッファから読み出された ADC データは 24
ビットであり、Circular buﬀer モジュールは 24 ビット ×20 = 480 ビットをパラレルに処理していた。しかし、480 ビットをシリアライズして Back FPGA へ送ることは不可能であるため、パラレル数を減らすフォーマット変換が施される 4 。そのため、それぞれの ADC
データは L1A ADC FIFO に一時記録される。Packet Builder モジュールの中で光ファイ4送信時の width は、16 ビットである。データクロックは 156.25 MHz を用いており、Back FPGA への通信速度は 3.125 Gbps である。

35

バー 2 本分のチャンネルごとに変換が行われている。変換が終わると、次の 2 つの FIFOを読み出す信号が Packet Builder モジュールから L1A ADC FIFO へ送られる (図 4.13)。

FIFO(0)とFIFO(1)が読み出される。

FIFO(2)とFIFO(3)が読み出される。

パケット変換が終わったら、次のFIFOを読み出す信号を送る。

図 4.13: L1A ADC FIFO の読み出しシークエンス

Packet Builder module 2 つの L1A ADC FIFO から計 48 ビットの ADC データが図4.14 のように 64 ビットへと変換される。この変換は全ての FIFO に対して行われ、ADC
データの前に図 4.12 のヘッダー、後にトレータを付加することで、1 つの読み出しパケッ
トが構成される。
ch7

ch5

ch3

ch1

[23:12][11:0]

1番目のFIFO

ch6

ch4

ch2

ch0

ch7

ch5

ch3

ch1

[23:12]

ch4

ch2

ch0

[11:0]

2clk

1clk

0clk

ch6
3clk

0番目のFIFO

i BCのデータ

64 bit Format
0番⽬のFIFO
0 clk data[23:0]
0番⽬のFIFO
1clk data[7:0]
1番⽬のFIFO
2clk data[15:0]

1番⽬のFIFO
0clk data[23:0]

1番⽬のFIFO
1clk data[23:0]

0番⽬のFIFO
2clk data[23:0]

0番⽬のFIFO
3clk data[23:0]

0番⽬のFIFO
1clk data[23:8]
1番⽬のFIFO
2clk data[23:16]
1番⽬のFIFO
3clk data[23:0]

図 4.14: 64 ビットパケットフォーマット

36

Packet FIFO Packet Builder モジュールで作成されたパケットは、この FIFO に記録される。PC からデータを要求する信号が来た時に、FIFO からパケットが読み出され、backfpga interface モジュールへ送られる。パケット内の全てのデータが FIFO に記録された
時、one l1a adc packet wrote 信号が立てられる (図 4.15)。これは、ABBA から読み出す
べきパケットがあるということを示している。ファームウェアのリソースの観点から、1パケットのみ adc readout モジュールは記録する。そのため、記録しているパケットを読みさない限り、次のパケットは作成されない。全てのパケットデータを FIFO から読み出
すと、one l1a adc packet 信号が立てられる。この信号のあと、ファームウェア内でパケッ
ト作成が再開される。

図 4.15: Packet FIFO のデータシークエンス PC 側のソフトウェアとの兼ね合いで、2 つの 32 ビッ
ト幅の FIFO (L1A ADC Packet Even FIFO と L1A ADC Packet Odd FIFO) がある。全てのパケットが書き込まれた時、one l1a adc packet wrote 信号が立てられている。同様に読み出された時、one l1a adc packet read 信号が立てられている。

図 4.16 は、実際に PC からデータを要求する信号が来た時の応答信号である。PC 側のソフトウェアとの兼ね合いで、64 ビットを 2 分割している。

request信号

ADC data
reply信号
Headerstart “reply”
read ADC data
request信号
ADC data
reply信号

Trailerfinish “reply”

図 4.16: IP bus からの request 信号と reply 信号。PC 側からデータの要求を表すアドレス信号が定義されており、その信号が来たらパケットデータを転送する。reply 信号は Packet FIFO に入っていたデータを全て読み出す。

37

以下では、adc readout モジュールに関連した 2 つの問題点とその改善手法を述べる。

4.5.1

Channel mixing issue

ABBA の導入初期において、Front FPGA ファームウェアに対するコンストレインファ
イルが十分でなかった。コンストレインファイルは、クロックの動作周波数や FPGA の
入出力の遅延情報を記述するファイルである。コンストレインファイルで記述した要求を満たすように配線が行われるため、このファイルは安定したファームウェアの作成において必要である。従来のコンストレインファイルでは、動作周波数を記述していないクロッ
クや入出力ポートのコンストレインをかけていなかった。この時のファームウェアで取得したデータが図 4.17 であり、他チャンネルのペデスタルと突然混じり合う事象が度々見られた。

図 4.17: Channel mixing が現れたデータ。イベント毎にペデスタルの値を計算している。Run 中は同じペデスタルを持つはずだが、別のチャンネルと混ざってペデスタルの値が変わる。

そこで、コンストレインファイルを完成させ、全ての経路に対してタイミングの指標となるセットアップスラックとホールドスラックを調べた。セットアップスラックは、次のクロックエッジまでにデータが到達しているかを表す指標である。この値が正であれば、次のクロックエッジで安定したデータが受け取れることを示している (図 4.18)。ホールド
スラックは、クロックエッジに対してどの程度データを保持しているかを表す指標である。
この値が正であれば、次のクロックで出力予定のデータと混じり合わない (図 4.19)。

38

register 2

register 1
data

Q

D
clk
Tclk1

clock

組み合わせ
ロジック

D

Tdata

clk T

Tco

Q
su

Tclk2

Tclk1

clock
register 1 clock

Tco

データ有効

register 1 Q

Tdata

データ有効

register 2 D

Tclk2
register 2 clock

Setup slack +Tsu

図 4.18: セットアップスラックのタイミングチャート。この図では、register1 と register2 の間に組み合わせロジックがある。register2 にデータが入力される時間は、register1 から出力された時間よ
りも組み合わせロジックの処理にかかる時間 Tdata だけ遅れる。そのデータは、次のクロックの立
ち上がりまでに有効でなければいけない。そうでなければ、次のクロックで register1 から送られてくるデータを出力できない。セットアップスラックは、次のクロックの立ち上がりから register2の入力のデータ有効開始時間の差に相当する (実際は、Tsu というオフセットもこの差に入ってくる)。

register 2

register 1
data

Q

D
clk
Tclk1

clock

組み合わせ
ロジック

D

Tdata

clk T
h

Tco

Q

Tclk2

clock

Tclk1

register 1 clock

Tcoregister 1 Q

データ有効 1

データ有効 2
Tdata

register 2 D

データ有効 1

データ有効 2Tclk2

register 2 clock

Hold slack +Th

図 4.19: ホールドスラックのタイミングチャート。register2 の 2 つ目のクロックは、データ有効 2を出力させる。そのため、このクロックが立ち上がる時には、register2 のデータ有効 1 はデータ有
効 2 に切り替わっていないといけない。そうでなければ、そのクロックでデータ有効 1 とデータ有
効 2 が混ざり合ってしまう。

現在の Front FPGA ファームウェアのスラックは図 4.20 と図 4.21 であり、コンストレ
インを完全にかけたファームウェアはどの経路に対してもタイミング違反がないことを示せた。これにより、全てのタイミングを満たすファームウェアが作成できた。このファームウェアに改善して以降、図 4.17 のデータは現れなくなった。

39

図 4.20: Front FPGA ファームウェアの全経路でのワーストセットアップスラックの一覧。全てのクロックに対して、正のスラックが得られている。

図 4.21: Front FPGA ファームウェアの全経路でのワーストホールドスラックの一覧。全てのクロックに対して、正のスラックが得られている。

40

4.5.2latency shift (pulse shift) issue

ABBA は図 4.11 のように波形全体を収集するシステムである。しかし、波形の一部しか収集できない図 4.22 の事象も度々見られた。これはキャリブレーションパルス (テストパルス) で見られず、物理データを収集した時のみ起こっていた。これは予想と違ったファー
ムウェアの振舞いをしているため、改善が急務であった。この問題はシミュレーションなしに解決できないため、適切なテストベンチを作成することが重要なポイントである。しかし、前述したように adc readout モジュールのテストベンチはまだ開発されておらず、誰もその詳細な振る舞いを調べることができなかった。そこで、私は adc readout モジュー
ルのシミュレーションに必要なインプットテストベンチを作成し、パルスシフトの問題の解決に努めた。

図 4.22: パルスシフトが起きた時の波形。ある光ファイバーで得られた Super Cell の信号をプロットしている。1 本の光ファイバーに含まれている 8 つの Super Cell 信号は全てパルスシフトを起こしているが、ファイバー毎にみるとパルスシフトが起きていないファイバーもある。

シミュレーションのインプットに各チャンネルの ADC データと TTC からの信号を入れた (図 4.23)。
L1A
ttc recottc accept
EVID + BCID + TType

ADC data

図 4.23: インプットデータシークエンス。表 4.1 の信号とそれぞれのチャンネルに適当な ADC デー
タを入れている。ttc accept 信号の出力タイミングは、波形が収集できるように入れている。それ以外は、カウントアップデータを入れる。

41

あらゆるパターンにおいてこのモジュールの動作検証を行った結果、2 つの ttc accept
信号が近いタイミングで入ってくる場合にファームウェアの動作が壊れることを確認した。
図 4.24 は、その場合の address FIFO の振舞いを示している。ttc reco と ttc accept 信号
によって FIFO に記録されていたアドレスが読み出され、サーキュラーバッファの readaddress 信号が生成される。サンプル数を 50 に設定しているため、1 つのサーキュラーバッ
ファから読み出すデータは図 4.8 を考慮すると、4×50=200 となる。そのため、サーキュ
ラーバッファから読み出すデータ数を制御する信号 (i ram rden cnt) は、200 から始まっている。この信号が 1 になるまで read address 信号が生成される。しかしながら、2 つ目の ttc accept 信号によって、この制御信号のカウントが 200 にリセットしてしまう。これにより、結果的に予想よりも多くの ADC データがサーキュラーバッファから読み出される。図 4.14 の変換は予想したデータ数のみ行われるので、one l1a packet wrote 信号を立てても L1A ADC FIFO にデータが残ってしまう。この FIFO に残ったデータは次のパケッ
トに組み込まれるため、図 4.25 の様に波形が分断される。

図 4.24: 近いタイミングで 2 つの ttc accept 信号が入った時の address FIFO の振舞い。2 つ目のttc accept 信号により、i ram rden cnt がリセットしている。これにより、200 + 4 = 204 個のデー
タをサーキュラーバッファから読み出すことになる。2 つの ttc accept 信号の時間の差で、サンプ
ル数の読み出し量が変わる。つまり、波形のずれ具合が Run ごとに変わる。

そこで、制御信号は、カウントの減少中に他の ttc accept 信号でリセットされないようにした。そして、全ての FIFO にデータがない場合のみ、サーキュラーバッファの readaddress 信号が生成されるようにファームウェアを改善した (図 4.26)。改善したファーム
ウェアでは、パルスシフトの問題は起きなくなった。

42

図 4.25: 連続した 2 つ ttc accept 信号の事象。パルスシフトにより 2 つの ttc accept 信号で 1 つの波形が分断されている。ttc accept 信号が近いタイミングで 2 つ起きたことでパルスシフトする
ことがデータ解析の観点からも示せた。

All̲fifos̲empty = “1” àall FIFO are empty

Empty signal in 0th L1A FIFO

i̲ram̲rden̲cnt : 199 ~ 0à total read sample = 200

図 4.26: 改善後のファームウェアのデータフロー。図 4.24 と異なり、2 つ目の ttc accept 信号は
i ram rden cnt 信号に影響を及ぼしていない。

43

4.6

デモンストレータプロジェクトのまとめ

本研究は、ABBA ファームウェアのテストベンチの作成を行った。これにより、不具合の原因を突き止めることができ、私は安定動作する ABBA ファームウェアを完成させた。
このファームウェアによって、多くの Run2 データが取得できた。また、Run2 データ以外にも、キャリブレーションボードを使用したキャリブレーションデータも安定して取得できた。これは、読み出しエレクトロニクスの応答の測定や Optimal filter に必要な係数等を求めるために使用される。本研究では、5 章で説明する LATOME プロジェクトのファー
ムウェア設計に取得したデータを利用している。ファームウェア開発という点に焦点をあてると、テストベンチ開発の大切さを身をもって知ることができた。この経験は、5 章で説明するファームウェア開発に大きく役立った。

44

第 5 章 LATOME プロジェクト
LDPB に実装する AMC と FPGA ファームウェアを開発するプロジェクトが現在進行中である。私はファームウェアの開発に携わっており、特に Optimal filter を用いたエネ
ルギー計算を行うファームウェアの考案, 設計から評価までを一から全て行った。本章では、その詳細を述べる。

5.1

LATOME Board

図 5.1 の AMC は共同研究を行っているフランスにある LAPP 研究所で開発されている。
この AMC は、LAr Trigger Processing Mezzanize (LATOME) と呼ばれている。LATOMEの右側に 4 つのコネクタが搭載されており、受信・送信用に計 96 本の光ファイバーが接続されている。図 5.2 の中央左寄りの青いコンポーネントがヒートシンクであり、その下に FPGAが搭載されている。この FPGA は INTEL 社 Arria10 シリーズ、10AX115R4F40I4SGESを用いている。この FPGA はミッドレンジの中で 2015 年に公開された最新機種であり、96 本の高速データ通信用のトランシーバを持っている。また、エネルギー計算に必要な
DSP Block は最大 1518 個搭載しており、業界唯一の浮動小数点にも対応している。

図 5.1: LATOME Board[13]。サイズは 156×73.5mm2 であり、これが LDPB に実装される AMC
である。

5.2

LATOME ファームウェア

このファームウェアの目的は、2 つに大別される。

• 光ファイバーを 48 本 (使用するのはその内 40 本) を用いて、5.12 Gbps/本の受信と11.2 Gbps/本の送信を達成する (図 3.7)。
45

図 5.2: LATOME Board と Arria10 FPGA との接続の略図 [11]• 受信した Super Cell の ADC データからエネルギーおよびタイミングを算出する。
また、サチュレーションした信号の発生時刻の同定も行う。
このデータストリームはトリガー発行に使用されるため、いつも決まったレイテンシ (計算時間) での出力が要求される。それは、15 BC (375 ns) である。これらを満たす設計を議論した結果、図 5.3 と図 5.4 の設計図が作成された。LTDB から受け取ったデータは、
Low Level Interface layer (LLI) へ入っていく。LLI で処理されたデータは、図 5.4 へ進んでいく。Low Level Interface, Input stage, Configurable remapping, User Code Output
summing モジュールが ADC データの進む経路であるため、これらのレイテンシが非常に重要になる。そのため、設計段階のレイテンシの概算は表 5.1 となっている。本研究の一つの大きな目的は、実際の仕様に耐えるファームウェアを構築し、このレイテンシが実現可能であることを実証することである。
以下では、各モジュールの簡単な役割を説明する。

図 5.3: LLI の全体図 [14]46

図 5.4: LATOME ファームウェア全体図 [14]表 5.1: 各モジュールに要求されるデザイン段階のレイテンシ (1 BC=25 ns)

5.2.1

モジュール

レイテンシの要求値 [BC]Low Level Interface
Input stage
Configurable remapping
User Code
Output summing
Total

4.0
3.0
1.5
5.0
1.5
15.0

Low Level Interface (LLI)

シリアライズされているデータはこのファームウェアに実装される LLI でデシリアライ
ズされ、図 5.4 中の Input stage に伝送される。同様に、FEX へ送信する際も LLI でシリ
アライズする。このように LLI は、トランシーバや DDR3 などの外部素子と FPGA の間の入出力信号を図 5.4 中のモジュールに供給する役割を持つ。
LTDB から LDPB へ送られるデータフォーマットは、低レイテンシと再同期の高速化を満たす独自のフォーマットである (図 5.5)。それぞれのチャンネルの D0 から D11 は Super
Cell の ADC データであり、D12, D13 と T0 から T15 は BCID や CRC などのコントロー
ル信号である。また、データクロックは 320 MHz なので、図 5.5 を見ると 16 ビット × 320
MHz = 5.12 Gbps の通信速度をもつ。

47

図 5.5: パラレル変換された時のデータフォーマット [15]。Channel0 から Channel7 が 8 種類のSuper Cell 信号に対応している。

5.2.2

Input stage

このモジュール (図 5.6) は、図 5.5 のデータフォーマットから BCID とそれぞれの Super
Cell の ADC データを正しく抜き出す役割をもつ。また、CRC を計算しデータの有意を確認する。それ以外に、このモジュールは、ファイバーごとにレイテンシの異なる信号を
1 つの 320 MHz クロックで同期させる。その同期されたデータは、図 5.7 で定義される
stream と呼ばれるデータ群で次のモジュールに送られる。また、ファームウェアの試験を行うために、テストパターンを生成するオプションもつける。

図 5.6: Input stage モジュールの全体図 [14]。各チャンネルごとに図 5.5 の 16 ビットが、パラレルに送られてくる。Input processing サブモジュールは、ADC データや BCID 等を正しく抜き出す。その後、Fiber to fiber aligner サブモジュールで全てのファイバーを 1 つの 320 MHz クロックと完全に同期させる。

48

320 MHz clock

1 bit sop(start of packet)

12 bit BCID
i BC

i+1 BCi-1 BC

12 bit ADC data
𝟐𝒄𝒉𝒊/𝟏𝟏𝒄𝒉𝒊/𝟏𝟎𝒄𝒉𝒊/𝟏𝟕𝒄𝒉𝒊𝑩𝑪

𝟔𝒄𝒉𝒊𝑩𝑪

𝟓𝒄𝒉𝒊𝑩𝑪

𝟒𝒄𝒉𝒊𝑩𝑪

𝟑𝒄𝒉𝒊𝑩𝑪

𝟐𝒄𝒉𝒊𝑩𝑪𝒊𝑩𝑪
𝟏𝒄𝒉𝒊𝑩𝑪 𝟎𝒄𝒉

𝟕𝒄𝒉𝒊.𝟏 𝟔𝒄𝒉𝒊.𝟏

1 bit valid
もし何かエラーがあれば、valid = 0になる。

1 stream à ADCデータと validを合わせたデータ群

図 5.7: 出力のデータシークエンス。基本的には、データとそのデータの有意性を示す valid 信号を 1 つのデータ群としてる。

5.2.3

Configurable remapping

このモジュールは、Input stage から送られてきたデータを並び替える。次の User Codeの演算処理を 320 MHz クロックにて実行することが困難であるため、このモジュールが導入されている。クロックの周波数をおとすと、パラレル数が増える。しかし、FPGA 内で使用するメモリやロジックの数は、パラレル数の増加に伴い増える。これは、FPGA 内の消費電力や温度に影響を及ぼす。クロックの周波数とパラレル数を考慮した結果、パラレル数を 62 に増やし、240 MHz クロックで動作させる (図 5.8)。
並べ替え後 (6 チャンネル ×62 stream) は、8 チャンネルの ADC データが 48 stream あっ
た並べ替え前と比較すると、総チャンネル数が異なる (372 ̸= 384)。しかし、LATOMEに入る最大の Super Cell 数は 320 のため、複数のチャンネルにデータが入っていない。そこで、このモジュールは、PC からマッピング情報を受け取り、並べ替えの前後で消える
チャンネルは必ず ADC データを持っていないようにする。
並べ方に関しては、実装するロジックを考慮して決められている。例えば、User Code で実装するサチュレーションを同定するロジックは、Trigger Tower にある全ての Super Cell を使用する。そのため、Trigger Tower 内の Super Cell は、並列処理されている他の stream
にて出力させる (図 5.9)。これにより、サチュレーションを同定するロジックのレイテン
シが最小限に抑えられる。これに加えて、エンドキャップの一部領域は 1 Trigger Tower
が 11 個の Super Cell で構成される。その領域に対しても考慮した結果、パラレル数を 62にした (図 5.10)。これ以外にも、並び替えは、Output summing モジュールで行うエネル
ギーの足し合せにかかるレイテンシを小さくする考慮もされている。

49

320 MHz clock
12 bit ADC data
𝟐𝒄𝒉𝒊/𝟏𝟏𝒄𝒉𝒊/𝟏𝟎𝒄𝒉𝒊/𝟏𝟕𝒄𝒉𝒊𝑩𝑪

𝟔𝒄𝒉𝒊𝑩𝑪

𝟓𝒄𝒉𝒊𝑩𝑪

𝟒𝒄𝒉𝒊𝑩𝑪

𝟑𝒄𝒉𝒊𝑩𝑪

𝟐𝒄𝒉𝒊𝑩𝑪𝒊𝑩𝑪
𝟏𝒄𝒉𝒊𝑩𝑪 𝟎𝒄𝒉
𝟕𝒄𝒉𝒊.𝟏𝟔𝒄𝒉𝒊.𝟏240 MHzsop

12 bit ADC data
𝟎𝒄𝒉𝒊/𝟏𝑩𝑪

𝟏𝒄𝒉𝒊/𝟏𝑩𝑪

𝟓𝒄𝒉𝒊𝑩𝑪

𝟒𝒄𝒉𝒊𝑩𝑪

𝟑𝒄𝒉𝒊𝑩𝑪

𝟐𝒄𝒉𝒊𝑩𝑪

𝟏𝒄𝒉𝒊𝑩𝑪

𝟎𝒄𝒉𝒊𝑩𝑪

𝟓𝒄𝒉𝒊.𝟏

8 ch×48 𝑠𝑡𝑟𝑒𝑎𝑚 = 384 → 6 𝑐ℎ× 62 𝑠𝑡𝑟𝑒𝑎𝑚 = 372 の変換 : 12個のチャンネルが消える。
しかし、LATOME1つに入るSuper Cellの数は最大でも320。そのため、必ず空いたチャンネルが複数存在する。

図 5.8: Configurable remapping でのチャンネル並び替え
DRAFT

EMB

Fiber Number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
40
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

0ch

1ch

2ch 3ch

4ch 5ch

6ch 7ch

SC1
SC2
SC3
SC4
SC5
SC6
SC7
SC8
1A : あるη, ϕ 領域
7A_F4
7A_F3
7A_F2
7A_F1
8A_F1
8A_F2
8A_F3
8A_F4
1 à 𝜂 が0.0 - 0.1
5A_F4
5A_F3
5A_F2
5A_F1
6A_F1
6A_F2
6A_F3
6A_F4
1A_P1
2A_P1
3A_P1
4A_P1
5A_P1
6A_P1
7A_P1
8A_P1
A à 𝜙が0.0 - 0.1
1A_F4
1A_F3
1A_F2
1A_F1
2A_F1
2A_F2
2A_F3
2A_F4
3A_F4
3A_F3
3A_F2
3A_F1
4A_F1
4A_F2
4A_F3
4A_F4
P,F,M,B : layerの名前
14A_M1 14A_M2 14A_M3 14A_M4 13A_M1 13A_M2 13A_M3 13A_M4
P à PS (第0層)Δ𝜂 = 0.025分割の
9A_M1
9A_M2
9A_M3
9A_M4 10A_M1 10A_M2 10A_M3 10A_M4
F à Front (第1層)ため、𝜂が小さい方
5A_M1
5A_M2
5A_M3
5A_M4
6A_M1
6A_M2
6A_M3
6A_M4
11A_M1 11A_M2 11A_M3 11A_M4 12A_M1 12A_M2 12A_M3 12A_M4
M à Middle (第2層)から順番にラベル
7A_M1
7A_M2
7A_M3
7A_M4
8A_M1
8A_M2
8A_M3
8A_M4
B à Back (第3層)をふる。(1,2,3,4)
4A_M1
4A_M2
3A_M1
3A_M2
4A_M3
4A_M4
3A_M3
3A_M4
2A_M1
2A_M2
2A_M3
2A_M4
1A_M1
1A_M2
1A_M3
1A_M4
9A_B1
10A_B1 11A_B1 12A_B1 13A_B1 14A_B1
1A_B1
2A_B1
3A_B1
4A_B1
5A_B1
6A_B1
7A_B1
8A_B1
15A_B1 15A_B2 15A_B3 15A_B4
13A_F1 13A_F2 13A_F3 13A_F4 14A_F1 14A_F2 14A_F3 14A_F4
9A_P1
10A_P1 11A_P1 12A_P1 13A_P1 14A_P1 15A_P1
0~9 streamの0
この1010A_F3
stremは、Δ𝜂×Δ𝜙= 0.1×0.1となりTrigger Towerを構成
9A_F4
9A_F3
9A_F2chに並べ替え
9A_F1
10A_F1à 10A_F2
10A_F4
11A_F4 11A_F3 12A_F1 P1,
12A_F2
11A_F2
11A_F1
12A_F3
12A_F4
F1, F2, F3, F4, M1, M2, M3, M4, B1
11B_F4 11B_F3 11B_F2 11B_F1 12B_F1 12B_F2 12B_F3 12B_F4
9B_F1
9B_F2
10B_F1 10B_F2
9B_F3
9B_F4
10B_F3 10B_F4
1B_P1
2B_P1
3B_P1
4B_P1
5B_P1
6B_P1
7B_P1
8B_P1
15B_B4 15B_B3 15B_B2 15B_B1
14B_F1 14B_F2 14B_F3 14B_F4 13B_F1 13B_F2 13B_F3 13B_F4
9B_B1
10B_B1 11B_B1 12B_B1 13B_B1 14B_B1
1B_B1
2B_B1
3B_B1
4B_B1
5B_B1
6B_B1
7B_B1
8B_B1
1B_M1
1B_M2
1B_M3
1B_M4
2B_M1
2B_M2
2B_M3
2B_M4
5B_M1
5B_M2
5B_M3
5B_M4
6B_M1
6B_M2
6B_M3
6B_M4
3B_M1
3B_M2
4B_M1
4B_M2
3B_M3
3B_M4
4B_M3
4B_M4
7B_M1
7B_M2
7B_M3
7B_M4
8B_M1
8B_M2
8B_M3
8B_M4
9B_M1
9B_M2
9B_M3
9B_M4 10B_M1 10B_M2 10B_M3 10B_M4
11B_M4 11B_M3 11B_M2 11B_M1 12B_M4 12B_M3 12B_M2 12B_M1
13B_M1 13B_M2 13B_M3 13B_M4 14B_M1 14B_M2 14B_M3 14B_M4
2B_F1
2B_F2
2B_F3
2B_F4
1B_F4
1B_F3
1B_F2
1B_F1
4B_F1
4B_F2
4B_F3
4B_F4
3B_F4
3B_F3
3B_F2
3B_F1
9B_P1
10B_P1 11B_P1 12B_P1 13B_P1 14B_P1 15B_P1
8B_F1
8B_F2
8B_F3
8B_F4
7B_F4
7B_F3
7B_F2
7B_F1
6B_F1
6B_F2
6B_F3
6B_F4
5B_F4
5B_F3
5B_F2
5B_F1

データが入っていないチャンネル

データなし

図 5.9: バレル部でのマッピングの一例。上の表は、バレル部のあるファイバーとチャンネルのマッピングを示している。3,4,13,15 本目のファイバーに η=0.0 ∼ 0.1, ϕ=0.0 ∼ 0.1 領域の Super Cellが配置されている。これらのデータを受け取って、0 ∼ 9 stream 目の 0 ch へ並べる。この処理はTable 4: Super Cell content of the output fibers from the EMB LTDB. The fiber number represents the ADC number
全ての領域で行われる。
connected to the fiber. The Super Cell order in a given fiber is not yet defined. The Super Cell names correspondto the LTDB at = 0; The corresponding L index should be incremented for the other EMB LTDBs at larger
values.

13th September 2016 – 12:05

750

DRAFTEMEC 0ch 1ch 2ch 3ch 4ch 5ch 6ch 7ch
Fiber Number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
40
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

SC1
SC2
SC3
SC4
SC5
SC6
SC7
SC8
5A : あるη, ϕ 領域
6A_F3
6A_F4
6A_F5
6A_F6
6B_F3
6B_F4
6B_F5
6B_F6
5A_F5
5A_F6
6A_F1
6A_F2
5B_F5
5B_F6
6B_F1
6B_F2
5 à 𝜂 が1.8 - 1.9
5A_F1
5A_F2
5A_F3
5A_F4
5B_F1
5B_F2
5B_F3
5B_F4
A à 𝜙が0.0 - 0.1
3A_F4
3A_F3
3A_F2
3A_F1
3B_F1
3B_F2
3B_F3
3B_F4
4A_F4
4A_F3
4A_F2
4A_F1
4B_F1
4B_F2
4B_F3
4B_F4
7A_M1
7A_M2
7A_M3
7A_M4
7B_M1
7B_M2
7B_M3
7B_M4
Super Cell数
8A_M1
8A_M2
8A_M3
8A_M4
8B_M1
8B_M2
8B_M3
8B_M4
10B_M4 10B_M3 10B_M2 10B_M1 10A_M4 10A_M3 10A_M2 10A_M1
PS à 0個
5A_M1
5A_M2
5A_M3
5A_M4
5B_M1
5B_M2
5B_M3
5B_M4
Front à 6個
9B_M4
9B_M3
9B_M2
9B_M1
9A_M4
9A_M3
9A_M2
9A_M1
6A_M1
6A_M2
6A_M3
6A_M4
6B_M1
6B_M2
6B_M3
6B_M4
Middle à 4個
3A_M1
3A_M2
3B_M1
3B_M2
3A_M3
3A_M4
3B_M3
3B_M4
Back à 1個
4A_M1
4A_M2
4A_M3
4A_M4
4B_M1
4B_M2
4B_M3
4B_M4
3A_B1
4A_B1
3B_B1
4B_B1
5A_B1
6A_B1
5B_B1
6B_B1
7A_B1
8A_B1
7B_B1
8B_B1
9A_B1
10A_B19B_B110B_B1
10A_F1 10A_F2 10A_F3 10A_F4 10B_F1 10B_F2 10B_F3 10B_F4
9A_F1119A_F2
9A_F3
9A_F4 =9B_F1
9B_F2
9B_F3
9B_F4Towerを構成
streamでΔ𝜂×Δ𝜙
0.1×0.1となりTrigger
3A_P1
4A_P1
3B_P1
4B_P1
7A_F4
7A_F3
7A_F2
7A_F1
7B_F1
7B_F2
7B_F3
7B_F4
8A_F1
8A_F2
8B_F1
8B_F2 F1,
8A_F3
8A_F4
8B_F3
8B_F4 M2, M3, M4, B1
F2, F3,F4, F5,
F6, M1,
8C_F4
8C_F3
8C_F2
8C_F1
8D_F1
8D_F2
8D_F3
8D_F4
7C_F1
7C_F2
7D_F1
7D_F2
7C_F3
7C_F4
7D_F3
7D_F4
3C_P1
3D_P1
4C_P1
4D_P1
10D_F1 10D_F2 10D_F3 10D_F4 10C_F1 10C_F2 10C_F3 10C_F4
9D_F1
9D_F2
9D_F3
9D_F4
9C_F1
9C_F2
9C_F3
9C_F4
3C_B1
4C_B1
3D_B1
4D_B1
5C_B1
6C_B1
5D_B1
6D_B1
7C_B1
8C_B1
7D_B1
8D_B1
9C_B1
10C_B1
9D_B1
10D_B1
3C_M1
3C_M2
3C_M3
3C_M4
3D_M1
3D_M2
3D_M3
3D_M4
6C_M4
6C_M3
6C_M2
6C_M1
6D_M4
6D_M3
6D_M2
6D_M1
4C_M4
4C_M3
4D_M1
4D_M2
4C_M2
4C_M1
4D_M3
4D_M4
5C_M4
5C_M3
5C_M2
5C_M1
5D_M4
5D_M3
5D_M2
5D_M1
8C_M4
8C_M3
8C_M2
8C_M1
8D_M4
8D_M3
8D_M2
8D_M1
7C_M4
7C_M3
7C_M2
7C_M1
7D_M4
7D_M3
7D_M2
7D_M1
9C_M4
9C_M3
9C_M2
9C_M1
9D_M4
9D_M3
9D_M2
9D_M1
10C_M4 10C_M3 10C_M2 10C_M1 10D_M4 10D_M3 10D_M2 10D_M1
3D_F1
3D_F2
3D_F3
3D_F4
3C_F4
3C_F3
3C_F2
3C_F1
4D_F1
4D_F2
4D_F3
4D_F4
4C_F4
4C_F3
4C_F2
4C_F1
5D_F4
5D_F3
5D_F2
5D_F1
5C_F4
5C_F3
5C_F2
5C_F1
6D_F6
6D_F5
6D_F4
6D_F3
6C_F6
6C_F5
6C_F4
6C_F3
6D_F2
6D_F1
5D_F6
5D_F5
6C_F2
6C_F1
5C_F6
5C_F5

図 5.10: エンドキャップ部でのマッピング一例。1 Tower Trigger が 11 Super Cell で構成される場
合、50, 61 stream 目が使用される。
Table 5: Super Cell content of the output fibers from the EMEC LTDB. The fiber number represents the ADC
number connected to the fiber. The Super Cell order in a given fiber is not yet defined. The Super Cell names
correspond to the LTDB at = 0; The corresponding L index should be incremented for the other EMB LTDBs
at larger values.

5.2.4

User Code13th September 2016 – 12:05

8

このモジュールは、時間とエネルギーの算出を行う。これはある Super Cell において、
どのバンチ (時刻) にどれだけのエネルギーを落としたかを計算することになる。また、サチュレーションした信号も通常のレイテンシで検出させなければならない。このモジュー
ルは LATOME ファームウェアのメインパートであると同時に、私が設計・実装したパートであるため、次の節で詳しく述べる。

5.2.5

Output summing

このモジュールは、FEX に送るためのエンコーディングを行う。FEX は Super Cell のエネルギーだけではなく、Trigger Tower に落としたエネルギーと ∆η×∆ϕ=0.2×0.2 のエネルギー (Trigger Tower4 つ分) も要求している。そのため、それに適したエネルギーの足し合わせが行われる。

5.2.6

TDAQ/Monitoring

それぞれのモジュールのモニターしたい信号は、図 3.7 の右側にある FPGA を介してPC へ転送される。このモジュールは、そのためのデータフォーマットの作成等を行う役
割を持つ。

51

5.2.7

IPBus controller

User Code で使用される係数やペデスタル等のコンフィグレーションの読み書きは、図5.4 中の 1 Gbps のイーサネット通信で行われる。このモジュールは、どのような変更かを判断しそれを伝える役割をもつ。

5.2.8

TTC

このモジュールは、TTC からきた信号をデコードし、BCID や Trigger Type, L1A などを抜き出す役割をもつ。

5.3

User Code

このモジュールのファームウェア作成の設計・実装において重要な点は以下の 6 点であり、それぞれについて詳しく述べる。

1. Filter の設計
2. Filter 後の適切な選択条件とその設計
3. エネルギー、係数等のフォーマット
4. サチュレーションした波形の同定方法
5. モジュールで使用されるコンフィグレーションの変更方法
6. ベースラインコレクションの設計

5.3.1

Filter の設計

本研究では Optimal filter を採用し、実装した。Optimal filter の設計で、主に注意すべきことは以下の 3 つである。

• 1 stream に 6 つの Super Cell の ADC データが含まれているため、多チャンネル対応の積和計算 (図 5.8)。
• 240 MHz クロックで動作させるために、FPGA 内のリソース (DSP Block や RAM)を効率的に使用した設計• 5 BC 以内のレイテンシ
これらを満たすために、18×19 の固定小数点シストリックモードの DSP Block を利用する (図 5.11)。このモードは隣の DSP Block とカスケード接続するため、配線遅延を最小限にできる上に、積和のロジックが全て DSP Block 内で行える。DSP Block 内の配置は変更できないため、シフトレジスタとサーキュラーバッファを利用して 6 チャンネル対応の Filter を実現させる。ADC データに 5 クロックディレイのシフトレジスタを接続させ52

ると、全ての DSP Block 内の加算は同じチャンネルで行われる。また、係数とペデスタ
ルはサーキュラーバッファ (サイズは 6) に格納しておき、 その出力は各 DSP Block のイ
ンプットと接続させる。

図 5.11: Optimal filter のファームウェア設計。DSP Block は FPGA 中で縦一列に並んでいるた
め、それを十分に利用した設計になっている。右図中の青枠は、レジスタである。DSP Block 内のレジスタの位置は固定されており、変更できない。バイパスすることは可能だが、本設計では動作安定性を考慮し、DSP Block 内の全てのレジスタを使用している。DSP Block の外側に、入力したデータを 5 クロック遅らせるシフトレジスタが配置されている。あるチャンネルの信号 Sk−3 から Sk を橙色にした。これをみると、他チャンネルと混ざらず積和計算ができていることがわかる。

5 クロックディレイのシフトレジスタを使用しているため、同じチャンネルのデータが同時に DSP Block に入らない。サーキュラーバッファの出力は複数のチャンネルを同時に出力できないため、本設計はペデスタルに対しても個々にサーキュラーバッファを用意した (図 5.12)。RAM のサイズは小さいため、M20K でなく MLAB を使用することで十分実装可能である。
Optimal filter は未来の信号を 3 つ使用するため、レイテンシは 3 BC は最低かかる。本
設計は、計算に用いる最後の入力信号が DSP Block に入ってから 3 クロック後に、Filterの結果が出力される。そのため、図 5.11 のレイテンシは 3 BC (75 ns) + 3 クロック (12.5ns) = 87.5 ns となる。また、4 点の Optimal filter の DSP Block の使用率は、Arria10
FPGA の全体のリソースの 20 %以内に抑えられた (表 5.2)。さらに、今後の研究で過去の点を使用した点以上の Filter が実装されることになった場合において、本設計は DSP
Block のカスケード接続を増やすだけで対応できる。そのため、ファームウェアのソース
コード自体の変更はほとんどない。また、DSP Block の使用率の観点から十分に実装できることを示した。

53

0ch 1ch
2ch 3ch
4ch 5ch𝑆𝐶 # %& 𝑆𝐶 # %&Circular bufferc3b3

𝑆𝐶 # %&

𝑆𝐶 # %& 𝑆𝐶 # %&d3a3

𝑆𝐶 # %&

ped
ped
ped
ped
ped
ped

e3
f3

d2
a2

e2
f2

ped
ped
ped
ped
ped
ped


5 clock delay𝐸( # %& = 𝑎-(𝑆𝐶 # −𝑝𝑒𝑑)+ 𝑎5(𝑆𝐶 #65−𝑝𝑒𝑑)+ 𝑎7(𝑆𝐶 #67−𝑝𝑒𝑑)+ 𝑎8(𝑆𝐶 #68−𝑝𝑒𝑑)c2b2

5 clock delay

5 clock delay

240 MHz clock4

ai : 

i=1

P:# )* S : SC
# )*
𝐸i(−
ET = ∑ ai (SP) 𝐸i ( # )* 𝐸( # )*
𝐸( # )* 𝐸(𝐸( # )*

図 5.12: Optimal filter のデータフロー。各サーキュラーバッファは、それぞれの DSP Block と接続されている。5 クロックディレイシフトレジスタにより、それぞれの DSP Block に入るデータは同じチャンネルではない。 (6 チャンネルのデータフローのため、1 チャンネルずつずれる。)
表 5.2: ファームウェア内で使用する DSP Block の使用率

Filter に使用するサンプル数
4
6
8
10
12
14

5.3.2

使用した DSP Block

248
372
496
620
744
868

DSP Block 使用率
16.3 %
24.5 %
32.7 %
40.8 %
49.0 %
57.2 %

Optimal filter 後の適切な選択条件

どのバンチで有意なエネルギーを落としたかを算出するために、Optimal filter 後に選択条件を課している。現在、L1Calo の選択条件は、maximum finder と呼ばれ以下で定義される。この選択条件で得たエネルギーとオフラインとの差異が、図 5.13 の赤点である。

Ai−1 < Ai < Ai+1
Ai

(5.1)

: i BC での optimal filter の値

図 5.13 をみると、約 4 GeV 以上の信号は L1Calo でほぼ全て正しいバンチで再構成できており、良い選択条件の一つであると考えられていた。しかし、maximum finder は次の BC の Optimal filter の値を使用するため、最低 1 BC のレイテンシが必要になる。そのため、maximum finder に代わる低レイテンシの選択条件を考える。Arria10 FPGA は、
2 種類の Optimal filter をパラレルに実装できる。そこで得られる τ を用いた選択条件を課してみる。具体的には以下の式である。

|τ | < τthre
54

(5.2)

BCID Efficiency

EMB
1
0.8
2015 Data
25ns Bunch Spacing<µ> = 15

0.6
0.4

Autocorrelation Filter
Matched Filter

0.2
ATLAS Preliminary
0
0

2

4

6

8

10

E offline[GeV]
T
図 5.13: L1Calo でのエネルギー再構成率 [16]。横軸はオフラインエネルギーである。縦軸はそれぞれエネルギーに対し、maximum finder でエネルギーを同定できたかを示している。4 GeV 以上のエネルギーに対しては、maximum finder の選択条件を常に満たしている。青点、赤点は係数の算出方法に違いがあり、パイルアップの影響を最小限にしている方法が赤点である。

この選択条件を評価するために、S-Frame[17] と呼ばれるシミュレーションツールを用いた。このツールは電子や光子の目的事象の大きさが変数になっている。また、パイルアップ事象と熱ノイズは、大きさ以外にも発生確率を変数としてもっており、様々な環境を想定した波形シミュレーションができる。このツールは 1 つの Super Cell の性能評価のみに使用されるため、複数のセルを利用した Rη やトリガーレートの評価はできない。今回は、デモンストレータから取得したキャリブレーション波形の 1 つを使用した (図 5.14)。

55

normalized amplitude

normalized amplitude2
eta = 0.3625, phi = 1.91, 1 layer

1.5

1

2
eta = 0.3625, phi = 1.91, 1 layer

1.5

1

0.5

0.5

0

0

−0.5

−0.5

−1
0

100

200

300

400

500

600

700

−1
0

800
Time [ns]100(1) キャリブレーション波形

200

300

400

500

600

700

800
Time [ns](2) 物理波形

図 5.14: S-Frame に使用した理想的な波形 g。キャリブレーション波形と実験から得られる物理波
形で信号の通過する経路が異なり、波形に違いがみえる。そのため、それを考慮した変換を行うことで、右の物理波形が得られた。

Amplitude [MeV]

図 5.14 右の波形に波高の重み付けを行うことで、あらゆるエネルギーの波形が得られる (図 5.15)。また、Run3 で予想される熱ノイズとパイルアップを考慮してシミュレーショ
ンを行った (表 5.3)。 10000 個の 5 (20) GeV をもった目的事象に対して、エネルギーの

20000

15000

10000

5000

0
− 5000− 10000
−100

0

100

200

300

400

500

600

700

800
time(ns)

図 5.15: カロリメータの信号 (20 GeV)。デモンストレータから得られた理想的な波形 g に 20 GeVの波高分が重み付けされている。図中の黒点は、その信号を 40 MHz でデジタル化した信号である。緑が Optimal filter 後の出力値である。これは、波高だけでなくアンダーシュートの部分なども出力している。そのため、選択条件を課する (図中の赤点)。赤点は、正しく 20 GeV のエネル
ギーのみを捉えられている。

入力値に対する出力値の相対的なずれと τ の分布の結果が図 5.16 である。理想的な場合、
図 5.16 中の (1)(2) は共に 0 になるべきだが、どちらも一定の広がりを持った分布が得られた。ノイズやパイルアップが入力波形に影響を及ぼし理想的な波形からずれてしまうこ

56

表 5.3: シミュレーションに用いた熱ノイズとパイルアップ値

パターン
パイルアップ
熱ノイズ

0.42 /BC の発生確率で大きさ 625 MeV (µ=80 程度に対応)
mean = 0 MeV, σ=160 MeV のガウス分布とで、このような振る舞いがみられる。つまり、目的事象のエネルギーが大きいほどその寄与が小さくなり、広がりは小さくなるはずである。そこで、あらゆるエネルギーに対して図 5.16 と同様の図を作成し、その広がりを示す標準偏差を求めた (図 5.17)。どちらの分布も予期した振る舞いがみられる。

20 GeV signal

20 GeV signal

2200
2000

2500
5 GeV signal

5 GeV signal

1800

2000

1600
1400

1500

1200
1000

1000

800
600
400

500

200
0
−0.4

−0.3

−0.2

− 0.1

0

0.1

0.2
(E

output
T

input

- ET

0.3
0.4
input
)/E
[GeV]

0
− 10

−8

−6

−4

−2

0

2

4

6

8

T

(1) ET の相対誤差10τ [ns](2) τ の分布4035

eta = 0.3625, phi = 1.91, 1 layer

RMS [ns]

RMS [MeV]

図 5.16: 5 GeV と 20 GeV の目的事象に対する ET と τ の広がり。Eout =Ein と τ =0 が理想的だ
が、ノイズやパイルアップの影響により一定の広がりをもった分布となる。

20
18

eta = 0.3625, phi = 1.91, 1 layer

16
30

14
25

12

20

10

15

8
6

10

4
5

2
0

5

10

15

20

25

30
Energy [GeV](1) 入力値に対する出力値のずれの広がり

0

5

10

15

20

25

30
Energy [GeV](2) τ 分布の広がり

図 5.17: 分布の広がりのエネルギー依存性。どちらの分布も目的事象のエネルギーが低いと RMSが広がることを示している。

分布の広がりがエネルギーに依存するため、τthre を決める時に以下の点を考慮に入れる

57

必要がある。ここで述べるフェイク事象とは、目的事象やパイルアップ事象が入射していない BC で選択条件を満たした事象を指す。

• τthre が大きくなると、目的事象の検出効率は大きくなり、フェイク事象も増大する。
• τthre が小さくなると、フェイク事象は減少するが、目的事象の検出効率は小さくなる。
• ファームウェアに実装するため、τthre は 2 の累乗が望ましい。
これらを満たすために、下のようにエネルギー領域ごとに τthre を変更させた。領域の境界線は、図 5.13 と同様に約 4.0 GeV で目的事象の 100 % の検出効率になるように決めた。図 5.18 は、選択条件後の目的事象の検出効率である。

BCID efficiency{|τ | < 2.0 : 10 GeV ≤ ET
|τ | < 8.0 : −1 GeV < ET < 10 GeV

(5.3)

1

0.8

eta = 0.3625, phi = 1.91, 1 layer

0.6

0.4

0.2

0

2

4

6

8

10

12

14

16

18
20
Energy [GeV]

図 5.18: τ の選択条件を課した時の目的事象の信号効率式 (5.3) は、-1 GeV 以上の負エネルギーも考慮している。これは、最近のシミュレー
ション結果から、次のことが確認できたからである。正のエネルギーだけをとると、熱ノ
イズもパイルアップノイズも加算されていき、トータルノイズは高くなる。しかし、負エネ
ルギーをとることで打ち消しあう項も出て来て、トータルノイズが小さくなる (図 5.19)。

58

図 5.19: µ=80 におけるノイズのシミュレーション。左図が正エネルギーのみの結果で、右図が負エネルギーも考慮した結果である。負エネルギーを考慮して算出したノイズ値 (Calculated Noise)
は、左図よりも小さい。

fake efficiency

この選択条件によるフェイクレートは 10 % 程度である。フェイクのほとんどが、1 GeV
以下のエネルギーである。このフェイクレートに対して、トリガーレートにどの程度影響を及ぼすかが今後の課題である。また、同時にこのフェイクレートの改善手法も考えて
いく。

0.5
0.45
0.4
0.35
0.3

eta = 0.3625, phi = 1.91, 1 layer

0.25
0.2
0.15
0.1
0.05
0

5

10

15

20

25
30
Energy [GeV]

図 5.20: フェイク事象の発生確率。これらのフェイクのエネルギーは 1.0 GeV 以下であるため、single EM object に対してのエネルギー閾値に影響はない。しかし、MET 等の計算で影響を及ぼす可能性がある。

59

5.3.3

τ の選択条件の設計

Optimal filter から ET と ET · τ が得られるため、式 (5.3) の評価を行うためにファーム
ウェアの中で除算が必要である。しかし、除算のファームウェアは単純でない上に、低レイテンシでの処理が難しい。そのため、除算を必要としない以下の式をファームウェアに
実装する。


 −2ET < ET · τ < 2ET


−8ET < ET · τ < 8ET
8ET < ET · τ < −8ET

: 10 GeV ≤ ET
: 0 GeV ≤ ET < 10 GeV: −1 GeV ≤ ET < 0 GeV(5.4)

2 (8)ET は、1 (3) ビットシフトを ET に適応することで求められる。負の処理はビット反転を利用する。これを基に、LUT とレジスタのみで τ の選択条件を設計した (図 5.21)。
レジスタは図 5.21 中の青枠なので、この設計のレイテンシは 3 クロックである。また、この選択条件を満たしたエネルギーと共に、Bunch Crossing Assignment Valid flag (BCAVE
flag) を送る。これは、そのバンチに有意なエネルギーをもつ信号があることを示す。

図 5.21: τ の選択条件の設計。ビットシフトを利用して、Filter 後の出力値の-2, 2, -8, 8 倍を算出する。その後、式 (5.4) の 3 つの選択条件の結果が flag として出力される。最後のクロックで、
Filter 後のエネルギーと flag のの結果を使用して、最終的なエネルギーを出力する。

5.3.4

エネルギー, 係数とペデスタルフォーマット

User Code 内のフォーマットは、LATOME ファームウェアが FEX へ送るフォーマット
と密接に関わっている。FEX グループと議論し、eFEX には 10 ビット、jFEX と gFEX には 13 ビットを用いて伝送することにした。LATOME ファームウェアでは、この制限の中でカロリメータ本来の分解能をおとさないエンコーディングフォーマットを実装する。
ATLAS LAr カロリメータの分解能は以下で表される。
a
b
σ
=√
⊕
⊕c
ET
E
ET
T

(5.5)

第 1 項は確率的な項であり、どの程度サンプリングできるかに関係する。ATLAS では、a= 0.1 程度である。第 2 項は熱ノイズやパイルアップノイズなどからの寄与を表しており、第 3 項は検出器本来が持つ分解能を表している。設計値では、c = 0.7 %程度である。第60

1 項と第 2 項はエネルギーが大きくなると小さくなるため、高エネルギーで第 3 項が主に効いてくる。
√
ここで、V=k ET と変換した場合、V の誤差は
σV

=
=
=

kσ
√
2 ET
)
k ( √
√
a ET ⊕ b ⊕ cET
2 ET
√ )
b
k(
a ⊕√
⊕ c ET
2
ET

(5.6)
(5.7)
(5.8)

と表される。ここで第 1 項のみ考え、FEX へ送るビット幅 (n) と最大エネルギー ETmax を
n −1
用いて k=√2 maxと定義する。量子化誤差は一様分布の誤差と同等の √112 であり、それもET

考慮すると σV は

√

σV =

( ak )2

2

+

1
12

(5.9)

と表される。この表式を用いて、ET の誤差を計算すると

ETR =
σE R
T

→

σE R
T

ETR

( V )2(5.10)

k
σV
= 2 2
k
σV √ R 1= 2 2 k ET R
k
ET

(5.11)(5.12)

2σV

√

=

k ETR
= √

a

√

1+

ETR

√

R =

(

(1 +

1 )
a
R
=√
2
3(ka)
ER

(5.13)

T

1)
3(ka)2

FEX へ送るエネルギーは L1A を発行するために使用される。また、ビット数に制限があることを考えると、情報は高エネルギーで粗く、低エネルギーで細かく送られるべきである。そのため、ノイズの寄与が小さい領域において、式 (5.13) の表式は FEX へ送る際のカロリメータの分解能と近似できる。この表式の特徴として、通常の分解能に R の重みがついている。例えば、ET ∼200 GeV の領域を 10 ビットで送ることを考えると、R∼1.006となり分解能の悪化が 1 %以下に抑えられる。しかしながら、平方根のファームウェアは複雑になりやすく、240 MHz 以上で動作するためには 4、5 クロック必要である。また、平方根のファームウェアの最大動作周波数をシミュレーションすると、図 5.4 が得られた。
全体のファームウェアに実装した場合、図 5.4 の最大動作周波数はより小さい値になり得る。FEX 側で考えると、V から ET に戻すロジックも簡単でない。そのため、平方根のエ
ンコーディングは直接実装せず、その近似である multi linear region エンコーディング手法を開発した。
61

表 5.4: 平方根ファームウェアを実装した場合のレイテンシと最大動作周波数

入力のビット幅

出力のビット幅

レイテンシ (240 MHz クロック)

最大動作周波数

20
20
20
22
22
22

10
10
10
11
11
11

3 クロック
4 クロック
5 クロック
3 クロック
4 クロック
5 クロック185 MHz250 MHz280 MHz
205 MHz211 MHz250 MHz

multi linear region エンコーディング

図 5.22: multi linear region エンコーディング (eFEX の場合)

図 5.22 が、eFEX 用の multi linear region エンコーディングである。200 GeV 以上のエネルギーは粗い分解能で送ることで、それ以下のエネルギーの分解能を上げることができる。実際に、n=10 と ETmax =200 GeV の場合の V と良い近似になっている (図 5.23)。
multi linear region エンコーディングの式は、以下で表せる。

M

=

M

=

M

=

M

=

M

=

M

=

ET + 775+ 1 (−775 ≤ ET ≤ 1600 MeV)25
ET − 1600+ 96 (1600 ≤ ET ≤ 6400 MeV)50
ET − 6400+ 192 (6400 ≤ ET ≤ 25600 MeV)100
ET − 25600+ 384 (25600 ≤ ET ≤ 102400 MeV)200
ET − 102400+ 768 (102400 ≤ ET ≤ 200000 MeV)400
ET − 200000+ 1012 (200000 ≤ ET ≤ 1019200 MeV)
10240062(5.14)(5.15)(5.16)(5.17)(5.18)(5.19)

CODE

1200
square root encoding

1000

multi linear region encoding

800

600

400

200
×10
180
200
ET (MeV)

3

0

20

40

60

80

100

120

140

160

図 5.23: multi linear region エンコーディングと平方根のエンコーディングの振舞い

M の整数部が、図 5.22 中のコードと対応している。他のエネルギー領域でも、同様に表せる。図 5.23 中の Bin width は 1 ビットのもつエネルギーであり、25, 50 100, 200, 400,
102400 MeV の 5 種類を使用している。これらは、25 MeV の 1, 2, 4, 8, 16, 4096 倍となっており、ビットシフトを利用してエンコーディングを構成できる。これが、このエンコー
ディングの最大の特徴である。平方根の時と同様に、カロリメータの分解能の第 1 項のみ
注目し、エンコーディングによる分解能の悪化を示す R を算出する。その際、定数部分を
C1, C2、1 ビットのもつエネルギーを x とする。
ET − C1+ C2 =⇒ σMx
ET = x(M − C1) + C2 =⇒ σET
M=

σ
x
= xσM
=

√

= x(
√

=
√

σ
a
=√
ET
ET

1+
√

=⇒ R = 1 +(5.20)a2
1
ET + )
2x
12

a2 ET +x2
12

(5.21)x2
12a2 ET(5.22)x2
12a2 ET(5.23)

63

R value

この時の R は平方根エンコーディングと異なり、エネルギー依存性をもつ。1.6 GeV 以
上で R ≤ 1.01 が得られ、ほとんど分解能の悪化は発生しない (図 5.24)。jFEX に対しても同様に、multi linear region を基にしたエンコーディングを行なった (図 5.25)。gFEX の詳細なエンコーディングはまだ議論中であるが、1 ビットのもつ最小のエネルギーは 12.5
MeV と決めた。これらのエンコーディングの中で、x の最小値は 12.5 MeV である。そのため、ビットシフトのみでこれら全ての multi linear region エンコーディングが行えるよ
うに、Optimal filter 後のエネルギーフォーマットは図 5.26 にした。ET · τ の場合、選択条件ロジックで 3 ビットシフトが使用されることを考慮し、21 ビットフォーマットにする。

1.025
square root encoding

multi linear region encoding

1.02

1.015

1.01

1.005

×10
180
200
ET (MeV)

3

1
0

20

40

60

80

100

120

140

160

図 5.24: R のエネルギー依存性。square root エンコーディングで R の値は一定だが、multi linear
region エンコーディングでは変動する。

64

図 5.25: multi linear region エンコーディング (jFEX の場合)

図 5.26: エネルギーフォーマット。12.5 MeV のデジタル化で 1 TeV 程度を考慮するためには、18ビットが必要である。

次に図 5.26 のフォーマットに変換する方法を考える。それぞれの ADC データは mV
scheme となっている。LATOME ファームウェア内で余計なロジックを実装しないために、
ファームウェアに実装する係数に mV scheme の ADC から 12.5 MeV に変換させる因子を組み込ませる。また、ペデスタルの分解能を維持するために、ペデスタルには 3 ビットの固定小数点を持たせる。これらを基にしたデータフローは、図 5.27 である。

65

レンジングチェック

ADCデータ [ADC]

filter output [LSB]

ペデスタル [ADC]

係数 [LSB/ADC]

実装する係数 = 係数× 変換因子
変換因子 = 1 ADC値 [MeV] / 12.5

14ビット
符号ビット

係数フォーマット
14ビット
ペデスタルフォーマット
分解能 =1 ADC値 / 8

固定小数点ビットカバーできる領域 : 0~2047.875 ADC

図 5.27: Filter 計算の流れ。最初に ADC からペデスタルが差し引かれる。ここで、ペデスタルは3 ビットの固定小数点を導入している。ADC データとペデスタルの固定小数点の位置を合わせる
ために、ADC データの下位 3 ビットに 0 を取り付けて計算を行う。その後、変換因子が組み込まれた係数と乗算を行うことで、そのエネルギーは 12.5 MeV でデジタル化される。係数が n ビットの固定小数点をもっている場合、出力は n+3 ビットの固定小数点をもつ。

係数とペデスタルが 14 ビットのため、Filter の出力値が 18 ビットで表現できない値になり得る。これを考慮するために、レンジングチェックと定義したロジックを導入した。

レンジングチェックDSP Block の出力から 18 ビットを抜き出す。その際に、予想しない波形が LATOMEに入ることで、図 5.28 で示した例が起こり得る。これを防ぐためにレンジングチェック
は、18 ビットで表現できないほど大きい (小さい) 値は、18 ビット最大値 (0) としてみなす (図 5.29 上)。ET · τ の場合、21 ビットで表現できない値は τ が 0 から大きく離れているため、選択条件を通さないように 21 ビットの最大値として処理される (図 5.29 下)。2
つのレンジングチェックにより、正確な計算結果が構築できた。

66

31ビット
符号ビット

固定小数点ビット

18ビット

例 : CODE = 1048579 à 13 TeV程度
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

CODE = 3à 37.5 MeV程度

0 0

0 0 0 0

0 0

0

0 0

0

0 0

0 0 1

1

図 5.28: DSP Block の出力からエネルギーを抜き出す方法と誤った抜き出しの例。基本的に、DSP
Block から固定小数点を抜いた下位 17 ビットと符合ビットが抜き出される。もしこの範囲を超える値が DSP Block で得られた場合、間違ったエネルギーが出力される。図の場合、13 TeV の出力結果であるが、抜き出しの失敗によって 37.5 MeV のエネルギーとして FEX へ送られる。

図 5.29: レンジングチェックの設計

5.3.5

サチュレーションした波形の同定方法

mV scheme を採用しているため、デジタル化によるサチュレーションは発生しない。フロントエンドで増幅された信号は最大 3.3 V の波形となるが、高エネルギーの信号が入射されると正しく増幅されずに予想した形の波形にならない (図 5.30)。Optimal filter は波形の形を仮定しているため、正しいエネルギーを同定できない。しかし、高エネルギーの
事象は新粒子起源の可能性をもち、絶対に逃してはならない信号である。

67

図 5.30: デモンストレータから得られたサチュレーションした波形 [18]。左が第 1 層、右が第 2 層
で、どちらも η=0 付近の Super Cell の信号である。青がサチュレーションしていない波形、赤と黒がサチュレーションした波形である。ピークの値はサチュレーションし、バイポーラのネガティブパートが減っていく特徴がある。

サチュレーションした波形に 2 種類の Optimal filter を適応すると、特に N-1 ∼ N+1
BC で通常の波形と振る舞いがかわることがわかる (図 5.31)。サチュレーション前は、ETの増加と共に ET · τ も増加し、線形性が見られる。しかし、サチュレーションするとこの線形性は崩れる。N BC での τ は 0 から大きく離れてしまい、サチュレーションした事象
は τ の選択条件を満たさず、逃してしまう。

図 5.31: ET ー ET · τ の相関図 [18]。η=0 付近で第 2 層の Super Cell 信号である。横軸が ET 、縦軸が ξ = ET · τ であるため、傾きが τ の線形性が見られる。BC ごとに得られる τ の値は異なる
ため、N-2 ∼ N+1 BC で異なる直線が見られる。図中の緑枠がサチュレーションを起こしている部分であり、線形性が崩れている。

サチュレーションした信号を記録するために、どのバンチにその信号が入射されたかを同定する事は非常に重要な点である。また、サチュレーションで波形が変わるため、その前後に通常の波形が来ても正しくエネルギーを求められない可能性がある。そのため、サ68チュレーションの影響があるバンチという情報も残しておくべきである。そこで、私は図5.31 を利用して、ファームウェア内では saturation flag とサチュレーションした波形に対する BCAVS flag を実装した。このフラグの条件は、以下である。
N −1 BC· ξmin·N −1 BC< ξ N −1 BC < ξmax,

N −1 BCETN −1 BC > Ethre=⇒

saturation flag = 1 and BCAVS = 0

N BC
ξmin

N BC
< ξ N BC < ξmax=⇒

saturation flag = 1 and BCAVS = 1,

N BC
ETN BC > Ethre(5.24)(5.25)

これに加えて、サチュレーションの影響があることを示すために、saturation flag は立ち始めてから 2 BC は無条件で立て続ける。この条件式で与えられている定数は、Super Cell
毎に図 5.31 を作成して算出する。サチュレーションによる影響があり (saturation flag =1)、バンチのエネルギーが同定できていない場合 (BCAVE = 0 & BCAVS = 0)、さらにTrigger Tower 内の Super Cell のエネルギーを利用してバンチのエネルギーが同定できるか調べる。

BCAV 再同定方法
BCAV は、選択条件による同定手法 (BCAVE ) とサチュレーション波形の同定手法 (BCAVS )の 2 つを用いて、
BCAV = BCAVE | BCAVSと表せる。BCAVS において、N-1 BC の条件を満たすが N BC の条件を満たさなかった
場合は、BCAVS = 0 となり、サチュレーション波形を同定できない (図 5.32)。
シミュレーションで 700,1500, 3500, 7000 GeV の電子を入射させ、第 2 層の Super Cell
がサチュレーションした場合について考える。そのまわりの Super Cell (Trigger Tower 内の Super Cell) が、2.5 GeV 以上のエネルギーを持ちサチュレーションしていないかを調べた (図 5.33)。7000 GeV の電子に対しても、最低 1 つはこの条件を満たす Super Cell が存在する。これは、高エネルギーの粒子が他の Super Cell にも影響を及ぼすことを示しており、これを利用することで高エネルギー粒子がどのバンチにエネルギーを落としたかを同定できる。そのため、このロジックをファームウェアに実装した (図 5.34)。 Configurable
remapping で Trigger Tower 内の Super Cell はパラレルになっているため、2 クロックのレイテンシで処理できる。また、これは LUT とレジスタのみで構成されため、容易に実装可能である。
サチュレーションした波形や BCAV 再同定方法については、シミュレーションやデモ
ンストレータのデータを用いた評価がまだ十分でない。具体的には、BCAV 再同定方法を導入した時に誤って BCAV を立ててしまう頻度やエネルギーの条件 (2.5 GeV) 等である。
これらは今後の課題である。

69

𝜉"#$ %&' )* < 𝜉 %&' )* < 𝜉",- %&' )*𝐸/ %&' )* > 𝐸/ %&' )*・ saturation flag = 1
・ BCAVS = 0

・ saturation flag = 1
・ BCAVS = 1

𝜉"#$ % )* < 𝜉 % )* < 𝜉",- % )*𝐸/ % )* > 𝐸/ % )*・ saturation flag = 1
・ BCAVS = 0

・ N-1 BCのサチュレーションの条件を満たしているが、N BCのサチュレーションの条件を満たさない場合- サチュレーションパルスはN BCに来たが、たまたまN BCで条件が通らなかった。
- サチュレーションパルスは来ていないのに、たまたまN-1BCで条件を通ってしまった。

図 5.32: サチュレーションした信号に対する処理

N BC で条件を満たさない場合、N-1 BC の影響で saturation flag は立つ。

図 5.33: 2.5 GeV 以上でサチュレーションしてない Super Cell の η 分布 [19]。η=0.1, 0.8, 1.2, 1.45,
1.9, 2.0, 2.4 に 700, 1500, 3500, 7000 GeV の電子を入射している。y 軸は、その場合の 2.5 GeV
以上かつサチュレーションしていない Super Cell 数である。

70

𝐸" ×(10 𝑜𝑟 11)
saturation flag
×(10 𝑜𝑟 11)
BCAV flag
×(10 𝑜𝑟 11)

ET > 2.5 GeV
saturation flag = 0
à flag = 1else
à flag = 0

orrecover flag

saturation flag = 1, BCAV = 0- recover flag = 1
à BCAV = 1
à 𝐸" = 𝑚𝑎𝑥- recover flag = 0
à BCAV = 0
à 𝐸" = 0

図 5.34: BCAV 再同定ファームウェア。saturation flag = 1 かつ BCAV = 0 の場合に、BCAV 再同定を行う。

5.3.6

コンフィグレーションの変更方法

ファームウェアが FPGA に実装された後、係数やペデスタルは PC から IP Controllerを介してそれぞれ設定される。User Code 内で IP Controller に関わる経路は、100 MHz ク
ロックで動作する。係数やペデスタルを記録しているサーキュラーバッファと IP Controllerが通信するならば、RAM が 100 MHz と 240 MHz の 2 つのクロックドメインを持つデュ
アルクロックでなければならない。さらに、IP Controller からの要求でデータを読み出すために、240 MHz とは別に 100 MHz の出力を持つ必要がある。これらの機能を持っているデュアルクロック, デュアルポート RAM は、M20K のみ使用できる (図 5.35)。しかし、サーキュラーバッファに M20K を使用すると、RAM の使用率が大幅に増える。そのため、私は M20K RAM と MLAB の両方を使用し、IP Controller と通信を行う設計を開発した。 (図 5.36)。

図 5.35: デュアルクロック、デュアルポート RAM。2 つのクロックで動作し、入出力とも 2 つある。User Code の場合、240 MHz クロックは DSP Block のインプットと接続され、常に係数等を供給する。そのため、自由な読み出しを行うためには必ずもう一つのポートが必要である。図 3.12から、デュアルポート RAM は、M20K のみサポートしている。

71

read back

14bx6
MLAB

100 MHz clock
14bx256
M20K RAM

どのMLABサー
キュラーバッファに入れるかを同定するロジック

14bx6
MLAB
14bx6
MLAB

dual clock, dual port RAM

240 MHz clock

14bx6
MLAB
single port RAM

図 5.36: 係数、ペデスタルのコンフィグレーション設計。1 つの積和計算に M20K RAM は 1 つ使用される。IP Controller から 100 MHz クロックで送られてくるデータは、M20K RAM に格納される。M20K RAM に格納されたデータは、240 MHz クロックでそれぞれ正しい MLAB へ配布される。どの係数かについての情報は図 5.37 で定義されたアドレスからわかる。配布するタイミン
グについても、IP Controller から信号が送られてくる。100 MHz クロックでの読み出しは、サーキュラーバッファでなく M20K から行われる。

図 5.37: IP Controller からのフォーマット。下位 3 ビットは、サーキュラーバッファで格納されるアドレスに対応する。3∼7 ビットは、図 5.37 中にあるどの MLAB に配布するかを決定するのに使用される。8 ビット目は、M20K RAM のデータをサーキュラーバッファへ送るコントロール信号である。9 ビット目は、ET か ET · τ のどちらを算出する係数かを示す信号である。10∼15 ビット
は、どの stream かを識別する信号である。

5.3.7

Baseline Correction

LHC は計 3564 バンチであり、陽子が詰められているバンチとそうでないバンチが混ざった構造をもつ。詰められているバンチは 72 個続き、トレインと呼ばれる。各トレインの始めにおいて、前のバンチにカロリメータの信号が入っておらず、バイポーラ波形のネ
ガティブパートと信号が重ならない。このため、ペデスタルの平均値を計算すると他のバンチよりも高くなる傾向が見える (図 5.38)。このシフトは数 ADC であるが、この影響によってトレインの始めの MET トリガーレートが上昇する (図 5.39 (1))。トリガーレート

72

のバンチ依存性をなくすために、ベースラインコレクションが Run2 から行われている。
これにより、MET トリガーレートのバンチ依存性はなくなった (図 5.39 (2))。

図 5.38: ペデスタルのバンチ依存性 [20]。2, 3, 4 つ目のトレインの間は、空白バンチが 8 つある。
一方、1 つ目のバンチの前は、それよりも多く空白バンチをもっている。それによる影響がペデスタルに表れている (図中の青部分)。

(2) ベースラインコレクション後(1) ベースラインコレクション前

図 5.39: MET のトリガーレートのバンチ番号依存性 [16]。トレインの始めの MET トリガーが大きくなっている。ペデスタルが他のバンチよりも高いため、測定されたエネルギーが小さくみえる。ベースラインコレクションにより、MET トリガーレートのバンチ依存性がなくなっている。

j BC 目のベースラインコレクションの因子 fcorr は、2N 個の j BC 目の Optimal filterの出力値の平均をとることで算出される。
j BC
fcorr

=

ETcorr

=

N −1
j BC
2∑
ET,ith2N
i=0
j BC
ETj BC − fcorr

73(5.26)(5.27)

しかしながら、Run2 で実装されているベースラインコレクションのロジックは、LATOMEに実装できない。図 5.40 が、Super Cell 用に設計を変更したものである。1 つ目の RAMの中にバンチごとのデータが記録され、LHC の軌道周期ごとに次々加算されていく。2N回の加算後、ビットシフトを行うことで fcorr が算出される。この値は、2 つ目の RAM に記録される。つまり、1 stream に最低 2 つの RAM が必要である。この fcorr は Run 中に更新されていき、更新時間は N の値で変わる。RAM の使用率は N に依存するため、十分なサンプル数で fcorr を算出する事は不可能である (表 5.5)。

図 5.40: ベースラインコレクションの設計 (N = 16)。LATOME は、1 stream に 6 つの Super Cell
がシリアルに入ってくるため、RAM のサイズは 3564×6 が必要である。平均をとるサンプル数に依存して、1 つ目の RAM のビット幅が変わる (18+N ビット)。

表 5.5: ベースラインコレクションを実装する際の様々なパラメータ

N
16
14
12
10
8
6
4
2

RAM の使用率
127 %
122 %
117 %
112 %
108 %
103 %
98 %
93 %

更新時間

5.8 s
1.5 s
0.36 s
0.09 s22.8 s
5.7 ms
1.4 ms
0.4 ms

そこで、LATOME 用のベースラインコレクションを実装するために 2 つのアイデアが考えられている。どちらのアイデアもまだ十分な議論がなされておらず、ベースラインコ
レクションは現段階で実装されていない。これも、今後の課題の 1 つである。

• LATOME ファームウェアで直接ベースラインコレクションは計算せず、fcorr のみ
RAM に蓄えておく。この値は PC で求められ、IP controller を介して User Code に送られる。
• fcorr に対し、チャンネル間の依存性やチャンネル自身の時間依存性を正確にファームウェア上で計算させる。これにより、少ない fcorr の計算で全チャンネルの値が決
定できる。

74

5.3.8

ブロックダイアグラム

前節までに説明した設計を User Code に効率良く配置するために、図 5.41 のブロックダ
イアグラムを作成した。Configurable remapping から送られてきたデータ群は、Filteringuser_osum_out_data_c18

remap_user_remap_data_c

data

Combine block

Filtering block

62

62

4

12

quality

data
valid
valid

62x18

FIR filter

startofpacket

startofpacket

12

SC energy

bcid

12

bcid

Selection
Criteriauser_mon_monitoring_data_c

62 x 412

SC quality

ttc_240_clk
ttc_240_rst

Saturation
detection12142

ipctrl_100_clk

12

Avalon Memory Mapped interfaces
Avalon ST interfaces

transverse_e_st62quality_st14

lli_global_rst

adc_ped_stsat_detect_st4

ipctrl_100_rst

raw_adc_sttransverse_e_id_st
bcid

ipctrl_user_reg_mm

図 5.41: User Code Block[14]block に入る。このブロックは 3 つのモジュールで構成されており、FIR Filter で ET ,Saturation detection で ET · τ が Optimal filter によって求められる。Selection Criteria は
ET , ET ·τ を受け取り、τ の選択条件とサチュレーションの同定をパラレルに行う。Combine
block は Trigger Tower 内の Super Cell のエネルギーから BCAV を再同定を行う。
User Code は、出力信号を 2 つのモジュールへ伝送する。1 つはメイン経路である Output
summing であり、ET と quality 信号を送る。quality 信号は 4 ビット信号として定義され、saturation flag と BCAV flag はこの中に含まれている。残りの 2 ビットは現在使用していない。もう一つは TDAQ/Monitoring であり、以下の信号を User Code は送る。
• ADC データ
• ADC データからペデスタルを差し引いた信号• Combine block に入る前の ET• Combine block 後の ET• quality 信号• saturation flag と BCAV flag
• BCID
また、設計した User Code のレイテンシは 4.5 BC となり、要求値 5.0 BC を満たした (表
5.6)。

75

表 5.6: User Code のレイテンシ

5.4モジュール名

レイテンシ [BC]FIR Filter / Saturation Detection
Selection Criteria
Combine Block
User Code 全体

3.67
0.5
0.33
4.5

ファームウェア動作試験

動作検証のために、各モジュールごとの試験が行われている。本論文では、User Codeの試験結果を述べる。

5.4.1

インプット、チェッカーテストベンチ

User Code の動作試験に、インプットジェネレータとチェッカーのテストベンチモジュー
ルが必要である。どちらもメモリが搭載されており、試験用データを記録しておく。ジェネレータには 2 種類のデータを入れる。
• データ、係数、ペデスタル全て乱数で生成された値• LAr カロリメータの波形
チェッカーは、ジェネレータを基に PC で計算された値を RAM に格納する。User Codeモジュールで処理された信号はチェッカーで格納された値と比較され、同じ場合は checker
flag=1 の信号を FPGA から出力する。
乱数データを入れることで、あらゆるパターンの信号プロセスの試験が行える。しかし、これは純粋なファームウェアの動作試験のためであり、得られるエネルギー等に物理的意味はない。そのため、LAr カロリメータの波形もジェネレータとして使用する。チェッカーで比較する信号は、図 5.41 で出力される信号と DSP Block の出力値である。図 5.42 が試
験用のファームウェアであり、このファームウェアを FPGA に実装して試験を行った。

5.4.2

シミュレーションによる動作確認

各ロジックの動作確認を行うために、表 5.7 で示したパラメータを設定した。これらのパラメータの変更は、ファームウェアのコンパイル前に適応される。例えば、図 5.43 は、
τ の選択条件を接続する場合としない場合のファームウェアを記述している。ファームウェ
ア中でプリプロセッサを使用できるようにすることで、パラメータに応じたファームウェ
アが容易に作成できる。また、同様にパラメータに応じたサンプル数の Filter も実装できる。このような処理を可能にすることで、様々なシミュレーションができる環境を整えた。
具体的には、表 5.8 で書かれているマイルストーン M1∼M5 を行っている。M1 は、τ の選択条件と BCAV 再同定ロジックをバイパスさせ、Optimal filter の計算とエネルギーの76図 5.42: 評価用 User Code ファームウェア。
表 5.7: User Code のパラメータ一覧

パラメータ

デフォルト値

User Code 内に入るインプットのストリーム数
FIR Filter 内の filter のサンプル数
Saturation Detection 内の filter のサンプル数
DSP Block から ET を抜き出す際の LSB
DSP Block から ET · τ を抜き出す際の LSB
τ の選択条件BCAV 再同定ロジック
DSP Block の出力値のデバッグ
ベースラインコレクション

62
4
4
3
3
true
true
false
false

抜き出しを確認する。M2 では、τ の選択条件を接続させる。M3 では、BCAV 再同定ロジックの評価をするために、stream 数を 10 にして行う。M4 では、デフォルト値での User
Code ファームウェアの評価を行う。M5 では、Filter のサンプル数や抜き出すビット等を変更してもファームウェアが正しく機能しているかを確認する。ベースラインコレクションの設計はまだ完成していないため、今回の動作試験では対象外とした。ベースラインコ
レクションを入れた試験をすることが今後の課題である。

77

図 5.43: ファームウェア中でのパラメータ定義の例。上が τ の選択条件ファームウェアで、下がOptimal filter のソースコード。τ の選択条件がイネーブルされているコードとバイパスされるコードが記述されている。パラメータの値に応じて、どちらのファームウェアがコンパイルされるか決定できる。Optimal filter においても、パラメータに応じた DSP Block の接続数が決定される。

表 5.8: シミュレーションのマイルストーン

パラメータ

User Code 内に入るインプットの stream 数
FIR Filter 内の filter のサンプル数
Saturation Detection 内の filter のサンプル数
DSP Block から ET を抜き出す際の LSB
DSP Block から ET ·τ を抜き出す際の LSB
τ の選択条件BCAV 再同定ロジック
DSP Block の出力値のデバッグ

M1
1
4
4
3
3
false
false
true

M2
1
4
4
3
3
true
false
true

M3
10
4
4
3
3
true
true
true

M4
62
4
4
3
3
true
true
true

M5
62
6 ∼ 146 ∼ 14
3∼
3∼
true
true
true

M1∼M5 の全ての設定に対して、図 5.44 のシミュレーション結果が得られた。インプッ
トジェレレータからチェッカーを通って checker flag を出力するまでに、レイテンシがかかる。そのため、リセット直後、checker flag の値は 0 である。レイテンシ後の checker flag
は 1 へ変わり、以降はずっと 1 のままである。図 5.44 中の error counter は主に長時間の試験時に使用され、試験時に何個のエラーが起こったかを計測する。RAM に格納されている全てのデータに対して、正しく処理できていることが確認された。

78

図 5.44: シミュレーション結果。エラーカウンターと checker flag から、すべての信号に対してエラーがないことを示している。

5.4.3

ボードによる試験

シミュレーションレベルで User Code モジュールは正常に動作しているので、ボードでも同様の振る舞いするかを確認する。ボードは、図 5.1 と ALTERA が提供している評価
ボード (図 5.45) を用いる。LATOME ボードと評価ボードに搭載されている FPGA は同
じ Arria10 シリーズであるが、トランシーバ用のピン数に違いがあるため全く同じ FPGAではない。
試験は、LATOME と Arria10 評価ボードの両方で行っている。

図 5.45: Arria10 評価ボード [11]。厳密には、LATOME と FPGA と異なる。しかし、同じ Arria10シリーズであるため、User Code ファームウェアの試験はできる。

それぞれの FPGA に実装するファームウェアのリソースは、表 5.9 である。この結果は4 点の Optimal filter を実装した場合であり、サンプル数によって、DSP Block の使用率は変動する (表 5.2)。サーキュラーバッファの数も同時に変動するが、全体のリソースと比較すると MLAB の使用率はあまり変わらない。
240 MHz クロックに対する最大動作周波数は、表 5.10 となった。どのサンプル数でも正スラックが得られ、240 MHz 以上の動作周波数を示している。これにより、タイミングの観点でも User Code ファームウェアの実装に問題がない。
リソース、最大動作周波数共に実装可能であることが示せたので、LATOME ボードとArria10 評価ボードに実装する。動作検証方法はボードに JTAG を接続させ、それを介し79

表 5.9: チェッカー付き User Code ファームウェアのリソース

リソース

使用率

ALM
DSP Block
メモリ
MLAB

11 %
16 %
29 %
1.4 %

表 5.10: 240 MHz クロックの最大動作周波数

サンプル数
最大動作周波数

4点
257.6 MHz

6点
257.8 MHz

8点
259.29 MHz

10 点
252.61 MHz

12 点
253.44 MHzていくつかの信号のデバッグを行う (図 5.46)。JTAG は、FPGA ファームウェアの書き込
みや基本的な信号をデバッグできる規格である。まず、乱数で生成されたインプットデー
タを用いて、動作検証を行う。図 5.47 が、実際にボードから取得できたロジックアナライ
ザの出力であり、シミュレーションと同様に checker flag=1 が得られた。約 2 時間の動作
後の error counter が 0 であり、長時間の正常動作も確認した。また、システムが正しく動作しているかを検証するために、ある BC の 1 つのデータに人為的に間違った答えを入れた。これは、チェッカーが正しくエラーを検出できるかの試験である。その結果が図 5.47
下であり、checker flag ＝ 0 と error counter が増加することを確認した。この試験は、表5.7 で定義されたマイルストーン全てに対して行い、同様の結果が得られた。

JTAG 1
SMA
クロック供給JTAGと通信

JTAG 2

ArriaV評価ボード

PC

SMA
オシロでクロッ
クを測定

ArriaX評価ボード

図 5.46: 実験のセットアップ。ALTERA の ArriaV 評価ボードから 160 MHz クロックが、Arria10
評価ボードに伝送される。受け取ったクロックは Arria10 ファームウェア内で 240 MHz へ分周さ
れ、User Code ファームウェアへ渡される。ファームウェアを実装するために、ALTERA 提供の
JTAG とソフトウェアを利用した。JTAG を介して特定の信号のデバッグができるため、checker
flag と error counter の振る舞いが PC 上で確認できる。

80

checker flag

error counter・ checker flag = 1
・ 約2時間のrunで、error counter = 0
あるBCの1つだけエラーを入れる : RAMに間違った答えを入れる。
checker flag

エラーを検出できている。

error counter
カウンターは1増加

図 5.47: 取得できた信号。全ての信号が予期した振る舞いを示していることが得られ、長時間での安定した動作も確認できた。また、checker flag 等が正しくエラーを検出できるかの試験も行った。エラーを混ぜた場所で、checker flag が 0 となり、error counter の値が 1 増える。

次に、シミュレーションで LAr カロリメータの波形と Optimal filter の係数を作成し、LATOME ファームウェアに実装する。図 5.48 左はあるチャンネルのインプットデータである。インプットデータに対して、User Code から得られた出力値は図 5.48 右である。この結果は、乱数の時と同様に checker flag と error counter から正常動作を確認している。
また、係数を実装する際に、ビット幅の制限から係数やエネルギーは丸められる。これによる精度の悪化をみるために、丸め前のエネルギーとファームウェアのエネルギーの相対誤差を調べ、1 % 以内の精度であることを確認した (図 5.49)。

0 channel
CODE [1 CODE = 12.5 MeV]

amplitude [ADC]

0 channel
1800
1700
1600
1500
1400
1300

5000
optimal filter without τ selection

4000

optimal filter with τ selection

3000

2000

1200
1000

1100
1000

0

900
800
0

500

1000

1500

2000

2500

3000

3500
Time [BC](1) インプットデータ

−1000
0

500

1000

1500

2000

2500

3000

3500
Time [BC](2) 18 ビットファームウェアの出力値

図 5.48: LAr カロリメータ波形を入れた試験。(1) は、ペデスタルを 1000 で固定した 14 種類のカ
ロリメータ波形を入れた。(2) は、そのインプットに対してのファームウェアの出力結果である。
全ての波形に対して、ピークを捉えることができている。緑点は、τ の選択条件を false にすることで得られた。

81

0 channel(EPC - Efirmware)/EPC

Energy [MeV]

0 channel
60000
optimal filter without τ selection

50000
optimal filter with τ selection

40000
30000

0.02
0.015
0.01
0.005

20000

0

10000

−0.0050−0.01−10000−0.015−20000
0

500

1000

1500

2000

2500

3000

3500
Time [BC](1) 丸めなしでの結果

−0.02
0

500

1000

1500

2000

2500

3000

3500
Time [BC](2) 相対的誤差

図 5.49: ファームウェア出力値の精度比較。(1) は、丸めなしを行った場合のエネルギー出力値を示している。(2) は、ファームウェアの結果との相対的誤差を示している。ファームウェアで得られたエネルギーは、1 % 以下の精度で丸める前と一致している。ファームウェアは、十分な精度で計算できている。

5.5

統合試験

図 5.4 からレイテンシの要請に寄与するモジュールは、LLI, Input stage, Configurable
remapping, User Code, Output summing モジュールである。そのため、統合試験の最初のステップとしてこれら 4 モジュールが統合され、レイテンシやリソース等の測定を行った (表 5.11)。このファームウェアは、M1 (マイルストーン 1) ファームウェアと呼ばれる。
この表から、要求値以内 (表 5.1) のレイテンシ (≤15 BC) と実装可能なリソース量である
ことがわかる。
表 5.11: 測定した各モジュールのレイテンシ (左) と統合ファームウェアのリソース使用率 (右)。
L1 トリガーからの要請である 15 BC 以内のファームウェアが作成できた。また、リソースも十分
FPGA に実装可能である。

モジュール名

レイテンシ [BC]

リソース

使用率

LLI
Input stage
Configurable remapping
User Code
Output summing
Total

4.94
2.12
1.58
4.5
1.13
14.27

ALM
Total pins
MemoryDSP Block
トランシーバ
PLL

13 %
39 %
7%
16 %
73 %
39 %

また、M1 ファームウェアにチェッカーモジュールを組み込み、ボードによる試験を行った。今回の試験では 1 本の光ファイバーを用いており、Output summing モジュールのjFEX と gFEX 用の信号にチェッカーは組み込んではいない (図 5.50)。どの程度エラーが起きるかを 24 時間かけて試験を行い、どのモジュールもエラーが起きずに正しく動作して82

いる結果が得られた。今後は jFEX と gFEX のチェッカーを作成と、複数の光ファイバーでの実験を行う予定である。

partially
implement

作成担当- not implement- ready- ready

partially
implement

図 5.50: チェッカー付き LATOME ファームウェア。青枠と緑枠のモジュールはすでに統合が完了している。gFEX のエンコーディングはまだ確定していないため、Output summing モジュールの修正を行う可能性がある。jFEX, gFEX 以外の試験はすでに行われており、長時間での正常動作が確認された。

LATOME ファームウェアは現在、IPBus Controller と TTC モジュールの統合を行っている。2017 年 2 月初旬までに全モジュールの統合が終わる予定である (図 5.51)。その後、フロントエンドと接続し、全体のシステムテストが行われる。

- ready- partially implement

図 5.51: 2016 年 12 月時点でのファームウェア統合状況。メイン経路のファームウェアは実装は完了している。現在は、IP Controller や TTC モジュールとの統合を行っている。

83

第 6 章 結論と今後に向けて

6.1

結論

Run3 以降の LHC-ATLAS 実験の高輝度化により、背景事象によるトリガー発行頻度の上昇が予想される。そのため、トリガー能力の向上のため、LAr カロリメータトリガー読
み出しのアップグレード計画に参加している。
ATLAS 日本グループはバックエンドエレクトロニクスの研究に参加し、そこで必要な
FPGA ファームウェアの開発を行なっている。この FPGA の主な役割は、従来よりも 10倍細分化させた読み出し領域 (Super Cell) のエネルギーと時間を算出することである。そのために、2 つのプロジェクトに参加した。
デモンストレータプロジェクト Run2 実験で Super Cell 信号を収集するバックエンドデ
モンストレータの運転に携わった。本研究は、膨大な数の入力・ 出力をもつブロックの詳細なテストベンチの作成に成功し、データ収集時に起きていた問題の原因を特定し、修正を行った。これによって改善されたファームウェアの動作は安定しており、効率的に多くの物理データを取得した。また、キャリブレーションデータも取得でき、LATOME プロ
ジェクトのファームウェア開発に大きく役立った。

LATOME プロジェクト FPGA の特徴を最大限に生かし、全 Super Cell のエネルギーの算出とサチュレーションした波形に対する処理が行われるファームウェアの設計および実装を一から全て行った。このファームウェアのレイテンシは 112.5 ns であり、L1 トリ
ガーからの要求値を満たしている。また、リソースや最大動作周波数も調べ、LATOME
で使用される Arria10 FPGA に実装可能であることを示した。シミュレーションとボードによる様々な試験も行われ、正常動作を確認した。
本研究によって、Super Cell 読み出しに対応するファームウェアの基本的な枠組みが完
成した。

6.2

今後に向けてシミュレーションによる評価の不十分な所が数多く残っている。特に、サチュレーショ
ンの同定方法はより詳細なシミュレーションを行う。また、ベースラインコレクションの設計が完成していないため、LATOME に実装できるファームウェア開発が必要である。
ハードウェアの観点では、新しく導入される LTDB と LDPB を取り付けたシステムテス
トを現在行っており、2017 年 2 月頃から LATOME ファームウェアもこのシステムテスト

84

に導入される。そのために、LATOME ファームウェア自体の全て統合させ、大量生産前のシステムテストを 2017 年前半に完了させる。その後は、ATLAS への実装に向けた準備に移行する予定である。

85

謝辞
本研究を進めるにあたり、指導教員である田中純一准教授には毎週の発表において多くの助言を賜りました。特に、学会や CERN での発表スライドに関しても何度も添削していただき、心から感謝申し上げます。江成祐二助教には、本研究の具体的な進め方に加えて、ファームウェアの実装に関して多くのご指導を賜りました。これをしろと強制するでなく、自分で考えた設計の修正点などを丁寧に教えていただきました。とても有意義でやりがいのある研究テーマを与えていただき大変感謝しています。短い期間ではありましたが、山本真平特任助教にはエレクトロニクスやファームウェアについて多くの助言を頂きました。
本研究で携わった 2 つのプロジェクトでは、多くのメンバーにご指導賜りました。デモン
ストレータプロジェクトのリーダーである Steﬀen Starz には、ABBA ファームウェアについて本当に多くの助言を頂きました。拙い英語でも理解しようとしてくれることに関しては、感謝してもしきれません。Alessandra Camplani には、TTC ファームウェアに関して多くの助言を頂き、ABBA ファームウェア試験の手助けをしてもらいました。先輩の楊易霖氏には、ABBA データの解析で大変お世話になりました。他のメンバーにも、meeting で大変お世話になりました。LATOME プロジェクトのリーダーである Nicolas.Chevillot とGeorge Aad には、多くの助言を頂きました。特に、Nicolas.Chevilot には、ファームウェアの設計について親身に議論していただきました。Nicolas Dumont Dayot には、LATOME
ボードについて説明、実機での試験の手助けをしていただきました。Bernard Dinkespiler
をはじめとする CPPM のメンバーには、Arria10 評価ボードでの試験の手助けをしていた
だきました。その他のメンバーにも、meeting 等で大変お世話になりました。
ICEPP の方にも大変お世話になりました。難波俊雄助教には、検出器の基礎知識について多くのご指導賜りました。秘書の塩田雅子様、竹本葉子様、山浦華世様、手塚淑恵様、
加瀬由美様、原田靖子様には出張の手続きをはじめとする多くの事務手続きを行っていただきました。先輩である嶺岸優司氏には、多くのことについて非常にお世話になりました。
ファームウェアについての基礎の丁寧な説明だけでなく、CERN での生活のサポートまでしてもらいました。研究室の同期である井口君とは多くの苦楽を共にしました、また頑張
りましょう。同じく同期である周君と清野君はよくご飯にいきました、また行きましょう。
樊君、岩井君、藤倉君、中尾君、内田君、中西君や先輩、後輩達のおかげで充実した研究生活が送れました。
最後に、家族をはじめとした周りの方のおかげで、修士生活を全うできました、ありがとうございます。

86

参考文献[1] ATLAS Collaboration, ATLAS LAr Calorimeter Phase-I upgrade TDR, CERNLHCC-2013-017[2] ATLAS Japan group, http://atlas.kek.jp/sub/photos/[3] ATLAS Photo LAr Calorimeter, http://www.atlasexperiment.org/photos/
calorimeters-lar-barrel.html[4] ATLAS Photo FCalo,
http://www.project-atlas-lucid.web.cern.ch/project-atlas-lucid/taskforce/main_10.html[5] ATLAS Photo MDT, http://www.atlas.mpp.mpg.de/atlas_mdt/subpages/mdt_
chamber.html[6] Atlas Collaboration, ATLAS TDAQ System Phase-I upgrade TDR, CERN-LHCC2013-018[7] ATLAS Collaboration, HL-Plan, http://www.hilumilhc.web.cern.ch/about/hl-lhc-project[8] ATLAS Collaboration, Performance of the ATLAS Liquid Argon Calorimeter after
three years of LHC operation and plans for a future update, https://inspirehep.
net/record/1240499/plots[9] Wikipedia,
ATCA
create,https://en.wikipedia/org/wiki/Advanced_
Telecommunications_Computing_Architecture[10] R.Schwienhorst on behalf of the ATLAS collaboration, The Phase-1 upgrade of the
ATLAS first level calorimeter trigger, 2016 JINST 11 C01018[11] ALTERA company homepage, https://www.altera.co.jp[12] CERN Twiki, Proposal format of data link from LTDB to LDPB, https://twiki.
cern.ch/twiki/pub/LAr/LArDemonstrator/format_of_data_link.pdf[13] Nicolas.Dumont.Dayot, Preliminary Design Review of LATOME AMC A10 Carrier
Board I/O Interfaces: https://indico.cern.ch/event/376479/[14] CERN Twiki, ATLAS LAr Calorimeter trigger electronics phase I upgrade:
LATOME Firmware Specifications, https://twiki.cern.ch/twiki/bin/view/
LAr/LATOME87

[15] B.Deng, M.He, J.Chen, D.Guo, S.Hou, X.Li, C.Liu, P.-K.Teng, A.C. Xiang, Y.You,
J.Ye, D.Gong and T.Liu, A line code with quick-resynchronization capability andlow latency for the optical data links of LHC experiments, 2014 JINST 9 P07020[16] CERN Twiki, Public result, https://twiki.cern.ch/twiki/bin/view/
AtlasPublic/L1CaloTriggerPublicResults[17] 久島慎吾、ATLAS 実験液体アルゴンカロリメータのデジタル信号処理におけるエネルギー再構成アルゴリズムの研究開発、https://www.icepp.s.u-tokyo.ac.jp/
papers/thesis.html[18] Bill Cleland, Study of Optimal Filtering Options for Treatment of Super Cell
Data in the Phase-I upgrade https://cds.cern.ch/record/2064710/files/
ATL-COM-LARG-2015-032.pdf[19] Philippe Schwemling, Neighbouring cell use for BCID, https://indico.cern.
ch/event/464574/contributions/1139505/attachments/1196706/1739404/
trigger_saturation301115.pdf[20] Brian Petersen, BCID Dependent Pedestal Subtractions, https://indico.cern.
ch/event/249832/contributions/1573956/attachments/432170/599744/
Pedestals.pdf

88