this is a very example code for req/grant test case.
// timing modeling task req_grant_00(); m_vif.REQ <= 0; m_vif.GRANT <= 0; @(posedge m_vif.CLK); endtask : req_grant_00 task req_grant_01(); m_vif.REQ <= 0; m_vif.GRANT <= 1; @(posedge m_vif.CLK); endtask : req_grant_01 task req_grant_10(); m_vif.REQ <= 1; m_vif.GRANT <= 0; @(posedge m_vif.CLK); endtask : req_grant_10 task req_grant_11(); m_vif.REQ <= 1; m_vif.GRANT <= 1; @(posedge m_vif.CLK); endtask : req_grant_1 task task wave_gen(); list = {`ON_OFF, `ON_ON, `OFF_ON, `OFF_OFF}; foreach(list[i]) begin case(list[i]) `ON_OFF : req_grant_10(); `ON_ON : req_grant_11(); `OFF_OFF: req_grant_00(); `OFF_ON : req_grant_01(); endcase end endtask
沒有留言:
張貼留言