# tenstorrent/tt-oca-harness-aou architecture

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

- Interactive diagram: https://gitdiagram.com/tenstorrent/tt-oca-harness-aou
- Repository: https://github.com/tenstorrent/tt-oca-harness-aou

## Overview

AOU-RTL is an AXI4-to-UCIe FDI bridge IP. The principal workflow carries AXI transactions between chiplet-side AXI interfaces and the FDI data plane; integration can use a self-contained bringup wrapper or an externally managed FDI flow. APB provides configuration. The README documents parameterized FDI widths and the optional 3:1 AXI mux/splitter/aggregator. Internal links below are limited to the documented top-level roles and module naming; sampled source did not include RTL hierarchy or call wiring.

Main entry points: [`RTL/AOU_CORE.sv`](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE.sv) (Protocol core), [`RTL/AOU_TOP.sv`](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TOP.sv) (AOU_TOP), [`RTL/AOU_CORE_TOP.sv`](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE_TOP.sv) (AOU_CORE_TOP), [`RTL/AOU_TX_CORE.sv`](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_CORE.sv) (TX core)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_integration["Integration"]
  node_aou_top["AOU_TOP<br/>[AOU_TOP.sv]"]
  node_core_top["AOU_CORE_TOP<br/>[AOU_CORE_TOP.sv]"]
  node_bringup["FDI bringup"]
end

subgraph group_protocol["Protocol Engine"]
  node_core["Protocol core<br/>[AOU_CORE.sv]"]
  node_tx["TX core<br/>[AOU_TX_CORE.sv]"]
  node_rx["RX core<br/>[AOU_RX_CORE.sv]"]
  node_tx_fdi["TX FDI interface<br/>[AOU_TX_FDI_IF.sv]"]
  node_rx_fdi["RX FDI interface<br/>[AOU_RX_FDI_IF.sv]"]
  node_tx_buffer["TX AXI buffer"]
end

subgraph group_axi["AXI Handling"]
  node_axi_mux["AXI mux splitter"]
  node_aggregator["Write aggregator<br/>[AOU_AGGREGATOR.v]"]
  node_axi_down["AXI down path<br/>[AOU_AXI_DOWN.v]"]
  node_axi_up["AXI up path<br/>[AOU_AXI_UP.v]"]
end

subgraph group_control["Control and State"]
  node_sfr["Core registers<br/>[AOU_CORE_SFR.v]"]
  node_activation["Activation control"]
  node_credits["Credit control<br/>[AOU_CRD_CTRL.sv]"]
  node_early[("Early response table<br/>[AOU_EARLY_TABLE.sv]")]
  node_error["Error information<br/>[AOU_ERROR_INFO.sv]"]
end

node_axi_peer(("AXI peers"))
node_fdi_link(("UCIe FDI"))
node_apb_host(("APB host"))

node_axi_peer -->|"sends AXI"| node_aou_top
node_axi_peer -->|"sends AXI"| node_core_top
node_aou_top -->|"hosts engine"| node_core
node_core_top -->|"hosts engine"| node_core
node_aou_top -->|"includes bringup"| node_bringup
node_fdi_link -->|"carries FDI"| node_aou_top
node_fdi_link -->|"carries FDI"| node_core_top
node_apb_host -->|"configures"| node_core_top
node_apb_host -->|"configures"| node_aou_top
node_core -->|"dispatches TX"| node_tx
node_core -->|"dispatches RX"| node_rx
node_tx -->|"sends flits"| node_tx_fdi
node_rx_fdi -->|"receives flits"| node_rx
node_tx -->|"buffers AXI"| node_tx_buffer
node_apb_host -->|"writes registers"| node_sfr
node_core -->|"controls activation"| node_activation
node_core -->|"manages credits"| node_credits
node_core -->|"tracks responses"| node_early
node_core -->|"records errors"| node_error

