Line 106... |
Line 106... |
function void TE_configuration();
|
function void TE_configuration();
|
report_server.set_server(report_server);
|
report_server.set_server(report_server);
|
printer.knobs.depth = 3;
|
printer.knobs.depth = 3;
|
uvm_resource_db#(int)::set("Reporting","matched_packets",0,null);
|
uvm_resource_db#(int)::set("Reporting","matched_packets",0,null);
|
uvm_root::get().set_timeout(10s);
|
uvm_root::get().set_timeout(10s);
|
|
uvm_root::get().finish_on_completion=1'b0;
|
endfunction // TE_configuration
|
endfunction // TE_configuration
|
|
|
task run_phase (uvm_phase phase);
|
task run_phase (uvm_phase phase);
|
phase.phase_done.set_drain_time(this,5000);
|
phase.phase_done.set_drain_time(this,5000);
|
endtask:run_phase
|
endtask:run_phase
|
Line 125... |
Line 126... |
$display("\t\t SIMULATION %s \n",status);
|
$display("\t\t SIMULATION %s \n",status);
|
$display("--------------------------------------------------");
|
$display("--------------------------------------------------");
|
`uvm_info("FINAL STATUS",$sformatf("The number of matched packets are %0d",matched),UVM_NONE);
|
`uvm_info("FINAL STATUS",$sformatf("The number of matched packets are %0d",matched),UVM_NONE);
|
endfunction // report_phase
|
endfunction // report_phase
|
|
|
|
function void final_phase (uvm_phase phase);
|
|
$stop;
|
|
endfunction // final_phase
|
|
|
endclass:uart_base_test
|
endclass:uart_base_test
|
|
|
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
//
|
//
|
// PURE TEXT MODE TESTS
|
// PURE TEXT MODE TESTS
|
Line 423... |
Line 428... |
// sequences described in text mode tests in the testbench specifications document.
|
// sequences described in text mode tests in the testbench specifications document.
|
class text_mode_test extends uart_base_test;
|
class text_mode_test extends uart_base_test;
|
|
|
rand int unsigned command_number;
|
rand int unsigned command_number;
|
|
|
|
bit coverage_hit = 1'b0;
|
|
|
seq_1p1 seq1;
|
seq_1p1 seq1;
|
seq_1p2 seq2;
|
seq_1p2 seq2;
|
seq_1p3 seq3;
|
seq_1p3 seq3;
|
seq_1p4 seq4;
|
seq_1p4 seq4;
|
seq_1p5 seq5;
|
seq_1p5 seq5;
|
Line 490... |
Line 497... |
seq22 = seq_2p9::type_id::create("seq22");
|
seq22 = seq_2p9::type_id::create("seq22");
|
seq23 = seq_2p10::type_id::create("seq23");
|
seq23 = seq_2p10::type_id::create("seq23");
|
seq24 = seq_2p11::type_id::create("seq24");
|
seq24 = seq_2p11::type_id::create("seq24");
|
seq25 = seq_2p12::type_id::create("seq25");
|
seq25 = seq_2p12::type_id::create("seq25");
|
seq26 = seq_2p13::type_id::create("seq26");
|
seq26 = seq_2p13::type_id::create("seq26");
|
|
uvm_resource_db #(int)::set("coverage_cloud","text_coverage",0,null);
|
|
//uvm_resource_db #(int)::set("coverage_cloud","text_coverage",0,null);
|
endfunction:build_phase
|
endfunction:build_phase
|
|
|
task run_phase (uvm_phase phase);
|
task run_phase (uvm_phase phase);
|
super.run_phase(phase);
|
super.run_phase(phase);
|
phase.raise_objection(this);
|
phase.raise_objection(this);
|
repeat (100)
|
while (coverage_hit==1'b0)
|
begin
|
begin
|
randomize();
|
randomize();
|
case (command_number)
|
case (command_number)
|
1:
|
1:
|
begin
|
begin
|
Line 607... |
Line 616... |
end
|
end
|
default:
|
default:
|
begin
|
begin
|
`uvm_fatal("OUT OF RANGE","Command Number is Out of Range")
|
`uvm_fatal("OUT OF RANGE","Command Number is Out of Range")
|
end
|
end
|
endcase
|
endcase // case (command_number)
|
|
evaluate_coverage();
|
end
|
end
|
phase.drop_objection(this);
|
phase.drop_objection(this);
|
endtask:run_phase
|
endtask:run_phase
|
|
|
|
function void evaluate_coverage();
|
|
int text_coverage;
|
|
uvm_resource_db#(int)::read_by_name("coverage_cloud","text_coverage",text_coverage);
|
|
if(text_coverage >= 95) coverage_hit=1'b1;
|
|
endfunction // evaluate_coverage
|
|
|
endclass:text_mode_test
|
endclass:text_mode_test
|