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 |