FC2カウンター FPGAの部屋 Spartan-6のPCIe Endpoint Block IPの勉強6(pio_writeReadBack_test1その4)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Spartan-6のPCIe Endpoint Block IPの勉強6(pio_writeReadBack_test1その4)

”Spartan-6のPCIe Endpoint Block IPの勉強4(pio_writeReadBack_test1その2)”と”Spartan-6のPCIe Endpoint Block IPの勉強5(pio_writeReadBack_test1その3)”で、EndPointのトランザクション・パケットを見てきたが、Root Portのトランザクション・パケット(TLP)を見て行こう。

下に、Root PortのTLPの波形を示す。
pio_writeReadBack_test1_1_100605.png

1. 最初のRoot Portの送信TLPは、コンフィギュレーション・リード・リクエスト。レジスタ番号0番地のリード。
pio_writeReadBack_test1_7_100609.pngpio_writeReadBack_test1_8_100609.png

2. 次は、受信TLP。1.のコンフィギュレーション・リード・リクエストに対応するコンプリーション。レジスタ番号0のデータ。データはee100700。デバイスIDが0x0007、ベンダIDが0x10EE。ここではコンプリータIDは0000。
pio_writeReadBack_test1_9_100609.pngpio_writeReadBack_test1_10_100609.png

3. 送信TLP。コンフィギュレーション・リード・リクエスト。レジスタ番号0x17のリード。0x17と言うと0x5C番地のはず。これは、PCIe機能レジスタ?
pio_writeReadBack_test1_11_100609.pngpio_writeReadBack_test1_12_100609.png

4. 2.62 usec後に、受信TLP。当然ながら、3.のコンフィギュレーション・リード・リクエストに対応するコンプリーション。レジスタ番号0x17のデータ。データはc28f0000。となると、ルートコントロールが0x8fc2で、ルート機能が0x0000?
pio_writeReadBack_test1_13_100610.pngpio_writeReadBack_test1_14_100610.png

5. 送信TLP。コンフィギュレーション・ライト・リクエスト。4番レジスタへのWrite。4番目のレジスタはベースアドレス0なので、オール1を書いて、どのくらいの領域を要求しているかを見ている部分だろう?
pio_writeReadBack_test1_15_100610.pngpio_writeReadBack_test1_16_100610.png

コンフィギュレーション・ライト・リクエストのバス番号とデバイス番号をEndPointは記憶するそうだ。
I.Kさん、やはり、コンフィギュレーション・ライト・リクエストのバス番号とデバイス番号は、Root Portと同じでした。このパケットをRoot Portが出力してから、1.14 usec後に、EndPointのcfg_bus_number出力が0x00から0x01に、cfg_function_number出力が0x00から0x14に変化しました。ありがとうございました。

6. また送信TLP。当然ながら、4番レジスタに対するコンフィギュレーション・リード・リクエスト。これは、どのくらいの領域を要求しているかをリードする。
pio_writeReadBack_test1_17_100610.pngpio_writeReadBack_test1_18_100610.png

7. 受信TLP。タグ番号0x00なので、5. のコンフィギュレーション・ライト・リクエスト対するコンプリーションだ。5. から2.67 usecかかている。
pio_writeReadBack_test1_19_100610.pngpio_writeReadBack_test1_20_100610.png

8. 受信TLP。6. の4番レジスタに対するコンフィギュレーション・リード・リクエストに対応するコンプリーション。送られてきたデータは0x0000f0ff。これを左のビットがMSBに直すと、0xfff00000。つまり、20ビットのアドレス空間があるので、ベースアドレス0は1Mバイトメモリ。
pio_writeReadBack_test1_21_100610.pngpio_writeReadBack_test1_22_100610.png

次の記事に続く。
  1. 2010年06月10日 05:33 |
  2. PCI Express
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1495-ec8f1da9
この記事にトラックバックする(FC2ブログユーザー)