2022 年度 修士論文

高輝度 LHC-ATLAS 実験に向けた
ミューオントリガー論理回路の開発・実装・試験— 読み出し・制御系の構築とトリガー系の統合
Development, implementation, and test of the muon trigger electronics for High-Luminocity LHC-ATLAS experiment 






— Establishment of readout and control system,
and integration of trigger logic

東京大学大学院理学系研究科物理学専攻
素粒子物理国際研究センター
石野研究室

博士課程（前期課程）2 年
学籍番号 35–216094

三島章煕
2023 年 1 月

ii

概要
2029 年から開始される高輝度 LHC-ATLAS 実験では、高統計量を活かした物理探索を推し進めるため、最高瞬間ルミノシティーが 7.5 × 1034 cm−2 s−1 に増強される。さらには、より多様な物理をより柔軟なアルゴリズムでトリガーすべく、初段トリガーレートが 1 MHz に、初段トリガーレイテンシが 10 µs へ拡張される。その実現のために、ATLAS 検出器を構成する全てのサブシステムのエレクトロニクスを刷新する。ATLAS 検出器最外層に設置されており、ミューオンのトリガーを担当する Thin Gap Chamber (TGC) 検出器についても例外ではなく、その全てのエレクトロニクスのアップグレードを行う。従来は検出器ホール内の高放射線環境下で行っていた前段処理を、後段回路で包括的に行うことで、より高度なトリガーアルゴリズムの導入を実現する。後段回路には大型のField Programmable Gate Array (FPGA) を搭載し、検出器からの信号をもとにしたトリガー判定処理や読み出し
処理、さらには前段回路の制御などを集約的に行う。
後段回路は、入出力それぞれで 1.2 Tbps のバンド幅を持つ大規模な I/O を有する。ボード上の System on Chip

(SoC) では Linux OS が走り、Ethernet にも繋がっている。加えて、後段回路に搭載している FPGA は、Xilinx のVirtex Ultrascale+ FPGA (xcvu13p) である。この FPGA は、4 つのシリコンダイ (SLR) から構成されている巨大な SSI デバイスである。本研究は、この次世代の回路ボードに対して、FPGA ファームウェアやソフトウェアの実装を最適な形で実現したものである。これには、SLR の構造を考慮した上で、I/O および読み出し・トリガー・制御系の各回路の最適な配置・配線を設計し、戦略的に実装していく必要がある。そのため本研究では、最初に I/Oの定義を行い、ファームウェア全体のレイアウトを定めた。それを基盤に、読み出し回路・トリガー回路・制御系の全体設計を行い、ファームウェア・ソフトウェアの実装と運用を進めた。加えて、これらの機能の包括的な検証
を後段回路ボード単体で行うためのシステムの全体設計と実装を達成し、コミッショニングを実施した。本研究で確立した知見や開発基盤は、将来の高エネルギー実験における大規模 FPGA を活用したエレクトロニクスデザインに広く応用できると期待する。

v

目次

第1章

序論

1

1.1

素粒子標準模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

LHC-ATLAS 実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2.1

LHC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2.2

ATLAS 検出器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.2.3

TDAQ システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.2.4

Phase-II アップグレード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3

研究の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.4

本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

高輝度 LHC-ATLAS 実験における TGC 検出器システム

92.1

ミューオンスペクトロメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2

ATLAS 検出器における TGC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3

TGC 検出器のエレクトロニクス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

第2章

第3章

2.3.1

高輝度 LHC-ATLAS 実験以前のエレクトロニクス . . . . . . . . . . . . . . . . . . . . . .

13

2.3.2

高輝度 LHC-ATLAS 実験におけるエレクトロニクス . . . . . . . . . . . . . . . . . . . . .

17

SL における I/O の実装

27

3.1

I/O レイアウトの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2

PS board とのインターフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

第4章

4.1

4.2

読み出し回路の開発

35

TGC 読み出し回路の全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1

L0 Buﬀer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1.2

Derandomizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.1.3

Zero Suppressor & Serializer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.1.4

Event Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Derandomizer の性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.1

dead time のシミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2.2

L0A バースト時の挙動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3

TGC 読み出し回路の実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4

バックプレッシャー機構

4.5

Busy ハンドリング機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.6

トリガー読み出し回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
45

目次

vi
第5章

コントロールパスの開発

49

5.1

チップ間通信の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5.2

レジスタ系の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.3
第6章

6.1

5.2.1

AXI Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.2.2

Register Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

コントロールパスの実装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

トリガー回路の統合

57

トリガー回路の全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

6.1.1

Wire Station Coincidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.1.2

Wire Segment Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.1.3

Strip Station Coincidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.1.4

Strip Segment Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.1.5

Wire-Strip Coincidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6.1.6

Inner Coincidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6.1.7

Track Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.2

統合の計画と現状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3

LUT 書き込み機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.4

タイミング制約の緩和とレイテンシについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

ファームウェアの検証

73

試験システムの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

7.1.1

読み出し回路出力のダンプ機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

7.1.2

テストパターン入力機構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

7.2

試験システムの性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

7.3

動作試験の計画と現状 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

まとめと今後の展望

77

第7章

7.1

第8章
謝辞

68

79

付録 A

コントロールパスにおけるレジスタリスト

81

付録 B

パイプラインによるタイミング制約の緩和

85

付録 C

SLR に関する技術的な詳細

89

C.1

FPGA ファームウェアの SLR への分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

C.2

SLL の使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

付録 D

SL I/O のループバック試験

91

D.1

接続のセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

D.2

試験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

引用文献

101

vii

図目次

1.1

LHC の概観 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2

ATLAS 検出器の全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3

超伝導磁石の概観 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

TDAQ システムの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.5

LHC のアップグレード計画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.6

レプトンの横運動量の閾値とアクセプタンスの関係 . . . . . . . . . . . . . . . . . . . . . . . . . .

62.1

バレル部におけるミューオンスペクトロメータの断面図 . . . . . . . . . . . . . . . . . . . . . . . .

92.2

ミューオンスペクトロメータの配置図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3

TGC BW の写真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4

チェンバーの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5

Triplet および Doublet の構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6

トリガーセクター・1/24 セクター・1/12 セクターの概要 . . . . . . . . . . . . . . . . . . . . . . .

2.7

TGC BW における検出器ユニットの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.8

高輝度 LHC-ATLAS 実験以前の読み出し回路・トリガー回路の概略図 . . . . . . . . . . . . . . .

2.9

Run-3 の TTC 系の概略図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.10

高輝度 LHC-ATLAS 実験以前の制御系の概略図

2.11

高輝度 LHC-ATLAS 実験におけるエレクトロニクスの概略図 . . . . . . . . . . . . . . . . . . . .

2.12

ASD の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.13

PS board の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.14

PP ASIC の回路の概略図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.15

BCID の概略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.16

PS board から SL へ送るデータのフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.17

SL から PS board へ送るコントロールデータのフォーマット . . . . . . . . . . . . . . . . . . . . . 22

2.18

SL 第 1 試作機の写真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.19

Virtex UltraScale+ FPGA に実装されるファームウェアの概要 . . . . . . . . . . . . . . . . . . . . 23

2.20

Zynq UltraScale+ MPSoC の概略図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.21

Mercury XU5 メザニンカードの構造と SL ボード上における接続関係 . . . . . . . . . . . . . . . 24

2.22

IPMC の写真 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1

xcvu13p のバンク構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2

SLR の概略図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3

SLR 構造上のデータの流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4

クロックジッタークリーナーと各 GTY Quad の参照クロックピンの配線の様子 . . . . . . . . . . .

11
12
14

. . . . . . . . . . . . . . . . . . . . . . . . . . . 16
17

32

図目次

viii
3.5

Gearbox の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.6

packet former の振る舞いを示すタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1

TGC 読み出し回路の全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2

L0 Buﬀer の読み出しポインタの挙動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3

読み出しポインタと書き込みポインタの挙動のタイミングチャート

4.4

Serializer から Event Builder へ送るデータのフォーマット . . . . . . . . . . . . . . . . . . . . . . 37

4.5

Serializer から Event Builder へ送るデータのタイミングチャート . . . . . . . . . . . . . . . . . . 37

4.6

Zero Suppressor & Serializer の動作のタイミングチャート . . . . . . . . . . . . . . . . . . . . . . 38

4.7

TGC 読み出し回路から FELIX へ送るデータのフォーマット . . . . . . . . . . . . . . . . . . . . . 39

4.8

TGC 読み出し回路から FELIX へ送るデータのタイミングチャート . . . . . . . . . . . . . . . . . 39

4.9

Event Builder の動作のタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.10

Derandomizer の dead time のシミュレーション結果 . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.11

L0A バーストの最悪のケースにおける、陽子バンチ交差数に対する L0A の累計数の遷移の様子 . . 41

4.12

L0A バーストの最悪のケースにおける、Derandomizer occupancy の遷移の様子 . . . . . . . . . . 42

4.13

TGC 読み出し回路の SLR レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.14

バックプレッシャー機構の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.15

Busy ハンドリング機構の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.16

本番用トリガー読み出し回路から FELIX へ送るデータのフォーマット . . . . . . . . . . . . . . .

47

4.17

本番用トリガー読み出し回路から FELIX へ送るデータのタイミングチャート . . . . . . . . . . . .

47

5.1

チップ間通信の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5.2

CPU 側から見たアドレス空間と、FPGA のレジスタ空間の対応関係 . . . . . . . . . . . . . . . . . 50

5.3

レジスタ系の設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

5.4

アドレス範囲の分割の様子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.5

AXI Translator の読み出し動作のタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . 53

5.6

AXI Translator の書き込み動作のタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . 53

5.7

Register Interface の動作のタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.1

ミューオンの運動量計算のコンセプト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

6.2

トリガー回路の全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

6.3

Wire Station Coincidence および Wire Segment Reconstruction におけるユニット . . . . . . . . . 59

6.4

M1 ステーションにおけるコインシデンスロジック . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.5

M2・M3 ステーションにおけるコインシデンスロジック . . . . . . . . . . . . . . . . . . . . . . . 60

6.6

Wire Segment Reconstruction のブロックダイアグラム . . . . . . . . . . . . . . . . . . . . . . . . 60

6.7

Strip Station Coincidence および Strip Segment Reconstruction におけるユニット . . . . . . . . . 62

6.8

Strip Segment Reconstruction のブロックダイアグラム . . . . . . . . . . . . . . . . . . . . . . . . 63

6.9

Wire-Strip Coincidence におけるコインシデンスウィンドウ . . . . . . . . . . . . . . . . . . . . . 64

6.10

Inner Coincidence の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.11

検出点と各内部飛跡検出器の対応関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.12Track Selector の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.13

Track Selector における選別用回路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.14

8-key sorting network の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

. . . . . . . . . . . . . . . . . 36

44

65

ix
6.15

16-key merging network の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.16

トリガーロジックの SLR レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.17

LUT 書き込み機構の動作におけるタイミングチャート . . . . . . . . . . . . . . . . . . . . . . . . 70

6.18

トリガーロジックにおけるパイプライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

7.1

試験システムの基本的な設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

7.2

3 つの EventBuilder 出力の直列化の様子を表すタイミングチャート . . . . . . . . . . . . . . . . . 74

B.1

SLR0 と SLR3 の間を伝播する信号のパイプラインの様子 . . . . . . . . . . . . . . . . . . . . . . 86

C.1

隣接する 2 つの SLR 間の信号の受け渡し方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

D.1

MPO アダプタの種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

D.2

ECUO-Y12 の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

D.3

FOPC の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

D.4

FOPC のタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

D.5

MPO におけるファイバーのラベル付け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

D.6

ループバック試験における接続関係の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

D.7

ループバック試験において実際に接続を行った際の写真 . . . . . . . . . . . . . . . . . . . . . . . .

94

D.8

シリアル転送レート 9.6 Gbps における eye scan の結果

D.9

シリアル転送レート 16.8 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

97

D.10

シリアル転送レート 18.0 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

97

D.11

シリアル転送レート 19.2 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

98

D.12

シリアル転送レート 20.4 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

98

D.13

シリアル転送レート 22.8 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

99

D.14

シリアル転送レート 24.0 Gbps における eye scan の結果 . . . . . . . . . . . . . . . . . . . . . . .

99

68

90

. . . . . . . . . . . . . . . . . . . . . . . 95

xi

表目次

1.1

標準模型におけるフェルミオンとその性質 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

標準模型におけるボソンとその性質

1

2.1

TTC 信号の一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2

ASD の可変遅延器における 1 ステップの遅延時間とそれに伴うジッターの大きさ . . . . . . . . . 19

3.1

left banks の I/O レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2

right banks の I/O レイアウト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1

連続する陽子バンチ交差中に発行される L0A の数の上限 . . . . . . . . . . . . . . . . . . . . . . .

4.2

TGC 読み出し回路のリソース使用量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.3

読み出しを実装しているトリガーロジック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1

RI プロトコル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2

アドレス範囲の分割に用いるパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.1

Wire Station Coincidence におけるコインシデンスパターン . . . . . . . . . . . . . . . . . . . . . 61

6.2

wire segment のフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.3

Strip Station Coincidence におけるコインシデンスパターン . . . . . . . . . . . . . . . . . . . . . 63

6.4

strip segment のフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.5

飛跡候補のフォーマット

6.6

トリガー回路のリソース使用量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

6.7

トリガーロジックのレイテンシに対する要請 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

A.1

各レジスタ空間のアドレス範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

A.2

SLR1 のレジスタリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

A.3

SLR0 のレジスタリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

A.4

SLR2 のレジスタリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

A.5

SLR3 のレジスタリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

D.1

シリアル転送レート 9.6 Gbps における BER 試験の結果 . . . . . . . . . . . . . . . . . . . . . . .

95

D.2

シリアル転送レートを上げた際の BER 試験の結果 . . . . . . . . . . . . . . . . . . . . . . . . . .

96. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41
46

52

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

xiii

コードブロック目次
B.1 SystemVerilog で記述したパイプラインレジスタに DONT_TOUCH 属性を付与した例 . . . . . . . . . 87
C.1 pblock を活用した SLR へのモジュール配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
C.2 Laguna レジスタを用いるための制約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

1

第1章

序論
1.1 素粒子標準模型
素粒子物理学における現在までの実験結果は、標準模型によって無矛盾に記述することができる。標準模型は、物質を構成するクォークとレプトン、それらの間に働く相互作用を媒介するゲージボソン、およびヒッグス粒子によって構成される。
標準模型におけるフェルミオンの性質を表 1.1 に、標準模型におけるボソンの性質を表 1.2 に、それぞれ示す。
表 1.1 標準模型におけるフェルミオンとその性質（Tanabashi et al. 2018）

第 1 世代
クォーク

第 2 世代
第 3 世代
第 1 世代

レプトン

第 2 世代
第 3 世代

表 1.2

名称

表記

質量

電荷

スピン

アップ

u

2.2 MeV

+2/3

1/2

ダウン

d

4.7 MeV

-1/3

1/2

チャーム

c

1.3 GeV

+2/3

1/2

ストレンジ

s

93 MeV

-1/3

1/2

トップ

t

173 GeV

+2/3

1/2

ボトム

b

4.2 GeV-1/3

1/2

電子ニュートリノ

νe

<2 eV

0

1/2

電子

e

511 keV-1

1/2

ミューニュートリノνµ<0.19 MeV

0

1/2

ミューオン

µ

106 MeV-1

1/2

タウニュートリノντ<18.2 MeV

0

1/2

タウ

τ

1.78 GeV-1

1/2

標準模型におけるボソンとその性質（Tanabashi et al. 2018）

ベクターボソン

スカラーボソン

名称

表記

質量

電荷

スピン

グルーオン

g

0

0

1

W ボソン

W

±

80.4 GeV

±1

1

Z ボソン

Z

91.2 GeV

0

1

光子

γ

0

0

1

ヒッグス

h

125 GeV00第 1 章 序論

2

標準模型におけるフェルミオンは全てスピン 1/2 を持ち、強い相互作用を媒介するグルーオンと結合するか否かによって、クォークとレプトンに分類される。クォークはグルーオンに結合するが、レプトンは結合しない。また、クォーク・レプトンは、左巻きのカイラリティを持つ粒子に作用する弱い相互作用の結合パターンにより、電荷が1 だけ異なる粒子同士で対をなす。クォーク・レプトンのそれぞれに 3 つの対があり、それぞれ同一の量子数を持ち、質量のみが異なる。これらを 3 つの世代と呼ぶ。
標準模型におけるボソンのうち、スピン 1 を持つものは、強い相互作用を媒介するグルーオン、弱い相互作用を媒介する W ボソンおよび Z ボソン、電磁相互作用を媒介する光子である。これらは SU (3)C × SU (2)L × U (1)Y 対
称性に基づくゲージ理論における相互作用を媒介する粒子であるため、ゲージボソンとも呼ばれる。また、スピン 0を持つものはヒッグスである。ヒッグスは、複素スカラー場のダブレットの 4 つの自由度のうち、SU (2)L × U (1)Y対称性の自発的破れの後に残る 1 つの自由度に対応する。他の 3 つの自由度は南部・ゴールドストンボソンを生じ、W ボソンおよび Z ボソンに質量を与える。さらに、ヒッグス場は湯川型の結合を通してクォーク・レプトンに質量を与える。
標準模型は、現在までに様々な実験によって検証されており、模型の予言から統計的に有意に乖離する現象は確認されていない。しかし、標準模型は、階層性問題や暗黒物質の存在など、多くの重要な問題を説明しない。これ
らの問題を解決する、標準模型を超えた理論体系として、テクニカラー模型や超対称性模型などが提唱されているが、未だに新物理の手がかりとなる実験的証拠は得られていない。新物理の理論体系が予言する新たな粒子は一般に大きな質量を持っているため、それらを探索する上では、高いエネルギーを持った粒子同士の衝突による新粒子の生成が重要な手段となる。

1.2 LHC-ATLAS 実験
1.2.1

LHC

スイスのジュネーヴ郊外に位置する欧州原子核研究機構 (CERN) では、世界最大の加速器である Large Hadron

Collider (LHC) を用いた素粒子実験が行われている。LHC は周長 26.7 km の陽子-陽子衝突型円形加速器であり、2022 年から開始された Run-3 では、重心エネルギーは 13.6 TeV、瞬間最高ルミノシティーは 2.0 × 1034 cm−2 s−1となる。2024 年の運転終了までにおよそ 350 fb−1 の積分ルミノシティーに到達する予定である。LHC の概観を図 1.1 に示す。LHC は地下およそ 100 m に設置されており、4 つの陽子衝突点ではそれぞれ、ATLAS 実験、

ALICE 実験、CMS 実験、LHCb 実験が行われている。

図 1.1

LHC の概観（Mouche 2014）

1.2 LHC-ATLAS 実験

3

1.2.2 ATLAS 検出器
ATLAS 実験で用いられている ATLAS 検出器は、全長 44 m、直径 25 m の円筒型をした汎用検出器である。
ATLAS 検出器の全体像を図 1.2 に示す。ATLAS 検出器を構成する検出器は、内側から順に、内部飛跡検出器、カ
ロリメータ、ミューオンスペクトロメータに分類することができる。ソレノイド型の超伝導磁石が内部飛跡検出器を覆うように設置されており、ソレノイド磁場を作り出す。加えて、トロイダル型の超伝導磁石がミューオンスペ
クトロメータのバレル部とエンドキャップ部のそれぞれに設置されており、トロイダル磁場を作り出す。超伝導磁石の概観を図 1.3 に示す。内部飛跡検出器は、ソレノイド磁場によって曲げられた荷電粒子の飛跡の曲率を測定することで、粒子の運動量を測定する。カロリメータは、内側の電磁カロリメータで電子と光子のエネルギーを、外側のハドロンカロリメータでハドロンのエネルギーを、測定する。ミューオンスペクトロメータは、内部の検出器を通過し、トロイダル磁場によってその飛跡を曲げられたミューオンを捉え、運動量を測定する。

図 1.2

ATLAS 検出器の全体像（The ATLAS Collaboration et al. 2008）

ATLAS 検出器で用いられている座標系について説明する。衝突点を原点として、LHC の中心に向かう方向を正の方向とする x 軸、鉛直上向きを正の方向とする y 軸、ビーム方向に沿った z 軸が定義されている。z 軸の方向は、(a) 超伝導磁石の配置(b) バレル部のトロイダル磁石

図 1.3 超伝導磁石の概観（The ATLAS Collaboration et al. 2008）

第 1 章 序論

4

直交座標系 (x, y, z) が右手系となるように定義する。これらに加えて、z 軸からの動径を R、方位角を ϕ、天頂角を θ とする円筒座標系も定義されている。さらに、次の式で定義される擬ラピディティ η も用いられる:()θη = − ln tan
2
また、z > 0 の領域を A-side、z < 0 の領域を C-side と定義する。

1.2.3

TDAQ システム

LHC の各衝突点では 40 MHz のレートで陽子バンチ交差が発生している。ATLAS 検出器では、それぞれの陽子
バンチ交差で O (10 Mb) 程度のサイズを持つデータ量が生じるため、O (1 Pbps) 程度のレートで生じるデータを処理していく必要がある。これらのほとんどは陽子の非弾性散乱などから生じる背景事象であり、物理解析をする上で興味のある事象はわずかである。例えば、重心エネルギー 13.6 TeV において、ヒッグスが生成されボトムクォークと反ボトムクォークに崩壊する事象の断面積はおよそ 30 pb であるため、瞬間ルミノシティー 2.0 × 1034 cm−2 s−1の場合、その事象のレートは高々 O (1 Hz) 程度である。このような膨大な背景事象のために計算機資源やデータ転送におけるバンド幅、ストレージ容量などを割くことは非効率であるため、興味のある事象のみを選択的に処理・記録していくことが重要となる。

ATLAS 実験では、オンラインで事象選別を行うトリガーシステムを導入している。phase-II アップグレード( 1.2.4 節) で刷新されるトリガーシステムは、ハードウェアベースで高速な処理を行う Level-0 (L0) トリガーと、
ソフトウェアを用いた精密な事象選別を行う Event Filter (EF) の 2 段階で構成される。L0 トリガーでは、取得するイベントのレートを 1 MHz まで落とし、さらに EF では 10 kHz まで落とす。また、衝突から L0 トリガーが発行されるまでの時間 (L0 レイテンシー) は 10 µs であり、これはイベントの複雑さによらず一定である。各検出器からの情報は、L0 トリガーが発行されるまでバッファーされる。トリガーシステムと、DAQ システムを合わせたシステム (TDAQ システム) の全体像を図 1.4 に示した。

