URL
https://opencores.org/ocsvn/uart2bus_testbench/uart2bus_testbench/trunk
Subversion Repositories uart2bus_testbench
Compare Revisions
- This comparison shows the changes necessary to convert path
/uart2bus_testbench/trunk
- from Rev 10 to Rev 11
- ↔ Reverse comparison
Rev 10 → Rev 11
/tb/agent/coverage/uart_coverage.svh
89,9 → 89,11
extern function void build_phase(uvm_phase phase); |
|
extern function void connect_phase (uvm_phase phase); |
|
extern task run_phase (uvm_phase); |
|
|
extern task run_phase (uvm_phase); |
|
|
endclass:uart_coverage |
|
|
120,6 → 122,7
if(trans._mode == text) |
begin |
text_mode_cov.sample(); |
uvm_resource_db#(int)::write_by_name("coverage_cloud","text_coverage",text_mode_cov.get_coverage()); |
end |
else if (trans._mode == binary) |
begin |
126,4 → 129,4
binary_mode_cov.sample(); |
end |
end |
endtask:run_phase |
endtask:run_phase |
/tb/test/uart_test.svh
108,6 → 108,7
printer.knobs.depth = 3; |
uvm_resource_db#(int)::set("Reporting","matched_packets",0,null); |
uvm_root::get().set_timeout(10s); |
uvm_root::get().finish_on_completion=1'b0; |
endfunction // TE_configuration |
|
task run_phase (uvm_phase phase); |
126,7 → 127,11
$display("--------------------------------------------------"); |
`uvm_info("FINAL STATUS",$sformatf("The number of matched packets are %0d",matched),UVM_NONE); |
endfunction // report_phase |
|
|
function void final_phase (uvm_phase phase); |
$stop; |
endfunction // final_phase |
|
endclass:uart_base_test |
|
//------------------------------------------------------------------------------------------------- |
425,6 → 430,8
|
rand int unsigned command_number; |
|
bit coverage_hit = 1'b0; |
|
seq_1p1 seq1; |
seq_1p2 seq2; |
seq_1p3 seq3; |
492,12 → 499,14
seq24 = seq_2p11::type_id::create("seq24"); |
seq25 = seq_2p12::type_id::create("seq25"); |
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 |
|
task run_phase (uvm_phase phase); |
super.run_phase(phase); |
phase.raise_objection(this); |
repeat (100) |
while (coverage_hit==1'b0) |
begin |
randomize(); |
case (command_number) |
609,8 → 618,16
begin |
`uvm_fatal("OUT OF RANGE","Command Number is Out of Range") |
end |
endcase |
endcase // case (command_number) |
evaluate_coverage(); |
end |
phase.drop_objection(this); |
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 |
/tb/uart_top.sv
104,9 → 104,9
uvm_config_db#(virtual rf_interface)::set(uvm_root::get(), "*", "rf_inf",rf_inf); |
|
uvm_config_db#(virtual uart_arbiter)::set(uvm_root::get(),"*","arb_inf",arb_inf); |
run_test("write_command_mode"); |
run_test("text_mode_test"); |
|
|
end |
|
endmodule:uart_top_tb |
endmodule:uart_top_tb |