click node_aou_top "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TOP.sv"
click node_core_top "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE_TOP.sv"
click node_bringup "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_FDI_BRINGUP_CTRL.sv"
click node_core "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE.sv"
click node_tx "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_CORE.sv"
click node_rx "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_RX_CORE.sv"
click node_tx_fdi "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_FDI_IF.sv"
click node_rx_fdi "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_RX_FDI_IF.sv"
click node_tx_buffer "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_AXI_BUFFER.sv"
click node_axi_mux "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI4MUX_3X1_TOP.v"
click node_aggregator "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AGGREGATOR.v"
click node_axi_down "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI_DOWN.v"
click node_axi_up "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI_UP.v"
click node_sfr "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE_SFR.v"
click node_activation "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_ACTIVATION_CTRL.sv"
click node_credits "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CRD_CTRL.sv"
click node_early "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_EARLY_TABLE.sv"
click node_error "https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_ERROR_INFO.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_aou_top,node_core_top,node_bringup toneBlue
class node_core,node_tx,node_rx,node_tx_fdi,node_rx_fdi,node_tx_buffer toneAmber
class node_axi_mux,node_aggregator,node_axi_down,node_axi_up toneMint
class node_sfr,node_activation,node_credits,node_early,node_error toneRose
class node_axi_peer,node_fdi_link,node_apb_host toneIndigo
```

## Components

### Integration

- [AOU_TOP](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TOP.sv): `RTL/AOU_TOP.sv`
- [AOU_CORE_TOP](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE_TOP.sv): `RTL/AOU_CORE_TOP.sv`
- [FDI bringup](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_FDI_BRINGUP_CTRL.sv): `RTL/AOU_FDI_BRINGUP_CTRL.sv`

### Protocol Engine

- [Protocol core](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE.sv): `RTL/AOU_CORE.sv`
- [TX core](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_CORE.sv): `RTL/AOU_TX_CORE.sv`
- [RX core](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_RX_CORE.sv): `RTL/AOU_RX_CORE.sv`
- [TX FDI interface](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_FDI_IF.sv): `RTL/AOU_TX_FDI_IF.sv`
- [RX FDI interface](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_RX_FDI_IF.sv): `RTL/AOU_RX_FDI_IF.sv`
- [TX AXI buffer](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_TX_AXI_BUFFER.sv): `RTL/AOU_TX_AXI_BUFFER.sv`

### AXI Handling

- [AXI mux splitter](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI4MUX_3X1_TOP.v): `RTL/AXI4MUX_3X1/AOU_AXI4MUX_3X1_TOP.v`
- [Write aggregator](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AGGREGATOR.v): `RTL/AXI4MUX_3X1/AOU_AGGREGATOR.v`
- [AXI down path](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI_DOWN.v): `RTL/AXI4MUX_3X1/AOU_AXI_DOWN.v`
- [AXI up path](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AXI4MUX_3X1/AOU_AXI_UP.v): `RTL/AXI4MUX_3X1/AOU_AXI_UP.v`

### Control and State

- [Core registers](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CORE_SFR.v): `RTL/AOU_CORE_SFR.v`
- [Activation control](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_ACTIVATION_CTRL.sv): `RTL/AOU_ACTIVATION_CTRL.sv`
- [Credit control](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_CRD_CTRL.sv): `RTL/AOU_CRD_CTRL.sv`
- [Early response table](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_EARLY_TABLE.sv): `RTL/AOU_EARLY_TABLE.sv`
- [Error information](https://github.com/tenstorrent/tt-oca-harness-aou/blob/main/RTL/AOU_ERROR_INFO.sv): `RTL/AOU_ERROR_INFO.sv`

### Other components

- **AXI peers**
- **UCIe FDI**
- **APB host**

## Connections

- AXI peers → AOU_TOP: sends AXI
- AXI peers → AOU_CORE_TOP: sends AXI
- AOU_TOP → Protocol core: hosts engine
- AOU_CORE_TOP → Protocol core: hosts engine
- AOU_TOP → FDI bringup: includes bringup
- UCIe FDI → AOU_TOP: carries FDI
- UCIe FDI → AOU_CORE_TOP: carries FDI
- APB host → AOU_CORE_TOP: configures
- APB host → AOU_TOP: configures
- Protocol core → TX core: dispatches TX
- Protocol core → RX core: dispatches RX
- TX core → TX FDI interface: sends flits
- RX FDI interface → RX core: receives flits
- TX core → TX AXI buffer: buffers AXI
- APB host → Core registers: writes registers
- Protocol core → Activation control: controls activation
- Protocol core → Credit control: manages credits
- Protocol core → Early response table: tracks responses
- Protocol core → Error information: records errors