L0Calo では、カロリメータからの情報をもとにトリガー判定を行い、その結果を Global Trigger に転送する。L0Muon では、ミューオンスペクトロメータおよびカロリメータからの情報をもとにトリガー判定を行う。

L0Muon は、|η| < 1 のバレル部を担当する Barrel Sector Logic、1 < |η| < 2.7 のエンドキャップ部を担当する
Endcap Sector Logic、全域 (|η| < 2.7) でミューオンの運動量を精密に測定する MDT Trigger Processor、トロイダ
ル磁場の内側かつ 1.3 < |η| < 2.7 の領域でミューオンを再構成する NSW Trigger Processor から構成される。これらのトリガープロセッサからの情報は一度 MUCTPI に集められてから、Global Trigger および Central Trigger

Processor (CTP) に転送される。Global Trigger では、L0Calo および MUCTPI からの情報をもとにさらにトリガー判定処理を行い、その結果を CTP に転送する。

CTP において L0 トリガーが発行され、バッファーされていた、対応するイベントのデータは、読み出しシステ
ムである Front End LInk eXchange (FELIX) へと転送される。読み出されたデータは DataFlow を経由して Event

Filter へ渡されるとともに、Event Filter からのトリガーが発行されるまでバッファーされる。Event Filter においてソフトウェアベースのトリガーが発行され、バッファーされていた、対応するイベントのデータは Permanent

Storage へ読み出されていく。

1.2.4

Phase-II アップグレード

2029 年から、LHC は高輝度 LHC にアップグレードされ運転が再開される。LHC のアップグレード計画の概要
を図 1.5 に示した。重心エネルギーは 14 TeV、瞬間最高ルミノシティーは 5-7.5×1034 cm−2 s−1 に増強され、さらなる高エネルギー・高統計量を活かした物理探索を開始する。およそ 10 年の運転期間全体で、積分ルミノシティー

1.2 LHC-ATLAS 実験

5

図 1.4

TDAQ システムの概要（ATLAS Collaboration 2017b）

は 3000-4000 fb−1 に到達する予定である。

LHC のアップグレードに対応すべく、ATLAS 検出器やそのエレクトロニクスは 2 段階でアップグレードされる。2019 年から 2022 年の Run-3 運転再開までの期間で phase-I アップグレードが行われ、Run-3 の運転が終了する 2026 年から 2029 年までの期間で phase-II アップグレードが行われる。phase-II アップグレードでは、TDAQ
システムが刷新される。L0 トリガーレートは 100 kHz から 1 MHz へ、EF におけるトリガーレートは 1 kHz から

10 kHz へ、L0 レイテンシーは 2.5 µs から 10 µs へ拡張される。
本研究の対象となるミューオントリガーシステムの場合、現行のエレクトロニクスのまま LHC のアップグレードが行われると、ミューオンの運動量分解能と読み出し性能の限界により、レプトンの横運動量の閾値を 50 GeV 程度にしなくてはならない。エレクトロニクスのアップグレードによって、より柔軟なトリガーアルゴリズムと 1 MHz
での読み出しを実現することで、レプトンの横運動量の閾値を 20 GeV 程度まで抑えることができる。これにより、興味のある事象に対するアクセプタンスを向上させ、効率的なデータ収集が可能になる。例えば、HH → τ τ bb̄ に第 1 章 序論

6

図 1.5

LHC のアップグレード計画（CERN 2022）

おいては、閾値の変更によってアクセプタンスがおよそ 2 倍になる。レプトンの横運動量の閾値とアクセプタンスの関係を図 1.6 に示した。

図 1.6 レプトンの横運動量の閾値とアクセプタンスの関係（ATLAS Collaboration 2017b）

1.3

研究の目的

本研究の目的は、高輝度 LHC-ATLAS 実験における、Endcap Sector Logic に実装される論理回路の完成を目指し、その包括的な開発を行うことである。Endcap Sector Logic は、エンドキャップ部を覆うミューオンスペクト

1.4 本論文の構成
ロメータのひとつである TGC 検出器からのヒット信号をもとにミューオンの再構成と運動量の計算を行い、その結果を MUCTPI ヘ送信する。また、トリガーを受けるまでヒット信号をバッファーしておき、トリガー判定を受けたイベントのヒット信号を選択的に FELIX ヘ送信する役割も担う。その他、TGC 検出器エレクトロニクス全体の制御系のマスターとして機能し、実験のオペレーションにおいてはオンラインソフトウェアとのインターフェイスとなる。これらの機能は Endcap Sector Logic 上に搭載する、Xilinx の Virtex UltraScale+ FPGA および Zynq

UlatraScale+ MPSoC へ実装する。本研究における FPGA ファームウェアの開発においては、図 2.19 に示すような全体設計をはじめに定義した上で、I/O および SLR レイアウトを定め、読み出し・トリガー・コントロールの必要な機能を戦略的に実装していく。従来は複数のボードやデバイスに分散させて実装していたこれらの機能を、1つのデバイスヘ集約することは前例の少ない挑戦的な課題である。本研究ではその開発基盤と試験の枠組みを構築
し、高エネルギー実験における大規模 FPGA の先駆的な活用例を確立した。

1.4 本論文の構成
第 1 章では、現在の素粒子物理学を取り巻く状況と、実験素粒子物理学のエネルギーフロンティアである

LHC-ATLAS 実験について説明した。第 2 章では、高輝度 LHC-ATLAS 実験における TGC 検出器の構成と、エレクトロニクスのデザインについて説明する。第 3 章では、FPGA デバイスの入出力の設計について述べる。これ以降の章で説明する各回路系のデザインは、この設計をベースにして組み立てている。また、PS board とのインターフェースについてもこの章で述べる。第 4 章では、高輝度 LHC-ATLAS 実験で刷新される TDAQ システムに合わせ、1 MHz の高速読み出しを実現する読み出し回路の開発と実装について説明する。第 5 章では、エレクトロニクスの制御系の役割と具体的な設計について述べる。第 6 章では、これまで独立に開発を進めてきたトリガー回
路の各モジュールの統合について説明する。第 7 章では、読み出し・制御系およびトリガー回路の動作試験を行う
ためのフレームワークについてである。回路の評価のために実際に行った試験の内容と結果についても、この章で議論する。最後の第 8 章では、本研究の結論と今後の発展性についてまとめる。

7

9

第2章

高輝度 LHC-ATLAS 実験における TGC 検出器システム
2.1 ミューオンスペクトロメータ
高輝度 LHC-ATLAS 実験におけるミューオンスペクトロメータは、位置分解能に優れ、運動量の精密測定を行う Monitored Drift Tube (MDT) および New Small Wheel (NSW) と、時間分解能に優れ、トリガーを担当する

Resistive Plate Chamber (RPC) および Thin Gap Chamber (TGC) から構成される。また、タイル型ハドロンカロ
リメータにおけるミューオンのヒット情報も、ミューオントリガーに用いられる。バレル部のミューオンスペクト
ロメータは、トロイダル磁石や支持機構との干渉を避けるため、図 2.1 に示すように、ϕ 方向に 8 回対称となる
ような構造をとっており、Sector 番号が奇数のものを Large Sector、偶数のものを Small Sector と呼ぶ。Large

