# aanchaljain07/amba_apb-uvm-verification architecture

> Architecture diagram of the GitHub repository aanchaljain07/amba_apb-uvm-verification, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aanchaljain07/amba_apb-uvm-verification
- Repository: https://github.com/aanchaljain07/amba_apb-uvm-verification

## Overview

This repository is a UVM testbench for verifying APB read/write behavior, protocol correctness, reset, and error handling. The documented flow centers on transaction-level stimulus, driving APB signals to the DUT, observing activity, then checking results and collecting coverage. The README identifies the environment and agent hierarchy and the monitor’s outputs; source excerpts were unavailable, so links not explicitly documented are omitted.

Main entry points: [`agent.sv`](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/agent.sv) (Agent), [`monitor.sv`](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/monitor.sv) (Monitor), [`driver.sv`](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/driver.sv) (Driver), [`env.sv`](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/env.sv) (Environment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_stimulus["Transaction stimulus"]
  node_test["Testcases<br/>[test.sv]"]
  node_sequence["Sequence<br/>[seq.sv]"]
  node_item["Sequence item<br/>[seq_item.sv]"]
end

subgraph group_execution["UVM execution"]
  node_env["Environment<br/>[env.sv]"]
  node_agent["Agent<br/>[agent.sv]"]
  node_sequencer["Sequencer<br/>[sequencer.sv]"]
  node_driver["Driver<br/>[driver.sv]"]
  node_monitor["Monitor<br/>[monitor.sv]"]
end

subgraph group_design["APB design"]
  node_interface["APB interface<br/>[interface.sv]"]
  node_dut["APB DUT<br/>[rtl_new.v]"]
end

subgraph group_analysis["Checking and coverage"]
  node_scoreboard["Scoreboard<br/>[scoreboard.sv]"]
  node_coverage["Coverage collector<br/>[coverage.sv]"]
end

node_env -->|"connects components"| node_agent
node_agent -->|"contains"| node_driver
node_agent -->|"contains"| node_monitor
node_agent -->|"contains"| node_sequencer
node_driver -->|"drives signals"| node_interface
node_monitor -->|"sends transactions"| node_scoreboard
node_monitor -->|"sends transactions"| node_coverage

click node_test "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/test.sv"
click node_sequence "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/seq.sv"
click node_item "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/seq_item.sv"
click node_env "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/env.sv"
click node_agent "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/agent.sv"
click node_sequencer "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/sequencer.sv"
click node_driver "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/driver.sv"
click node_monitor "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/monitor.sv"
click node_interface "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/interface.sv"
click node_dut "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/rtl_new.v"
click node_scoreboard "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/scoreboard.sv"
click node_coverage "https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/coverage.sv"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_test,node_sequence,node_item toneBlue
class node_env,node_agent,node_sequencer,node_driver,node_monitor toneAmber
class node_interface,node_dut toneMint
class node_scoreboard,node_coverage toneRose
```

## Components

### Transaction stimulus

- [Testcases](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/test.sv): `test.sv`
- [Sequence](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/seq.sv): `seq.sv`
- [Sequence item](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/seq_item.sv): `seq_item.sv`

### UVM execution

- [Environment](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/env.sv): `env.sv`
- [Agent](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/agent.sv): `agent.sv`
- [Sequencer](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/sequencer.sv): `sequencer.sv`
- [Driver](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/driver.sv): `driver.sv`
- [Monitor](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/monitor.sv): `monitor.sv`

### APB design

- [APB interface](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/interface.sv): `interface.sv`
- [APB DUT](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/rtl_new.v): `rtl_new.v`

### Checking and coverage

- [Scoreboard](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/scoreboard.sv): `scoreboard.sv`
- [Coverage collector](https://github.com/aanchaljain07/amba_apb-uvm-verification/blob/main/coverage.sv): `coverage.sv`

## Connections

- Environment → Agent: connects components
- Agent → Driver: contains
- Agent → Monitor: contains
- Agent → Sequencer: contains
- Driver → APB interface: drives signals
- Monitor → Scoreboard: sends transactions
- Monitor → Coverage collector: sends transactions
