• 検索結果がありません。

第3章 VME-EASIROCボードの仕様 50

第3章 VME-EASIROCボードの仕様 51

3.3.1.2 ADC Controllerモジュール

ADC Controller モジュールのブロックダイアグラムを図3.17 に示す。ADC Con-trollerモジュールはTriggerManagerモジュールから受け取ったトリガー情報を各ADC Coreモジュールに分配している。また、各ADC CoreモジュールからのBUSY信号の 統合も行っている。さらに、EASIROCのReadRegister IFに対する制御信号の生成も 行っている。

TriggerManagerモジュールからのトリガー情報は内部で遅延させてから ADC Core モジュールに送っている。これはパイプライン型ADCであるAD9220には変換開始時 に変換待ち時間があるためである。

各ADC CoreモジュールからのBUSY信号はADC Controller 内部のFSM によっ て作られる InternalBusy 信号と OR をとったあとに TriggerManager モジュールに ADC_BUSYとして送られる。TriggerManagerからの ADC_TRIGGER信号を受信 した後すぐにADC_BUSYをHにするためである。

これらの処理の流れは FSM によって管理される。図3.18 に FSM のステート遷 移 を 示 す 。リ セ ッ ト 直 後 の 状 態 は IDLE 状 態 で あ る 。ADC_TRIGGER を 受 信 す る と SRIN_HIGH_0 状 態 、続 い て SRIN_HIGH_1 状 態 に 移 行 す る 。こ れ ら の 状 態 で EASIROC に 保 存 さ れ た 電 圧 情 報 を シ リ ア ル に 読 み 出 す た め の 制 御 線 で あ る SRIN_READ ピンを H にする。その後は CLK_LOW 状態と CLK_HIGH 状態を 32回ずつ繰り返すことによってEASIROCに対して3 MHzのクロック信号を32周期分 だけ送信している。AD9220へのCLK信号の供給はいずれかのADC Core モジュール のADC_BUSYがHになっている限り行われ続ける。また、FAST_CLEAR信号を受 信した場合は、どの状態からも、速やかにIDLE状態に移行する。ADC Coreモジュー ルに対してのCORE_START信号の発行はCLK_LOW状態かつChannel Counterが 4になっているタイミングで行う。

3.3.2 DoubleBuffer

DoubleBufferのブロックダイアグラムを図3.19に示す。

DoubleBufffer内にはSRAM が2 つ実装されており、読み書きの対象となるSRAM を切り替えることでDoubleBufferとして動作する。DoubleBufferの製作に当たっては 非同期 FIFOの製作方法[35, 36, 37]を参考にした。DoubleBufferは異なるクロックド メイン間でのデータの受け渡しを行うという役割も持つ。

SRAM に対して 1 イベント分のデータの書き込みが完了したタイミングで上流モ ジュールがWCOMP信号を発行する。この信号によってWptrがインクリメントされ、

第3章 VME-EASIROCボードの仕様 52

FSM

ADC̲TRIGGER FAST̲CLEAR

TriggerManager

ADC̲BUSY

InternalBusy

4 CORE̲BUSY ADC̲CORE × 4

CORE̲START

EASIROC1, 2

SlowControl IF

CLK̲READ RSTB̲READ SRIN̲READ

Channel Counter

CountUp CountClear

3.17 ADC Controller モジュールブロックダイアグラム。TriggerManager ジュールからのトリガー信号を各ADC_COREモジュールに分配し、Busy信号を統 合してTriggerManagerモジュールに送る。また、EASIROCReadRegisterイン ターフェースの制御もこのモージュールが行う。

図3.19左側のスイッチが切り替わる。読み出しの場合も同様で、1イベント分の読み出 しが完了したタイミングで下流モジュールがRCOMP信号を発行し、それによってRptr がインクリメントされる。

WptrとRptrの比較によってFULL信号、EMPTY信号の生成を行う。スイッチの 切り替えを行うことだけを考えると Wptr、Rptr 共に 1 bit あれば足りるが、FULL、 EMPTYの生成のために2 bitカウンターとしている。スイッチの切り替えには下位bit のみを用いている。このとき、FULLの条件は「下位bitが一致 かつ 上位bitが不一致」、

EMPTYの条件は「全bitの一致」となる。しかし、これらは異なるクロックドメインに

属しているために直接の比較を行うことができない。異なるクロックドメイン間のデータ の受け渡しのために、Gray codeとSynchronizerを用いた。以下ではそれらのモジュー ルについて述べる。

3.3.2.1 クロックドメインをまたぐ信号の受け渡し

異なるクロックドメイン間でのデータを受け渡しする際にはメタステーブルと競合状態 について考慮する必要がある[38]。

メタステーブルは、図3.20に示すように、フリップフロップの入力データ信号が変化

第3章 VME-EASIROCボードの仕様 53

IDLE

SRIN̲HIGH̲0