Sector および Small Sector のそれぞれにおける、R-z 平面での断面図を図 2.2 に示す。MDT の名称はその位置によって決められており、{"Endcap" or "Barrel"}、{"Outer" or "Medium" or "Inner"}、{"Large Sector" or "Small

Sector" or "Rail" or "Feet"}のそれぞれの頭文字をとって定義される。

図 2.1 バレル部におけるミューオンスペクトロメータの断面図（The ATLAS Collaboration et al. 2008）

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

10(a) Large Sector におけるミューオンスペクトロメータの断面図
図 2.2(b) Small Sector におけるミューオンスペクトロメータの断面図

ミューオンスペクトロメータの配置図（ATLAS Collaboration 2017a）

図 2.2 において、黒文字で示している検出器は Run-3 以前から設置されているものである。緑文字で示している
検出器は Run-3 で新たに設置、または既存の検出器を置き換えるように設置された検出器である。赤文字で示している検出器は高輝度 LHC-ATLAS 実験にむけて設置される予定の検出器である。

L0Muon における Barrel Sector Logic は RPC から、Endcap Sector Logic は TGC から、MDT Trigger Processor
は MDT から、NSW Trigger Processor は NSW からのヒット情報の処理を、それぞれ主に担当する。また、ミューオンの再構成をより良い精度で行うため、ヒット情報の一部は、これらのトリガープロセッサー間で共有される。

2.2 ATLAS 検出器における TGC
TGC は、エンドキャップ部におけるトロイダル磁石の外側に設置している Big Wheel (BW) と、内側に設置している EIL4 から構成され、1.05 < |η| < 2.4 の領域をカバーしている。EIL4 は、Run-3 以前での EIL MDT の、
衝突点側から数えて 4 番目にあたるチェンバーに隣接するように設置しているため、そのように呼んでいる。TGC

BW は 3 つのステーションから構成され、衝突点側からそれぞれ M1、M2、M3 と呼ぶ。TGC BW の M1 ステーションの概観を図 2.3 に示す。台形型のガスチェンバーを、円盤型に敷き詰めたような構成になっている。

TGC のチェンバーは、アノードワイヤー電極とカソードストリップ電極による 2 次元読み出しを持つ Multi
Wire Proportional Chamber (MWPC) である。チェンバーの構造を図 2.4 に示す。ワイヤーは、直径が 50 µm で、金メッキされたタングステン製であり、ϕ 方向に張られている。ワイヤー同士の間隔は 1.8 mm であり、ストリッ
プとの距離は 1.4 mm である。ワイヤー同士の間隔は高い時間分解能を実現するために決めているが、トリガーを担当する TGC にはそれほど高い位置分解能は求められていない。チャンネル数を必要十分な数に調整し、読み出
し数を減らすため、4-20 本のワイヤーを束ねて読み出している。ワイヤーとストリップ間の距離は、イオンのドリ
フト時間を小さく抑え、繰り返し読み出しの頻度を確保するように決めている。厚さ 2.8 mm のガスギャップには、

CO2 と n-C5 H12 を比 55:45 で混合したものを充填している。このガスギャップを厚さ 1.6 mm の FR4 で挟んでいる。FR4 のガスギャップ側表面には、カソードとしてカーボングラファイトを塗布しており、グラウンドとなっている。FR4 の他方の表面には銅箔を貼り付けており、それを ϕ 方向に分割し、ストリップとしている。ワイヤーには 2.8 kV の電圧を印加しており、ガスギャップを荷電粒子が通過すると電子雪崩が生じ、ワイヤーでは正イオン
を、ストリップではカーボングラファイトに集まった電荷の鏡像電荷を、それぞれ電流信号として読み出していく。

TGC BW の M1 ステーションは 3 層のガスギャップからなり、TGC BW の M2、M3 ステーションおよび EIL4は 2 層のガスギャップからなる。チェンバーの 3 層構造および 2 層構造を、それぞれ triplet および doublet と呼ぶ。triplet および doublet の構造を図 2.5 に示す。triplet は 3 層のワイヤーと 2 層のストリップからなり、doublet

2.2 ATLAS 検出器における TGC

11

図 2.3 TGC BW の写真（The ATLAS Collaboration et al. 2008）(a) チェンバーの断面図(b) チェンバーの概要

図 2.4 チェンバーの構造（The ATLAS Collaboration et al. 2008）

は 2 層のワイヤーと 2 層のストリップからなる。チェンバー同士をペーパーハニカムで挟んで固定しており、全体の構造を保っている。

TGC は、triplet または doublet 構造をとる台形型のチェンバーを検出器ユニットとして構成される。TGC BW
は 1.05 < |η| < 1.92 のエンドキャップ領域と、1.92 < |η| < 2.4 のフォワード領域に分けられる。エンドキャッ
プ領域およびフォワード領域の TGC は、それぞれ、ϕ 方向に 48 回対称および 24 回対称になるように検出器ユニットが並ぶ構造をとっている。この対称構造の単位をトリガーセクターと呼ぶ。エンドキャップ領域の 2 つのトリガーセクターと、フォワード領域の 1 つのトリガーセクターをまとめたものを 1/24 セクターと呼ぶ。1/24 セク
ターは、 2.3.2 で述べるように、回路的に独立している。また、電源供給やガス供給、電気回路制御などの観点から、隣接する 2 つの 1/24 セクターをまとめたものを 1/12 セクターと呼ぶ。各 1/12 セクターを、A-side および C-sideのそれぞれで、ϕ = 0 から ϕ の正の方向へ順に A01-A12 および C01-C12 とラベル付けしている。トリガーセク

12

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

図 2.5 Triplet と Doublet ステーションの構造（The ATLAS Collaboration et al. 2008）

ター・1/24 セクター・1/12 セクターの関係を図 2.6 に示す。図において、赤色の線で囲っている領域が 1/24 セク
ターである。また、エンドキャップ領域の TGC は、M1 ステーションでは R 方向に 4 つ、M2、M3 ステーション
では R 方向に 5 つの検出器ユニットが並ぶ構造をとっている。フォワード領域の TGC は、R 方向に 1 つの検出器ユニットのみがある。TGC BW における検出器ユニットの概要を図 2.7 に示す。

図 2.6 トリガーセクター・1/24 セクター・1/12 セクターの概要（The ATLAS Collaboration et al. 2008）

2.3 TGC 検出器のエレクトロニクス
TGC の読み出しチャンネルはおよそ 32 万チャンネルあり、これらから来る信号を処理する回路系 (エレクトロニクス) が必要になる。TGC におけるエレクトロニクスは、読み出し回路・トリガー回路・制御系・Trigger andTiming Control (TTC) 系の 4 つのパスに分類することができる。 2.3.1 節において、高輝度 LHC-ATLAS 実験以2.3 TGC 検出器のエレクトロニクス

13

図 2.7 TGC BW における検出器ユニットの概要（ATLAS Collaboration 2000）

前のエレクトロニクスのデザインについて概説し、特に読み出し回路・トリガー回路において、高輝度 LHC-ATLAS
実験における要求を満たせないことをみる。続く 2.3.2 で、その問題を解決する新たなエレクトロニクスのデザインを説明する。

2.3.1 高輝度 LHC-ATLAS 実験以前のエレクトロニクス
高輝度 LHC-ATLAS 実験以前の読み出し回路・トリガー回路の概要を図 2.8 に示す。TGC からの電流信号を、

Ampliﬁer-Shaper-Descriminator (ASD) において電圧信号に変換し、増幅・整形する。電圧信号を、ノイズをカットするためにコンパレータにかける。閾値電圧を超えている時間だけ High を出力する論理で、LVDS 信号に変換
し、後段へ送る。ASD からの LVDS 信号を、PS board 上に搭載されている Patch Panel ASIC (PP ASIC) において、LHC が配布する 40 MHz クロック (LHC クロック) に同期させる。どの陽子バンチ交差由来の信号であるかを正しく同定 (Bunch Crossing Identiﬁcation (BCID)) するため、チャンネル毎の信号の到達時間の差を可変遅延器
によって調節する。この到達時間の差は主に、ミューオンの飛行時間の違いや、ASD と PS-board を接続するケー
ブル長の違いに起因する。このようにして得られた、LHC クロックに同期したヒット信号を、読み出しパスとトリガーパスに分ける。図 2.8 では、読み出しパスを青い矢印、トリガーパスを赤い矢印で示している。
トリガーパスでは、まず、PS borad 上に搭載されている Slave Board ASIC (SLB ASIC) において、トリガー演算を行う。SLB ASIC で行われる演算は、それぞれのステーション内での 2 層または 3 層のコインシデンス、および M2、M3 ステーション間のコインシデンスである。これらは、ワイヤーとストリップのそれぞれで独立に行う。
この結果を、後段の High Pt board (HPT) に送る。HPT において、M1 と M2-M3 ステーション間のコインシデン
スを、ワイヤーとストリップのそれぞれで独立に行う。Hight Pt board の演算結果を、後段の Sector Logic (SL) に送り、ワイヤーとストリップ間のコインシデンスをとる。以上のトリガー演算によって再構成されたミューオンの飛跡情報を MUCTPI へと転送する。
読み出しパスでは、SLB ASIC が、CTP からトリガー判定を受けるまで最大 128 イベント分のヒット信号をバッファーする。トリガーされたイベントに対応するヒット信号のみを選択的に、後段の Star Switch (SSW) へ読み出す。SSW は、複数の PS board から送られてくるヒット信号に対して、ゼロサプレスと呼ばれるデータ圧縮を行い、イベント毎にパッケージする (Event Building)。この結果は Readout Driver (ROD) に送り、さらにデータフォー
マットを施して TDAQ の Readout システムへ転送する。

14

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

図 2.8 高輝度 LHC-ATLAS 実験以前の読み出し回路・トリガー回路の概略図（The ATLAS Collaboration et al. 2008）

図 2.8 に示されるように、これらのエレクトロニクスを、それぞれの機能に応じて異なる箇所に配置している。

ASD は、TGC チェンバーに直接取り付けたアダプタボードにマウントしている。PS board は、2 枚毎にアルミケース (PS-pack) に収め、TGC チェンバー付近に設置する。HPT および SSW は、BW 外縁に設置している

Mini-Rack 内の VME クレートに収めている。この VME クレート内には、VME のバスマスターとして HSC と呼ぶモジュールを設置している。以上述べたエレクトロニクスは、ATLAS 検出器が設置される実験ホール (UX15)内に設置するものである。SL および ROD は、実験ホールからは 100 m ほど離れた回路室 (USA15) に設置する。
なお、UX15 および USA15 に置くエレクトロニクスを、それぞれ、フロントエンドエレクトロニクスおよびバッ
クエンドエレクトロニクスとも呼ぶ。HPT と SL 間、および SSW と ROD 間の通信は、UX15 と USA15 間の限られたバンド幅で行う必要があり、高輝度 LHC-ATLAS 実験以前では、G-link と呼ばれる旧式のシリアル通信規格で接続をしている。G-link におけるシリアルデータの転送レートはおよそ 1 Gbps である。
次に、TTC 系について述べる。TTC は、読み出し回路・トリガー回路を、LHC の陽子バンチ交差に正確に同期して動かすための信号である。TTC 信号には表 2.1 に示すようなものがある。

2.3 TGC 検出器のエレクトロニクス

15

表 2.1 TTC 信号の一覧（ATLAS Collaboration 2015）

信号名

幅 (bits)

LHC クロック

1

BCID

12

BCR

1

L0A

1

L0ID

38

Set L0ID

1

役割

LHC の陽子バンチ交差に同期した 40 MHz のクロックであり、読み出し回路の一部とトリガー回路の全てはこのクロックに同期して動作する。
陽子バンチ交差の番号 (Bunch Crossing Identifer) であり、3564 個の陽子バンチに対応
して 0-3563 の範囲の値をとる。

BCID の値を 0 にセットするための信号 (Bunch Counter Reset) であり、陽子バンチがLHC を一周する毎に発行される。
CTP が発行する L0 トリガーのアクセプト信号 (L0 Accept) であり、これを受けて、読み出し系が対応するイベントのデータを読み出す。

L0A が発行されたイベントを区別するための番号であり、L0A または Set L0ID と同時に配られる。初期値は 1 であり、常に 1 以上の値をとる。

L0ID を特定の値にセットするために用いられる。L0A と同時に来ることはない。

Run-3 の TTC 系の概要を図 2.9 に示す。TTC 信号は CTP から、各検出器サブシステムの Local Trigger
Processor (LTP) に配られる。LTP は A-side と C-side のそれぞれに用意している。LHC クロックを LTP から
TTCex モジュールに送り、TTCvi モジュールに渡す。これは、TTCex と TTCvi 間の通信で、TTCex 側で LHC
クロックが必要となるためである。TTCvi モジュールは、LTP から受け取る TTC 信号の他に、TGC エレクトロニクス独自のテストパルストリガー信号やレジスタリセット信号を発行することができる。バックエンド側では、

TTCex から、TTC-FOB や ROD 上の TTCrx モジュールに TTC 信号を配る。TTC-FOB からは等長配線によって複数の SL へ TTC 信号を配る。フロントエンド側では、TTCex から、PS-pack 内にある Service Patch Panel(SPP) 上の TTCrx へ TTC 信号を配る。TTCrx からは等長配線によって複数の PS board へ TTC 信号を配る。また、TTCrx から Mini-Rack 内の HSC モジュールを経由して、SSW や HPT にも TTC 信号を配る。

図 2.9 高輝度 LHC-ATLAS 実験以前の TTC 系の概略図

最後に、制御系について述べる。制御系は、LHC の陽子バンチ交差に同期する必要のないスローな制御を行う。
例えば、FPGA 内の回路のコンフィギュレーションやパラメータ制御、状態の監視、ソフトリセットなどが含まれる。
これらは、各電気回路に仕組まれたレジスタに命令を書き込むことによって実現している。高輝度 LHC-ATLAS
実験以前の制御系の概要を図 2.10 に示す。USA15 には VME クレートを設置しており、VME バスのマスターと第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

16

して、Single Board Computer (SBC) を設置している。SBC の OS として Linux を用いている。CERN が開発した CentOS (CERN CentOS) ディストリビューションを採用している。また、VME バスのスレーブとして CCIモジュールを設置しており、1 つの 1/12 セクターにつき 1 枚の CCI モジュールを用いる。SBC にアクセスし、VME バスを経由して、CCI のレジスタを読み書きすることができる。CCI とフロントエンドの HSC モジュールは G-link で接続している。HSC モジュールは VME バスのマスターとして、クレート内の SSW や HPT のレジ
スタを制御する。さらに、SSW を経由して、PS board 上の PP ASIC や SLB ASIC を制御する。この通信のプロ
トコルには JTAG を用いている。

図 2.10

高輝度 LHC-ATLAS 実験以前の制御系の概略図

以上で述べたエレクトロニクスのデザインのうち、特に読み出し回路・トリガー回路では、主に 2 つの点において、高輝度 LHC-ATLAS 実験における要求を満たせない。高輝度 LHC-ATLAS 実験では、L0 レイテンシーは

10 µs であるため、400 イベント分のヒット信号をバッファーする必要がある。しかし、SLB ASIC においてバッファーできるイベントは 128 陽子バンチ交差分のみであるため、これでは不十分である。また、読み出しパスは最低でも 1 MHz のトリガーレートでヒット信号を読み出していく必要がある。しかし、SSW と ROD を接続する

G-link は、これに十分なバンド幅を有していない。

2.3 TGC 検出器のエレクトロニクス

172.3.2 高輝度 LHC-ATLAS 実験におけるエレクトロニクス
高輝度 LHC-ATLAS 実験におけるエレクトロニクスの概略を図 2.11 に示す。PP ASIC までの処理は、高輝度

LHC-ATLAS 実験以前と同様である。高輝度 LHC-ATLAS 実験以前の PS board には PP ASIC と SLB ASIC を搭載していたが、このうち SLB ASIC を撤廃する。代わりに、PP ASIC において BCID されたヒット信号を全てEndcap Sector Logic (以降、単に SL) に転送するための FPGA を搭載する。すなわち、事象の選別は行わず、全チャンネルのヒット信号を 40 MHz のレートで読み出している。これは、実験ホールと回路室間の通信におけるバンド幅が、1 Gbps 程度から 10 Gbps へ向上したことによって可能となったものである。高輝度 LHC-ATLAS
実験以前の読み出し回路・トリガー回路において、SLB ASIC 以降で行っていた処理は、全て SL で行うことになる。SL には大規模な FPGA を搭載しており、トリガー判定を受けるまでのヒット信号のバッファーも十分な余裕を持って行うことができる。
高輝度 LHC-ATLAS 実験以前の SLB ASIC では、ハードウェア上の制約から、同じトリガーセクター内でも、

M1 ステーションの 3 層コインシデンスと、M2 および M3 の 2 層コインシデンスを、それぞれ別のデバイス上で独立に行なっていた。さらに、同じステーション内のコインシデンスでも、読み出しチャンネルを η 方向および ϕ方向に分割して、それぞれ別のデバイス上で独立に行なっていた。高輝度 LHC-ATLAS 実験における刷新後のデザインでは、1 つの SL が、担当するトリガーセクター内の全ての PS board からのヒット信号を集約してトリガー演算を行うため、より包括的なトリガーアルゴリズムを用いることができる。

図 2.11

高輝度 LHC-ATLAS 実験におけるエレクトロニクスの概略図（ATLAS Collaboration 2017a）

ASD ボード

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

18(a) ASD ボードの写真
図 2.12(b) ASD の回路図

ASD の概要（ATLAS TGC Collaboration 1999）

ASD の概要を図 2.12 に示す。ASD ボードには 4 つの ASD チップを搭載しており、1 つの ASD チップは 4 つの読み出しチャンネルを処理する。すなわち、1 枚の ASD ボードは最大で 16 チャンネルを処理することができる。TGC の読み出しチャンネルはおよそ 32 万チャンネルあるため、およそ 2 万枚の ASD ボード用意する。TGC
からの電流信号を、まず、チャージアンプとなる前段増幅器 (プリアンプ) で電圧信号に変換する。この前段増幅器
は、放電時定数 16 ns をもったエミッタ接地回路であり、電圧変換効率は 0.8 V/pC である。プリアンプ出力の電圧信号を、利得 7 倍の差動電圧増幅回路 (メインアンプ) で増幅し、コンパレータにかける。コンパレータからは、メインアンプ出力の電圧がコンパレータの閾値電圧を超えている時間だけ High となり、それ以外の時間は Low であるようなロジックで、LVDS のデジタル信号を出力する。コンパレータの閾値電圧は、PS Board 上の FPGA から
コンフィギュレーション可能である。また、TGC からのチャージ出力をエミュレートしたパルス電圧 (ASD テス
トパルス) を、プリアンプの入力に入れることができる。ASD テストパルスのトリガーは、PS Board 上の FPGAから、PP ASIC を経由して ASD へ入力する。これにより、ASD が TGC に繋がれていなくても、エレクトロニク
スの試験を行うことができる。

PS board
PS board の概要を図 2.13 に示す。1 枚の PS board を最大で 16 枚の ASD ボードと接続する。TGC 検出器全体
では 1434 枚の PS board を用意する。ボードには 8 つの PP ASIC と、1 つの FPGA を搭載している。8 つの PP

ASIC のうち 4 つはメザニンボードに搭載する。また、PS board と SL を 3 本の光ファイバーで接続する。そのう
ち 2 本は PS board から SL へのヒットデータ転送用であり、1 本は SL から PS board への制御信号の転送用である。電気信号と光信号を変換するモジュールである SFP+ を、PS board には 2 つ搭載している。それぞれの SFP+
は 4 つの送信用リンクと 4 つの受信用リンクから構成される。その他に、ASD に閾値電圧を供給するための DACと、ASD に閾値電圧をモニターするための ADC を、16 枚の ASD ボードに対応してそれぞれ 16 チャンネル分用意している。

PP ASICPP ASIC は、port-A と port-B と呼ばれる 2 つの独立なパートに分かれており、1 つの port が 1 つの ASD ボー
ドからの入力を処理する。すなわち、1 つの PP ASIC は最大で 32 チャンネルを、1 枚の PS board は最大で 256
チャンネルを処理することができる。PP ASIC の回路の概略を図 2.14 に示す。

ASD から送られてくる LVDS 信号のタイミングを、可変遅延器によって揃える。チャンネル毎のタイミングの2.3 TGC 検出器のエレクトロニクス

19(a) PS board の写真(b) PS board の概略図
図 2.13PS board の概要

違いはミューオンの飛行時間やケーブル長の違いに主に起因し、理想的にはチャンネル毎に固有の値をもつため、それぞれの遅延パラメータを調整することで揃えることができる。可変遅延器は、インバータを複数、直列に接続して実現している。遅延ステップ数は最大で 48 である。可変遅延器の 1 つの遅延ステップの遅延時間を調整し、その値を温度によらずに一定に保つために、Phase Locked Loop (PLL) 回路を用いている。1 つの遅延ステップの遅延時間とそれに伴うジッターの大きさは表 2.2 にまとめる通りである。例えば、1 つの遅延ステップの遅延時間
を 0.84 ns に設定すると、最大でおよそ 40 ns の遅延をかけることができる。遅延ステップ数や 1 つの遅延ステッ
プの遅延時間は、PS board 上の FPGA から、SPI プロトコルを使ってコンフィギュレーションすることができる。
表 2.2 ASD の可変遅延器における 1 ステップの遅延時間とそれに伴うジッターの大きさ（ATLAS TGC Collaboration 2005）

1 ステップの遅延時間 (ns)ジッター (ps)

0.74

97.2

0.84

124

0.99

81

1.19

63.5

同じチャンネルの信号であっても、内在的なタイミングのふらつきが発生する。これは、チェンバー内で電荷が検出される位置から ASD までの距離の違いや、電荷のドリフト時間の違いに起因する。この内在的なタイミングのふらつきはチャンネルが担当する |η| の値や、ワイヤーかストリップかによって異なるが、いずれの場合も 20-30

ns 程度の幅に収まる。BCID はこのことを考慮して行う必要がある。BCID の概略図を図 2.15 に示す。BCID 回
路は、ヒット信号入力の立ち上がりを検出して、LHC クロックに同期したデジタル信号パルスを出力する回路である。そのため、例えば 2 バンチ連続でヒット信号入力があったとしても、必ずしも 2 クロック分の時間にわたって出力するとは限らない。前述のように、ヒット信号入力には内在的なタイミングのふらつきによって、20-30 ns
程度のふらつきがあるが、この時間幅のうちに来るヒット信号入力には同じ BCID を付与する必要がある。同じ

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

20

図 2.14

PP ASIC の回路の概略図（ATLAS TGC Collaboration 2019）

BCID を付与する時間幅をゲート幅と呼び、ヒット信号入力の時間分布幅に合わせて、25+X ns (X≥0) の値に調節する。このゲート幅の調整も、PS board 上の FPGA から SPI プロトコルによってコンフィギュレーション可能である。ゲート幅の開始時間は LHC クロックの立ち上がりとする。BCID 回路で用いる LHC クロックの立ち上がりは、ヒット信号入力の時間分布の立ち上がりが一致するように、可変遅延器を使って調節している。LHC クロッ
クの周期は 25 ns であるため、LHC クロックの立ち上がりから X ns 間は 2 つのゲート幅が開いていることになる。そのため、この時間のうちにヒット信号入力の立ち上がりがあった場合、連続する 2 クロック分の時間幅をもつデジタル信号パルスを出力することになる。

PS board FPGA
8 つの PP ASIC からのヒット信号出力を、256 bit の幅を持つビットマップとして、PS board 上の FPGA に集める。このヒット信号に、ステータス信号やコンマワードなどを含んだ 64 bit のヘッダーを追加し、320 bit のデータ
を SL へ送る。このデータは、2 つある SFP+ の送信用リンクを 1 本ずつ、計 2 本のリンクで転送する。各リンク
で送るデータは、図 2.16 に示すようなフォーマットで成形している。それぞれの SFP+ のリンクにおいて送るデー
タは 160 bit であり、32 bit 幅のデータ ×5 ワードに分けて転送する。これら 5 ワードを陽子バンチ交差のレートである 40 MHz で送る必要があるため、32 bit 幅のデータは 200 MHz のクロックで駆動することになる。さらに、このクロックは LHC クロックと同期したクロックである必要があるため、LHC クロックを逓倍したものを用いる。

FPGA は Xilinx の Kintex-7 シリーズのものであり、SL へ送るリンクのトランシーバには GTX を用いる。GTX

2.3 TGC 検出器のエレクトロニクス(a) BCID 回路のタイミングチャート

21(b) BCID 回路図

図 2.15 BCID の概略 (a)INPUT1 のような入力の場合、信号の立ち上がりは、2 つのゲート幅のオーバーラッ
プ領域に含まれていないため、1 クロック分の時間幅を持つデジタル信号パルスを出力している。INPUT2 のよ
うな入力の場合、信号の立ち上がりは、2 つのゲート幅のオーバーラップ領域に含まれているため、連続する 2
クロック分の時間幅を持つデジタル信号パルスを出力している。（竹本 2004）(b)（ATLAS TGC Collaboration2019）

図 2.16

PS board から SL へ送るデータのフォーマット（青木 2022）

では 8b10b コーディングを用いているため、トランシーバのラインレートは、32bit × 10/8 × 200MHz = 8Gbpsとなる。
また、PS board FPGA は SL からのコントロールデータを、SFP+ の受信用リンクを 1 本使って受け取る。コン
トロールデータのフォーマットを図 2.17 に示す。コントロールデータは、PS board のソフトリセット信号、ASD
テストパルスのトリガー信号、BCID、BCR などを含む。また、PS board FPGA には、ASD からのヒット信号を
エミュレートしたテストパターンを生成する機構を実装している。テストパターンは複数種類を用意しており、それらのどのパターンを生成するかを指定するための信号も、コントロールデータに含めている。

Endcap Sector Logic (SL)SL 第 1 試作機の写真を図 2.18 に示す。SL ボードには、主たるデバイスとして Virtex UltraScale+ FPGA、Zynq

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

22

図 2.17SL から PS board へ送るコントロールデータのフォーマット（青木 2022）

UltraScale+ MPSoC、IPMC、および FireFly を搭載している。

図 2.18SL 第 1 試作機の写真

1 枚の SL ボードを、1/24 セクターを担当している 31 枚の PS board と接続し、ヒットデータを受信する。そのため、SL ボードは、A-side と C-side で合わせて 48 枚を設置することになる。

Virtex UltraScale+ FPGA
最大 31 枚の PS board から送られてくるヒットデータは、Virtex UltraScale+ FPGA で処理する。この FPGAに実装するファームウェアの概要を図 2.19 に示す。
ファームウェアは、トリガー回路・読み出し回路・コントロールパスから構成している。PS board から送られてくるヒットデータは、トリガー回路および TGC 読み出し回路へ入る。トリガー回路は、TGC BW からのヒット情報に加え、内部飛跡検出器である TGC EIL4・NSW・タイル型ハドロンカロリメータ (Tile Calo)・RPC BIS78 からの情報も用いる。トリガー回路の出力は、MUCTPI へ転送するとともに、そのモニターのためにトリガー読み出し回路へも入力する。読み出し回路の出力は、FELIX ヘ転送する。また、FELIX から送られてくる TTC 信号は、
トリガー回路および読み出し回路のそれぞれへ配布する。コントロールパスは、Zynq UltraScale+ MPSoC から送2.3 TGC 検出器のエレクトロニクス

図 2.1923

Virtex UltraScale+ FPGA に実装されるファームウェアの概要

られてくる制御信号をトリガー回路および読み出し回路へ配布するとともに、PS board へも中継する。
本研究では、図 2.19 で示した FPGA ファームウェアの全体設計をもとに、I/O および SLR レイアウトを定め、読み出し・トリガー・コントロールの各回路を実装した。
実装しているデバイスは xcvu13p である。これは、I/O の数が SL に必要な機能を実装する上での要件を満たしており、かつレジスタや LUT、BRAM などのリソースが十分量あることを基準にして選定している。

Zynq UltraScale+ MPSoC
Zynq UltraScale+ MPSoC は、図 2.20 に示すように、Processing System (PS) と Programmable Logic (PL) から構成される。PS にはプロセッサやメモリなどが搭載されている。PL は一般的な FPGA であり、LUT や Register、

Block Memroy などが搭載されている。
SL に搭載する Zynq UltraScale+ MPSoC は、TDAQ システムや Detector Control System (DCS) とのインターフェイスとなり、Virtex UltraScale+ FPGA や PS board のコントロールを行う。さらに本研究では、Virtex

UltraScale+ FPGA における読み出し回路の出力を検証するための試験フレームワークを、Zynq UltraScale+
MPSoC を活用して構築した。
実装しているデバイスは xczu5ev であり、Enclustra が開発している Mercury XU5 メザニンカードに搭載されているものを用いている。これは、Virtex UltraScale+ FPGA との通信用の高速シリアル I/O を有し、かつ、メザニン
カード上の DDR メモリが ATLAS のオンライン制御用ソフトウェアを走らせることができるだけのサイズを備えていることを基準にして選定している。Mercury XU5 には、MPSoC の他、DDR4 SDRAM や eMMC、Gigabit

Ethernet PHY、USB PHY、QSPI フラッシュメモリ、ユーザ LED などが搭載されている。この市販のメザニン
カードを活用することで、SL ボードの開発コストを下げることに加え、メンテナンスを容易にすることができる。

Mercury XU5 メザニンカードの構造と、SL ボード上における接続関係を図 2.21 に示した。

第 2 章 高輝度 LHC-ATLAS 実験における TGC 検出器システム

24

図 2.20

図 2.21

Zynq UltraScale+ MPSoC の概略図（Dzemaili 2021）

Mercury XU5 メザニンカードの構造と SL ボード上における接続関係（Koeppel et al. 2020）

2.3 TGC 検出器のエレクトロニクス

25

IPMC
SL は Advanced Telecommunications Computing Architecture (ATCA) 規格のボードである。CERN は、ATCA
shelf manager とのインターフェイスとして、Intelligent Platform Management Controller (IPMC) を開発した。
IPMC の写真を図 2.22 に示す。SL に搭載される IPMC は、ボード上の温度センサーや電圧センサーの値をモニターし、ATCA の shelf manager に報告する。あた、ボードの電源管理を行い、shelf manager を通じた遠隔からの操作や、ホットスワップの操作に応じて、主電源である 12 V 電源を含むレギュレータを操作する。

図 2.22

IPMC の写真（CERN 2017）

FireFly
FireFly は電気信号と光信号を互いに変換するモジュールである。SL には TX 用に 10 個、RX 用に 10 個のFireFly モジュールを搭載しており、それぞれが 12 チャンネルのリンクを束ねる。これにより、Virtex UltraScale+
FPGA の I/O ピンと光ファイバーの接続を、入力 120 チャンネル分、出力 120 チャンネル分、実現している。

27

第3章

SL における I/O の実装
本章から第 7 章までのそれぞれで、SL に実装する I/O・読み出し回路・トリガー回路・制御系、およびそれらの試験機構について、順番に述べていく。

3.1 I/O レイアウトの定義
SL に搭載されている Virtex UltraScale+ FPGA (xcvu13p) は、図 3.1 に示すようなバンク構造をしている。デバイスの両端にはギガビットトランシーバ用のバンク (GTY Quad) が並んでいる。各 Quad は入力 4 チャンネルと
出力 4 チャンネルから構成されており、デバイス全体では 32 個の Quad があるため、合計で入力 128 チャンネル、
出力 128 チャンネルとなる。
どの GTY Quad をどのような目的で用いるかは、いくつかの指導原理によって決定される。SL のデザインでは、
主に次に挙げる事項を考慮した。

• xcvu13p における SLR 構造• ギガビットトランシーバが用いる参照クロックのピン配置• 24 芯ケーブルによるファイバーのバンドリング
これらの制約を満たすように決定された I/O のレイアウトを表 3.1 および表 3.2 に示す。なお、left banks とは

GTY Quad120-135、right banks とは GTY Quad220-235 のことを意味する。本研究では、このレイアウトをベースにして SL ファームウェアをデザインし、実装した。本節の残りでは、上で述べた制約についてそれぞれ詳細に述べていく。

第 3 章 SL における I/O の実装

28

図 3.1

xcvu13p のバンク構造（Xilinx 2022）

3.1 I/O レイアウトの定義

29
表 3.1 left banks の I/O レイアウト

Left Banks (X0)

SLR3

Bank

TX

RX

Ref clock135

SL MPSoCSL MPSoCMGTREF0 134 (125)

134

4

133

4

132

SLR2

MPO24

FELIX

FELIX

MGTREF0 122 (240)4131

TGC Endcap Triplet phi1

MGTREF0 129 (240)3

Frontend FPP

130

TGC Endcap Triplet phi1

MGTREF0 129 (240)3

Frontend FPP

129

TGC Endcap Triplet phi1

MGTREF0 129 (240)3

Frontend FPP

2

MDTTP FPP

128

SLR1

127

MDTTP

MDTTP

MGTREF0 125 (240)2

MDTTP FPP

126

MDTTP

MDTTP

MGTREF0 125 (240)2

MDTTP FPP

125

MUCTPIRPC BIS78

MGTREF0 125 (240)1

FELIX FPP

124

MUCTPI

Tile Calo

MGTREF0 125 (240)1

FELIX FPP

1FELIX FPP

123
SLR0

Connection

122

TGC Endcap Triplet phi0

MGTREF0 121 (240)0Frontend FPP

121

TGC Endcap Triplet phi0

MGTREF0 121 (240)0Frontend FPP

120

TGC Endcap Triplet phi0

MGTREF0 121 (240)0Frontend FPP

表 3.2

right banks の I/O レイアウト

Right Banks (X1)
Bank

TX

RX

Ref clock

MPO24

Connection

234

HSC Control

TGC Forward + HSC

MGTREF0 233 (200)9233

Doublet Control

TGC Forward

MGTREF0 233 (200)9232

Doublet Control

TGC Forward

MGTREF0 233 (200)9231

Doublet Control

TGC Endcap Doublet phi1

MGTREF0 229 (200)8Frontend FPP

230

Doublet Control

TGC Endcap Doublet phi1

MGTREF0 229 (200)8Frontend FPP

229

Doublet Control

TGC Endcap Doublet phi1

MGTREF0 229 (200)8Frontend FPP

228

TGC Endcap Doublet phi1

MGTREF0 229 (200)7

Frontend FPP

227

NSW

MGTREF0 225 (200)7

Frontend FPP

226

NSW

MGTREF0 225 (200)7

Frontend FPP

225

TGC EIL4

MGTREF0 225 (200)6

Frontend FPP

6

Frontend FPP

235
SLR3

SLR2

SLR1

224

SLR0

223

EIL4 Control

TGC Endcap Doublet phi0

MGTREF0 221 (200)6

Frontend FPP

222

Triplet Control

TGC Endcap Doublet phi0

MGTREF0 221 (200)5Frontend FPP

221

Triplet Control

TGC Endcap Doublet phi0

MGTREF0 221 (200)5Frontend FPP

220

Triplet Control

TGC Endcap Doublet phi0

MGTREF0 221 (200)5Frontend FPP

第 3 章 SL における I/O の実装

30

xcvu13p における SLR 構造
xcvu13p は、図 3.2 に示すように 4 つの Super Logic Region (SLR) から構成される。隣接する SLR は Super
Long Line (SLL) と呼ばれる専用のワイヤーで接続されており、これを介して信号の送受信を行う。xcvu13p では、
各 SLR 間のそれぞれで、23040 本の SLL が用意されている。

図 3.2 SLR の概略図（Xilinx 2012）

信号が、SLL をまたいで配置される 2 つのレジスタ間を伝播する際には、通常のレジスタ間の伝播よりも大きなレイテンシが生じる。また、SLL の位置は固定されているため、SLR をまたぐ信号線のレジスタ配置の自由度は低
くなり、結果としてタイミング制約は厳しくなる。このような理由から、SLR を越える信号線の数はできる限り小さく抑える必要がある。これに加え、さらにタイミング制約を緩和するため、クロック・リセット信号・イネーブ
ル信号などはデータと同方向に流れるように配置する必要がある。図 3.3 に、SLR 構造上のデータの流れの好ましい例と好ましくない例を示す。

ギガビットトランシーバが用いる参照クロックのピン配置(a) 好ましい例
図 3.3(b) 好ましくない例

SLR 構造上のデータの流れ（Churiwala 2017）

3.1 I/O レイアウトの定義

31

ギガビットトランシーバがデータの送受信の際に用いる参照クロックは、ジッターの小さい安定したものである
必要がある。そのため、参照クロックとしては、SL ボードに搭載されているクロックジッタークリーナーの出力を、FPGA の専用ピンを介して供給する。SL 第 1 試作機における、クロックジッタークリーナーと各 GTY Quadの参照クロックピンの配線の様子を図 3.4 に示す。

Si5345 と呼ばれるクロックジッタークリーナーの 2 つの独立な出力クロックを、それぞれ Si53302 と呼ばれるクロックバッファーでファンアウトし、GTY Quad のバンク 120-135(left banks)、およびバンク 220-235(rightbanks) の領域に供給する。Si5345 は異なる出力ポートのクロックは異なる周波数で出力できるが、Si53302 はそのような機能を持たない。したがって、left banks と right banks のそれぞれの領域において、参照クロックは、その領域内の全てのバンクに対して同一の周波数のものを供給することになる1 。
ところで、LHC クロックの分配やトリガーに用いるデータの送受信では、適切な BCID を行うため、トランシー
バのリセットや FPGA の再コンフィギュレーションなどにともなって、転送データの位相が LHC クロックの位相に対して変化しないことが必要である。このような固定位相でのデータ転送を実現するためには、ギガビットトラ
ンシーバのトランスミッタが用いる参照クロックの位相は、トランシーバのリセットなどの前後で不変である必要がある。ギガビットトランシーバが搭載する Phase Locked Loop (PLL) では参照クロックの周波数を変えることができるが、この際に分周操作を行うと、参照クロックの位相は不定になる。そのため、参照クロックの周波数は、
シリアル転送のラインレートに合わせて適切なものを選ぶ必要がある。例として、40 ビット幅のユーザデータをラ
インレート 8.0 Gbps で転送する場合、参照クロックの周波数としては 200 MHz か、ギガビットトランシーバの逓倍器を用いて周波数を 200 MHz にすることができるもののみが許される。そのため、例えば 100 MHz は参照ク
ロック周波数として用いることができるが、120 MHz や 240 MHz は用いることができない。
以上述べた制約により、シリアル転送のラインレートによって、リンクを left banks と right banks のどちらに配置するかを決定していく必要がある。例えば、固定位相での転送が必要な、ラインレート 8.0 Gbps と 9.6 Gbps のリンクを、left banks で両立させることはできない。SL FPGA ファームウェアでは、表 3.1 および表 3.2 に示した
通り、left banks と right banks の両方を使っている。left banks には周波数が 240 MHz の、right banks には周波数が 200 MHz の参照クロックをそれぞれ供給している。

Si5345 に入力するクロックソースは、FELIX から配られる LHC クロックを用いる。FELIX からのデータとLHC クロックの受信の際には、SL ボードに搭載されているオシレータのクロックを参照クロックとして用いる。
第 1 試作機の場合、160 MHz のオシレータを、バンク 132 に接続している。このため、FELIX とのリンクはバン
ク 132 に設置する必要がある。

24 芯ケーブルによるファイバーのバンドリング
ギガビットトランシーバのシリアル信号は、FPGA の専用ピンを介して、FireFly モジュールに接続している。

TX 用のモジュール 1 個と RX 用のモジュール 1 個に接続される合計 24 本の光ファイバーを、MPO と呼ばれるコネクタを介して 24 芯のケーブルに束ねられる。24 芯のケーブルは、Fiber Patch Panel (FPP) と呼ばれる中継器に接続する。FPP では、2 ファイバーバンドルに適当な組み替えを施したのち、各ボードへ分配・接続されていく。

SL はいくつかの FPP と接続する。同じ FPP ヘ接続するファイバーは可能な限り同じ 24 芯ケーブルでまとめ、異なる FPP ヘ接続されるファイバーは異なる 24 芯ケーブルで繋ぎ分けることが理想的である。したがって、I/O の配置も、同じ FPP へ接続するものを同じ FireFly モジュールへ接続する GTY Quad に振り分けることができるよう工夫する必要がある。

1 2023 年に制作が予定されている SL 第 2 試作機においては、Si5345 および Si53302 は、Si5395 に置き換える予定である。Si5395 はク

ロックジッタークリーナーであり、Si5345 と同様、異なる出力ポートのクロックは異なる周波数で出力できる。特に、Si53302 が Si5395に置き換わることで、SL 第 2 試作機では、ここで述べたような制約はもはや生じない。

32

第 3 章 SL における I/O の実装

図 3.4 クロックジッタークリーナーと各 GTY Quad の参照クロックピンの配線の様子

3.2 PS board とのインターフェース

33

3.2 PS board とのインターフェース
PS board から送られてくるデータのフォーマットは、図 2.16 に示したように、32 ビット幅のワードで構成している。1 つのリンクでは、陽子バンチ交差あたり、5 ワードを送る。ヘッダーである word-0 に含まれるコンマワー
ドや BCID の情報をもとに、このフォーマットを解釈し、word-1 から word-4 に含まれるヒットデータを LHC ク
ロックに同期したビットマップに成形する機構 (Gearbox) を実装した。このビットマップを、読み出し回路およびトリガー回路にそれぞれ入力する。

Gearbox は、図 3.5 に示すように packet former・edge selector・variable length shift register で構成している。
これらは、PS board とのリンク毎に並列に設置する。

図 3.5 Gearbox の概要

packet former
このモジュールは PS board から転送される 32 ビット幅の 5 ワードを、160 ビット幅の横並びのデータに成形して出力する。これは、幅が 32 ビット、深さが 5 のシフトレジスタとして実装する。シフトレジスタの終端にヘッダーが格納されると、その時点での全てのレジスタの値を読み出す。ヘッダーは、コンマワードと呼ばれるビット列を含んでおり、ギガビットトランシーバはこれを用いてシリアルデータのデコードを行っている。ギガビットトラ
ンシーバは、デコードした各ワードに、それがコンマワードを含むかどうかを示す識別子 ( RXCTRL ) を与えている。

packet former では、 RXCTRL も各ワードと並列にシフトレジスタに格納しており、それを用いてヘッダーの識別を行っている。なお、レジスタの駆動クロックは、担当するリンクの、200 MHz の周波数をもつ RX ユーザークロックである。そのため、packet former の出力は、陽子バンチ交差と同じ 40 MHz のレートで更新される。図 3.6 に、

第 3 章 SL における I/O の実装

34

packet former の振る舞いを示すタイミングチャートを示す。 isComma は、 shift register 4 にヘッダーが格納されている間、アサートされる。これには前述の RXCTRL を利用している。

図 3.6 packet former の振る舞いを示すタイミングチャート

edge selector
このモジュールは、packet former から送られてくる、各リンクの RX ユーザクロックに同期したビットマップ
を、LHC クロックに同期させる。LHC クロックのサンプリングエッジの setup 時間と hold 時間の内に、packet

former の出力が更新されてしまうと、edge selector の出力はメタステーブル状態になる。これを防ぐため、edge
selector において、LHC クロックのポジティブエッジとネガティブエッジのどちらを用いるか選択する。LHC ク
ロックと全ての RX ユーザクロックの間の位相を固定しているので、どちらを選択するかはリンク毎に一意に定まる。

variable length shift register
このモジュールは、リンク毎のタイミングの違いを吸収し、同じ陽子バンチ交差由来のビットマップを全て横並びに揃える。PS board からのデータの到着が最も遅いリンクに合わせるため、シフトレジスタを用いて各リンクに適当な遅延をかける。レジスタの駆動クロックは LHC クロックである。遅延長さの調整は、ヘッダーに含まれる

BCID をもとに行う。なお、各リンクにおけるデータの到着時刻を LHC クロックに対して固定しているため、遅延長さはリンク毎に一意に定まる。また、Gearbox の最終的な出力が全て、LHC クロックのポジティブエッジに同期していることを保証するため、edge selector でネガティブエッジでサンプリングしたビットマップも、このモジュールで全てポジティブエッジに同期させる。このため、全てのリンクに対して最低でも 1 クロックチック分の遅延をかける必要がある。
読み出し回路やトリガー回路では、ヘッダーの情報を用いないため、variable length shift register の出力の時点
で、word-0 は除く。そのため、1 リンクあたり、word-1 から word-4 の合計 128 ビット幅のヒットデータを出力することになる。

35

第4章

読み出し回路の開発
4.1 TGC 読み出し回路の全体像
SL ファームウェアにおける読み出し回路の役割は、PS board から送られてきたヒットデータと、それにトリガー処理を施した結果のデータ、およびトリガー処理の過程で発生する中間データをバッファーしておき、L0A が発行されたイベントのデータを選択的に後段へ転送することである。 1.2.4 節で述べたように、高輝度 LHC-ATLAS 実
験においては、TDAQ システムが刷新され、L0A レートは 1 MHz、L0 latency は 10 µs へ拡張される。そのため、従来よりも高速な読み出し能力をもち、従来よりも十分大きなサイズのバッファーを備えた読み出し回路の開発が必要となる。本研究では、この要件を満たす読み出し回路を開発し、Virtex UlatraScale+ FPGA 上に実装した。本研究で開発した TGC 読み出し回路の全体像を図 4.1 に示す。

図 4.1

TGC 読み出し回路の全体像

4.1.1 L0 Buﬀer
L0 Buﬀer は、入力ビットマップと同じ幅を持つ、深さ 512 の BRAM を用いて実装しており、リングバッファーとして動作させている。なお、入力ビットマップの幅は、 4.3 節で述べるように、レーン毎に異なる。40 MHz のLHC クロックに同期して到来する入力ビットマップは、書き込み用ポインタが示すアドレスに格納する。書き込み用ポインタが指し示すアドレスは、LHC クロックに同期して、クロックチック毎に 1 ずつ増加させる。書き込み用ポインタが BRAM の最後尾まで到達した場合、次のクロックチックで再び先頭に戻す。読み出し用ポインタは、

240 MHz のクロックに同期して動作させ、その挙動は図 4.2 に示すような遷移をするステートマシンによって管理している。すなわち、連続する 4 イベントのアドレスを順番にポイントさせた後、アドレスを 2 だけ戻し、2 ク
ロックチック分停止させる。ただし、読み出し用ポインタが BRAM の最後尾に到達した際の挙動は書き込み用ポ
インタと同様である。この読み出し用ポインタの動作により、L0A が発行されたイベント (current) に加え、その1 つ前のイベント (previous)、1 つ後のイベント (next)、2 つ後のイベント (next-to-next) の 4 イベント分を読み出すことができる。読み出し用ポインタが示すアドレスは、40 MHz のレートで平均 1 ずつ増加するため、読み出し用ポインタと書き込み用ポインタが示すアドレスの差は平均すると一定である。この差は L0 レイテンシーに対応

第 4 章 読み出し回路の開発

36
しており、およそ 400 深さ分である。

図 4.2

L0 Buﬀer の読み出しポインタの挙動

読み出しポインタと書き込みポインタの挙動のタイミングチャートを図 4.3 に示す。

図 4.3

読み出しポインタと書き込みポインタの挙動のタイミングチャート

L0 Buﬀer の読み出し以降は全て 240 MHz のクロックで動作する。このクロックは FELIX への送信を行うトラ
ンスミッタが用いる参照クロックから生成している。

4.1.2

Derandomizer

Derandomizer は、入力ビットマップと同じ幅を持つ、深さ 512 の FIFO を用いて実装している。また、TTC 信号を格納するための深さ 512 の FIFO も備えている。L0A がアサートされている場合、L0 Buﬀer からの入力をDerandomizer に格納する。同時に、L0A とともに配布される L0ID や BCID などの TTC 信号も格納する。後段の Zero Suppressor から読み出し命令が発行された場合、先頭の 4 イベント (previous・current・next・next-to-next)
およびそれに対応する TTC 信号を順に読み出す。

Derandomizer は後段で行われる圧縮およびシリアル化の処理待ち用バッファーであり、この箇所から後段ではデータのキューイングが発生することになる。Derandomizer へのデータ入力レートが出力レートを上回る場合には、Derandomizer の occupancy は増大していく。その状態が十分長い時間続くと、バッファーオーバーフローが発生し、ヒットデータを失う。512 という深さは、バッファーオーバーフローが発生する頻度が十分に小さくなる
ように最適化して選択している。Derandomizer の性能については、 4.2 節で述べる。

4.1.3

Zero Suppressor & Serializer

Zero Suppressor は、Derandomizer が空でなければ、Derandomizer に対して 4 クロックチックにわたる読み出
し命令を発行する。Derandomizer から読み出された 4 イベント (previous・current・next・next-to-next) 分のデー
タを、Zero Suppressor において、16 ビット毎のセルに分割する。例えば、入力ビットマップの幅が 640 ビットの場合、40 個のセルを用意する。ノンゼロのデータ入力があったセル、すなわちヒットがあったセルのビットマップ
を、セルアドレスと、previous・current・next・next-to-next を区別するための BC タグを付け加えた 32 ビット幅のワード (図 4.4 ) に成形し、処理待ち用のバッファー (Sender FIFO) に格納する。TGC からのヒットビットマッ

4.1 TGC 読み出し回路の全体像

37

プは、その occupancy がおよそ 1% である。すなわち、ほとんどがゼロであるため、このような圧縮方法は有効である。Serializer は、Sender FIFO に格納されている 32 ビット幅のワードを、クロックチック毎に 1 ワードずつ、順番に読み出していく。そのため、Zero Suppressor & Serializer の処理時間は、ヒットがあったセルの数に依存して線形に増えていく。また、ある L0A に対応する 4 イベント分のワード列の前後に、イベント境界をしめすための特別なワード (Start Of Event (SOE)、End Of Event (EOE)) を挿入する。また、 4.1.4 節で説明するように、EOEの直後には、バッファー用のワードを 2 ワード挿入している。

Serializer から Event Builder へ送るデータのフォーマットは図 4.4 に示す通りである。SOE および EOE では
L0ID の下位 12 ビット分を送っている。データロスフラグについては 4.5 節で述べる。このフォーマットにおけるデータ転送のタイミングチャートを図 4.5 に示す。

図 4.4 Serializer から Event Builder へ送るデータのフォーマット

図 4.5 Serializer から Event Builder へ送るデータのタイミングチャート

Zero Suppressor & Serializer の動作のタイミングチャートを図 4.6 に示す。この図の例では、0 番目のセルには previous・current・next・next-to-next のそれぞれでヒットがあり、1 番目のセルには current・next-to-next のそれぞれでヒットがあった場合を示している。そのため、 output_Sender_FIFO 0 には対応する 4 イベント分のデータを、 output_Sender_FIFO 1 には対応する 2 イベント分のデータを、それぞれ出力している。これらを、 output_Serializer にて直列化する。なお、全てのヒットワードの数の合計が N であったと仮定しており、

output_Serializer におけるヒットデータを d1-dN でラベル付けしている。Derandomizer や Sender FIFO
は、read_enable 信号を受け取ってから実際にデータを出力するまで 2 クロックチックのレイテンシをともなう。

SOE には L0ID の情報を含めているため、SOE を送るには Derandomizer からの出力が来るまで待つ必要がある。
Serializer は、その出力が有効なものであることを示す valid 信号や、SOE および EOE であることを示す control
信号も同時に出力している。

4.1.4 Event Builder
4.3 節で述べるように、上述の L0 Buﬀer・Derandomizer・Zero Suppressor & Serializer を 10 本のレーンに並列に分割して設置している。SL と FELIX を繋ぐリンクのうち、TGC 読み出し回路で用いることができるものは、

32 ビット幅のユーザーデータをもつものが 2 本のみである。したがって、10 レーン分の 32 ビット幅の出力を、並列なまま FELIX へ読み出すことは不可能であり、2 リンクに収まるよう直列化する必要がある。Event Builder を、リンク毎に 1 つずつ設置し、それぞれで 5 レーン分の出力の直列化を行う。Serializer からの 32 ビット幅のワード
を、Event Builder 内にレーン毎に用意された処理待ち用のバッファーに格納する。Event Builder は、処理待ち用のバッファーに格納している 32 ビット幅のワードを、240 MHz のクロックチック毎に 1 ワードずつ、 順番に読み

第 4 章 読み出し回路の開発

38

図 4.6 Zero Suppressor & Serializer の動作のタイミングチャート出していく。このとき、ある L0A に対応する 4 イベント分のワード列の前後に、FELIX が取り決めているフォー
マットに従った Start Of Packet (SOP)、End Of Packet (EOP)、およびヘッダーやトレイラーを挿入して、1 つのパケットとしている。Event Builder は、Serializer が施している SOE および EOE によってイベント境界を認識している。また、一度の L0A 分のデータの読み出しが完了した処理待ちバッファーにはフラグをアサートしておき、全てのレーンの処理待ちバッファーにフラグが立ったら、それらを一斉にデアサートする。フラグをアサートしている処理待ちバッファーからは、データを読み出さない。これによって、同じレーンから複数の L0A 分のデータを読み出してパケットすることを防いでいる。

TGC 読み出し回路から FELIX へ送るデータのフォーマットは図 4.7 に示す通りである。D5.6 は、8B/10B エン
コードにおけるデータバイト名である。K28.1・K28.2・K28.3・K28.5・K28.6 は、8B/10B エンコードにおいて特殊な意味を持つコード名である。なお、K28.5 はギガビットトランシーバにおけるデコードの際にコンマワードとして用いる。EOP に含まれる Busy 信号については 4.5 節で述べる。CRC は誤り検出用の符号である。SOB は

Start Of Busy、EOB は End Of Busy を意味している。これらのワードについては、 4.5 節で述べる。ヘッダーは、SL と PS board とのリンクが確立していることを示すビットマップ、データフォーマットのバージョン、ATLAS
から配布される Run type・Run number・Trigger type・TTC 信号、48 台ある SL を区別するための ID、1 台の SLと FELIX を繋ぐ 4 本のファイバーを区別するための ID を含む。トレイラーは、ヒットワードの数、データロス
フラグが立っているレーンを示すビットマップ、読み出し回路で何らかのエラーが起こっていることを示すエラービットを含む。ただし、エラービットの具体的な内容は未実装である。Event Builder は、以上で述べたワードを

FELIX へ送る時以外には、常にアイドルワードを送っている。このフォーマットにおけるデータ転送のタイミング
チャートを図 4.8 に示す。

Event Builder の動作におけるタイミングチャートを図 4.9 に示す。Event Builder は Derandomizer とは別に、
TTC 信号を格納するための FIFO を用意しており、L0A とともに配布された L0ID や BCID を保存している。この FIFO が空でなければ、先頭の 1 イベント分を読み出し、パケットの転送を開始する。とあるレイテンシをもって、各レーンからのヒットデータが到着し、それぞれの FIFO に格納される。FIFO からデータを読み出す際には、EOE を読み出した時点で、read_enable をデアサートする。この際、FIFO が持つ 2 クロックチックのレイテンシのために、EOE の後の 2 深さ分のデータも読み出してしまう。そのため、Serializer は、EOE の直後にバッファー
用のワードを 2 ワード挿入しており、次のイベントのデータを誤って読み出してしまうことを防いでいる。

4.2 Derandomizer の性能

39

図 4.7 TGC 読み出し回路から FELIX へ送るデータのフォーマット

図 4.8

TGC 読み出し回路から FELIX へ送るデータのタイミングチャート

図 4.9 Event Builder の動作のタイミングチャート

4.2 Derandomizer の性能
4.2.1 dead time のシミュレーション
TGC 読み出し回路における Derandomizer について考える。十分時間が経過し定常状態になったときに、
occupancy が n/N (n, N ∈ N) 1 である確率を Pn (n ≤ N ) とする。λ (arrival rate) を、L0 Buﬀer から Derandomizer
1 本論文では、N は自然数の集合を表し、0 を含むものとする。

第 4 章 読み出し回路の開発

40

へ 4 イベント分 (previous・current・next・next-to-next) が入力されるレートと定義する。µ (service rate) を、Derandomizer から Zero Suppressor & Serializer へ 4 イベント分を出力するレートと定義する。ρ (load factor)
を、λ/µ で定義すると、任意の n (n ≤ N ) について、Pn は次のように書ける2 。

Pn =(1 − ρ)ρn
1 − ρN +1(4.1)

本読み出し回路における Derandomizer の深さは 512 であるので、以下、N = 512 として議論する。λ は L0A
レートそのものである。µ は、Zero Suppressor & Serializer のレイテンシを T とすると、1/T である。T は、ヒットワードの数に線形に依存する。ヒットワードの数は、TGC 検出器における hit occupancy から、見積もることができる。

hit occupancy と L0A レートをパラメータとして、P512 を計算した。P512 は、データロスが起こる確率であり、dead time として定義する。hit occupancy は 10−3 − 1 の範囲を 400 ビンに分割し、L0A レートは 0 − 10 の範囲
を 400 ビンに分割した。hit occupancy から、ヒットワード数を、乱数を用いてシミュレートし、µ を計算した。計算の結果は図 4.10 に示すようになる。

図 4.10Derandomizer の dead time のシミュレーション結果

log10 (Dead time) の値が急激に変化するのは、ρ が 1 よりも小さい場合はデータロスはほとんど確実に起こらな
いが、1 よりも大きい場合はデータロスがほとんど確実に起こるためであると考える。

2 定常状態におけるつりあいの式: µP
n+1 = λPn と、離散確率分布の和に関する条件式:∑N

i=0 Pi = 1 より、導出できる。

4.2 Derandomizer の性能

41

実際の実験では、hit occupancy は 10−2 程度、平均の L0A レートは 1 MHz 程度であるため、dead time は 10−20よりも小さい。考えている時間幅は、Derandomizer の駆動クロックが 240 MHz であることから、およそ 4.17 nsである。したがって、平均して 1 万年に 1 回よりも小さい頻度でデータロスが発生するという結果になる。
なお、乱数を用いてヒットをシミュレートする際には、検出器チャンネル全体にわたる一様な確率分布を用いているが、実際のヒットはミューオンが通過した点付近のチャンネルに集中する傾向にある。このようなヒットパ
ターンは、Zero Suppressor & Serializer における 1 つ、または少数のセルに収まっている可能性が高い。そのため、実際のヒットワード数は、本シミュレーションの結果よりも小さくなる傾向にあると考える。このことは、次節で述べるシミュレーションでも同様に当てはまる。

4.2.2 L0A バースト時の挙動
L0A レートは平均 1 MHz 程度であるが、短時間に多くの L0A が発行されることがある (L0A バースト)。TDAQ
システムは、表 4.1 に示すように、時間あたりの L0A の数の上限を定めている。
表 4.1 連続する陽子バンチ交差中に発行される L0A の数の上限≤ 4/5# of L0A in # of consecutive BCs≤ 8/20≤ 128/3600

L0A が、許される最大の頻度で発行された場合の、陽子バンチ交差数に対する L0A の累計数の遷移の様子を図 4.11 に示した。

図 4.11

L0A バーストの最悪のケースにおける、陽子バンチ交差数に対する L0A の累計数の遷移の様子

第 4 章 読み出し回路の開発

42

このケースにおける、Derandomizer の occupancy の遷移の様子をシミュレートした。hit occupancy が 0.8% お
よび 1% の場合のそれぞれについて、ヒットワード数を、乱数を用いてシミュレートし、service rate を計算した。
計算の結果を図 4.12 に示した。L0A バーストの最悪のケースが持続した場合でも、Derandomizer はバッファー
オーバーフローを起こさずに稼働し続けることが可能であることが予想される。

図 4.12

L0A バーストの最悪のケースにおける、Derandomizer occupancy の遷移の様子

4.3 TGC 読み出し回路の実装
SL と FELIX を繋ぐリンクのうち、TGC 読み出し回路で用いることができるものは 2 本あるため、TGC 読み
出し回路全体を 2 つの並列な構造に分割している。それらのうちの 1 リンク分の読み出し回路の SLR レイアウト
を、図 4.13 に示す。表 3.1 および表 3.2 で示したように、SL と PS board を繋ぐリンクは SLR0・SLR2・SLR3に配置し、SL と FELIX を繋ぐリンクは SLR3 に配置する。SLR を越える信号線の数はできる限り小さく抑える必要があるため、それぞれの SLR に L0 Buﬀer・Derandomizer・Zero Suppressor & Serializer を並列に配置し、信号線の幅を 32 ビットまで小さくしてから、SLR3 に配置する Event Builder へ集める。加えて、後述するように、SLR0 および SLR2 でとりあつかうビットマップの幅は大きく、Serializer においてヒットがあったセルの計
算量が大きくなり、レジスタ配置・配線におけるタイミング制約が満たせなくなる。そのため、SLR0 と SLR2 ではさらに、L0 Buﬀer・Derandomizer・Zero Suppressor & Serializer を 2 つの並列なレーンに分割している。

SL ファームウェアでは、1 枚の SL が担当している 1/24 セクターのエンドキャップ領域のうち、ϕ の小さいものを Endcap phi0、ϕ の大きいものを Endcap phi1、フォワード領域を Forward と呼んで区別している。SLR0 は、

Endcap phi0 の 12 枚の PS board から 24 リンク分のヒットデータを受け取り、処理する。SLR2 は、Endcap phi1の 12 枚の PS board から 24 リンク分、および EIL4 の 1 枚の PS board から 4 リンク分、合計 28 リンク分のヒッ4.4 バックプレッシャー機構

43

図 4.13 TGC 読み出し回路の SLR レイアウト

トデータを受け取り、処理する。SLR3 は、Forward の 5 枚の PS board から 10 リンク分のヒットデータを受け取り、処理する。なお、 2.3.2 節で述べたように、1 リンク分のヒットデータは 128 ビット幅である。

TGC 読み出し回路のデバイスリソース使用量は表 4.2 のようになる。表中の値は、デバイス全体のリソースに対する使用量の割合を、百分率で示したものである。また、各リソース名とともに、そのリソースのタイル数を記し
ている。
表 4.2

TGC Readout

TGC 読み出し回路のリソース使用量

LUT

REG

CLB

BRAM

URAM

(1728000)(3456000)(216000)(2688)(1280)

SLR0

1.27

1.14

2.82

6.81

0.00

SLR2

1.49

1.33

3.42

7.89

0.00

SLR3

0.62

0.49

1.40

3.27

0.00

Total

3.38

2.96

7.64

17.97

0.00

4.4 バックプレッシャー機構
本読み出し回路に対するバックプレッシャーは、その発生起源により 3 つに分類できる。1 つ目は、FELIX とのリンクが ready でないことに由来するものである。例えば、ギガビットトランシーバのリンクアップ中や、FELIXのバッファー occupancy が予め定めた閾値を超えた場合、ATLAS 内の他の検出器システムの読み出し系が busy
を立てた場合などには、FELIX は ATLAS 全体の読み出し系からのデータ転送を停止させる。この間に到来する

L0A に対応するイベントは、まず、Event Builder 内の処理待ちバッファーに溜まっていく。このバッファーのoccpuancy が予め定めた閾値を超えた場合には、Event Builder は Zero Suppressor & Serializer に対して、バックプレッシャーをかけ、データ転送を停止させる。この間に到来する L0A に対応するイベントは、Derandomizer に第 4 章 読み出し回路の開発

44
溜まっていく。

2 つ目は、ヒットワードの数が多く、Event Builder の処理時間が大きい場合に発生するものである。この場合も、
まずは Event Builder 内の処理待ちバッファーの occupancy が増大していき、次に Zero Suppressor & Serializer、
最後には Derandomizer へバックプレッシャーが伝播していくことになる。

3 つ目は、ヒットワードの数が多く、Zero Suppressor & Serializer の処理時間が大きい場合に発生するものである。この場合、Derandomizer へ直接バックプレッシャーがかかることになる。
いずれの場合においても、本読み出し回路におけるバックプレッシャーは、最終的には Derandomizer へかかることになる。そのため、FELIX とのリンクが ready でない状態やヒットワードが多い状態が十分長い時間続くと、Derandomizer のバッファーオーバフローが発生し、ヒットデータを失う。バックプレッシャー機構の概要を、
図 4.14 に示した。

図 4.14

バックプレッシャー機構の概要

4.5 Busy ハンドリング機構
Derandomizer の occupancy は、入力レート、すなわち L0A レートが高いほど増大しやすい。また、Zero
Suppressor & Serializer と Event Builder の処理時間が大きいほど、すなわちヒットワードの数が多いほど、増大しやすい。Derandomizer の occupancy がとある閾値 (例えば 95%) を超えた場合、Event Builder は FELIX へ送るデータに SOB を挿入し、この閾値を再び下回った時に EOB を挿入する。この閾値を上回っている間は、Event

Builder は FELIX へヒットワードを送らず、EOP に Busy 信号をアサートする。Event Builder が FELIX へ Busy
信号をアサートしている間は、ATLAS の全ての検出器からの読み出しが停止する。そのため、本読み出し回路では、FELIX ヘ Busy をアサートする前に、可能な限り Derandomizer の occupancy を下げることを試みる設計にしている。具体的には、Busy をアサートする閾値よりも低い閾値 (例えば 90%) を設定しておき、それを超えた場合には Zero Suppressor & Serializer を truncation モードに切り替える。このモードの Zero Suppressor & Serializer
は、Derandomizer から読み出したデータを全て破棄3 し、SOE および EOE のみを Event Builder へ転送する。これにより、Derandomizer からの読み出しを最速で行うことができる。また、このとき、Event Builder へ truncation
モードへ切り替わったことを伝えるため、SOE および EOE にはデータロスフラグを立てる。Event Builder は、
データロスフラグを受信したら、FELIX へ送る trailer にデータロスフラグを立てる。Derandomizer の occupancy
が、truncation モードに切り替わる閾値を下回ると、Zero Suppressor & Serializer は通常の動作モードへと復帰する。なお、このデータロスのハンドリング機構は、読み出し回路のレーン毎に独立に機能させている。そのため、例えば、Forward 領域で局所的にヒットが多くなり、SLR3 の読み出しレーンでデータロスが発生した場合で3 TGC 由来のデータは主にはトリガーを目的としたものであり、MDT や NSW 由来のデータに比べて位置分解能は低い。そのため、TGC

由来のデータを破棄しても物理解析への影響は大きくない。

4.6 トリガー読み出し回路

45

も、Endcap 領域のデータは問題なく読み出し続けることができる。Busy ハンドリング機構の概要を、図 4.15 に示した。

図 4.15Busy ハンドリング機構の概要

4.6 トリガー読み出し回路
トリガー読み出し回路は、各トリガーロジックの出力をモニターするためのものである。いくつかのトリガーロ
ジックの出力は、第 6 章で述べるように、周波数が 160 MHz・240 MHz・320 MHz であるクロックによって駆動している。この場合においても、1 つの陽子バンチ交差由来の出力を横並びに揃え、40 MHz の LHC クロックで動作する書き込みポインタに従って、L0 Buﬀer へ格納する。SL と FELIX を繋ぐリンクのうち、トリガー読み出し回路で用いることができるものは 1 本であるため、これに対応する、TGC 読み出し回路のような構造の分割は行っていない。現在は、トリガーロジックの試験のため、その出力ビットマップを全て読み出している。このような実装方法をとる場合、BRAM のリソースや読み出しリンクのバンド幅の制限から、全てのトリガーロジックの読み出し回路を同時に実装するのは不可能であり、読み出しを行うトリガーロジック毎に別のファームウェアを用意する必要がある。他方で、実験本番で用いるファームウェアでは、各トリガーロジックの出力から必要最低限の情報を抜き出すことで、全てのトリガーロジックの読み出し回路を同時に実現する計画である。
以上で述べた 2 通りの実装方法のうち、まず前者について説明する。トリガー読み出し回路の基本的な構造はTGC 読み出し回路と同じであり、入力ビットマップの幅が異なるのみである。現在その読み出し回路を実装しているトリガーロジックは表 4.3 に示す通りである。出力ビットマップの幅が大きなものについては、TGC 読み出し回
路の場合と同様、タイミング制約を満たすことが難しくなるため、いくつかの並列なレーンに分割している。Event

Builder では、これらの並列なレーンの出力の直列化を行う。

第 4 章 読み出し回路の開発

46
表 4.3 読み出しを実装しているトリガーロジック

トリガーロジック

Channel Mapping

Wire Station Coincidence

Strip Station Coincidence

Wire Segment Reconstruction

Strip Segment Reconstruction

Wire-Strip Coincidence

SLR

出力ビット幅 (bits)

レーン数

0

2732

4

2

2732

4

3

1000

2

0

1768

3

2

1768

3

3

804

3

0

1890

3

2

1890

3

3

378

3

0

3404

5

2

3404

5

3

1472

2

0

340

1

2

340

1

3

68

1

0

3804

5

2

3804

5

3

1664

2

次に、実験本番で用いるトリガー読み出し回路の設計について述べる。各トリガーロジックの出力を L0 Buﬀer
へ入力する時点で、飛跡候補に関する必要最低限の情報を抜き出すため、Zero Suppressor によるデータ圧縮は行
わない。そのため、Derandomizer の出力は、直接、Serializer によって直列化の処理を施し、Event Builder へ転送する。モニターが必要なトリガーロジックは実験を通して常に一定であるわけではないので、トリガーロジック
毎に、それを読み出すかどうかを選択できる設計にしている。また、トリガーロジック毎に、previous・current・

next・next-to-next のどれを読み出すかも選択することができる。これらの選択は第 5 章で説明するコントロールパスから行う。Event Builder が施すデータフォーマットを図 4.16 に示す。meta switch は、読み出しを行うトリガー
ロジックの選択状態を示すビットマップである。meta data は、各トリガーロジック毎に送られ、そのトリガーロ
ジックのラベル (data ﬂavor)・1 飛跡候補毎にワード数・読み出しを行う陽子バンチ交差 (previous・current・next・

next-to-next) の選択状態を示すビットマップ・各陽子バンチ交差における飛跡候補数を含む。このフォーマットにおけるデータ転送のタイミングチャートを図 4.17 に示す。

4.6 トリガー読み出し回路

図 4.16

図 4.1747

本番用トリガー読み出し回路から FELIX へ送るデータのフォーマット

本番用トリガー読み出し回路から FELIX へ送るデータのタイミングチャート

49

第5章

コントロールパスの開発
コントロールパスは、LHC の陽子バンチ交差に同期する必要のないスローな制御を行う。例えば、FPGA 内の回路のコンフィギュレーションやパラメータ制御、状態の監視、ソフトリセットなどが含まれる。これらは、SL
上の MPSoC から FPGA 内のレジスタに値を書き込むことによって実現している。SL ボード上には、MPSoC とFPGA のそれぞれのギガビットトランシーバを接続するパスを実装しており、これを用いてチップ間通信を行う。
このチップ間のパスでは、TX と RX のペアを 2 チャンネル分用意しており、その一方をコントロールパスとして用いる。他方は、第 7 章で述べる、試験フレームワークで用いる。また、SL 上の FPGA 内の制御用レジスタを経由して、PS board 上の FPGA 内のレジスタも操作する。これにより、前段回路の制御も、SL 上の MPSoC から行うことができる。

5.1 チップ間通信の設計
チップ間通信の設計を図 5.1 に示す。まず、MPSoC から FPGA へデータを転送する際のプロセスを説明する。

MPSoC の CPU 上で走る Linux から、PL に配置された AXI Chip2Chip に、AXI プロトコルを用いてアクセスする。この AXI プロトコルは、データ幅 32 ビット、アドレス幅 32 ビットで通信を行うよう設定している。AXI

Chip2Chip Master は、AXI 形式のデータを AXI Stream 形式のデータに変換し、Aurora 64B/66B Master と通信をする。Aurora 64B/66B Master は、AXI Stream 形式のデータをシリアル通信のデータにエンコードし、ギガビッ
トトランシーバを用いたチップ間通信を行う。シリアルデータを、FPGA 側の Aurora 64B/66B Slave において、

AXI Stream 形式のデータにデコードする。AXI Chip2Chip Slave は Aurora 64B/66B Slave と通信を行い、AXI
Stream 形式のデータを AXI 形式のデータに変換する。なお、FPGA から MPSoC へデータを転送する際のプロセ
スは、以上で述べたプロセスの逆を辿ることになる。
以上のプロセスによって、MPSoC の Linux から、FPGA 内の AXI パスを操作することが可能になる。FPGA
内の AXI パスのスレーブとしてレジスタを用意することで、MPSoC の Linux からそれらのレジスタを読み書きすることが可能になる。

図 5.1

チップ間通信の設計

一般的に、PS と AXI プロトコルで接続される、PL 内の任意のモジュールは、そのアドレスが CPU のアドレス

第5章

50

コントロールパスの開発

空間に割り当てられる。Linux では、それらのモジュールに対して少なくとも 2 通りの方法でアクセスすることができる。1 つは、ルートファイルシステム内の /dev/mem が提供するキャラクターデバイスをアプリケーションから開くことで、PL モジュールが配置されている物理アドレスに直接読み書きを行う方法である。2 つ目は、PL モ
ジュールを User space I/O (UIO) として登録しておき、アプリケーションからは UIO ドライバを開くことで、アクセスする方法である。この場合は、PL モジュールを UIO に登録するため、デバイスツリーを編集する必要がある。
コントロールパスにおいては、より実装が容易な /dev/mem を直接用いる方法をとっている。AXI Chip2Chip

Master モジュールを、アドレス 0x80030000 から 0x8003FFFF までの 64 KB 分の範囲に割り当てている。CPUから AXI Chip2Chip へアクセスする際に指定するアドレスは、この範囲に収まっている必要がある。ここで指定したアドレスはそのまま FPGA 側の AXI パスにおいて指定されるアドレスとなるため、CPU からアクセスできる

FPGA のレジスタは、64 KB 分ということになる。図 5.2 に、CPU 側から見たアドレス空間と、FPGA のレジス
タ空間の対応関係を示す。FPGA のレジスタアドレスは 16 ビット幅で定義されており、その値がそのまま、AXI

Chip2Chip Master モジュールのベースアドレス (0x80030000) に対するオフセットとなる。

図 5.2 CPU 側から見たアドレス空間と、FPGA のレジスタ空間の対応関係

5.2

レジスタ系の設計

コントロールパスを FPGA デバイスに実装する上では、SLR 構造を考慮しなければならない。MPSoC とのチップ間通信に用いるリンクは SLR3 のバンク 135 に配置している。各 SLR のレジスタに対して、SLR3 からコント
ロール信号を配布する必要がある。最も単純には、AXI パスに各レジスタをバス的に直接配置することで実現することができる。しかしながら、AXI プロトコルはおよそ 200 ビットのバス幅を持っており、これを SLL を用いて各 SLR へ配る場合、タイミング制約の影響を強く受ける。また、タイミング制約を緩和するためにパイプライン(付録 B ) を用いる場合、AXI マスターと AXI スレーブ間の信号転送のレイテンシが増大し、ハンドシェイクが正しく機能しなくなる可能性が高くなる。例えば、スレーブ側の ready 信号がデアサートされた後、それがマスター側に伝わる前にマスターが valid 信号をアサートしてしまった場合、その際に転送したデータを失う可能性がある。
そのため、図 5.3 に示すように、SLR3 において AXI 形式のデータを独自のプロトコル (以下、RI プロトコル) のデータに変換し、各 SLR のレジスタと接続している。なお、RI は、Register Interface の略である。RI プロトコル

5.2 レジスタ系の設計

51

では、マスターとスレーブ間でハンドシェイクを行う必要がなく、そのため信号転送のレイテンシが増大することによる問題は発生しない。RI プロトコルに含まれる信号線の一覧を、表 5.1 に示す。

図 5.3 レジスタ系の設計

表 5.1

RI プロトコル

信号名

幅 (bits)

役割

RI_mode1

読み出しと書き込みのどちらで動作するかを指定する

RI_addr16

アクセスするレジスタのアドレスを指定する

RI_avalid

1

RI_addr が有効な値であることを示す

RI_wdata32

レジスタに書き込む値を指定する

RI_wvalid

1

RI_wdata が有効な値であることを示す

RI_rdata32

レジスタから読み出された値

RI_rvalid

1

RI_rdata が有効な値であることを示す

RI_mode ・ RI_addr ・ RI_avalid ・ RI_wdata ・ RI_wvalid については、AXI Translator から各 SLR のRegister Interface へバス型のトポロジーで配布している。 RI_rdata ・ RI_rvalid については、AXI Translatorを中心としたスター型のトポロジーで接続している。これは、RI_rdata ・ RI_rvalid の信号線がマルチマスターとなることを防ぐためである。
図 5.2 で示した FPGA のレジスタ空間を、各 SLR の Register Interface が担当するレジスタ空間に分割している。さらに、各 Register Interface の担当するレジスタ空間を、読み書きが可能なレジスタ空間と、読み出し専用のレジスタ空間に分割している。それぞれのレジスタ空間には、ベースアドレスとハイアドレスによって区切られた
アドレス範囲を予約している。これは、アドレスのオーバーラップを誤って引き起こすことを防ぐためである。予約したアドレス範囲内で、設定された深さ分のレジスタを実際にインスタンス化する。ここで述べたアドレス範囲の分割の様子を、図 5.4 に示す。アドレス範囲の分割に用いるパラメータは表 5.2 に示す通りである。

第5章

52

(a) それぞれのレジスタ空間へのアドレス範囲の予約の例

コントロールパスの開発(b) 予約されたアドレス範囲内におけるレジスタのインスタンス化の例

図 5.4 アドレス範囲の分割の様子

表 5.2

5.2.1

アドレス範囲の分割に用いるパラメータ

パラメータ名役割

BASE_RW_SLR*

読み書き可能なレジスタ空間の始点アドレス

HIGH_RW_SLR*

読み書き可能なレジスタ空間の終点アドレス

DEPTH_RW_SLR*

実際にインスタンス化される読み書き可能なレジスタの深さ

BASE_RO_SLR*

読み出し専用のレジスタ空間の始点アドレス

HIGH_RO_SLR*

読み出し専用のレジスタ空間の終点アドレス

DEPTH_RO_SLR*

実際にインスタンス化される読み出し専用のレジスタの深さ

AXI Translator

AXI Translator は、AXI Chip2Chip と接続し、AXI 形式のデータと RI プロトコルのデータを変換する。このとき、AXI プロトコルが指定するアドレスにレジスタが存在するかどうかの判定も行っている。レジスタが存在しない場合は、RI プロトコルは操作せず、AXI プロトコルにスレイブエラーを立ててトランザクションを終了する。
レジスタが存在する場合の挙動は次の通りである。AXI プロトコルから読み出し命令がきた場合、AXI Translator
は RI_mode を 0b0 に設定し、AXI プロトコルが指定するアドレス 32 ビットの下位 16 ビットを RI_addr にセッ
トし、 RI_avalid を 1 クロックチックにわたってアサートする。その後、Register Interface から転送されてくる RI_rdata を、AXI プロトコルに載せて、AXI Chip2Chip へ送り返す。AXI プロトコルから書き込み命令がきた場合、AXI Translator は RI_mode を 0b1 に設定し、AXI プロトコルが指定するアドレス 32 ビットの下位 16ビットを RI_addr にセットし、 RI_avalid を 1 クロックチックにわたってアサートする。同時に、AXI プロトコルが指定する書き込みデータ 32 ビットを RI_wdata にセットし、 RI_wvalid を 1 クロックチックにわたってアサートする。書き込み動作の場合、AXI Translator は Register Interface からの応答を待たずに、AXI プロトコルのトランザクションを終了する。

AXI Translator の読み出し動作におけるタイミングチャートを図 5.5 に示す。AXI プロトコルが指定するアドレ

5.2 レジスタ系の設計

53

スが a1 である場合、対応するレジスタの値 d1 を読み出している。AXI プロトコルが指定するアドレスが a2 である場合、対応するレジスタが存在しないので、rresp にエラーを立てている。

図 5.5 AXI Translator の読み出し動作のタイミングチャート

AXI Translator の書き込み動作におけるタイミングチャートを図 5.6 に示す。AXI プロトコルが指定するアドレ
スが a1 である場合、対応するレジスタに AXI プロトコルが指定する値 d1 を書き込んでいる。AXI プロトコルが指定するアドレスが a2 である場合、対応するレジスタが存在しないか、対応するレジスタが読み出し専用であるので、bresp にエラーを立てている。

図 5.6 AXI Translator の書き込み動作のタイミングチャート

第5章

54

5.2.2

コントロールパスの開発

Register Interface

実際のレジスタは Register Interface 内に配置する。チップ間通信における AXI プロトコルのデータ幅が 32
ビットであることに合わせて、レジスタのデータ幅は 32 ビットである。Register Interface は、AXI Translatorと RI プロトコルで通信を行い、レジスタの値の読み出しと書き込みを行う。 RI_avalid がアサートされた場合、Register Interface は RI_addr で指定されているアドレスが自身が担当するアドレス範囲内のものかどうか判定する。担当するアドレスでない場合は、何も応答しない。担当するアドレスである場合の挙動は次の通りである。

RI_mode が 0b0 である場合、Register Interface は RI_addr で指定されているアドレスのレジスタの値を読み出し、それを RI_rdata にセットし、 RI_rvalid を 1 クロックチックにわたってアサートする。 RI_mode が 0b1である場合、Register Interface は RI_addr で指定されているアドレスのレジスタに RI_wdata で指定されている
値を書き込む。

Register Interface の 動 作 に お け る タ イ ミ ン グ チ ャ ー ト を 図 5.7 に 示 す 。 RI_mode が 0b0 で あ る と きに RI_addr が a1 を指定した場合、対応するレジスタの値 d1 を読み出している。 RI_mode が 0b1 であると
きに RI_addr が a2 を指定した場合、対応するレジスタに RI_wdata が指定する値 d2 を書き込んでいる。

RI_addr が a3 を指定した場合、対応するレジスタが自身の担当するアドレス範囲内のものでないので、何も応答していない。

図 5.7

5.3

Register Interface の動作のタイミングチャート

コントロールパスの実装

Register Interface 内のレジスタを、それぞれの制御系とワイヤーで接続している。この節では、本論文の執筆
当時に実装されている機能の例を 3 つ挙げる。本論文の執筆当時に実装されている全てのレジスタリストは、付
録 A に記す。
ギガビットトランシーバのリセット用に用意したレジスタは、ギガビットトランシーバの IP コアのリセット用ポートに接続している。そのため、そのレジスタに 0b1 を書き込んだ後、0b0 を書き込むことで、ギガビットトラ
ンシーバのリセットを行うことができる。

5.3 コントロールパスの実装

55

コントロールパスには、SL ボード上の QSPI フラッシュメモリに FPGA コンフィギュレーションのためのパラメータやファームウェアを書き込む機能が含まれる。この機能のために用意したレジスタは、FPGA デバイスの、

QSPI フラッシュメモリと繋がるピンに直接接続している。そのため、そのレジスタを経由して、SPI プロトコルに則ったビットバンギングを行うことで、QSPI フラッシュメモリの内容を書き換えることができる。

PS board のコントロールのために用意しているレジスタは、SL から PS board へ送るコントロールワードを生成するモジュールに接続している。このモジュールは、レジスタの値をもとに、 2.17 に示すフォーマットに従ってワードを成形する。そのワードを、ギガビットトランシーバの IP コアのユーザデータ用のポートに入力し、PSboard へ転送する。

57

第6章

トリガー回路の統合
6.1 トリガー回路の全体像
トリガーロジックでは、7 層の TGC BW のコインシデンスをとることによってノイズを落とすとともに、検出点の位置情報を用いたミューオンの運動量の概算を行う。TGC BW は全てトロイダル磁場の外側にあるため、ミュー
オンの検出点付近における飛跡は直線となる。無限大の運動量を持っているミューオンは、ATLAS の陽子衝突点
から検出点まで直線飛跡を描く。検出されるミューオンの直線飛跡と、無限運動量飛跡がなす角度を測定すること
で、運動量を計算することができる。この手法の概要を図 6.1 に示す。

図 6.1 ミューオンの運動量計算のコンセプト（ATLAS Collaboration 2017b）

トリガー回路の全体像を図 6.2 に示す。トリガー回路では、まずワイヤーとストリップのそれぞれで、コインシ
デンスをとり、検出されたミューオン飛跡と無限運動量飛跡のなす角度 ∆θ および ∆ϕ を計算する。次に、ワイヤーとストリップ間のコインシデンスをとり、ミューオンの運動量を概算する。さらに、トロイダル磁場がある領第 6 章 トリガー回路の統合

58

域よりも衝突点側に存在するミューオンスペクトロメータである、TGC EIL4・RPC BIS78・NSW・Tile Calo からのヒット情報とのコインシデンスをとる。これにより、衝突点由来でない背景事象を除去し、同時に、ミューオンの運動量測定の精度を向上させることができる。以上のロジックにおける運動量の再構成は、BRAM や URAMに格納された LUT とのパターンマッチングをとることで行う。最後に、再構成されたミューオン飛跡から最大 6
つの候補を選択し、そのうち最大 3 つを MDTTP へ転送する。MDTTP は、この飛跡候補をもとに、さらに高い精度でミューオンの運動量を計算し、その結果を SL へ送り返す。SL は、MDTTP からの飛跡候補と、MDTTP へ転送しなかった飛跡候補の全てを、MUCTPI へ転送する。

図 6.2 トリガー回路の全体像

6.1.1

Wire Station Coincidence

このモジュールでは、M1・M2・M3 の各ステーションのそれぞれで、ワイヤーからの信号のコインシデンスをとる。モジュールの駆動クロックは、LHC クロックに同期した周波数 40 MHz のクロックであり、レイテンシは 1 ク
ロックチック分 (25 ns) である。Wire Station Coincidence および 6.1.2 で説明する Wire Segment Reconstruction
におけるロジックでは、Endcap phi0 の領域を 37 ユニット、Endcap phi1 の領域を 37 ユニット、Forward の領域
を 16 ユニットに分割している。ユニットの構造を図 6.3 に示す。1 つのユニットは、M1 ステーションでは各層の32 チャンネルを、M2 ステーションでは各層の 16 チャンネルを、M3 ステーションでは各層の 8 チャンネルをカバーする。また、1 つのユニットを、そのチャンネル数を 4 等分するようにして 4 つのサブユニットに分割している。各サブユニットの処理は並列して行う。

M1 ステーションにおけるコインシデンスロジックの概要を図 6.4 に示す。全ての層にヒットがある場合 (3/3 コ
インシデンス)、2 層のみにヒットがある場合 (2/3 コインシデンス)、1 層のみにヒットがある場合 (1/3 コインシデンス) の 3 種類のロジックを用意しており、それぞれを並列に処理する。

M2 および M3 ステーションにおけるコインシデンスロジックの概要を図 6.5 に示す。全ての層にヒットがある
場合 (2/2 コインシデンス)、1 層のみにヒットがある場合 (1/2 コインシデンス) の 2 種類のロジックを用意しており、それぞれを並列に処理する。

M1 および M2 ステーションの各サブユニットの出力は、それが複数の飛跡候補を含んでいる場合は、検出点がユニットの中心により近いものを 2 つ選択し、Position ID として Wire Segment Reconstruction へ転送する。M3
ステーションの各サブユニットの出力は、それが複数の飛跡候補を含んでいる場合は、η がより小さいものを 1 つ
選択し、Position ID として Wire Segment Reconstruction へ転送する。これらのロジックは、より大きな横運動量をもつミューオンを選択するためのものである。

6.1.2

Wire Segment Reconstruction

このモジュールでは、Wire Station Coincidence の結果をもとに、M1・M2・M3 ステーション間のコインシデ
ンスをとる。モジュールの駆動クロックは、LHC クロックに同期した周波数 160 MHz のクロックであり、レイテ
ンシは 12 クロックチック分 (75 ns) である。
サブユニット毎のロジックは、Address Speciﬁer・Segment Extractor・Segment Selector から構成している。

6.1 トリガー回路の全体像

図 6.3

59

Wire Station Coincidence および Wire Segment Reconstruction におけるユニット

図 6.4 M1 ステーションにおけるコインシデンスロジック

第 6 章 トリガー回路の統合

60

図 6.5

M2・M3 ステーションにおけるコインシデンスロジック

Wire Station Coincidence と合わせたブロックダイアグラムを図 6.6 に示す。

図 6.6 Wire Segment Reconstruction のブロックダイアグラム

Address Speciﬁer
Wire Station Coincidence からの Position ID を、パターンマッチング用の URAM のアドレスに変換し、Segment
Extractor へ送る。コインシデンスロジックの組み合わせによりいくつかのコインシデンスパターンが得られるが、そのうち表 6.1 に示すパターンのものを、最大で 8 つ転送する。同表において、より上にリストされているコイン
シデンスパターンを優先的に選択する。このことは、そのようにすることでより本物に近い位置情報と角度情報を得られることを示す過去の研究結果に基づく。なお、同表中の Fraction の値は、ミューオンが TGC の各レイヤーにヒットを残す確率がそれぞれ 94% であると仮定して計算をしたものである。同じコインシデンスパターンが複数ある場合には、η がより小さいものを選択する。

6.1 トリガー回路の全体像

61

表 6.1 Wire Station Coincidence におけるコインシデンスパターン

Coincidence Pattern

Hit Pattern

Fraction

M1

M2

M3

7/7

3/3

2/2

2/2

0.649

6/7A

2/3

2/2

2/2

0.124

6/7B

3/3

1/2

2/2

0.083

6/7C

3/3

2/2

1/2

0.083

5/7A

2/3

1/2

2/2

0.016

5/7B

1/3

2/2

1/2

0.016

5/7C

3/3

1/2

1/2

0.011

5/7D

1/3

2/2

2/2

0.008

Total

0.988

Segment Extractor
LUT が格納された URAM のアドレスポートに、Address Speciﬁer からのアドレスを入力し、対応するデータ(wire segment) を出力する。wire segment のデータフォーマットは表 6.2 に示す通りである。URAM は 2 つの独立に動作するポートを持っており、Address Speciﬁer からの最大 8 つのアドレスを、1 クロックチックに 2 つずつ
処理する。
表 6.2

wire segment のフォーマット

# of bits

Name

1

Flag of successful reconstruction

2

Number of the stations with the hits used for coincidence

8Angle diﬀerence ∆θ between the segment and the vector from IP

12Global η position of the segment

Segment Selector
Segment Extractor から送られてくる最大 8 つの wire segment から、サブユニット毎に最大 1 つを選択して出力する。コインシデンスに用いられてた層の数が多いものを優先して選択する。同じ層の数の wire segment がある
場合には、∆θ がより小さいものを選択する。

6.1.3 Strip Station Coincidence
このモジュールでは、M1・M2・M3 の各ステーションのそれぞれで、ストリップのコインシデンスをとる。モ
ジュールの駆動クロックは、LHC クロックに同期した周波数 40 MHz のクロックであり、レイテンシは 1 クロッ
クチック分 (25 ns) である。Strip Station Coincidence および 6.1.4 で説明する Strip Segment Reconstruction におけるロジックでは、Endcap phi0 の領域を 20 ユニット、Endcap phi1 の領域を 20 ユニット、Forward の領域を 4ユニットに分割している。なお、このユニット数の違いは、エンドキャップ領域では η 方向に 5 つのチェンバーが並んでいることに対して、フォワード領域では 1 つのチェンバーしかないことに由来している。ユニットの構造を

第 6 章 トリガー回路の統合

62

図 6.7 に示す。1 つのユニットは、M1 ステーションでは各層の 20 チャンネルを、M2 ステーションでは各層の 12チャンネルを、M3 ステーションでは各層の 8 チャンネルをカバーする。また、1 つのユニットを、そのチャンネ
ル数を 2 等分するようにして 2 つのサブユニットに分割する。各サブユニットの処理は並列して行う。

図 6.7

Strip Station Coincidence および Strip Segment Reconstruction におけるユニット

ストリップについては、M1・M2・M3 ステーションの全てが 2 層構造になっている。それぞれのステーション
におけるコインシデンスロジックの概要は図 6.5 に示したものと同様である。

6.1.4

Strip Segment Reconstruction

このモジュールでは、Strip Station Coincidence の結果をもとに、M1・M2・M3 ステーション間のコインシデ
ンスをとる。モジュールの駆動クロックは、LHC クロックに同期した周波数 240 MHz のクロックであり、レイテ
ンシは 21 クロックチック分 (87.5 ns) である。
ユニット毎のロジックを、Address Speciﬁer・Segment Extractor・Segment Selector から構成している。Strip

Station Coincidence と合わせたブロックダイアグラムを図 6.8 に示す。

Address Speciﬁer
Strip Station Coincidence からの Position ID を、パターンマッチング用の URAM のアドレスに変換し、Segment
Extractor へ送る。コインシデンスロジックの組み合わせによりいくつかのコインシデンスパターンが得られるが、そのうち表 6.3 に示すパターンのものを、最大で 6 つ転送する。同表において、より上にリストされているコイン
シデンスパターンを優先的に選択する。このことは、そのようにすることでより本物に近い位置情報と角度情報を得られることを示す過去の研究結果に基づく。

6.1 トリガー回路の全体像

63

図 6.8

表 6.3

Strip Segment Reconstruction のブロックダイアグラム

Strip Station Coincidence におけるコインシデンスパターン

Coincidence Pattern

Hit Pattern
M1

M2

M3

6/6

2/2

2/2

2/2

5/6A

2/2

1/2

2/2

5/6B

1/2

2/2

2/2

5/6C

2/2

2/2

1/2

4/6A

1/2

1/2

2/2

4/6B

2/2

1/2

1/2

4/6C

1/2

2/2

1/2

Total

Segment Extractor
LUT が格納された URAM のアドレスポートに、Address Speciﬁer からのアドレスを入力し、対応するデータ(strip segment) を出力する。strip segment のデータフォーマットは表 6.4 に示す通りである。URAM は 2 つの独立に動作するポートを持っており、1 つのポートが 1 つのサブユニットを担当している。
表 6.4 strip segment のフォーマット

# of bits

Name2

Number of stations with the hits used for coincidence

6

Local ϕ position in the chamber

9Angle diﬀerence ∆ϕ between the segment and the vector from IP

Segment Selector
Segment Extractor から送られてくる最大 6 つの strip segment から、ユニット毎に最大 1 つを選択して出力す第 6 章 トリガー回路の統合

64

る。コインシデンスに用いられてた層の数が多いものを優先して選択する。同じ層の数の strip segment がある場
合には、∆ϕ がより小さいものを選択する。

6.1.5

Wire-Strip Coincidence

このモジュールでは、wire segment および strip segment 間のコインシデンスをとり、その結果を Inner

Coincidence へ転送する。モジュールの駆動クロックは、LHC クロックに同期した周波数 160 MHz のクロックであり、レイテンシは 6 クロックチック分 (37.5 ns) である。このロジックは、Endcap phi0 を 35 個、Endcap phi1
を 35 個、Forward を 8 個の region に分割し、それぞれを並列に処理する。コインシデンスには、図 6.9 に示すコ
インシデンスウィンドウを用いる。∆θ については、−0.16 < ∆θ < 0.16 の領域を 64 ビンに分割している。∆ϕ については、−0.032 < ∆ϕ < 0.032 の領域を 16 ビンに分割している。コインシデンスウィンドウの情報は LUT として BRAM に格納する。

図 6.9 Wire-Strip Coincidence におけるコインシデンスウィンドウ

6.1.6

Inner Coincidence

このモジュールでは、Wire-Strip Coincidence の出力および内部飛跡検出器 (TGC EIL4・NSW・RPC BIS78・Tile Calo) からのヒット情報の間のコインシデンスをとり、その結果を Track Selector へ転送する。コインシデン
スに用いる LUT は BRAM や URAM に格納する。モジュールの駆動クロックは、LHC クロックに同期した周波数 320 MHz のクロックであり、レイテンシは 7 クロックチック分 (21.875 ns) である。
図 6.10 に示すように、検出点の η および ϕ、および横運動量 pT と電荷の正負の情報をもとに、どの内部飛跡検出器の情報をもちいるか選択する。検出点と各内部飛跡検出器の対応関係を、図 6.11 に示す。
このロジックは |η| > 1.3 の領域を 34 個、1.05 < |η| < 1.3 の領域を 44 個の region に分割し、それぞれを並列に処理する。最大 64 個の飛跡候補を出力する。飛跡候補のデータフォーマットを表 6.5 に示す。

6.1 トリガー回路の全体像

65

図 6.10 Inner Coincidence の概要

図 6.11

検出点と各内部飛跡検出器の対応関係

表 6.5

飛跡候補のフォーマット

# of bits

Name

Comment

14

TGC ηη in global candidate at the pivot plane of TGC

9

TGC ϕ

ϕ in global candidate at the pivot plane of TGC

8

TGC pT

TGC transverse momentum

4

TGC pT threshold

TGC highest pT threshold satisﬁed

1

TGC charge

TGC TC charge

3

Coincidence type

Identiﬁer of coincidence type

14

MDT η

η coordinate of the MDT segment position of the innermost station

8

MDT pT

MDT transverse momentum

4

MDT pT threshold

MDT highest transverse momentum threshold satisﬁed

1

MDT charge

MDT charge

4

MDT Processing Flag

Type of reconstructed muon2

# of segments

Number of MDT segments associated to the muon

3

Segment quality ﬂag

Quality of each segment

49

Reserved-

第 6 章 トリガー回路の統合

66

6.1.7

Track Selector

このモジュールでは、Inner Coincidence から転送される最大 64 個の飛跡候補から、高い pT をもつものを最大6 個選択して出力する。モジュールの駆動クロックは、LHC クロックに同期した周波数 160 MHz のクロックであり、レイテンシは 4 クロックチック分 (25 ns) である。
図 6.12 に示すように、飛跡候補の ID および pT を選別用の回路に入力する。また、全ての飛跡候補のデータを選別が完了するまでバッファーする。

図 6.12

Track Selector の概要

選別用回路は、図 6.13 に示すように、8 個の 8-key sorting network および 7 個の 16-key merging network から構成している。全体のレイテンシは 25 ns であり、飛跡候補を 64 個から 8 個まで選別する。

図 6.13

Track Selector における選別用回路

6.1 トリガー回路の全体像

67

8-key sorting network および 16-key merging network の概要を、それぞれ図 6.14 および図 6.15 に示す。これ
らの図における横線はワイヤーを表し、縦線がコンパレータを表す。左から右に向かって、それぞれのワイヤーの比較を順番に行っていく。

図 6.14

8-key sorting network の概要

図 6.1516-key merging network の概要

第 6 章 トリガー回路の統合

68

6.2

統合の計画と現状

表 3.1 および表 3.2 で示したように、SL と PS board を繋ぐリンクを SLR0・SLR2・SLR3 に配置し、SL と内部飛跡検出器・MDTTP・MUCTPI を繋ぐリンクを SLR1 に配置する。そのため、TGC のヒット信号を用いるロジックである Wire-Strip Coincidence までの回路はそれぞれの SLR に配置し、Inner Coincidence 以降を SLR1に配置する。トリガーロジックの SLR レイアウトを図 6.16 に示す。

図 6.16

トリガーロジックの SLR レイアウト

トリガー回路を、I/O・読み出し・コントロールの回路に統合している。統合は、前段である Station Coincidenceから順に進めていく。各モジュールの統合が完了するたびに、トリガー読み出し回路を用いた試験を行い、ファームウェアの正しさを検証する。本論文の執筆時点では、Wire-Strip Coincidence までの統合および検証が完了している。試験の詳細は、第 7 節に記す。
各モジュールのデバイスリソース使用量は表 6.6 のようになる。表中の値は、デバイス全体のリソースに対する使用量の割合を、百分率で示したものである。また、各リソース名とともに、そのリソースのタイル数を記している。

6.3 LUT 書き込み機構

69
表 6.6 トリガー回路のリソース使用量

LUT

REG

CLB

BRAM

URAM

(1728000)(3456000)(216000)(2688)(1280)

SLR0

0.42

0.12

1.06

0.00

0.00

SLR2

0.42

0.12

1.06

0.00

0.00

SLR3

0.19

0.05

0.48

0.00

0.00

Total

1.03

0.29

2.60

0.00

0.00

SLR0

0.00

0.05

0.21

0.00

0.00

SLR2

0.00

0.05

0.19

0.00

0.00

SLR3

<0.01

0.01

0.03

0.00

0.00

Total

<0.01

0.11

0.43

0.00

0.00

SLR0

6.15

1.20

9.31

0.00

11.20

SLR2

6.15

1.20

9.31

0.00

11.20

SLR3

2.66

0.52

4.03

0.00

4.84

Total

14.96

2.92

22.65

0.00

27.24

SLR0

1.59

0.77

2.67

0.00

1.56

SLR2

1.59

0.77

2.74

0.00

1.56

SLR3

0.32

0.15

0.55

0.00

0.31

Total

3.50

1.69

5.96

0.00

3.43

SLR0

1.29

0.65

2.36

5.51

0.00

SLR2

1.29

0.65

2.36

5.51

0.00

SLR3

0.60

0.35

1.12

2.38

0.00

Total

3.18

1.65

5.84

13.40

0.00

Inner Coincidence

SLR1

7.69

0.74

12.93

9.00

10.63

Track Selector

SLR1

2.00

0.26

2.61

0.00

0.00

Wire Station Coincidence

Strip Station Coincidence

Wire Segment Reconstruction

Strip Segment Reconstruction

Wire/Strip Coincidence

6.3 LUT 書き込み機構
トリガーロジックで使用する LUT は BRAM や URAM に格納する1 。BRAM に格納するデータパターンは、コンフィギュレーション時の初期値として設定できる。URAM にはそのような機能はなく、コンフィギュレーショ
ン完了後に手動でデータを格納していく必要がある。この LUT の書き込みは、コントロールパスを用いて行う。
コントロールパスの AXI プロトコルおよびレジスタ系は、第 5 章で述べたように、32 ビットのデータ幅で設計している。しかしながら、例えば Wire Segment Reconstruction の URAM はデータ幅 72 ビットである。そのため、MPSoC は 72 ビット分のデータパターンを 3 回に分けて転送する。FPGA 側では、MPSoC から送られるデー

1 BRAM と URAM の使い分けは、RAM タイルのサイズや LUT の幅に起因している。BRAM は、ポート幅が 1・2・4・9・18・36 のいずれかであり、サイズが 36Kb または 18Kb であるような RAM タイルを組み合わせて実装する。URAM は、ポート幅が 72 であり、サイズが 288Kb であるような RAM タイルを組み合わせて実装する。BRAM よりも URAM の方が大きなサイズを実現しやすいため、多くの場合、大規模な LUT の格納には URAM の方が適している。しかしながら、例えば、Wire-Strip Coincidence で用いる LUT の場
合、幅が 4 または 8 であるため、ポート幅の単位として 72 しか用意されていない URAM を用いると、RAM タイルの幅を大きく無駄にしてしまう。そのため、このような幅の小さい LUT の格納には BRAM を用いている。

第 6 章 トリガー回路の統合

70

タをバッファーしておき、72 ビット分のデータパターンが揃ったら、それを URAM の指定されたアドレスへ書き込む。LUT 書き込み機構の動作におけるタイミングチャートを図 6.17 に示す。MPSoC からの data を、FPGA 内に用意されている 72 ビット幅の reg_data へ一時的に格納する。MPSoC がアサートする activate をトリガーにして、 addr で指定された URAM のアドレス a1 へデータを格納する。

図 6.17

LUT 書き込み機構の動作におけるタイミングチャート

なお、この LUT 書き込み機構は、URAM のみならず BRAM に対しても実装している。

6.4

タイミング制約の緩和とレイテンシについて

表 6.6 に示したように、トリガーロジックは多くのリソースを使用する大規模な回路となる。 6.1 節で述べたよ
うに、トリガーロジックをいくつかのクロックドメインに分けており、幅の大きい信号線が異なるクロックドメイ
ンをまたぐ箇所 (Clock Domain Crossing (CDC)) がいくつも存在する。このような大規模回路の CDC では、タイミング制約を満たすことが難しくなる。そのため、CDC においてパイプライン (付録 B ) を用いてタイミング制約を緩和している。例えば、図 6.18 に示すように、Wire Station Coincidence と Wire Segment Reconstruction の間には、LHC クロックに同期した周波数 160 MHz のクロックで駆動されるパイプラインレジスタを 2 段入れている。Strip Station Coincidence と Strip Segment Reconstruction の間には、LHC クロックに同期した周波数 240

MHz のクロックで駆動されるパイプラインレジスタを 1 段入れている。また、Wire Segment Reconstruction と
Wire-Strip Coincidence の間には、LHC クロックに同期した周波数 160 MHz のクロックで駆動されるパイプライ
ンレジスタを 2 段入れている。Strip Segment Reconstruction と Wire-Strip Coincidence の間には、LHC クロックに同期した周波数 240 MHz のクロックで駆動されるパイプラインレジスタを 2 段入れている。なお、これらのパイプラインは、Wire-Strip Coincidence の入力、すなわち Wire Segment Reconstruction の出力と Strip Segment

Reconstruction の出力のタイミングを合わせるという目的も同時に果たしている。
今後、トリガーロジックの統合が進むにつれて回路は大規模化し、タイミング制約はより厳しいものになることが予想される。その場合でも、CDC にパイプラインレジスタを挿入し、必要に応じてその段数を追加していくことで対応することが可能である。しかしながら、パイプラインの段数を増やす際には、表 6.7 に示すトリガーロジックのレイテンシに対する要請を考慮する必要がある。例えば、飛跡候補を MDTTP へ転送する時間は、陽子バンチ交差から測って 1.675 µs であり、Track Selector の出力までの全ての処理はこの時間以内に完了していなければならない。現在は、Station Coincidence と Segment Reconstruction を合わせたレイテンシが 125 ns である。Gearboxのレイテンシをおよそ 100 ns、SLR をまたぐ際のパイプラインのレイテンシをおよそ 100 ns と見積もったとしても、Inner Coincidence への入力は、陽子バンチ交差から測って 1.450 µs の時点までに、およそ 100 ns ほどの余裕を残して間に合う見込みである。
なお、Strip Segment Reconstruction を駆動するクロックの周波数については、レイテンシに対する要請を考慮

6.4 タイミング制約の緩和とレイテンシについて

図 6.1871

トリガーロジックにおけるパイプライン

しつつ、240 MHz から 160 MHz に変更することを検討している。この変更を行うと、CDC の数が減り、よりタ
イミング制約を緩和することができる。
表 6.7 トリガーロジックのレイテンシに対する要請

Contents

Latency (µs)

TGC hit signal arrival

0.958

TGC track segment reconstruction

1.083

RPC BIS78 coincidence output arrival

1.310

NSW track segment and Tile Calo energy ﬂag arrival

1.425

Inner detector data formatting

1.450

Inner coincidence

1.475

Track candidate selection

1.500

Optical link to MDTTP (10 m)

1.675

MDTTP output arrival

3.810

Final trigger processing

3.835

Optical link to MUCTPI (10 m)

4.010

73

第7章

ファームウェアの検証
7.1 試験システムの設計
SL の FPGA ファームウェアの動作検証を行うため、TGC 読み出し回路およびトリガー読み出し回路の出力をモニターするシステムを設計・実装した。読み出し回路の出力は本来 FELIX へ転送するものであるが、現在、FELIX
は開発途上にあるため、SL ボード単体で動作する試験フレームワークを構築した。図 7.1 に試験システムの基本的な設計を示す。

図 7.1

試験システムの基本的な設計

7.1.1 読み出し回路出力のダンプ機構
読み出し回路の出力を、FPGA と MPSoC を繋ぐチップ間通信を利用して、MPSoC 内の RAM へ転送する。チップ間通信の設計については、 5.1 節で説明したコントロールパスのものと基本的に同様である。AXI Chip2Chip のMaster および Slave の関係が逆である点と、シリアル通信のラインレートを、読み出し回路と FELIX 間のリンクに合わせて 9.6 Gbps としている点が異なる。
このダンプ機構に用いることのできるチップ間通信のパスは 1 チャンネルのみである。そのため、TGC 読み出
しとトリガー読み出しの合計 3 本のリンクを 1 リンクに直列化する必要がある。これには、Event Builder がもつ、

FELIX からのバックプレッシャー機構 ( FELIX_ready ) を利用している。すなわち、それぞれの Event Builder
へ、 FELIX_ready を順番にアサートする機構を SL 内に実装することで、出力の直列化を実現している。この直列化の様子を表すタイミングチャートを図 7.2 に示す。

MPSoC へ転送したデータを、PL 内の RAM へ格納する。RAM としては、PL 内の BRAM を用いる方法と、
PS 内の DDR メモリを用いる方法がある。現在は、実装がより容易な前者の方法を採っている。
読み出し回路出力のダンプ用の RAM から、Event Builder へのバックプレッシャー機構は実装していない。これは次の理由による。AXI Chip2Chip slave 側の AXI プロトコルにおける ready 信号は、AXI Chip2Chip master 側の AXI プロトコルまで伝播しない。そのため、slave 側のバックプレッシャーは、別のチップ間通信のリンクを用いて master 側へ伝える必要がある。しかしながら、SL の FPGA と MPSoC を接続するチップ間通信は 2 チャン

第 7 章 ファームウェアの検証

74

図 7.2 3 つの EventBuilder 出力の直列化の様子を表すタイミングチャート

ネルしか用意しておらず、その一方をコントロールパスに、他方をダンプ機構に用いてしまっているため、MPSoC
側から FPGA 側へバックプレッシャーを伝える手段がない。本ダンプ機構では、読み出し回路出力のダンプ用のRAM の occupancy が 100% になったら、FPGA 側から送られてくるデータは全て破棄する設計にしている。したがって、動作試験を行う際には、RAM の occupancy が 100% になる前にデータの読み出し・処理ができるように、hit occupancy やテストパターントリガーのレートを適切に設定して運用している。なお、PS CPU から RAMのデータをリセットすることで、FPGA 側から送られてくるデータを再び RAM へ書き込むことが可能になる。

7.1.2 テストパターン入力機構
SL ボード単体での試験を実現するため、PS board から SL へ転送されるヒットデータを模したテストパターン
を、SL 内から打てる機構を実装した (図 7.1 における Test Pattern Generator )。テストパターンは BRAMに格納する。パターンは BRAM の初期値として設定できることに加え、 6.3 節で述べた LUT 書き込み機構と同様の仕組みにより、コントロールパスからも書き換え可能である。テストパターンの指定やトリガーもコントロー
ルパスから行う。また、TTC 信号も SL 内でエミュレートしている。L0A を、テストパターンのトリガーから L0

latency 後に自動でアサートする。

7.2

試験システムの性能

7.1 節で説明した試験システムの DAQ 性能について議論する。
3 つの Event Builder を直列化しているため、この箇所から読み出し回路へのバックプレッシャーが発生しうる。
TGC 読み出し回路の 1 つの Event Builder が出力する 1 パケットのサイズは、TGC のヒット occupancy が 1% 程度であると仮定すると、およそ 100 ワードである。また、トリガー読み出し回路の Event Builder が出力する 1 パ
ケットのサイズは、読み出すトリガーロジックの情報に依存するが、およそ 100 ワードであると仮定する。この場
合、3 つの Event Builder が出力する合計 3 パケットを読み出すのに、およそ 300 クロックチック必要になる。そのため、L0A のレートがおよそ 0.8 MHz 以下であれば、Derandomizer のバッファーオーバーフローを引き起こ
すことなく、読み出しを続けることができる。L0A のレートがおよそ 0.8 MHz を上回る場合、Event Builder の直列化を行っている箇所から読み出し回路へバックプレッシャーがかかり、その結果として Derandomizer のバッ7.3 動作試験の計画と現状

75

ファーオーバーフローが発生する。
また、ダンプ用の RAM の領域が限られていることによるデータロスが発生しうる。ダンプ用の RAM のoccupancy が 100% になったら、CPU からそのデータを読み出し、SL に挿入されている SD カード内の不揮発性メモリに保存するか、Ethernet などを経由して SL 外のストレージへ転送する必要がある。例えば、PL の BRAM
から SD カードへのデータ転送レートはおよそ O (1 Mbps) である。3 つの Event Builder が出力する合計 3 パケッ
トのデータサイズはおよそ 104 ビットであるため、平均した L0A のレートがおよそ O (0.1 kHz) 以下であれば、ダンプ用の RAM におけるデータロスを引き起こすことなく、データ取得を続けることができる。例えば O(105 ) 程
度の数のテストパターンについて試験を行う場合でも、およそ 1000 秒で読み出しが完了するため、現在の動作試
験の目的を達成するには必要十分な性能であると考える。平均した L0A のレートがおよそ O (0.1 kHz) を上回る場
合、ダンプ用の RAM の occupancy が 100% の状態で読み出し回路からのデータを読み出してしまうため、そのデータを破棄することになる。なお、ダンプ用の RAM として、PS DDR を用いた場合、SD カードへのデータ転送レートは改善する可能性がある。

7.3 動作試験の計画と現状
7.1 節で説明した試験システムを用いて得られたデータは、トリガーロジックをソフトウェアでシミュレートした結果と比較し、その正しさを検証する。本論文の執筆当時においては、シミュレータは、Station Coincidence・

Segment Reconstruction の Forward 領域・Wire-Strip Coincidence の Forward 領域について開発が完了している。
動作試験は、無限運動量を持つミューオン飛跡のテストパターン 63 種類について行った。Station Coincidence・

Segment Reconstruction の Forward 領域については、上述のシミュレータの結果と比較し、全てのパターンに対して 100% の一致を確認した。Segment Reconstruction の Endcap 領域については、シミュレータの代わりに

Vivado ﬁnctional simulation の結果と比較し、全てのパターンに対して 100% の一致を確認した。
今後は、Wire-Strip Coincidence・Inner Coincidence・Track Selector のそれぞれについて、統合が完了し次第、動作試験を進めていく計画である。また、用いるテストパターンとして、無限運動量を持つミューオン飛跡に加え、モンテカルロシミュレーションで生成した Truth muon も用いる予定である。テストパターン数を O(104 )-O(105 )程度に増やし、Truth muon に対する飛跡再構成の eﬃciency の評価も行う。

77

第8章

まとめと今後の展望2029 年開始予定の高輝度 LHC-ATLAS 実験では、LHC および検出器のアップグレードが行われ、より高度なデータ収集が加速される。ATLAS 検出器の最外層でミューオンを捉え、その運動量の概算を行うミューオンスペ
クトロメータの 1 つである TGC 検出器システムにおいては、一部を除く全てのエレクトロニクスを刷新する。従来は前段および後段に設置した複数の回路ボードが分担して行っていた、ミューオンの飛跡再構成や読み出し処理、
コントロールパスのインターフェースといった機能を、後段に新たに設置する 48 枚の SL ボードに集約する。SL
ボード上には、これらの機能を全て実現するために、大規模 SSI デバイスである Virtex UlatraScale+ FPGA を搭載している。
本研究では、SL に必要な機能を実現する FPGA ファームウェアの完成に向け、各回路の開発および統合を行った。高輝度 LHC-ATLAS 実験における TDAQ システムでは、平均トリガーレートが従来の 10 倍である 1 MHzとなるため、これに耐えうる高速読み出しを実装する必要がある。また、トリガーレイテンシは従来の 10 倍である 10 µs となるため、この時間だけデータを保持できるだけのサイズのバッファーを備えている必要がある。こ
れらを実現する読み出し回路を開発し、SL ボード上の FPGA 上に実装した。また、SL は TGC 検出器のエレク
トロニクス全体の制御回路のインターフェースとなる。これを実現するため、SL ボード上の MPSoC の CPU にLinux を搭載し、チップ間通信を用いて FPGA 内のレジスタにアクセスできるシステムを実現した。これにより、
SL FPGA の制御に加え、前段回路である PS board の制御も実現した。さらに、開発が進んでいるトリガー回路を読み出し・コントロール回路へ統合している。MPSoC を活用した回路のモニター機構を実装することで、統合したトリガーロジックの検証も進めている。現在実装が完了している回路については、無限運動量飛跡に対して正しく振る舞うことが実証されている。
本研究によって、SL の FPGA ファームウェアの開発および試験フレームワークを構築した。また、本研究で確立した大規模 SSI デバイスの開発基盤は、高エネルギー実験のみならず、あらゆるエレクトロニクスシステムに広く応用可能な技術である。
今後は、トリガーロジックの統合を進め、FPGA ファームウェアの完成を目指す。モンテカルロシミュレータで生成した Truth muon の飛跡を用いて、再構成の eﬃciency 測定を行い、トリガーロジックのパフォーマンスを評価していく。また、2023 年中に生産する予定の SL ボード第 2 試作機における動作試験や、プリント基盤回路図の変更に伴うファームウェアの修正を行う。さらには、前段回路である PS board や JATHub、TAM モジュールなどとの統合試験を行い、TGC 検出器エレクトロニクス全体のシステムを完成させる。高輝度 LHC-ATLAS 実験の開始も視野に入れ、FELIX や MUCTPI、内部飛跡検出器とのコミッショニングも進めていく。

79

謝辞
本研究を遂行するにあたり、指導教員である石野雅也教授には、研究内容や発表資料に関する多くの助言、KEKや CERN 出張時のサポートなど、様々な面で大変お世話になりました。奥村恭幸准教授には、ファームウェアの開発をする上での技術的な指導をしていただき、多くのことを学ばせていただきました。研究報告会議での議論や、研究方針を定めていく上では、御二方の的確な指摘には常に助けられ、充実した修士課程を過ごすことができました。ありがとうございました。
研究室の先輩である田中碧人さん、青木匠さん、岡崎健人さんには、日々の研究の場面でお世話になりました。田
中さんには、SVF の実装方法などをレクチャーしていただきました。また、MPSoC にまつわる資料は大変参考になりました。青木さんには、Vivado の使い方やファームウェアの書き方に関して何度も助けられました。SL と PS

board の統合試験の際には、SL のファームウェアの問題を的確に指摘していただきました。リンクがうまく繋がらなかったときに、ケーブルの研磨面に問題があることを見出したことには驚かされました。岡崎さんには、MPSoC
や PetaLinux の使い方を教えていただきました。MPSoC の開発手法を確立していただいたおかげで、SL のコント
ロールパスや試験フレームワークの開発をスムーズに進めることができました。優秀な先輩方の存在によって、研究のモチベーションを常に高く維持することができました。

Phase-II アップグレードの研究を行っている TGC グループの皆様にもお世話になりました。名古屋大学の堀井泰之准教授には、日々の研究報告会議における議論で数多くのアドバイスをいただくとともに、SL の開発全体の方針を示してくださり、自分の研究の位置づけを常に認識することができました。また、CERN 出張の財源のサポー
トをしてくださり、ありがとうございました。名古屋大学の鍋山友希さんや京都大学の河本地弘さんとは、トリガー回路の統合と試験の際に頻繁に議論を行いました。トリガー回路に修正が必要な時も、迅速にフィードバック
をくださり、統合と試験をスムーズに遂行することができました。ファームウェアに関する、私の無茶な要求にも応えてくださり、ありがとうございます。名古屋大学の橋爪一将さんとは、KEK や CERN 出張時に一緒になることが多く、お世話になりました。共同で研究することはあまりありませんでしたが、一緒に作業ができて楽しかったです。
その他、ICEPP の他の学生やスタッフの方々にもお世話になりました。秘書の皆様には、出張手続きや会議室の予約などでサポートしていただきました。イレギュラーな出張が急に発生した際にも迅速に対応していただきあ
りがとうございました。ともに Phase-II アップグレードの研究に取り組んだ同期である山下恵理香さんには、SLのテストパターンを生成していただいたり、試験結果の検証に協力していただきました。おかげで SL の試験をスムーズに遂行することができました。先輩である杉崎海斗さん、林雄一郎さん、張元豪さんには、CERN 出張時に生活面で数多くの数多くのアドバイスと協力をいただきました。
最後に、これまで生活面や経済面で支え続けてくれた両親に感謝いたします。おかげで最高に充実した学生生活を送ることができました。ありがとうございました。

81

付録 A

コントロールパスにおけるレジスタリスト
本論文の執筆当時における、SL のコントロールパスのレジスタリストを表 A.2 - A.5 に示す。表中の rw は読み
出しと書き込みの両方を行えるレジスタを示しており、ro は読み出し専用のレジスタを示す。また、各レジスタ空間のアドレス範囲を表 A.1 に示した。
表 A.1 各レジスタ空間のアドレス範囲

レジスタ空間

BASE

HIGH

DEPTH

SLR0 RW

0x00000x1FFF250

SLR0 RO

0x20000x3FFF1000

SLR1 RW

0x40000x5FFF250

SLR1 RO

0x60000x7FFF250

SLR2 RW

0x80000x9FFF250

SLR2 RO

0xA0000xBFFF1000

SLR3 RW

0xC0000xDFFF260

SLR3 RO

0xE000

0xFFFF

1010

表 A.2

SLR1 のレジスタリスト

addresstypefunction

0x4000rw

QSPI1 CS [0:0]0x4001

rw

QSPI1 CLK [0:0]0x4002

rw

QSPI1 MOSI [0:0]0x4005rw

MPSoC Master [0:0]0x6000ro

0xDEADBEEF

0x6001ro

QSPI1 MISO [0:0]

付録 A

82

コントロールパスにおけるレジスタリスト

表 A.3 SLR0 のレジスタリスト

addresstypefunction

0x0000rw

test register [31:0]

0x0001rw

DBGLED0 [0:0]0x0002rw

DBGLED1 [0:0]0x0005rw

SL ID [15:0]

0x0006rw

L0 Buﬀer depth [11:0]

0x000A - 0x0015

rw

TX mode [1:0] for all channels of Bank220-222

0x0016 - 0x0021

rw

TX I2C DAC bitmap [1:0] for all channels of Bank220-222

0x0022 - 0x002D

rw

TX I2C SCL [0:0] for all channels of Bank220-222

0x002E - 0x0039

rw

TX I2C SDA [0:0] for all channels of Bank220-222

0x003A - 0x0045

rw

TX SPI CS bitmap [10:0] for all channels of Bank220-222

0x0046 - 0x0051

rw

TX SPI SPIRSTB [0:0] for all channels of Bank220-222

0x0052 - 0x005D

rw

TX SPI SIRSTB [0:0] for all channels of Bank220-222

0x005E - 0x0069

rw

TX SPI SCLK [0:0] for all channels of Bank220-222

0x006A - 0x0075

rw

TX SPI SDI [0:0] for all channels of Bank220-222

0x0076 - 0x0081

rw

TX enable [0:0] for all channels of Bank220-222

0x0082 - 0x008D

rw

TX address [15:0] for all channels of Bank220-222

0x008E - 0x0099

rw

TX command [15:0] for all channels of Bank220-222

0x009A - 0x00A5

rw

TX data [15:0] for all channels of Bank220-222

0x2000ro

0xDEADBEEF

0x2006 - 0x2011ro

QSPI status [0:0] for SFP+ 0 channels of Bank120-122/220-222

0x2012 - 0x201DroSi5345 Lock [0:0] for SFP+ 0 channels of Bank120-122/220-222

0x201E - 0x2029

ro

PP ASIC status [0:0] for SFP +0 channels of Bank120-122/220-222

0x202A - 0x2035

ro

SEM status [2:0] for SFP+ 0 channels of Bank120-122/220-222

0x2036 - 0x2041

ro

I2C SDA [1:0] for SFP+ 0 channels of Bank120-122/220-222

0x2042 - 0x204Dro

SPI SDO upper [1:0] for SFP+ 0 channels of Bank120-122/220-222

0x204E - 0x2059

ro

SPI SDO lower [8:0] for SFP+ 1 channels of Bank120-122/220-222

0x205A - 0x2119

ro

ADC data [11:0] channel0-15 for SFP+ 1 channels of Bank120-122/220-222

0x211A - 0x21D9ro

DAC data [11:0] channel0-15 for SFP+ 1 channels of Bank120-122/220-222

0x21DA - 0x21FD

ro

xDAC data [11:0] channel0-2 for SFP+ 1 channels of Bank120-122/220-222

0x21FE - 0x2221

roTemperature data [11:0] channel0-2 for SFP+ 1 channels of Bank120-122/220-222

0x2222 - 0x22B1

ro

SEM data [11:0] channel0-11 for SFP+ 1 channels of Bank120-122/220-222

0x22B2 - 0x22BD

roRegister address [7:0] for SFP+ 1 channels of Bank120-122/220-222

0x22BE - 0x22C9

roRegister data [15:0] for SFP+ 1 channels of Bank120-122/220-222

0x22CA - 0x22E1ro

PSB ID [10:0] for all channels of Bank120-122/220-222

0x22E2 - 0x22F9

roLink Num [0:0] for all channels of Bank120-122/220-222

83
表 A.4

SLR2 のレジスタリスト

addresstypefunction

0x8000rw

test register [31:0]0x8005rw

SL ID [15:0]0x8006rw

L0 Buﬀer depth [11:0]0x800A - 0x8019

rw

TX mode [1:0] for all channels of Bank228-231

0x801A - 0x8029

rw

TX I2C DAC bitmap [1:0] for all channels of Bank228-231

0x802A - 0x8039

rw

TX I2C SCL [0:0] for all channels of Bank228-231

0x803A - 0x8049

rw

TX I2C SDA [0:0] for all channels of Bank228-231

0x804A - 0x8059

rw

TX SPI CS bitmap [10:0] for all channels of Bank228-231

0x805A - 0x8069

rw

TX SPI SPIRSTB [0:0] for all channels of Bank228-231

0x806A - 0x8079

rw

TX SPI SIRSTB [0:0] for all channels of Bank228-231

0x807A - 0x8089

rw

TX SPI SCLK [0:0] for all channels of Bank228-231

0x808A - 0x8099

rw

TX SPI SDI [0:0] for all channels of Bank228-231

0x809A - 0x80A9

rw

TX enable [0:0] for all channels of Bank228-231

0x80AA - 0x80B9

rw

TX address [15:0] for all channels of Bank228-231

0x80BA - 0x80C9

rw

TX command [15:0] for all channels of Bank228-231

0x80CA - 0x80D9

rw

TX data [15:0] for all channels of Bank228-231

0xA000ro

0xDEADBEEF

0xA006 - 0xA014

ro

QSPI status [0:0] for SFP+ 0 channels of Bank129-131/228-231

0xA015 - 0xA023

roSi5345 Lock [0:0] for SFP+ 0 channels of Bank129-131/228-231

0xA024 - 0xA032

ro

PP ASIC status [0:0] for SFP +0 channels of Bank129-131/228-231

0xA033 - 0xA041

ro

SEM status [2:0] for SFP+ 0 channels of Bank129-131/228-231

0xA042 - 0xA050

ro

I2C SDA [1:0] for SFP+ 0 channels of Bank129-131/228-231

0xA051 - 0xA05Fro

SPI SDO upper [1:0] for SFP+ 0 channels of Bank129-131/228-231

0xA060 - 0xA06Cro

SPI SDO lower [8:0] for SFP+ 1 channels of Bank129-131/228-231

0xA06D - 0xA13C

ro

ADC data [11:0] channel0-15 for SFP+ 1 channels of Bank129-131/228-231

0xA13D - 0xA20C

ro

DAC data [11:0] channel0-15 for SFP+ 1 channels of Bank129-131/228-231

0xA20D - 0xA233

ro

xDAC data [11:0] channel0-2 for SFP+ 1 channels of Bank129-131/228-231

0xA234 - 0xA25A

ro

Temperature data [11:0] channel0-2 for SFP+ 1 channels of Bank129-131/228-231

0xA234 - 0xA2F6ro

SEM data [11:0] channel0-11 for SFP+ 1 channels of Bank129-131/228-231

0xA2F7 - 0xA303

ro

Register address [7:0] for SFP+ 1 channels of Bank129-131/228-231

0xA304 - 0xA310

ro

Register data [15:0] for SFP+ 1 channels of Bank129-131/228-231

0xA311 - 0xA32C

ro

PSB ID [10:0] for all channels of Bank129-131/228-231

0xA32D - 0xA348

ro

Link Num [0:0] for all channels of Bank129-131/228-231

付録 A

84

コントロールパスにおけるレジスタリスト

表 A.5 SLR3 のレジスタリスト

addresstypefunction

0xC000rw

test register [31:0]

0xC001rw

TTC emulator increment [8:8] / auto [7:7] / shot [6:6] / pattern num [5:0]0xC002rw

TTC emulator L0 latency [15:0]

0xC003rw

TTC emulator Auto cycle [15:0]

0xC004rw

parameter version [7:0]0xC005rw

SL ID [15:0]

0xC006rw

L0 Buﬀer depth [11:0]

0xC00A - 0xC013

rw

TX mode [1:0] for all channels of Bank232-234

0xC014 - 0xC01D

rw

TX I2C DAC bitmap [1:0] for all channels of Bank232-234

0xC01E - 0xC027

rw

TX I2C SCL [0:0] for all channels of Bank232-234

0xC028 - 0xC031

rw

TX I2C SDA [0:0] for all channels of Bank232-234

0xC032 - 0xC03B

rw

TX SPI CS bitmap [10:0] for all channels of Bank232-234

0xC03C - 0xC045

rw

TX SPI SPIRSTB [0:0] for all channels of Bank232-234

0xC046 - 0xC04F

rw

TX SPI SIRSTB [0:0] for all channels of Bank232-234

0xC050 - 0xC059

rw

TX SPI SCLK [0:0] for all channels of Bank232-234

0xC05A - 0xC063

rw

TX SPI SDI [0:0] for all channels of Bank232-234

0xC064 - 0xC06D

rw

TX enable [0:0] for all channels of Bank232-234

0xC06E - 0xC077

rw

TX address [15:0] for all channels of Bank232-234

0xC078 - 0xC081

rw

TX command [15:0] for all channels of Bank232-234

0xC082 - 0xC08B

rw

TX data [15:0] for all channels of Bank232-234

0xD300rw

MPSoC Master Force [0:0]0xD301rw

MPSoC soft reset [0:0]0xD302

rw

Flash SPI Controller reset [0:0]0xD303rw

Address Encoder reset [0:0]0xE000ro

0xDEADBEEF

0xE006 - 0xE009

ro

QSPI status [0:0] for SFP+ 0 channels of Bank232-234

0xE00A - 0xE00DroSi5345 Lock [0:0] for SFP+ 0 channels of Bank232-234

0xE00E - 0xE011

ro

PP ASIC status [0:0] for SFP +0 channels of Bank232-234

0xE012 - 0xE015

ro

SEM status [2:0] for SFP+ 0 channels of Bank232-234

0xE016 - 0xE019

ro

I2C SDA [1:0] for SFP+ 0 channels of Bank232-234

0xE01A - 0xE01Dro

SPI SDO upper [1:0] for SFP+ 0 channels of Bank232-234

0xE01E - 0xE023

ro

SPI SDO lower [8:0] for SFP+ 1 channels of Bank232-234

0xE024 - 0xE0AC

ro

ADC data [11:0] channel0-15 for SFP+ 1 channels of Bank232-234

0xE0AD - 0xE10C

ro

DAC data [11:0] channel0-15 for SFP+ 1 channels of Bank232-234

0xE10D - 0xE11E

roxDAC data [11:0] channel0-2 for SFP+ 1 channels of Bank232-234

0xE11F - 0xE130

roTemperature data [11:0] channel0-2 for SFP+ 1 channels of Bank232-234

0xE131 - 0xE178

ro

SEM data [11:0] channel0-11 for SFP+ 1 channels of Bank232-234

0xE179 - 0xE17E

roRegister address [7:0] for SFP+ 1 channels of Bank232-234

0xE17F - 0xE184

roRegister data [15:0] for SFP+ 1 channels of Bank232-234

0xE185 - 0xE18E

ro

PSB ID [10:0] for all channels of Bank232-234

0xE18F - 0xE198

ro

Link Num [0:0] for all channels of Bank232-234

0xF300ro

ACM Master [0:0]

85

付録 B

パイプラインによるタイミング制約の緩和
同じクロックドメイン内の 2 つのレジスタ間を信号が伝播するのにかかる時間が、それらのレジスタを駆動する
クロックの 1 チック時間にクロックスキューを加えた時間から前段のレジスタにおける hold 時間と後段のレジス
タにおける setup 時間を差し引いた時間よりも大きい場合、タイミング制約違反となり、信号の伝播が正しく行われることは保証されない。回路の大規模化にともなってレジスタを離れた位置に配置することがある場合、または周波数が大きいクロックを用いる場合には、タイミング制約はより厳しいものとなる。SL FPGA ファームウェア
においても、このタイミング制約違反の解決は大きな課題である。
このようなタイミング制約違反を解消する手法の 1 つに、パイプラインを用いるものがある。パイプラインとは、信号を伝播させる 2 つのレジスタの間に、いくつかのシフトレジスタを挿入したもののことを意味する。また、このような目的で用いるシフトレジスタのことをパイプラインレジスタと呼ぶ。パイプラインを用いることによって、レジスタ間の距離が小さくなり、タイミング制約を緩和することができる。

SL FPGA ファームウェアでは、SLR をまたいで伝播する信号や、回路規模が大きいトリガーロジックで、パイ
プラインを活用している。例えば、SLR0 と SLR3 の間を伝播する信号のパイプラインの様子を、図 B.1 に示す。
図上方に SLR3 が位置しており、下方に SLR0 が位置している。それらの間を接続しているパイプラインレジスタとワイヤーがハイライトされている。
パイプラインレジスタを記述したファームウェアを、Vivado1 を用いてコンパイルする際には、Vivado の配置最適化アルゴリズムの推論によって、一連のシフトレジスタが 1 つの SRL2 タイルに配置される可能性がある。この場合、レジスタの配置に柔軟性がなくなり、パイプラインの本来の目的を達成できなくなる。これを回避するには、パイプラインレジスタまたはそれを含むモジュールに、 SHREG_EXTRACT 属性を付与して NO に設定するか、

DONT_TOUCH 属性を付与して YES に設定する。コードブロック B.1 に、SystemVerilog で記述したパイプライン
レジスタに DONT_TOUCH 属性を付与した例を示す。

1 Xilinx が提供する FPGA ファームウェア開発用の統合開発環境
2 Shift Register LUT の略。一般的にシフトレジスタを配置する際に、レジスタ間のレイテンシを最小化するとともに、デバイスのリソー

ス使用量を抑える目的で使用される。

86

付録 B

パイプラインによるタイミング制約の緩和

図 B.1 SLR0 と SLR3 の間を伝播する信号のパイプラインの様子

87parameter LENGTH;(* dont_touch = "yes" *) reg [LENGTH-1:0] reg_PipeLine;generatefor (genvar gi=0; gi < LENGTH-1; gi++) begin
always @(posedge clk) begin
reg_PipeLine[gi+1] <= reg_PipeLine[gi]endendendgenerate
コードブロック B.1 SystemVerilog で記述したパイプラインレジスタに DONT_TOUCH 属性を付与した例

89

付録 C

SLR に関する技術的な詳細
本付録では、Vivado を用いてファームウェア開発を行う際の、SLR の扱い方をまとめる。

C.1 FPGA ファームウェアの SLR への分割
RTL モジュールの特定の SLR への配置は、pblock を作成し、RTL モジュールの cell を pblock に割り当て、pblock の位置と大きさをその SLR と同じ値に指定することで実現できる。これは制約ファイルに記述する。制約
ファイルの例をコードブロック C.1 に示した。なお、pblock は、SSI デバイスに限らず一般的な monolithic デバ
イスにおいても、モジュールのレイアウトを指定する際に用いることができる。

create_pblock pblock_SLR0
add_cells_to_pblock [get_pblocks pblock_SLR0] [get_cells -quiet [list SLR0]]resize_pblock [get_pblocks pblock_SLR0] -add {SLICE_X0Y0:SLICE_X232Y239}
create_pblock pblock_SLR1
add_cells_to_pblock [get_pblocks pblock_SLR1] [get_cells -quiet [list SLR1]]
resize_pblock [get_pblocks pblock_SLR1] -add {SLICE_X0Y240:SLICE_X232Y479}
create_pblock pblock_SLR2
add_cells_to_pblock [get_pblocks pblock_SLR2] [get_cells -quiet [list SLR2]]
resize_pblock [get_pblocks pblock_SLR2] -add {SLICE_X0Y480:SLICE_X232Y719}
create_pblock pblock_SLR3
add_cells_to_pblock [get_pblocks pblock_SLR3] [get_cells -quiet [list SLR3]]
resize_pblock [get_pblocks pblock_SLR3] -add {SLICE_X0Y720:SLICE_X232Y959}
コードブロック C.1 pblock を活用した SLR へのモジュール配置

C.2 SLL の使い方
隣接する 2 つの SLR 間の信号の受け渡しには、レジスタを用いる方法と FIFO を用いる方法の 2 つが考えられる。レジスタを用いる場合は、バス幅と同じ本数の SLL が必要になるが、受け渡しにかかるレイテンシを 3 クロッ
クチック程度に抑えることができる。FIFO を用いる場合は、バスを直列化することで SLL を節約できるが、受け付録 C SLR に関する技術的な詳細

90(a) レジスタを用いる場合
図 C.1(b) FIFO を用いる場合
隣接する 2 つの SLR 間の信号の受け渡し方法

渡しにかかるレイテンシが 10 クロックチック程度に増大する。これら 2 つの手法の概要を図 C.1 に示した。この図では、SLR0 から SLR1 へ、32 ビット幅の信号の受け渡しを考えている。FIFO を用いる場合には、これを 8ビットずつ転送している。

SL FPGA ファームウェアでは、レジスタを用いる方法を採っている。ただし、今後、SLL のリソースを節約す
る必要がある場合には、レイテンシに対する要請のない読み出し回路およびコントロールパスにおいて、FIFO を用いる方法に変更する可能性がある。なお、トリガー回路については、 6.4 節で述べたように、レイテンシに対する要請があるため、レジスタを用いる方法が望ましい。
各 SLR 内の、隣接する SLR に近い領域には、SLL と直接接続されているレジスタが用意されている。これはLaguna レジスタと呼ばれる。レジスタを用いる方法を採る場合、Laguna レジスタを用いることで、受け渡しにかかるレイテンシを最小化することができる。SL FPGA ファームウェアでも、Laguna レジスタを活用している。

Laguna レジスタを用いるには、レジスタの cell を指定して制約をかける。これを記述した制約ファイルの例をコードブロック C.2 に示した。例えば、1 行目では、SLR0 内のレジスタ reg_TX から SLR1 内のレジスタ reg_RX へ渡す信号線に対して制約をかけている。これによって、この 2 つのレジスタは Laguna レジスタとして実装される。

set_property USER_SLL_REG true [get_cells {{SLR0/reg_TX} {SLR1/reg_RX}}]
set_property USER_SLL_REG true [get_cells {{SLR1/reg_TX} {SLR0/reg_RX}}]
コードブロック C.2 Laguna レジスタを用いるための制約

91

付録 D

SL I/O のループバック試験
SL FPGA が搭載する GTY、および SL 上の FireFly モジュールの性能を試験するため、ケーブルをループバッ
クして接続し、データ転送におけるビットエラー率 (Bit Error Ratio (BER)) の評価と eye scan を行った。

D.1 接続のセットアップ
この節では、試験を行う上で用いたケーブルに関することや、ケーブルおよびコネクタ同士の接続関係について説明する。

SL のフロントパネルには、10 個の FireFly TX モジュールおよび 10 個の FireFly RX モジュールに対応して、10 個の MPO1 アダプタを取り付けている。MPO アダプタには、図 D.1 に示すように Opposed と Aligned の 2 種類が存在するが、SL に搭載しているものは Opposed である。

図 D.1

MPO アダプタの種類（Samtec 2021）

SL 上の FireFly モジュールを、フロントパネルにある MPO アダプタに、ケーブルで接続する。本試験では、ECUO-Y12 と呼ばれるケーブルを用いた。ECUO-Y12 は、図 D.2(a) に示すように、FireFly TX コネクタを 1 つ、FireFly RX コネクタを 1 つを備えている。それぞれのコネクタから 12 本ずつ、計 24 本のファイバーを束ねて、MPO コネクタに接続する。どのファイバーが MPO コネクタ上のどの位置に接続されているかは、図 D.2(b) に示
す通りである。

SL のフロントパネルにある MPO アダプタを、他の MPO アダプタにケーブルを用いて接続し、ループバックを実現する。本試験では、FOPC と呼ばれるケーブルを用いた。FOPC は、図 D.3 に示すように、両端が MPO コネ
1 Multi ﬁber Push On の略。IEC-61754-7 および米国 TIA-604-5 規格で定義されている、コネクタ・アダプタなどの規格である。MPO には、ファイバーの芯数が 8・12・16・24・32・48 であるものが存在する。本論文中で MPO と記すときには、常に 24 芯の規格のものを表す。なお、MTP とは、MPO 規格に準拠した US Conec の登録商標である。本論文中では MTP と MPO は同じ意味で用いる。

付録 D SL I/O のループバック試験

92(a) ECUO-Y12 の外観(b) MPO コネクタにおけるファイバーの配置

図 D.2 ECUO-Y12 の概要（Samtec 2021）

クタとなっている。FOPC には、その内部のファイバーの接続関係によって、いくつかのタイプのものが存在する。
図 D.4 に示す 3 つのタイプがメジャーである。本試験で用いたものはタイプ A である。なお、同図中にある 1-24の数字は、MPO コネクタ上のファイバーの位置を示すラベルであり、その定義は図 D.5 に示す通りである。すな
わち、MPO コネクタを正面から見たときに、左上から右上に向かって 1-12 のラベルが、左下から右下に向かって

13-24 のラベルが振られている。このラベルは、MPO 規格のコネクタ・アダプタなどにおいて一般的に用いられて
いる。

図 D.3

FOPC の概要

以上述べた接続関係の概要を、図 D.6 に示す。この接続方法で、FPGA I/O の、FireFly に繋がっている TX-RX
ペア全て (120 チャンネル) を接続した。実際に接続を行った際の写真を図 D.7 に示した。

D.1 接続のセットアップ

93

図 D.4 FOPC のタイプ（FS Community）

付録 D SL I/O のループバック試験

94

図 D.5

MPO におけるファイバーのラベル付け

図 D.6 ループバック試験における接続関係の概要

図 D.7 ループバック試験において実際に接続を行った際の写真

D.2 試験結果

95

D.2 試験結果
120 チャンネル全てについて、BER の評価と eye scan を行った。転送するデータのパターンは、PRBS312 を用いた。
まず、シリアルデータの転送レートを、実験本番で用いる最大のレートである 9.6 Gbps に設定し、試験を行った。各チャンネルについて、BER の結果は表 D.1 に示すような結果を得た。また、ある 1 チャンネルについて、

eye scan の結果を図 D.8 に示す。他の全てのチャンネルについても同様の結果である。
表 D.1

図 D.8

シリアル転送レート 9.6 Gbps における BER 試験の結果

Bits

ErrorsBER (C.L. 95%)

8.898E14

0E0<3.367E-15

シリアル転送レート 9.6 Gbps における eye scan の結果

次に、シリアルデータの転送レートを上げて、試験を行った。定性的な結果を表 D.2 にまとめた。なお、本試験で用いている ECUO-Y12 はシリアル転送レート 14 Gbps までサポートしている。SL FPGA における GTY (speed

grade -1) はシリアル転送レート 25.785 Gbps までサポートしている。ある 1 チャンネルについて、それぞれのシ
リアル転送レートにおける eye scan の結果を図 D.9 - D.14 に示す。

2 Pseudo Random Bit Sequence の略。PRBS31 は 231 ビットを周期とする擬似ランダムビット列である。

付録 D SL I/O のループバック試験

96

表 D.2 シリアル転送レートを上げた際の BER 試験の結果

Line Rate

result13.92 Gbps
14.4 Gbps
15.6 Gbps

正しく link が繋がっている (Bits=1.161E14, Errors=0E0, BER<1.120E-14)

16.8 Gbps
18.0 Gbps

BER ∼ 8(.2)E-11

19.2 Gbps

BER ∼ 3.2(7)E-6

20.4 Gbps

BER ∼ 2.0(8)E-4

21.6 Gbps

BER ∼ 3.3(4)E-3

22.08 Gbps

BER ∼ 8(.4)E-3

link up はするが、error が出始める

22.8 Gbps

link up しても、しばらくするとまた link down してしまう

24.0 Gbps

No linkD.2 試験結果

97

図 D.9 シリアル転送レート 16.8 Gbps における eye scan の結果

図 D.10

シリアル転送レート 18.0 Gbps における eye scan の結果

付録 D SL I/O のループバック試験

98

図 D.11

シリアル転送レート 19.2 Gbps における eye scan の結果

図 D.12

シリアル転送レート 20.4 Gbps における eye scan の結果

D.2 試験結果

99

図 D.13

シリアル転送レート 22.8 Gbps における eye scan の結果

図 D.14

シリアル転送レート 24.0 Gbps における eye scan の結果

101

引用文献
[1] ATLAS Collaboration 2000 “Update of Technical Design Report,” URL: https://twiki.cern.ch/
twiki/pub/Atlas/TgcDocument/MuonEndcap_rev01.pdf.
[2]2015 “ATLAS Trigger and DAQ Interfaces with Detector Front-End Systems: Requirement
Document for HL-LHC,” URL: https://edms.cern.ch/ui/#!master/navigator/document?D:1084304049:1084304049:subDocs.

[3]

2017a “Technical Design Report for the Phase-II Upgrade of the ATLAS Muon Spectrometer,”
URL: https://cds.cern.ch/record/2285580.

[4]

2017b “Technical Design Report for the Phase-II Upgrade of the ATLAS TDAQ System,” URL:
https://cds.cern.ch/record/2285584.

[5] ATLAS TGC Collaboration 1999 “Ampliﬁer-Shanper-Discriminator ICs and ASD Boards,” URL: https://twiki.cern.ch/twiki/pub/Atlas/TgcDocument/ASD-PRR_v19991001.pdf.
[6]

2005

“Patch-Panel

ASIC,”

URL:

https://twiki.cern.ch/twiki/pub/Atlas/

TgcDocument/PP-ASIC_v20050713.pdf.
[7]2019 “TGC Patch-Panel ASIC Design Report for Production Readiness Review,” URL: https://twiki.cern.ch/twiki/pub/Atlas/Ph2TgcPsb/PP-ASIC_PRR_v2.pdf.

[8] CERN2017“CERN-IPMC:

Technical

overview,”

URL:

https://espace.cern.ch/ph-dep-ESE-BE-ATCAEvaluationProject/PP_IPMC/Public%20documents/CERN-IPMC%20-%
20Technical%20overview.pdf.
[9] CERN

2022

“The

HL-LHC

project,”

https://hilumilhc.web.cern.ch/content/hl-lhc-project.
[10]

Churiwala, S. 2017 Designing with Xilinx FPGAs.

[11]

Dzemaili, N. 2021 “A reliable booting system for Zynq Ultrascale+ MPSoC devices,” URL: https://cds.cern.ch/record/2763095, Presented 17 Mar 2021.

[12]

FS Community Understanding Fiber Polarity, URL: https://img-en.fs.com/file/white_paper/
understanding-fiber-polarity.pdf.

[13]

Koeppel, G., Duerner, D., and Ruder, A. 2020 “Mercury XU5 PE1 Reference Design,” https://github.
com/enclustra/Mercury_XU5_PE1_Reference_Design.

[14]

Mouche, P. 2014 “Overall view of the LHC. Vue d’ensemble du LHC,” URL: https://cds.cern.ch/record/1708847, General Photo.

[15]

Samtec2021

FIREFLY

OpticalHalf

CablesApplication

Note,

http://suddendocs.samtec.com/notesandwhitepapers/firefly_half_cable_
app_note.pdf?_gl=1*txw358*_ga*NzIxNjI2ODQuMTY3MjQ3MjEzOA..*_ga_
3KFNZC07WW*MTY3MjQ3MjEzOC4xLjAuMTY3MjQ3MjEzOC42MC4wLjA.

URL:

引用文献

102

[16] Tanabashi, M., Hagiwara, K., Hikasa, K. et al. 2018 “Review of Particle Physics,” Phys. Rev. D 98,
030001, DOI: 10.1103/PhysRevD.98.030001.
[17] The ATLAS Collaboration, Aad, G., Abat, E. et al. 2008 “The ATLAS Experiment at the CERN Large
Hadron Collider,” Journal of Instrumentation 3, No. 08, S08003–S08003, DOI: 10.1088/1748-0221/3/
08/s08003.
[18] Xilinx 2012 Large FPGA Methodology Guide (UG872 v14.3), URL: https://www.xilinx.com/
htmldocs/xilinx13_4/ug872_largefpga.pdf.
[19]2022 UltraScale and UltraScale+ FPGAs Packaging and Pinouts (UG575 v1.18), URL: https://docs.xilinx.com/v/u/en-US/ug575-ultrascale-pkg-pinout.

[20] 青木匠 2022 「大規模エレクトロニクスシステムにおける次世代型オペレーションモデルの研究-自立型ス
テートマシンの導入及び SoC による遠隔型制御の実現-」，修士論文，東京大学大学院理学系研究科物理学
専攻．

[21] 竹本享史 2004 「ATLAS 実験ミューオントリガーシステム用 LSI の開発と総合評価テスト」，修士論文，
東京大学大学院理学系研究科物理学専攻．