Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual

Page 774

Advertising
background image

Mentor VIP AE AXI3/4 User Guide, V10.2b

754

VHDL AXI3 and AXI4 Test Programs
VHDL AXI4 Slave BFM Test Program

September 2013

-- Assertion and de-assertion is done based on
m_wr_addr_phase_ready_delay
process
variable tmp_ready_delay : integer;
begin
wait_on(AXI4_RESET_0_TO_1, index, AXI4_PATH_5, axi4_tr_if_5(index));
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_5, axi4_tr_if_5(index));
loop
while (tmp_config_num_outstanding_wr_phase >=
m_max_outstanding_write_trans) loop
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_5,
axi4_tr_if_5(index));
end loop;

--wait until m_wr_addr_phase_ready_delay > 0;
tmp_ready_delay := m_wr_addr_phase_ready_delay;
execute_write_addr_ready(0, 1, index, AXI4_PATH_5,
axi4_tr_if_5(index));
get_write_addr_cycle(index, AXI4_PATH_5, axi4_tr_if_5(index));
if(tmp_ready_delay > 1) then
for i in 0 to tmp_ready_delay-2 loop
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_5,
axi4_tr_if_5(index));
end loop;
end if;
execute_write_addr_ready(1, 1, index, AXI4_PATH_5,
axi4_tr_if_5(index));
end loop;
wait;
end process;

-- handle_read_addr_ready : read address ready through path 6
-- This method assert/de-assert the write address channel ready signal.
-- Assertion and de-assertion is done based on
m_rd_addr_phase_ready_delay
process
variable tmp_ready_delay : integer;
begin
wait_on(AXI4_RESET_0_TO_1, index, AXI4_PATH_6, axi4_tr_if_6(index));
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_6, axi4_tr_if_6(index));
loop
while (tmp_config_num_outstanding_rd_phase >=
m_max_outstanding_read_trans) loop
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_6,
axi4_tr_if_6(index));
end loop;

--wait until m_rd_addr_phase_ready_delay > 0;
tmp_ready_delay := m_rd_addr_phase_ready_delay;
execute_read_addr_ready(0, 1, index, AXI4_PATH_6,
axi4_tr_if_6(index));
get_read_addr_cycle(index, AXI4_PATH_6, axi4_tr_if_6(index));
if(tmp_ready_delay > 1) then
for i in 0 to tmp_ready_delay-2 loop
wait_on(AXI4_CLOCK_POSEDGE, index, AXI4_PATH_6,
axi4_tr_if_6(index));
end loop;
end if;

Advertising