class apb_driver extends uvm_driver #( | apb_seq_item, | | apb_seq_item | ) |
|
Implements an APB bus master acting as the driver of an APB agent.
The driver receives transactions through a pull port, normally connected to the agent’s sequencer. The transactions are translated into APB bus transactions.
This driver implementation supports only valid and properly framed bus transactions.
The driver supports multiple bus slaves. The number of slaves and their address map is controlled through an agent’s configuration obtained from the UVM Configuration DB during the build phase.
@todo A more proper way to configure the driver is through a direct config object assignment, rather than through the UVM Config DB.
Summary
apb_driver | Implements an APB bus master acting as the driver of an APB agent. |
Variables | |
apb_if | Reference to the APB interface. |
m_cfg | Driver configuration. |
Functions | |
sel_lookup | Looks up the <address> and returns a PSEL line index that should be activated. |
new | Conventional UVM component constructor. |
run_phase | Forks off a forever loop in which the driver pulls transactions and drives them on the APB bus. |
build_phase | Merely obtains the driver configuration from the UVM Configuration DB. |