Altera Mentor Verification IP Altera Edition AMBA AXI3/4T Manuel d'utilisateur Page 172

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 783
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 171
Mentor VIP AE AXI3/4 User Guide, V10.2b
154
SystemVerilog Tutorials
Verifying a Slave DUT
September 2013
Example 6-16. handle_write_resp_ready()
// Task : handle_write_resp_ready
// This method assert/de-assert the write response channel ready signal.
// Assertion and de-assertion is done based on following variable's value:
// m_wr_resp_phase_ready_delay
// master_ready_delay_mode
task automatic handle_write_resp_ready;
bit seen_valid_ready;
int tmp_ready_delay;
axi4_master_ready_delay_mode_e tmp_mode;
forever
begin
wait(m_wr_resp_phase_ready_delay > 0);
tmp_ready_delay = m_wr_resp_phase_ready_delay;
tmp_mode = master_ready_delay_mode;
if (tmp_mode == AXI4_VALID2READY)
begin
fork
bfm.execute_write_resp_ready(1'b0);
join_none
bfm.get_write_response_cycle;
repeat(tmp_ready_delay - 1) bfm.wait_on(AXI4_CLOCK_POSEDGE);
bfm.execute_write_resp_ready(1'b1);
seen_valid_ready = 1'b1;
end
else // AXI4_TRANS2READY
begin
if (seen_valid_ready == 1'b0)
begin
do
bfm.wait_on(AXI4_CLOCK_POSEDGE);
while (!((bfm.BVALID === 1'b1) && (bfm.BREADY === 1'b1)));
end
fork
bfm.execute_write_resp_ready(1'b0);
join_none
repeat(tmp_ready_delay) bfm.wait_on(AXI4_CLOCK_POSEDGE);
fork
bfm.execute_write_resp_ready(1'b1);
join_none
seen_valid_ready = 1'b0;
end
end
endtask
Vue de la page 171
1 2 ... 167 168 169 170 171 172 173 174 175 176 177 ... 782 783

Commentaires sur ces manuels

Pas de commentaire