FC2カウンター FPGAの部屋 Vivado 2017.1 の新機能2(AXI Verification IPの概要)

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

FPGAの部屋

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

Vivado 2017.1 の新機能2(AXI Verification IPの概要)

Vivado 2017.1 の新機能1(概要)”の続き。

前回は、Vivado 2017.1 の新機能の概要を書いた。今回は、AXI Verification IPの概要を調査しよう。

AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”を参照させて頂くことにする。
”AR# 68234 AXI Verification IP - AXI VIP のリリース ノートおよび既知の問題”も参考にしよう。

AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”によると、AXI Verification IP には、3つのモードがある。

AXI Master VIP
AXI Slave VIP
AXI Pass-Through VIP


つまり、AXI Master になるか、AXI Slave になるか、AXI Master とAXI Slave の間に入るか?の違いのようだ。
AXI VIP はSystemVerilog で書かれているそうだ。Vivado のSystemVerilog サポートも進んできて、だいぶ良くなったのだろう?
UVMと同様の名前付けと構造を使用しているようだ。
AXI VIP は2つの部分で構成されている。

other traditional IP (modules in the static/physical world)
dynamic world


つまり、HDLで書かれた従来のIP があってダイナミック?なソフトウェアがあって、AXI VIP は、仮想インターフェース(virtual interface)でその2つの橋渡しをするようだ。

AXI Master VIP
AXI Master VIPは3つのパートからできている。

• User environment
• Master agent
• AXI master VIP


ソフトウェアの世界には、マスター・エージェントがあって、それには4つのクラス・メンバがあるそうだ。

• Master write driver
• Master read driver
• Monitor
• Virtual interface


AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”の29ページの”Figure 4-4: AXI VIP Master Test Bench”を引用する。
Vivado_2017-1_27_170423.png
この図を見ると一目瞭然だ。

ユーザー環境(User Environment)がWrite トランザクションを定義して、マスタ・エージェントのマスタ・ライト・ドライバが create_transaction を行う。
ユーザー環境はデータ入力かランダム入力?トランザクションを決めて、データを出力して、マスタ・エージェントに送る。
マスタ・エージェントでは、send でAXI VIP 経由で検証対象のAXI System に送られるようだ。
AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”の30ページの”Figure 4-5: Write Transaction Flow”を引用する。
Vivado_2017-1_28_170423.png

AXI Slave VIP
AXI slave VIP は3つのパートからできている。

• User environment
• Slave agent without a memory model
• AXI slave VIP


やはり、AXI Master VIPと同様にマスタ・エージェントの代わりにスレーブ・エージェントがあって、メモリモデル無しのスレーブ・エージェントには4つのクラス・メンバがある。

• Slave write driver
• Slave read driver
• Monitor
• Virtual interface


”Figure 4-6: AXI VIP Slave Test Bench ”は、構造的には、”Figure 4-5: Write Transaction Flow”と同じ。

Writeする場合は、ユーザー環境は、トランザクション・タイプの変数を宣言してから、スレーブWrite ドライバが get_wr_reactive をコールしてWrite トランザクションが来るまで待っている。
Write トランザクションが来たら、ユーザー環境が用意されたデータでもランダムデータでも応答を用意する。それをスレーブWrite ドライバが仮想インターフェース越しに、AXI VIP に送る。
AXI VIP は応答をAXI System に物理的な信号線で伝える。

Simple SRAM Memory Model
AXI Slave VIP はSystemVerilog の配列を使ったシンプルなメモリ・モデルがある。
Write トランザクションでは、メモリのデータをWrite して、Read トランザクションでは、メモリからデータをRead することができる。
この機能は、ランタイム・スレーブ・モードで、AXI Slave VIPとAXI Pass-through VIP に実装されているそうだ。
メモリ・モデルには、backdoor_memory_write と backdoor_memory_read があって、それぞれ Write または Read するバックドアAPI とのこと。
やはり、メモリ・モデルが無いとAXI Slave を処理するのは厳しい気がするので、これがあって良かった。
AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”の32ページのFigure 4-8: Memory Model”を引用する。
Vivado_2017-1_29_170423.png
なお、readmemh はサポートされていないそうだ。あと、reset してもメモリ内容には影響が無いそうだ。

AXI Slave Simple Memory VIP
AXI Slave Simple Memory VIP はAXI Slave VIP にメモリ・モデルが入っているもので、こっちのほうが使いやすいと思う。
私だったら、これを使用すると思う。
  1. 2017年04月23日 07:00 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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