# tkoetting03/32-bit-risc-mcu architecture

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

- Interactive diagram: https://gitdiagram.com/tkoetting03/32-bit-risc-mcu
- Repository: https://github.com/tkoetting03/32-bit-risc-mcu

## Overview

This repository is a 32-bit RISC-V microcontroller core, according to the README. The RTL filenames indicate processor control, execution, state, and memory components. The available material includes no RTL excerpts and the README does not describe module connections, so the graph shows these components without asserting a control or data-flow sequence. Component roles are inferred from filenames; their internal behavior and integration remain unverified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_control["Control and Decode"]
  node_main["Top-Level Module<br/>[main.v]"]
  node_core["Processor Core<br/>[core.v]"]
  node_alu_control["ALU Control<br/>[alu_control.v]"]
  node_immediate["Immediate Generator<br/>[immediate.v]"]
end

subgraph group_execution["Execution"]
  node_alu["ALU<br/>[alu.v]"]
  node_branch_comparator["Branch Comparator"]
  node_pc_adder["PC Adder<br/>[pc_adder.v]"]
end

subgraph group_state["Processor State"]
  node_pc_reg["Program Counter<br/>[pc_reg.v]"]
  node_register["Register File<br/>[register.v]"]
end

subgraph group_memory["Instruction and Data Memory"]
  node_i_memory[("Instruction Memory<br/>[i_memory.v]")]
  node_d_memory[("Data Memory<br/>[d_memory.v]")]
end

click node_main "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/main.v"
click node_core "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/core.v"
click node_alu_control "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/alu_control.v"
click node_immediate "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/immediate.v"
click node_alu "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/alu.v"
click node_branch_comparator "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/branch_comparator.v"
click node_pc_adder "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/pc_adder.v"
click node_pc_reg "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/pc_reg.v"
click node_register "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/register.v"
click node_i_memory "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/i_memory.v"
click node_d_memory "https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/d_memory.v"

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_main,node_core,node_alu_control,node_immediate toneBlue
class node_alu,node_branch_comparator,node_pc_adder toneAmber
class node_pc_reg,node_register toneMint
class node_i_memory,node_d_memory toneRose
```

## Components

### Control and Decode

- [Top-Level Module](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/main.v): `src/rtl/main.v`
- [Processor Core](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/core.v): `src/rtl/core.v`
- [ALU Control](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/alu_control.v): `src/rtl/alu_control.v`
- [Immediate Generator](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/immediate.v): `src/rtl/immediate.v`

### Execution

- [ALU](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/alu.v): `src/rtl/alu.v`
- [Branch Comparator](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/branch_comparator.v): `src/rtl/branch_comparator.v`
- [PC Adder](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/pc_adder.v): `src/rtl/pc_adder.v`

### Processor State

- [Program Counter](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/pc_reg.v): `src/rtl/pc_reg.v`
- [Register File](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/register.v): `src/rtl/register.v`

### Instruction and Data Memory

- [Instruction Memory](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/i_memory.v): `src/rtl/i_memory.v`
- [Data Memory](https://github.com/tkoetting03/32-bit-risc-mcu/blob/main/src/rtl/d_memory.v): `src/rtl/d_memory.v`
