Code Browser Pages:
Files in
vmm_scenario.tar



filelist
README.txt
Current file: scenario.sv
testcase.sv
transaction.sv



////////////////////////////////////////////////
////s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~s////
////s           www.testbench.in           s////
////s                                      s////
////s             VMM Tutorial             s////
////s                                      s////  
////s           gopi@testbench.in          s////
////s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~s////
////////////////////////////////////////////////


`vmm_scenario_gen(instruction,"Instruction Scenario Generator")

class instruction_scenario_add_sub extends instruction_scenario;

///////////////////////////////////////////////////////////////
//////              ADDITION SCENARIO                //////////
///////////////////////////////////////////////////////////////

  int addition_scenario_id  ;

  constraint addition_scenario_items {
       if($void(scenario_kind) == addition_scenario_id) {
        repeated == 0;
        length == 4;
        foreach(items[i])
        if(i == 0)
           this.items[i].inst == instruction::LOAD__A;
        else if(i == 1)
           this.items[i].inst == instruction::LOAD__B;
        else if(i == 2)
           this.items[i].inst == instruction::ADD_A_B;
        else if(i == 3)
           this.items[i].inst == instruction::STORE_C;
       }
  }

///////////////////////////////////////////////////////////////
//////            ASUBTRACTION SCENARIO              //////////
///////////////////////////////////////////////////////////////

  int subtraction_scenario_id ;

  constraint subtraction_scenario_items {
       if($void(scenario_kind) == subtraction_scenario_id) {
        repeated == 0;
        length == 4;
        foreach(items[i])
        if(i == 0)
           this.items[i].inst == instruction::LOAD__A;
        else if(i == 1)
           this.items[i].inst == instruction::LOAD__B;
        else if(i == 2)
           this.items[i].inst == instruction::SUB_A_B;
        else if(i == 3)
           this.items[i].inst == instruction::STORE_C;
       }
   }

   function new();
       this.addition_scenario_id = define_scenario(" ADDITION ",4);
       this.subtraction_scenario_id = define_scenario(" SUBSTRACTION ",4);
   endfunction

endclass