soliyu.blogg.se

Building a sequencer audulus
Building a sequencer audulus










building a sequencer audulus
  1. Building a sequencer audulus how to#
  2. Building a sequencer audulus driver#

How are driver/sequencer API methods used ? This should be called after get_next_item or a successful try_next_item call. Non-blocking method which completes the driver-sequencer handshake. Non-blocking method which will return null if a request object is not available from the sequencer. This should be followed by item_done call to complete the handshake. Method Nameīlocks until a request item is available from the sequencer.

Building a sequencer audulus driver#

The UVM driver uses the following methods to interact with the sequencer. However, they can be different if explicitly specified. It can also provide a response object back to the sequencer and usually the class type of both request and response items are the same. The driver has a TLM port of type uvm_seq_item_pull_port which can accept the parameterized request object from the uvm_sequencer.

building a sequencer audulus

UVM driver is a parameterized class which can drive a specific type of transaction object. Assign data from the received item into DUT interface Virtual task run_phase (uvm_phase phase) transaction level objects into pin wiggles at the DUT interface This is the main piece of driver code which decides how it has to translate `uvm_fatal (get_type_name (), "Didn't get handle to virtual interface if_name") If (! uvm_config_db #(virtual if_name) :: get (this, "", "vif", vif)) begin Virtual function void build_phase (uvm_phase phase) Actual interface object is later obtained by doing a get() call on uvm_config_db Declare virtual interface handle and get them in build phase This is standard code for all componentsįunction new (string name = "my_driver", uvm_component parent = null) Ģ. my_driver is user-given name for this class that has been derived from "uvm_driver" Create custom class inherited from uvm_driver, register with factory and call new Transaction level objects are obtained from the Sequencer and the UVM driver drives them to the design via an interface handle. All driver classes should be extended from uvm_driver, either directly or indirectly. For example, in order to drive a bus protocol like APB, UVM driver defines how the signals should be timed so that the target protocol becomes valid.

Building a sequencer audulus how to#

UVM driver is an active entity that has knowledge on how to drive signals to a particular interface of the design.












Building a sequencer audulus