# deekshithag1320/data-aligner-ip-verification architecture

> Architecture diagram of the GitHub repository deekshithag1320/data-aligner-ip-verification, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deekshithag1320/data-aligner-ip-verification
- Repository: https://github.com/deekshithag1320/data-aligner-ip-verification

## Overview

This repository is a UVM verification environment for a data-aligner IP. Its apparent workflow is test selection, virtual-sequence coordination, protocol-agent stimulus and monitoring, then checking against the RTL; the RTL contains alignment, control/register, and buffering/synchronization responsibilities. The tree supports these subsystem boundaries, but no source excerpts or subsystem README details were provided, so the connections below are dashed and unverified rather than asserted as observed calls. The graph omits individual scenario and register-sequence files to keep the view at subsystem level.

Main entry points: [`TB/algn_env.sv`](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_env.sv) (Verification Environment), [`RTL/aligner_core.sv`](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner_core.sv) (Alignment Core), [`RTL/aligner.sv`](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner.sv) (Aligner), [`RTL/rx_ctrl.sv`](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/rx_ctrl.sv) (Receive Control)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_rtl["Aligner RTL"]
  node_aligner["Aligner<br/>[aligner.sv]"]
  node_aligner_core["Alignment Core<br/>[aligner_core.sv]"]
  node_rx_ctrl["Receive Control<br/>[rx_ctrl.sv]"]
  node_tx_ctrl["Transmit Control<br/>[tx_ctrl.sv]"]
  node_ctrl_regs["Control and Registers<br/>[ctrl.sv]"]
  node_registers["Register Storage<br/>[regs.sv]"]
  node_fifo_sync["FIFO and Synchronizers<br/>[synch_fifo.sv]"]
  node_apb_if["APB Interface<br/>[apb_if.sv]"]
  node_md_if["Media Interface<br/>[md_if.sv]"]
end

subgraph group_agents["Protocol Agents"]
  node_apb_agent["APB Agent<br/>[apb_agent.sv]"]
  node_rx_agent["Receive Agent<br/>[md_rx_agent.sv]"]
  node_tx_agent["Transmit Agent<br/>[md_tx_agent.sv]"]
end

subgraph group_tb["UVM Testbench"]
  node_env["Verification Environment<br/>[algn_env.sv]"]
  node_virtual_seq["Virtual Sequencer"]
  node_scoreboard["Scoreboard<br/>[algn_scoreboard.sv]"]
  node_coverage["Coverage<br/>[algn_coverage.sv]"]
  node_testbench["Testbench<br/>[testbench.sv]"]
end

subgraph group_tests["Test Scenarios"]
  node_test_base["Base Test<br/>[algn_test_base.sv]"]
  node_test_scenarios["Scenario Tests"]
end

node_initiator(("Test Runner"))

node_initiator -.->|"selects"| node_test_base
node_test_base -.->|"starts"| node_testbench
node_test_scenarios -.->|"runs scenarios"| node_virtual_seq
node_virtual_seq -.->|"coordinates"| node_env
node_env -.->|"configures"| node_apb_agent
node_env -.->|"configures"| node_rx_agent
node_env -.->|"configures"| node_tx_agent
node_apb_agent -.->|"drives and monitors"| node_apb_if
node_rx_agent -.->|"drives and monitors"| node_md_if
node_tx_agent -.->|"drives and monitors"| node_md_if
node_testbench -.->|"instantiates"| node_aligner
node_aligner -.->|"delegates"| node_aligner_core
node_aligner_core -.->|"coordinates"| node_rx_ctrl
node_aligner_core -.->|"coordinates"| node_tx_ctrl
node_ctrl_regs -.->|"accesses"| node_registers
node_rx_ctrl -.->|"uses"| node_fifo_sync
node_tx_ctrl -.->|"uses"| node_fifo_sync
node_env -.->|"checks transactions"| node_scoreboard
node_env -.->|"collects coverage"| node_coverage

