OpenCores
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/tb/agent/coverage
    from Rev 11 to Rev 13
    Reverse comparison

Rev 11 → Rev 13

/uart_coverage.svh
20,16 → 20,13
// ONLY AND IT IS PROHIBTED TO USE THIS MATERIAL WITHOUT THE CREATOR'S PERMISSION
//-------------------------------------------------------------------------------------------------
 
class uart_coverage extends uvm_component;
 
class uart_coverage extends uvm_subscriber#(uart_transaction);
`uvm_component_utils(uart_coverage)
 
uart_transaction trans,_trans;
 
uvm_analysis_export #(uart_transaction) cov_mon;
 
uvm_tlm_analysis_fifo #(uart_transaction) mon_fifo;
 
covergroup trans_attrib;
communication_mode:
coverpoint trans._mode{
47,7 → 44,7
covergroup text_mode_cov;
command:
coverpoint trans._command{
bins valid_command ={read,write};
bins valid_command ={read,2};
illegal_bins invalid_command={nop,invalid_read,invalid_write};
}
first_white_space_field:
63,7 → 60,7
covergroup binary_mode_cov;
command:
coverpoint trans._command{
bins normal_command={read,write,nop};
bins normal_command={read,2,nop};
bins wrong_command ={invalid_read,invalid_write};
}
acknowledge_requirement:
92,8 → 89,9
extern task run_phase (uvm_phase);
 
extern function void write (uart_transaction t);
endclass:uart_coverage
 
 
104,21 → 102,19
trans = uart_transaction::type_id::create("trans");
_trans = uart_transaction::type_id::create("_trans");
 
cov_mon = new ("cov_mon",this);
mon_fifo = new ("mon_fifo",this);
 
endfunction:build_phase
 
function void uart_coverage::connect_phase(uvm_phase phase);
cov_mon.connect(mon_fifo.analysis_export);
// cov_mon.connect(mon_fifo.analysis_export);
endfunction:connect_phase
 
task uart_coverage::run_phase(uvm_phase phase);
forever
begin
mon_fifo.get(_trans);
$cast(trans,_trans.clone());
trans_attrib.sample();
 
endtask:run_phase
 
function void uart_coverage::write(uart_transaction t);
$cast(trans,t.clone());
trans_attrib.sample();
if(trans._mode == text)
begin
text_mode_cov.sample();
128,5 → 124,4
begin
binary_mode_cov.sample();
end
end
endtask:run_phase
endfunction // write

powered by: WebSVN 2.1.0

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