UVM Sequencer
Summary
The UVM Sequencer is
Coding Guidelines
Coding Guidelines
- Use conditional compilation guards to avoid compiling the same include file more than once.
var_name = transaction_type::type_id::create("var_name");
Code Example
| example_uvc_sequence_item.sv |
|---|
| `ifndef GPIO_UVC_SEQUENCER_SV
`define GPIO_UVC_SEQUENCER_SV
//typedef uvm_sequencer #(gpio_uvc_sequence_item) gpio_uvc_sequencer;
class gpio_uvc_sequencer extends uvm_sequencer #(gpio_uvc_sequence_item);
`uvm_component_utils(gpio_uvc_sequencer)
gpio_uvc_config m_config;
extern function new(string name, uvm_component parent);
extern function void build_phase(uvm_phase phase);
endclass : gpio_uvc_sequencer
function gpio_uvc_sequencer::new(string name, uvm_component parent);
super.new(name, parent);
endfunction : new
function void gpio_uvc_sequencer::build_phase(uvm_phase phase);
if (!uvm_config_db#(gpio_uvc_config)::get(get_parent(), "", "config", m_config)) begin
`uvm_fatal(get_name(), "Could not retrieve gpio_uvc_config from config db")
end
endfunction : build_phase
`endif // GPIO_UVC_SEQUENCER_SV
|
Reference Material
Accellera
Verification Methodology Cookbooks
Source Code