UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 51795

14.2 EDK - AXI BFM - Performing multiple reads in example testbench causes an error

説明

When performing multiple Single Read tasks in the BFM test bench bfm_system_tb.v, the simulator produces an error indicating that there are too many pending transactions.

ソリューション

The auto-generated AXI BFM test bench only performs one data read task. However, if the test bench is modified to perform multiple RECEIVE_READ_DATA API tasks, additional modification are required. Per DS824: AXI Bus Functional Models, the user will need to call the 'remove_pending_transaction' task to ensure that the pending transaction counter is decremented. Otherwise, the simulation will fail when the counter reaches the maximum number of outstanding transactions specified by the system. This is done automatically by the RECEIVE_READ_BURST and RECEIVE_WRITE_RESPONSE API tasks.

In order to perform more than one RECEIVE_READ_DATA tasks, bfm_system_tb.v must be modified to include a 'remove_pending_transaction' task after all of the data is received. Be sure to make the following modifications:

task automatic SINGLE_READ;
input [`ADDR_BUS_WIDTH-1 : 0] address;
output [`C_SLV_DWIDTH-1 : 0] data;
input [`PROT_BUS_WIDTH-1 : 0] prot;
output[`RESP_BUS_WIDTH-1 : 0] response;
begin
dut.bfm_lite_processor.bfm_lite_processor.cdn_axi4_lite_master_bfm_inst.SEND_READ_ADDRESS(address,prot);
dut.bfm_lite_processor.bfm_lite_processor.cdn_axi4_lite_master_bfm_inst.RECEIVE_READ_DATA(data,response);
dut.bfm_lite_processor.bfm_lite_processor.cdn_axi4_lite_master_bfm_inst.remove_pending_transaction();
CHECK_RESPONSE_OKAY(response);
end
endtask

AR# 51795
作成日 02/14/2013
最終更新日 02/14/2013
ステータス アクティブ
タイプ 一般
ツール
  • EDK
IP
  • AXI Bus Functional Model