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

実装した機能

ドキュメント内 ASTRO-H 2 : (ページ 40-43)

32 第5章 SpaceWire搭載機器への実装

5.3 実装した機能 33 まず、配信されたTime-CodeからTIを生成する流れは、以下の通りである。

(1) TICounterModuleはTime-Codeが0 (ゼロ) のタイミングで1カウントアップする時刻カウンタ

「TIME DATA」を生成する。

(2) カウントアップしたら、すぐにTIRegisterModuleの「次のTIME DATA用レジスタ」にTIME DATAを書きこむ。書き込みは内部バス経由で行う。

(3) TIRegisterModuleはTime-Codeが3のタイミング*4 で「今のTIME DATA用レジスタ」に「次

のTIME DATA用レジスタ」の値をコピーする。

一方で、高分解能の時刻をつけるために、下記の二つの機能を実装した。

(4) (1)〜(3)の間も、LocalTimeを生成している。

(5) Time-Codeが0 (ゼロ) のときTI (TIME DATA + Time-Code)とLocalTimeをラッチ*5し、外 部バスを経由してSDRAMに書き込む。

また、イベントへの時刻付けとして、下記の機能を実装した。

(6) CMOSInから信号を受けると、その時のLocalTimeをラッチして、外部バス経由でSDRAMに記

録する。

User NodeのSpaceWire FPGAとUser FPGAの両者に外部バス(External Bus)が備わっており、

両者の間のデータはバス経由でやりとりされる。User FPGAの各モジュール間のデータは内部バス経由 でやりとりされる。User FPGAのロジックは、日本SpaceWireユーザー会によるUserFPGATemplate をもとに作成した。SpaceWire FPGAは、シマフジ製IPコア*6とSDRAMコントローラ(SDRAMC) のコードに加えて、外部入出力(aux)からTime-Code (Tickと6 bitの時刻情報部) をUser FPGAに 出力する機能を追加した。これによってTime-CodeをUser FPGAで参照できるようにした。

*4 このタイミングを選んだ理由は、TIME DATAレジスタと時刻照合表の書込みタイミングをずらすためである。

Time-Code3で「次」から「今」に書き換えるのは、ASTRO-Hと同じ仕様でもある。

*5 ある瞬間のレジスタなどの値をコピーしておくこと。バス経由でメモリ領域に書込みをするとき、その瞬間の値を記録し たい場合は、カウンタなどの値が書込み時間中に変化してしまう可能性があるので、ラッチした値を書き込むようにする。

*6http://www.shimafuji.co.jp/を参照

34 第5章 SpaceWire搭載機器への実装

2010/2/18 1

U se r N o d e

RMAP IP core

Ext. Bus SDRAM Controller

SpaceWire IP core

External Bus I/FTICounterModule TIRegisterModule LocalCounterModule TimeLatchModule

SpaceWireFPGAUser FPGA

Sp Wc h1

EventTrigger (CMOSIn)

TickOut TimeOut(6) (aux) Bus Arbiter Bus Arbiter

iBus_BusI/F EventTimeModule EventTimeRegister

TILatchRegister(32)

LTLatchRegister(32)

LocalTimeCounter(32)

TINextRegister(26) TIPresentRegister(26) TIME_DATA Counter(26) (Latch Signal : when Time-Code=3)

(count-upwhen Time-Code=0) Latch

La tc h

(LatchSignal)

La tc h

SDRAM 16 MBytes

(Latch signal:when Time-Code=0) (to SDRAM across Bus) (to SDRAM across Bus)

(to TINextRegisteracross Bus)

TimeCode64HzSendModuleSpaceWireFPGAUser FPGA

Sp Wc h1

GPS 10MHz (CMOSIn)

TickIn_OutSpaceWire IP core

T im e M a st e r

Time Counter(6) TimeIn_Out(6)

Sp ac eW ire Lin k

iBus_BusI/F iBus_BusI/F iBus_BusI/F iBus_BusI/F

La tc h

iBus_BusI/F

・・・TI register ・・・LocalTimeregister

5.6 SpaceWire Digital I/O boardSpaceWire FPGAUser FPGAに実装したモジュー ルのブロック・ダイアグラム。矢印の緑はFPGA の内部のバスに関する信号および信号線、赤は FPGAの外部との入出力やインターフェースからの入出力を示す。水色の四角はTIに関するレジス タ、オレンジの四角はLocalTimeに関するレジスタを示す。

ドキュメント内 ASTRO-H 2 : (ページ 40-43)

関連したドキュメント