OpenCores
URL https://opencores.org/ocsvn/uart2bus_testbench/uart2bus_testbench/trunk

Subversion Repositories uart2bus_testbench

[/] [uart2bus_testbench/] [trunk/] [tb/] [test/] [uart_test.svh] - Diff between revs 10 and 11

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 10 Rev 11
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.