AXI スレーブ VIP には axi_slv_agent と axi_slv_mem_agent の 2 つのエージェントがあります。独自にトラフィックを生成する場合は、 axi_slv_agent と get_rd_reactive を使用してください。 axi_slv_mem_agent はトラフィックの生成方法が決まっています。
サンプル デザインのシミュレーション セット、 sim_all_config に示した読み出し応答を置くことを推奨します。次に、手順を示します。
1. スレーブ エージェントの読み出しドライバーで、 get_rd_reactive を使用して読み出しコマンドを受信します。
2. トランザクション読み出しデータ情報を書き込んで、AXI スレーブ VIP インターフェイスに返します。 get_rd_reactive と send はどちらもブロッキングであるため、ブロッキング イベントのない initial および forever ブロックに含める必要があります。次に、コード例を示します。
//slave VIP agent gets read transaction cmd information, fill in data information and send it back to Slave VIP interface
initial begin
forever begin
slv_agent.rd_driver.get_rd_reactive(rd_reactive);
fill_payload(rd_reactive);
fill_ruser(rd_reactive);
fill_beat_delay(rd_reactive);
slv_agent.rd_driver.send(rd_reactive);
end
end