# kumarrishav14/axi architecture

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

- Interactive diagram: https://gitdiagram.com/kumarrishav14/axi
- Repository: https://github.com/kumarrishav14/axi

## Overview

This repository is AXI protocol verification IP. Its documented workflow provides configurable tests that run AXI read and write sequences in parallel through sequencers and a shared driver; master and slave agents also provide drivers and monitors, with a scoreboard in the environment. The README names these components but does not expose source excerpts, so connections beyond explicitly documented setup and sequence dispatch are omitted.

Main entry points: [`axi_env.sv`](https://github.com/kumarrishav14/axi/blob/main/axi_env.sv) (Read/write sequencers), [`axi_tb_top.sv`](https://github.com/kumarrishav14/axi/blob/main/axi_tb_top.sv) (Testbench top), [`axi_test.sv`](https://github.com/kumarrishav14/axi/blob/main/axi_test.sv) (Test), [`axi_read_seq.sv`](https://github.com/kumarrishav14/axi/blob/main/axi_read_seq.sv) (Read sequence)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_test_setup["Test setup"]
  node_test["Test<br/>[axi_test.sv]"]
  node_top["Testbench top<br/>[axi_tb_top.sv]"]
  node_config["Configuration objects"]
end

subgraph group_environment["Verification environment"]
  node_environment["Environment<br/>[axi_env.sv]"]
  node_master_agent["Master agent<br/>[axi_master.sv]"]
  node_slave_agent["Slave agent<br/>[axi_slave.sv]"]
end

subgraph group_traffic["AXI traffic"]
  node_sequence_item["Sequence item<br/>[axi_transaction.sv]"]
  node_read_sequence["Read sequence<br/>[axi_read_seq.sv]"]
  node_write_sequence["Write sequence<br/>[axi_write_seq.sv]"]
  node_sequencers["Read/write sequencers<br/>[axi_env.sv]"]
  node_master_driver["Master driver<br/>[axi_m_driver.sv]"]
  node_slave_driver["Slave driver<br/>[axi_s_driver.sv]"]
  node_interface["AXI interface<br/>[axi_interface.sv]"]
end

subgraph group_observation["Protocol checking"]
  node_master_monitor["Master monitor<br/>[axi_m_monitor.sv]"]
  node_slave_monitor["Slave monitor<br/>[axi_s_monitor.sv]"]
  node_scoreboard["Scoreboard<br/>[axi_scoreboard.sv]"]
end

node_test_user(("Test selector"))

node_test_user -->|"selects test"| node_test
node_top -->|"configures environment"| node_environment
node_top -->|"sets configuration"| node_config
node_test -->|"runs in"| node_environment
node_read_sequence -->|"dispatches reads"| node_sequencers
node_write_sequence -->|"dispatches writes"| node_sequencers
node_sequencers -->|"dispatches traffic"| node_master_driver

click node_test "https://github.com/kumarrishav14/axi/blob/main/axi_test.sv"
click node_top "https://github.com/kumarrishav14/axi/blob/main/axi_tb_top.sv"
click node_config "https://github.com/kumarrishav14/axi/blob/main/axi_config_objs.svh"
click node_environment "https://github.com/kumarrishav14/axi/blob/main/axi_env.sv"
click node_master_agent "https://github.com/kumarrishav14/axi/blob/main/axi_master.sv"
click node_slave_agent "https://github.com/kumarrishav14/axi/blob/main/axi_slave.sv"
click node_sequence_item "https://github.com/kumarrishav14/axi/blob/main/axi_transaction.sv"
click node_read_sequence "https://github.com/kumarrishav14/axi/blob/main/axi_read_seq.sv"
click node_write_sequence "https://github.com/kumarrishav14/axi/blob/main/axi_write_seq.sv"
click node_sequencers "https://github.com/kumarrishav14/axi/blob/main/axi_env.sv"
click node_master_driver "https://github.com/kumarrishav14/axi/blob/main/axi_m_driver.sv"
click node_slave_driver "https://github.com/kumarrishav14/axi/blob/main/axi_s_driver.sv"
click node_interface "https://github.com/kumarrishav14/axi/blob/main/axi_interface.sv"
click node_master_monitor "https://github.com/kumarrishav14/axi/blob/main/axi_m_monitor.sv"
click node_slave_monitor "https://github.com/kumarrishav14/axi/blob/main/axi_s_monitor.sv"
click node_scoreboard "https://github.com/kumarrishav14/axi/blob/main/axi_scoreboard.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_top,node_config toneBlue
class node_environment,node_master_agent,node_slave_agent toneAmber
class node_sequence_item,node_read_sequence,node_write_sequence,node_sequencers,node_master_driver,node_slave_driver,node_interface toneMint
class node_master_monitor,node_slave_monitor,node_scoreboard toneRose
class node_test_user toneIndigo
```

## Components

### Test setup

- [Test](https://github.com/kumarrishav14/axi/blob/main/axi_test.sv): `axi_test.sv`
- [Testbench top](https://github.com/kumarrishav14/axi/blob/main/axi_tb_top.sv): `axi_tb_top.sv`
- [Configuration objects](https://github.com/kumarrishav14/axi/blob/main/axi_config_objs.svh): `axi_config_objs.svh`

### Verification environment

- [Environment](https://github.com/kumarrishav14/axi/blob/main/axi_env.sv): `axi_env.sv`
- [Master agent](https://github.com/kumarrishav14/axi/blob/main/axi_master.sv): `axi_master.sv`
- [Slave agent](https://github.com/kumarrishav14/axi/blob/main/axi_slave.sv): `axi_slave.sv`

### AXI traffic

- [Sequence item](https://github.com/kumarrishav14/axi/blob/main/axi_transaction.sv): `axi_transaction.sv`
- [Read sequence](https://github.com/kumarrishav14/axi/blob/main/axi_read_seq.sv): `axi_read_seq.sv`
- [Write sequence](https://github.com/kumarrishav14/axi/blob/main/axi_write_seq.sv): `axi_write_seq.sv`
- [Read/write sequencers](https://github.com/kumarrishav14/axi/blob/main/axi_env.sv): `axi_env.sv`
- [Master driver](https://github.com/kumarrishav14/axi/blob/main/axi_m_driver.sv): `axi_m_driver.sv`
- [Slave driver](https://github.com/kumarrishav14/axi/blob/main/axi_s_driver.sv): `axi_s_driver.sv`
- [AXI interface](https://github.com/kumarrishav14/axi/blob/main/axi_interface.sv): `axi_interface.sv`

### Protocol checking

- [Master monitor](https://github.com/kumarrishav14/axi/blob/main/axi_m_monitor.sv): `axi_m_monitor.sv`
- [Slave monitor](https://github.com/kumarrishav14/axi/blob/main/axi_s_monitor.sv): `axi_s_monitor.sv`
- [Scoreboard](https://github.com/kumarrishav14/axi/blob/main/axi_scoreboard.sv): `axi_scoreboard.sv`

### Other components

- **Test selector**

## Connections

- Test selector → Test: selects test
- Testbench top → Environment: configures environment
- Testbench top → Configuration objects: sets configuration
- Test → Environment: runs in
- Read sequence → Read/write sequencers: dispatches reads
- Write sequence → Read/write sequencers: dispatches writes
- Read/write sequencers → Master driver: dispatches traffic
