更新終了しました( 2016/2/17) ここの情報は古いかもしれません。
解析で使うことのメモ
現在、N研が所有しているのは6U、9Uのもの。
AS* アドレス、アドレス幅を決めるAMコード、LWORD* 、WRITE* 、IACK*が有効であることを示す。 AS* がアサートされないときはこれらの“L”か”H”は問わない。
DS1* DS0* マスタ側から出力されデータ転送のタイミングを決定する。 アドレスの偶数、奇数を決定する。( D08オプションの時 )これら2つの役割がある。 また、後述する LWORD* との組み合わせにより、ロングワードの転送を決定する。
LWORD* DS1* 、DS0*、A01 とこの信号が”L”であるときにロングワード転送(32bit)のデータ転送を可能にする。
PT5では DS1* DS0* LWORD* の3つは“L”になっており、ロングワード転送( 32bit通信 )を行っている。 PT5 のレジスタをリードすると 0x ff ff ff 00 等と表示されるのはこのためである。
WRITE* ライトの方向を示す。 “L” ならば マスタ から スレーブ に “ライト” する。 “H” ならば スレーブ から マスタ に ”リード” する。
DTACK* スレーブ側からの応答信号。 “ライト“ ではバス上のデータを受信したときに出力される。 “リード” ではバス上にデータを転送したときに出力される。
BERR* 正常にデータが転送されなかったときに出力される。 リードオンリーの部分に書き込みを行おうとするときにはスレーブが出力し 何もないアドレスにアクセスしようとするとバスタイマが出力する。
コントロールラインとは少し意味合いが違うが...
IACK* 割り込み要求に対する応答をする。 “H” のとき通常の転送サイクルを示す。 “L” のとき A01-A03 はアドレスと別の意味を持つ。 IRQレベル・コードが A01-A03 に送られる。
現在あるものは本のコピー。アトラス部屋に一部あるのでここからコピーするしかない...
近いうちにデジタル化しておこう。
PT5はTGCのパイプラインとコントロールラインを理解するための1つの道具。
ただ、バグが多くて困る。
CPLDを書き換えれば直りそう。
バグの詳細はSLと一緒に挿すとSLとのcominucationが取れなくなること(2009/7/30 奥村さん情報)
PT5はトライステートバッファが搭載されているが、Hi-zにすることができないもったいないレイアウトになっている。 デフォルトでは バス→PT5 にデータが流れる設定になっているが、CPLD内部でバスをつかまないようになっている。 しかし、もったいない。。。
現在、6UのクレートでのみFPGAのConfigurationが成功する。
http://tsukasa.icepp.s.u-tokyo.ac.jp/cgi-bin/cvsweb/cvsweb.cgi/を参照すると詳しい情報、ソースなど手に入る。
上のリンクからソースをすべてコピーする。ただし、そのままではmakeさえできない。
東大桑原さんのページにもあるのだが、CERNで公開されてるものの方が新しいバージョン。
レジスタの部分が違っている。
東大桑原さんのページは更新されないので情報が古い。FPGAなどの仕様書は最新のものが他にある。
PT5のHDL
HDLはハードウェアを記述する言語であるが、必ずハードとの対応がある。これを確認しながら設計していく必要がある。
AND回路
O = A & B
OR回路
O = A | B
NOT回路
O = ~ A
Xilinxs社製 CoolRunner-II CPLD XC2C256
VMEとのコミュニケーションの要であり、FPGAをコンフィグする際のマスタに相当するもの。
内部のHDLを現在解読中。。。
バグがあるとするとこの部分が大きいはず。
JTAG焼機で書き換え可能だが、現在機器が紛失中。
Xilinxs社製 Spartan-3シリーズ XC3S400-FG320
詳しくはコンフィグレーションガイドを読むべし。パラレルスレーブモード
FPGAコンフィグレーションガイド (リンク)