PCI9054 とFPGA との通信

ローカル側の通信(PCI9054 とFPGA との通信)を行うときの信号を説明する。必要な信号がどのような時にデータの読み書きが可能となるかを紹介する。
必要な信号

PCI バス側の信号、ローカル側の信号それぞれを示す。ここに表記した信号は通信を行う際の最低限の信号である。また、信号名の後ろについた#は"Lアクティブ"であることを示し、ここで使うアサートとは信号が有効になるということである。

PCI バス側

  1. CLK : PCI バスクロック(33MHz)
  2. FRAME# : データ転送の準備がされるとアサートされる
  3. AD[31:0] : データバス、アドレスバスは時分割でこのバスを使う
  4. C/BE[3:0]# : 時分割で行われ、アドレス、データのコマンドを分ける
  5. IRDY# : データ転送可能状態のときアサートされる
  6. DEVSEL# : PC との通信を行い、それが終了するまでアサートされる
  7. TRDY# : データ転送の時アサートされる
ローカル側(input、output はFPGA から見た場合)
  1. LCLK(input) : ローカル側のクロック40MHz
  2. LHOLD(input) : ローカルバスの使用を許可する信号
  3. LHOLDA(output) : LHOLD に対してのFPGA からの応答
  4. ADS#(input) : この信号がアサートされるとPCI9054 からアドレスを返し、通信が行われる
  5. BLAST#(input) : ローカルバスの最後の転送を示す
  6. LBE[3:0]#(input): バイトイネーブル信号
  7. LWDRD#(input) : 読み書きを定義する信号 読み->0 書き->1
  8. LA[31:2](inout) : データに対するアドレス
  9. LAD[31:0](inout): データ双方向で定義しなければならない
  10. READY#(output) : データの転送が行われていることをPCI9054に返す信号

ローカル側通信の説明

ローカル側の信号を説明する上で、信号ブロック図とシングルライト、シングルリードのタイムチャートを示す。タイムチャートはPCI9054 のデータシートからの引用である。


ローカル側の信号ブロック図


Single ReadWrite のタイムチャート、左がWrite、右がRead