πŸ“˜ V–I Control ASIC Documentation

Welcome to the documentation for V–I Control ASIC on SKY130.

This documentation provides a reproducible, end-to-end guide covering:

Control theory β†’ Fixed-point design β†’ RTL β†’ Verification β†’ OpenLane β†’ GDS

The goal is not only to explain how to design a control ASIC,
but also why each architectural and implementation decision is made.

This material is written as design documentation + educational reference.


Language GitHub Pages 🌐 GitHub πŸ’»
πŸ‡ΊπŸ‡Έ English GitHub Pages EN GitHub Repo EN

🎯 What You Will Learn

By following this documentation, you will understand:

This is a digital-only ASIC design.
All analog blocks (ADC / DAC) are assumed to be external.


🧩 Target Architecture (Conceptual View)

V[n], I[n]
β”‚
β–Ό
+-----------+
| PID Core | ← Fixed-point arithmetic
+-----------+
β”‚ u[n]
β–Ό
+-----------+
| FSM Ctrl | ← INIT / RUN / FAULT
+-----------+
β”‚
β–Ό
+-----------+
| PWM Gen | ← Duty / timing output
+-----------+

πŸ“š Documentation Structure

Each chapter corresponds to one markdown file under docs/.

0️⃣ Overview

➑️ 00_overview.md
System concept, motivation, and overall design philosophy.

1️⃣ Control Model

➑️ 01_control_model.md
Discrete-time PID control using V–I feedback.

2️⃣ Fixed-Point Design

➑️ 02_fixed_point.md
Q-format selection, scaling, saturation, and overflow handling.

3️⃣ RTL: PID Core

➑️ 03_rtl_pid.md
PID datapath, registers, and fixed-point arithmetic in Verilog.

4️⃣ RTL: FSM & PWM

➑️ 04_fsm_pwm.md
FSM supervisor, PWM generator, and safety behavior.

5️⃣ OpenLane Flow

➑️ 05_openlane_flow.md
Synthesis, place & route, STA, and layout inspection.

6️⃣ Gate-level Simulation (Functional)

➑️ 06_gate_sim_functional.md
Gate-level simulation investigation and technical assessment
(post-layout, functional intent).


πŸ“Ž Appendix

For a complete index of all figures used in this documentation
(including verification waveforms, layout images, and GDS views), see:

➑️ Appendix A: Figure List

This appendix clarifies:


βœ… Verification Strategy

This project focuses on functional correctness at RTL level:

Note on Gate-Level Simulation
Gate-level functional simulation was investigated but not completed.

The SKY130 standard cell libraries rely on UDP (User Defined Primitive) constructs
(e.g. sky130_fd_sc_hd__udp_*), which are not fully supported by Icarus Verilog.

As a result, reliable gate-level functional simulation using Icarus Verilog was not feasible.

Timing correctness is instead ensured by:

This reflects a realistic and widely accepted ASIC development trade-off when using open-source tools.


βœ… Verification Status (Completed)

The verification phase for this project is complete within the intended scope of this educational ASIC design.

Verification Coverage

Not Performed

Conclusion

Based on the completed verification steps and documented tool limitations, the V–I Control ASIC design is considered:

Functionally correct at RTL level, timing-clean by STA, and complete as an educational RTL-to-GDS reference implementation using OpenLane and SKY130.

This concludes the verification phase of the project.


πŸ›  Prerequisites

You should have basic knowledge of:

No prior ASIC tapeout experience is required.


πŸš€ How to Start

Start here:

➑️ 00_overview.md

Then proceed sequentially through the chapters.
Each section builds directly on the previous one.


πŸ“Œ Design Philosophy

This project follows three core principles:

  1. Make timing explicit
  2. Make arithmetic visible
  3. Make behavior explainable

If you understand every block in this design,
you understand the essence of a practical control ASIC.


Happy learning, and enjoy building silicon.