click node_aligner "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner.sv"
click node_aligner_core "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner_core.sv"
click node_rx_ctrl "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/rx_ctrl.sv"
click node_tx_ctrl "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/tx_ctrl.sv"
click node_ctrl_regs "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/ctrl.sv"
click node_registers "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/regs.sv"
click node_fifo_sync "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/synch_fifo.sv"
click node_apb_if "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/apb_if.sv"
click node_md_if "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/md_if.sv"
click node_apb_agent "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/APB_AGENT/apb_agent.sv"
click node_rx_agent "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/MD_RX_AGENT/md_rx_agent.sv"
click node_tx_agent "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/MD_TX_AGENT/md_tx_agent.sv"
click node_env "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_env.sv"
click node_virtual_seq "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_virtual_sequencer.sv"
click node_scoreboard "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_scoreboard.sv"
click node_coverage "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_coverage.sv"
click node_testbench "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/testbench.sv"
click node_test_base "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TEST/algn_test_base.sv"
click node_test_scenarios "https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TEST/algn_test_data_alignment.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_aligner,node_aligner_core,node_rx_ctrl,node_tx_ctrl,node_ctrl_regs,node_registers,node_fifo_sync,node_apb_if,node_md_if toneBlue
class node_apb_agent,node_rx_agent,node_tx_agent toneAmber
class node_env,node_virtual_seq,node_scoreboard,node_coverage,node_testbench toneMint
class node_test_base,node_test_scenarios toneRose
class node_initiator toneIndigo
```

## Components

### Aligner RTL

- [Aligner](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner.sv): `RTL/aligner.sv`
- [Alignment Core](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/aligner_core.sv): `RTL/aligner_core.sv`
- [Receive Control](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/rx_ctrl.sv): `RTL/rx_ctrl.sv`
- [Transmit Control](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/tx_ctrl.sv): `RTL/tx_ctrl.sv`
- [Control and Registers](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/ctrl.sv): `RTL/ctrl.sv`
- [Register Storage](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/regs.sv): `RTL/regs.sv`
- [FIFO and Synchronizers](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/synch_fifo.sv): `RTL/synch_fifo.sv`
- [APB Interface](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/apb_if.sv): `RTL/apb_if.sv`
- [Media Interface](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/RTL/md_if.sv): `RTL/md_if.sv`

### Protocol Agents

- [APB Agent](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/APB_AGENT/apb_agent.sv): `APB_AGENT/apb_agent.sv`
- [Receive Agent](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/MD_RX_AGENT/md_rx_agent.sv): `MD_RX_AGENT/md_rx_agent.sv`
- [Transmit Agent](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/MD_TX_AGENT/md_tx_agent.sv): `MD_TX_AGENT/md_tx_agent.sv`

### UVM Testbench

- [Verification Environment](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_env.sv): `TB/algn_env.sv`
- [Virtual Sequencer](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_virtual_sequencer.sv): `TB/algn_virtual_sequencer.sv`
- [Scoreboard](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_scoreboard.sv): `TB/algn_scoreboard.sv`
- [Coverage](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/algn_coverage.sv): `TB/algn_coverage.sv`
- [Testbench](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TB/testbench.sv): `TB/testbench.sv`

### Test Scenarios

- [Base Test](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TEST/algn_test_base.sv): `TEST/algn_test_base.sv`
- [Scenario Tests](https://github.com/deekshithag1320/data-aligner-ip-verification/blob/main/TEST/algn_test_data_alignment.sv): `TEST/algn_test_data_alignment.sv`

### Other components

- **Test Runner**

## Connections

- Test Runner → Base Test: selects
- Base Test → Testbench: starts
- Scenario Tests → Virtual Sequencer: runs scenarios
- Virtual Sequencer → Verification Environment: coordinates
- Verification Environment → APB Agent: configures
- Verification Environment → Receive Agent: configures
- Verification Environment → Transmit Agent: configures
- APB Agent → APB Interface: drives and monitors
- Receive Agent → Media Interface: drives and monitors
- Transmit Agent → Media Interface: drives and monitors
- Testbench → Aligner: instantiates
- Aligner → Alignment Core: delegates
- Alignment Core → Receive Control: coordinates
- Alignment Core → Transmit Control: coordinates
- Control and Registers → Register Storage: accesses
- Receive Control → FIFO and Synchronizers: uses
- Transmit Control → FIFO and Synchronizers: uses
- Verification Environment → Scoreboard: checks transactions
- Verification Environment → Coverage: collects coverage
