# arcadia-1/analog-design-bench architecture

> Architecture diagram of the GitHub repository arcadia-1/analog-design-bench, 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/arcadia-1/analog-design-bench
- Repository: https://github.com/arcadia-1/analog-design-bench

## Overview

Analog Design Bench is a collection of 50 SkyWater SKY130 analog-design benchmark tasks, also published as a Hugging Face dataset. The user-facing workflow is to select a circuit-design challenge, read its requirements, modify the provided starter design, and submit a candidate for task-specific evaluation against reference results. Tasks cover analog and mixed-signal circuit types and include simulation benches and analysis utilities. The README establishes the benchmark and dataset; task-level paths below illustrate the documented repository structure, not a shared execution service.

Main entry points: [`tasks`](https://github.com/arcadia-1/analog-design-bench/tree/main/tasks) (Task catalog), [`tasks/sky130-analog-input-mux-8to1-pvt/instruction.md`](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/instruction.md) (Circuit challenge), [`tasks/sky130-analog-input-mux-8to1-pvt/solution/circuit.spi`](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/solution/circuit.spi) (Candidate design), [`tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/circuit.spi`](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/circuit.spi) (Starter circuit)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Benchmark catalog"]
  node_catalog["Task catalog"]
  node_taskdefs["Task definitions<br/>[defaults.toml]"]
end

subgraph group_challenge["Design challenges"]
  node_challenge["Circuit challenge<br/>[instruction.md]"]
  node_starter["Starter circuit<br/>[circuit.spi]"]
  node_benches["Simulation benches<br/>[tb_mux.spi]"]
  node_candidate["Candidate design<br/>[circuit.spi]"]
end

subgraph group_evaluation["Evaluation artifacts"]
  node_analysis["Measurement analysis<br/>[analyze_mux.py]"]
  node_verifier["Task verifier<br/>[verify.py]"]
  node_reference["Reference results<br/>[reference.json]"]
end

node_engineer(("Circuit designer"))
node_dataset[("Published dataset")]

node_engineer -.->|"selects task"| node_catalog
node_catalog -.->|"defines task"| node_challenge
node_engineer -.->|"starts design"| node_starter
node_challenge -.->|"provides starter"| node_starter
node_benches -.->|"feeds measurements"| node_analysis
node_engineer -.->|"submits design"| node_candidate
node_candidate -.->|"evaluated by"| node_verifier
node_reference -.->|"sets reference"| node_verifier
node_catalog -->|"published as"| node_dataset

click node_catalog "https://github.com/arcadia-1/analog-design-bench/tree/main/tasks"
click node_taskdefs "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/defaults.toml"
click node_challenge "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/instruction.md"
click node_starter "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/circuit.spi"
click node_benches "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/tb_mux.spi"
click node_analysis "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/analyze_mux.py"
click node_candidate "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/solution/circuit.spi"
click node_verifier "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/tests/verify.py"
click node_reference "https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/results/reference.json"

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_catalog,node_taskdefs toneBlue
class node_challenge,node_starter,node_benches,node_candidate,node_dataset toneAmber
class node_analysis,node_verifier,node_reference toneMint
class node_engineer toneIndigo
```

## Components

### Benchmark catalog

- [Task catalog](https://github.com/arcadia-1/analog-design-bench/tree/main/tasks): `tasks`
- [Task definitions](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/defaults.toml): `tasks/defaults.toml`

### Design challenges

- [Circuit challenge](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/instruction.md): `tasks/sky130-analog-input-mux-8to1-pvt/instruction.md`
- [Starter circuit](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/circuit.spi): `tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/circuit.spi`
- [Simulation benches](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/tb_mux.spi): `tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/tb_mux.spi`
- [Candidate design](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/solution/circuit.spi): `tasks/sky130-analog-input-mux-8to1-pvt/solution/circuit.spi`

### Evaluation artifacts

- [Measurement analysis](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/analyze_mux.py): `tasks/sky130-analog-input-mux-8to1-pvt/environment/starter/testbench/analyze_mux.py`
- [Task verifier](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/tests/verify.py): `tasks/sky130-analog-input-mux-8to1-pvt/tests/verify.py`
- [Reference results](https://github.com/arcadia-1/analog-design-bench/blob/main/tasks/sky130-analog-input-mux-8to1-pvt/results/reference.json): `tasks/sky130-analog-input-mux-8to1-pvt/results/reference.json`

### Other components

- **Circuit designer**
- **Published dataset**

## Connections

- Circuit designer → Task catalog: selects task
- Task catalog → Circuit challenge: defines task
- Circuit designer → Starter circuit: starts design
- Circuit challenge → Starter circuit: provides starter
- Simulation benches → Measurement analysis: feeds measurements
- Circuit designer → Candidate design: submits design
- Candidate design → Task verifier: evaluated by
- Reference results → Task verifier: sets reference
- Task catalog → Published dataset: published as (evidence: `README.md`)
