FC2カウンター FPGAの部屋 2010年05月20日
FC2ブログ

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

FPGAの部屋

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

無償 ISE WebPACK と 無償 ModelSim Xilinx Edition III のインストール方法

無償 ISE WebPACK のインストール方法無償 ModelSim Xilinx Edition III のインストール方法 のPDFがXilinxのサイトにあったので、忘れないように覚書を書いておく。
  1. 2010年05月20日 17:17 |
  2. FPGAリテラシー及びチュートリアル
  3. | トラックバック:0
  4. | コメント:0

SP605でPCIe Coreを生成してみる3(PCIeユーザーズガイドを調べる)

SP605でPCIe Coreを生成してみる2(シミュレーション)”の続き。

ISimのログには、Running default test {sample_smoke_test0}......と表示されていた。”Spartan-6 FPGA PCI Express 用インテグレイテッド エンドポイント ブロック ユーザー ガイド (英語版)”のRoot Port Model Test BenchのTest Selection (114ページ) には、sample_smoke_test0, sample_smoke_test1, pio_writeReadBack_test0, pio_testByteEnables_test0 ,pio_memTestDataBus...のテストが並んでいる。そのうち、前回、デフォルトでは、sample_smoke_test0を行ったわけだ。
sample_smoke_test0は、 PCI Type 0 Configuration Read TLPを発行して、completion TLPを待つそうだ。これはRoot Port Model側の動作になる。Readを要求するのは、Device/Vendor ID valueだ。
sample_smoke_test0のテストベンチが記述されているのは、s6_pcie_v1_3\simulation\testsフォルダのtests.vだった。ここには、sample_smoke_test1も記述されている。sample_smoke_test1はsample_smoke_test0をforkを使って、2スレッドにしたものだそうだ。
sample_smoke_test0とsample_smoke_test1をどうやって切り替えるかだが、$value$plusargsを使って切り替えている。(これ以前、たっくさんにお聞きしたような?Veritakのテストで使われていたと思った)
$value$plusargsを使用すると、ISimを起動するコマンドラインから、テストベンチを指定できる。つまり、リコンパイルしないでテストベンチを切り替えることができる。
s6_pcie_v1_3\simulation\testsフォルダのtests.vの関連する記述を一部下に引用する。

  initial begin
    if ($value$plusargs("TESTNAME=%s", testname))
      $display("Running test {%0s}......", testname);
    else
    begin
      testname = "sample_smoke_test0";
      $display("Running default test {%0s}......", testname);
    end


TESTNAME=で指定されたテストベンチを実行し、TESTNAME=がなければ、sample_smoke_test0を実行して、そうでなければ、TESTNAME=で指定されたテストベンチを実行するわけだ。下のように記述すると、GUIモードで、sample_smoke_test1を実行する。

demo_tb.exe -gui -testplusarg TESTNAME=sample_smoke_test1


下に実行した時のログを示す。

Simulator is doing circuit initialization process.
Running test {sample_smoke_test1}......
[ 0] : System Reset Asserted...
Finished circuit initialization process.
[ 399600000] : System Reset De-asserted...
[ 960680600] : Transaction Reset Is De-asserted...
board.EP.s6_pcie_v1_3_i.PCIE_A1.B_PCIE_A1_INST.SHIP.SHELL.BUT.pcie_pcie_inv.pcie_pcie.pcie_core.xil_pcie_sa_mod18.xil_pcie_sa_mod19.com.tlm.u_tlm_rx.xil_pcie_sa_mod75 checking
[ 1894626600] : Transaction Link Is Up...
[ 1895816600] : TSK_PARSE_FRAME on Transmit
[ 2233396600] : TSK_PARSE_FRAME on Receive
[ 2295792600] : Check Device/Vendor ID - PASSED
[ 2296992600] : TSK_PARSE_FRAME on Transmit
[ 2559776600] : TSK_PARSE_FRAME on Receive
[ 2696968600] : Check CMPS ID - PASSED
[ 2696968600] : SYSTEM CHECK PASSED
[ 2696968600] : Reading from PCI/PCI-Express Configuration Register 0x00
[ 2696968600] : Expected Device/Vendor ID = 000710ee
[ 2698168600] : TSK_PARSE_FRAME on Transmit
[ 2962954600] : TSK_PARSE_FRAME on Receive
[ 2962954600] : Received CPLD --- Tag 0x00
[ 2962954600] : TEST PASSED --- Finished transmission of PCI-Express TLPs
[ 2963354800] : Reading Cfg Addr [0x00000001]
[ 2966951800] : Writing Cfg Addr [0x00000001]
[ 2970552600] : Reading Cfg Addr [0x00000001]
Stopped at time : 29734527 ps : File "H:/HDL/FndtnISEWork/Spartan6/sp605_pcie_ISE121/s6_pcie_v1_3/simulation/tests/tests.v" Line 205


この使い方は、ISim シミュレーション実行ファイル コマンドのオプションに書いてあった。
しかし、上に書いたpio_writeReadBack_test0, pio_testByteEnables_test0 ,pio_memTestDataBus...のテスト項目はtests.vにはなかった。どこにあるんだろうか?
もしかして、WebPACKだからなのか?フルバージョンで確かめてみることにする。
  1. 2010年05月20日 05:51 |
  2. Spartan-6 FPGA SP605 評価キット
  3. | トラックバック:0
  4. | コメント:0