Code Browser Pages:
| //////////////////////////////////////////////// ////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 |