PCI Express

Spartan-6のPCIe Endpoint Block IPの勉強1(シミュレーションでRoot Portの動作を確認)
”LogiCORE? IP Spartan-6 FPGA Integrated Endpoint Block v1.1 for PCI ExpressR User Guide ”を参考に、Programmed Input Output(PIO) Example Designのシミュレーションについて勉強して行きたいと思う。
sample_smoke_test1で、ISimのInstance and Process NameペインからRP(Root Port)を選択して、Object Nameに表示された信号名を波形ウインドウにドラック アンド ドロップし、シミュレーションしてみた。
TLPパケットを解析してみた。この TLPはバス番号01、デバイス番号10100、機能番号000(これがPCIeのエンド・ポイントのコンフィギュレーション時のアドレスのハズ)の0番 レジスタへのコンフィギュレーション・リード・リクエスト(タイプ0)。Root PortのリクエスタIDは0x01a0。
Spartan-6のPCIe Endpoint Block IPの勉強2(シミュレーションでRoot Portの動作を確認2)
前回、Root Port(RP)からEnd Point(EP, Spartan-6のPCIeハードIP) に0番レジスタにコンフィギュレーション・リード・リクエスト(タイプ0)を送った。今回はその応答パケット(コンプリーション)を見てみることにする。
RPのコンフィギュレーション・リード・リクエスト(タイプ0)に対するEPのコンプリーションのペイロードのリード・データから、デバイスIDが0x0007、ベンダIDが0x10EEであることがわかった。
Spartan-6のPCIe Endpoint Block IPの勉強3(ユーザーズ・ガイドで勉強)
”Spartan-6 FPGA PCI Express 用インテグレイテッド エンドポイント ブロック ユーザー ガイド (英語版)”(UG654)でSpartan-6 FPGA PCI Express用インテグレイテッド エンドポイント ブロック(PCIe EP)を勉強中。
シミュレーションの構造のブロック図や、sample_smoke_test0、sample_smoke_test1、pio_writeReadBack_test0について。
Spartan-6のPCIe Endpoint Block IPの勉強4(PIOデザインの勉強)
Spartan -6のPCIe Endpoint Block IPのサンプル・デザイン、PIOデザインの勉強をする。これは、下の図で言うと、Spartan-6のPCIe Endpoint Block IPの下の部分で、サンプル・デザインの時のメモリやIOの実装だ。実際には4つのBRAMが載っていて、それぞれ違うアドレスを持っている。
Spartan-6のPCIe Endpoint Block IPの勉強3(pio_writeReadBack_test1その1)
今 回は、pio_writeReadBack_test1を行った。pio_writeReadBack_test1は”Spartan-6 FPGA PCI Express 用インテグレイテッド エンドポイント ブロック ユーザー ガイド (英語版)”の150ページに全ソースが載っている。これをtests.vに追加した。だが、それだけではだめで、信号やTASKの実体は下の階層の Verilogソースにあるので、board.RP.tx_usrappまでのパスを全部の信号やTASKに追加した。
Spartan-6のPCIe Endpoint Block IPの勉強4(pio_writeReadBack_test1その2)
今回は、pio_writeReadBack_test1でEndPointのTRNインターフェースまで行って、受信したパケットを解析してみる。
0番地へ4バイトをWriteして、また0番地からReadする。
PCI Expressのトランザクション・パケット解析ソフト
PCI Expressのトランザクション・パケット解析ソフトをOpenOffice.orgのCalcで作った。
Spartan-6のPCIe Endpoint Block IPの勉強5(pio_writeReadBack_test1その3)
PCI Express(PCIe)のトランザクション・パケット解析ソフトができて、PICeのパケットを解析しようと思っているが、素朴な疑問が出てきた。
Spartan-6のPCIe Endpoint Block IPの勉強6(pio_writeReadBack_test1その4)
pio_writeReadBack_test1のRoot Portのトランザクション・パケット(TLP)を見た。PCI Expressのトランザクション・パケット解析ソフトを使用。
Spartan-6のPCIe Endpoint Block IPの勉強7(pio_writeReadBack_test1その5)
pio_writeReadBack_test1のRoot Portのトランザクション・パケット(TLP)解析の続き。

inserted by FC2 system