MAXI-GSC 地上試験用 アナログ・デジタル処理ボード GNV-190 (東工大 VME-UIO) 2002.04.29 release 東工大 大阪大学 理研 青山学院大学 片岡、 河合 能町 (核物理センター) 三原、 小浜 吉田 開発目的 MAXI –GSC フライト品の地上試験を円滑に行う。 特に、センサ+アナログ部(AE)、デジタル処理部(DP) の性能を、独立な環境で試験 電気消去可能なFPGAを利用 同じハードウェアで両方を実現 汎用のシステム(VMEバス+Linux)を用いて簡便で 機能性の高いデータ処理系を構築 ボードの使用形態 (1)擬似DP として AE データ GSC カウンタ エレキ (MDP) μ-D sub コマンド RS422 QL linux TIT ボード VME-bus GSC・エレキに任意のコマンドを送信 AE からデータを取得し、メモリに詰める QLはメモリデータを画面表示する カウンタ・フライトエレキの試験 (2) 擬似AE として VME linux AE データ TIT ボード 地上系 QL DP コマンド VME-bus RS422 TCP/IP DPからのコマンドを受け取り、識別 メモリをダンプし、擬似AEデータを送る メモリを書き換えれば、あらゆるパターンが可能 DPの詳細試験とバグ出し 地上QL系の作成補助 ボードのハードウェア構成 - front panel LED インジケータ トリガ入出力 (信号の確認) 外部クロック入力 (not used) USB (not used) JTAG (FLEXへの ダウンロード) RS422 (擬似 AE 専用) RS422 (擬似 DP 専用) ボードのハードウェア構成 - side view – DIPスイッチ (VME アドレス) RS422 インター ェース EEROM (MAX7000) Altera- FPGA (100,000 Gate) 高速SD-RAM (16 Mbyte) ボード全体の機能構成 E2-ROM Miscellaneous MAX7000 (LED/JTAGなど) VME インターフェース FPGA External I/O FLEX (10万ゲート) (バストランシーバ) フロントパネルI/O (Dサブ, レモ出力) メモリー (16MB) Flex/MAXは3.3 V デバイスを用いる FLEX … EPF10K100ARC240-3 MAX … EPM7128AETC100-5 SDRAM … μPD45128441 FPGA構成 (擬似DP) HDL (Hardware Description Language)でプログラミング (http://www.hp.phys.titech.ac.jp/kataoka/FTP.html) pde_final io_ctr 外部のROMや メモリとの接続定義。 内部モジュールの信号 接続定義。 コマンド・データ 入出力の制御 in_ctr AEデータ 制御 out_ctr AE宛コマンド 制御 ptr_ctr メモリ制御 mem_ctr メモリーへの アクセス制御 vme_ctr VMEバスの アクセス制御 usb_ctr USBのアクセス制御 (現在対応せず) メモリ構成(ダブルバッファ: 擬似DP) - 「データ数格納領域」 「ポインタ・ビット数格納領域」 ×2 に分ける - データの書き込みをしていないバッファでQL 側へ。 終了後、Buffer A/B を切り替える。 AF000000 AF200000 Bit count 1 Packet pointer 1 Bit count 1 Packet pointer 1 Bit count 2 Packet pointer 2 Bit count 2 Packet pointer 2 1Mbyte RING BUFFER 1Mbyte AF100000 AF300000 Data packet1 Data packet1 Data packet2 Data packet2 Data packet3 Data packet3 1Mbyte Buffer A 1Mbyte 仮想的なリングバッファを構成 FPGA構成(擬似AE) (http://www.hp.phys.titech.ac.jp/kataoka/FTP.html) pae_final io_ctr 外部のROMや メモリとの接続定義。 内部モジュールの信号 接続定義。 コマンド・データ 入出力の制御 in_ctr out_ctr AE宛コマンド 制御 AEデータ 制御 mem_ctr メモリーへの アクセス制御 vme_ctr VMEバスの アクセス制御 usb_ctr USBのアクセス制御 (現在対応せず) の部分が擬似DP と異なる メモリ構成(擬似AE) あらゆる擬似データパターン・出力レートが実現可能 BC000000 flg 出力タイミング - メモリーの内部に、異なる種類の データをダウンロードしておく GSC-data 上位 32bit GSC-data 下位 32bit flg 出力タイミング GSC-data 上位 32bit GSC-data 下位 32bit flg 出力タイミング VME側 で指定 - 受け取ったコマンドにより、参照する メモリーアドレスを指定 GSC-data 上位 32bit GSC-data 下位 32bit - 出力タイミング31bit を調整し、 0.01~2000 evt/s の任意のレート 4Mbyte 0 0 まとめ MAXI-GSC 地上試験用のボードを開発した - ハードウェアは完成 - プログラムのバグ出しも終了した(と思う) - 9月中に、受け側のQL ソフトを立ち上げる R2 から本ボードを活用する機会が増えると思うので、 特に若い人の修行を歓迎 ^^; (とりあえずはQLのお仕事) VMEアドレス設定 (擬似DP register) Don’t Care (メモリ側の指定) A31 A30 A29 A28 A27 A26 A25 A24 DIPスイッチでハード指定 (デフォルトは “1100110111001100” = CDCC) A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A7 A6 A5 A4 A3 A2 A8 A1 ユーザー A0 がソフト的に 配分 レジスタにアクセスする場合は、24bit アクセスでA23-A8 の値を参照。 A7 以下は次ページのように配分する (最大 256通りのレジスタが定義可)。 VMEアドレス設定 (memory アクセス) base[] の値で指定 (デフォルトは“11”) DIPスイッチでハード指定 (デフォルトは “101011”) メモリのアドレス “AF******” A31 A30 A29 A28 A27 A26 A25 A24 A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A7 A6 A5 A4 A3 A2 Don’t Care (レジスタ 側の設定) A8 A1 A0 メモリーにアクセスする場合は、32bitアクセス で A31-A24 の値のみ参照 (A23 以下のDIPスイッチの設定によらない) メモリサイズは 224 byte = 16 Mbyte まで可能。ただし、現状ではA23, A22 を “00” として 4Mbyte のみを使用。つまり AF000000~AF3FFFFFF。 メモリ制御シーケンス(mem_ctr) 160 us idle Modeset wait refresh0 v1 v_mem_ws v_mem_ws v0 v_mem_rs v_mem_rs vwite1 vread0 10 usに1度 refresh ref1 base[] = v_address[] ref4 ref2 base[] = v_address[] v_mem_ws メモリwrite シーケンス (VME 経由) vwrite 2..13 vwrite14 vread 1..13 メモリread vread14 シーケンス (VME 経由) ref3 refresh シーケンス FPGA内部バス構成(擬似AE) V_A V_D v_address v_data io_address io_data vme_ctr M_D io_ctr M_A usb_ctr out_ctr mem_ctr in_ctr AE宛 コマンド VME/USB コントロール Serial I/O AE データ SDRAM (16 Mbyte DBL buff) VMEアドレス設定 (擬似AE register) Don’t Care (メモリ側の指定) A31 A30 A29 A28 A27 A26 A25 A24 DIPスイッチでハード指定 (デフォルトは “1100110011001100” = CCCC) A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A7 A6 A5 A4 A3 A2 A8 A1 ユーザー A0 がソフト的に 配分 レジスタにアクセスする場合は、24bit アクセスでA23-A8 の値を参照。 A7 以下は次ページのように配分する (最大 256通りのレジスタが定義可)。 レジスタの配分( A7~A0:擬似DP) A7~A0 レジスタの種類 操作の内容 00 04 outctr_reg inctr_reg 08 buffer_reg AEへのコマンドを書き込む 入力AEデータの確認(debug 用) dbl-buffer の切り替え (0x00… bufferA/ 0x100 bufferB) 0C 10 14 18 20 24 50 wrd_ptr_A wrd_ptr_B pkt_ptr_A pkt_ptr_B p_ptr w_ptr memctr_reg buffer A のデータ格納領域指定 buffer B のデータ格納領域指定 buffer A のポインタ格納領域指定 buffer B のポインタ格納領域指定 現在のデータ格納領域(debug用) 現在ポインタ格納領域(debug用) メモリアドレスA25-24の指定 たとえば、AE宛のコマンドを送信する場合は “CDCC00”に コマンドデータを書き込む。 レジスタの配分( A7~A0:擬似AE) A7~A0 レジスタの種類 操作の内容 00 04 08 0C 10 14 50 mem_addset memout_go cmddat_reg cmdbit_reg cmdflg_reg cmdack_reg memctr_reg 出力の入ったメモリアドレスを指定 AE出力のGO 入力コマンドの確認 コマンドビット数の確認(debug用) コマンド入力のフラグ コマンド処理後の確認フラグ メモリアドレスA25-24の指定 たとえば、AE宛のコマンドを受け取った場合 (1) CCCC10 によりコマンド受信を知り、 (2) CCCC08 でコマンドの内容を照合。正しいコマンドであった場合 (3) CCCC14 にACK を返す。 (4) CCCC00 に、対応するAEデータの入っているメモリアドレスを指定し (5) CCCC04 でAEデータの出力をスタートする VMEアドレス設定 (memory アクセス) base[] の値で指定 (デフォルトは“00”) DIPスイッチでハード指定 (デフォルトは “101111”) メモリのアドレス “BC******” A31 A30 A29 A28 A27 A26 A25 A24 A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A7 A6 A5 A4 A3 A2 Don’t Care (レジスタ 側の設定) A8 A1 A0 メモリーにアクセスする場合は、32bitアクセス で A31-A24 の値のみ参照 (A23 以下のDIPスイッチの設定によらない) メモリサイズは 224 byte = 16 Mbyte まで可能。ただし、現状ではA23, A22 を “00” として 4Mbyte のみを使用。つまり BC000000~BC3FFFFFF。 FPGA内部バス構成(擬似DP) V_A V_D v_address v_data io_address vme_ctr io_data io_ctr M_D M_A ptr_ctr usb_ctr in_ctr mem_ctr out _ctr AE宛 コマンド VME/USB コントロール AE データ Serial I/O SDRAM (16 Mbyte DBL buff) メモリ制御シーケンス(mem_ctr) 160 us idle Modeset wait refresh0 v1 v_mem_ws v_mem_ws i0 io_mem_rs io_mem_rs vwite1 iread0 10 usに1度 refresh ref1 base[] = v_address[] ref4 ref2 base[] = v_address[] v_mem_ws メモリwrite シーケンス (VME経由) vwrite 2..13 vwrite14 iread 1..13 メモリread iread14 シーケンス (I/O経由) ref3 refresh シーケンス I/O制御シーケンス(io_ctr:擬似AE) fetch_ first idle int_cmd (メモリ読み出しの インターラプト。 新しいメモリ アドレスをセット) newptr_ set fetch_ data inc_ ptr1 !int_cmd flg wait chk_ csr csr[31..0] == 0 exec_ send send_ ldata ptr++ send read_ hdata AEデータ 下位4byte出力 inc_ ptr2 inc_ ptr3 read_ ldata send_ hdata ptr++ AEデータ 上位4byte出力 ptr++ !flg end_ data
© Copyright 2024 ExpyDoc