Home Tools

Open-Source Chip Design Toolchain

End-to-End RTL → GDS → DFT flow with industry-relevant open-source tools

Modern Chip Design Ecosystem

Modern chip design relies on a well-integrated toolchain across multiple stages — from RTL coding to verification, synthesis, DFT, physical implementation, and sign-off.

Our Philosophy

At Chip Design Academy, we emphasize industry-relevant open-source tools that allow students and engineers to:

Learn real design flows, not just isolated concepts
Build complete chip pipelines from RTL to GDS
Gain hands-on confidence without license barriers

End-to-End Chip Development Flow

Complete RTL to GDS pipeline with open-source tools

RTL Design & Coding

Verilator Icarus Verilog VS Code

Simulation & Verification

Verilator Cocotb GTKWave

Formal & Lint

Yosys SymbiYosys Surelog

Logic Synthesis

Yosys OpenSTA

DFT

Fault Yosys

Physical Design

OpenROAD OpenLane Magic

Timing & Power

OpenSTA OpenROAD

FPGA Prototyping

Yosys nextpnr Quartus

OS Platform Support

Windows

⭐⭐⭐ - Limited open-source tool support

macOS

⭐⭐⭐ - Basic tools with some limitations

Toolchain by Development Stage

1 / 8
01

RTL Design & Coding Tools

Tools for Register Transfer Level design and coding

Tool Purpose OS Link
Verilator
Fast RTL linting & simulation Linux macOS
Icarus Verilog
Verilog/SystemVerilog simulation Linux Windows macOS
GTKWave
Waveform viewer Linux Windows macOS
VS Code
RTL editing & extensions All

Installation Example (Linux)

sudo apt update
sudo apt install iverilog gtkwave verilator
02

Simulation & Functional Verification

Tools for RTL simulation and verification

Tool Purpose OS Link
Icarus Verilog
RTL simulation Linux Windows macOS
Verilator
Cycle-accurate simulation Linux macOS
Cocotb
Python-based verification Linux

Cocotb Installation

pip3 install cocotb
03

Lint, CDC & Formal Verification

Tools for formal verification and linting

Tool Purpose OS Link
Verilator
RTL linting Linux macOS
Yosys
Formal & structural checks Linux
SymbiYosys
Formal verification framework Linux
Surelog
SystemVerilog parsing Linux

Formal Setup

sudo apt install yosys
git clone https://github.com/YosysHQ/sby
04

Logic Synthesis

Tools for RTL to gate-level synthesis

Tool Purpose OS Link
Yosys
RTL → Gate-level synthesis Linux
OpenSTA
Static Timing Analysis Linux

Installation

sudo apt install yosys
05

DFT (Design for Test)

Tools for scan insertion and ATPG

Tool Purpose OS Link
Fault
Scan insertion & ATPG Linux
Yosys
DFT scripting support Linux

Fault Installation

git clone https://github.com/AUCOHL/Fault.git
cd Fault
pip install -e .
06

Physical Design (Place & Route)

Tools for floorplanning, placement, routing, and DRC

Tool Purpose OS Link
OpenROAD
Full PnR flow Linux
OpenLane
RTL → GDS flow Linux
Magic
Layout viewer & DRC Linux
KLayout
GDS viewer Linux Windows macOS

OpenLane Installation

git clone https://github.com/The-OpenROAD-Project/OpenLane
cd OpenLane
make
07

Timing, Power & Sign-Off

Tools for static timing analysis and power estimation

Tool Purpose OS Link
OpenSTA
Static Timing Analysis Linux
OpenROAD
Timing & power analysis Linux
OpenPower
Power analysis & optimization Linux

OpenSTA Installation

git clone https://github.com/The-OpenROAD-Project/OpenSTA
cd OpenSTA
mkdir build && cd build
cmake .. && make
08

FPGA Prototyping

Tools for FPGA synthesis, place & route, and programming

Tool Purpose OS Link
Yosys
FPGA synthesis Linux
nextpnr
FPGA place & route Linux
Quartus Lite
Intel FPGA tools Windows Linux
Vivado WebPACK
Xilinx FPGA tools Windows Linux

Open-Source FPGA Flow

sudo apt install yosys nextpnr-ice40 fpga-icestorm
# For Intel FPGA: Download Quartus from Intel website
# For Xilinx FPGA: Download Vivado from Xilinx website
RTL Design & Coding

VLSI Design Flow

End-to-end RTL to GDSII industry-standard design methodology

VLSI Design Flow Diagram

One-Click Setup Scripts

Modular installation scripts for different toolchains

Our Philosophy

  • Ubuntu Linux (22.04 / 24.04) → primary supported OS
  • Scripts are modular, not one giant installer
  • Students install only what their course needs
  • All scripts include proper error handling
  • Clean logging and progress indicators

Recommended Folder Structure

cda-tools/
├── rtl_basics.sh
├── rtl_verification.sh
├── synthesis_sta.sh
├── physical_design.sh
├── fpga_flow.sh
├── embedded_iot.sh
└── robotics.sh
 
├── README.md
└── setup_all.sh
RTL

RTL Design – Basics

rtl_basics.sh
Used in: RTL Design, RTL Verification
Setup Time: ~5-10 minutes
#!/bin/bash
echo "=== Installing RTL Design Basics Tools ==="
echo ""

# Update package list
echo "Updating package list..."
sudo apt update

# Install essential tools
echo "Installing essential build tools..."
sudo apt install -y \
    git \
    make \
    gcc \
    g++ \
    curl \
    wget \
    unzip

# Install RTL simulation tools
echo "Installing RTL simulation tools..."
sudo apt install -y \
    iverilog \
    verilator \
    gtkwave

# Install VS Code (optional)
echo "VS Code: Download from https://code.visualstudio.com"

echo ""
echo "✅ RTL Design tools installed successfully!"
echo "To verify installation, run: iverilog --version"
Verilator Icarus Verilog GTKWave Build Tools
Verification

RTL Verification

rtl_verification.sh
Used in: RTL Design Verification
Setup Time: ~10-15 minutes
#!/bin/bash
echo "=== Installing RTL Verification Tools ==="
echo ""

# Update and install base tools
echo "Updating system and installing base tools..."
sudo apt update
sudo apt install -y \
    git \
    make \
    gcc \
    g++ \
    verilator \
    gtkwave

# Install Yosys for formal verification
echo "Installing Yosys..."
sudo apt install -y yosys

# Install Python and verification libraries
echo "Installing Python and verification tools..."
sudo apt install -y \
    python3 \
    python3-pip \
    python3-venv \
    python3-dev

# Install Cocotb for Python-based verification
echo "Installing Cocotb..."
pip3 install cocotb

# Install SymbiYosys for formal verification
echo "Installing SymbiYosys..."
git clone https://github.com/YosysHQ/sby.git
cd sby && sudo make install
cd ..

echo ""
echo "✅ RTL Verification tools installed!"
echo "To verify: python3 -c \"import cocotb; print('Cocotb OK')\""
Cocotb SymbiYosys Yosys Python 3
Synthesis

Synthesis & STA

synthesis_sta.sh
Used in: Advanced RTL, FPGA
Setup Time: ~5-10 minutes
#!/bin/bash
echo "=== Installing Synthesis & STA Tools ==="
echo ""

# Update system
echo "Updating package list..."
sudo apt update

# Install Yosys for RTL synthesis
echo "Installing Yosys..."
sudo apt install -y yosys

# Install OpenSTA for Static Timing Analysis
echo "Installing OpenSTA..."
sudo apt install -y \
    opensta \
    tcl \
    tcl-dev \
    tcllib

# Install additional utilities
echo "Installing additional utilities..."
sudo apt install -y \
    libreadline-dev \
    libffi-dev \
    graphviz

# Verify installation
echo "Verifying installations..."
yosys --version
sta --version 2>/dev/null || echo "OpenSTA installed"

echo ""
echo "✅ Synthesis & STA tools installed!"
echo "Try: yosys -p 'help'"
Yosys OpenSTA TCL Timing Analysis
Physical

Physical Design

physical_design.sh
Used in: Advanced RTL, ASIC Flow
Setup Time: ~15-20 minutes
#!/bin/bash
echo "=== Installing Physical Design Tools ==="
echo ""

# Update system
echo "Updating system..."
sudo apt update

# Install Docker for OpenLane
echo "Installing Docker..."
sudo apt install -y \
    docker.io \
    docker-compose

# Start and enable Docker
echo "Configuring Docker..."
sudo systemctl enable docker
sudo systemctl start docker

# Add user to docker group (requires re-login)
echo "Adding user to docker group..."
sudo usermod -aG docker $USER

# Install layout tools
echo "Installing layout viewing tools..."
sudo apt install -y \
    magic \
    klayout \
    netgen

# Clone OpenLane for RTL to GDS flow
echo "Cloning OpenLane..."
git clone https://github.com/The-OpenROAD-Project/OpenLane.git
cd OpenLane

# Make the OpenLane installation
echo "Building OpenLane..."
make

echo ""
echo "✅ Physical Design tools installed!"
echo ""
echo "⚠️  IMPORTANT: Re-login or restart for Docker group changes"
echo "After re-login, test: docker --version"
echo "OpenLane directory: $(pwd)"
OpenLane Docker Magic KLayout
FPGA

FPGA Flow

fpga_flow.sh
Used in: RTL Design (FPGA labs)
Setup Time: ~10-15 minutes
#!/bin/bash
echo "=== Installing FPGA Open-Source Flow ==="
echo ""

# Update system
echo "Updating package list..."
sudo apt update

# Install FPGA open-source toolchain
echo "Installing open-source FPGA tools..."
sudo apt install -y \
    yosys \
    nextpnr-ice40 \
    nextpnr-ecp5 \
    fpga-icestorm \
    fpga-trellis \
    fpga-xc3sprog

# Install programming tools
echo "Installing programming tools..."
sudo apt install -y \
    udev \
    fxload \
    libftdi1-2 \
    libftdi1-dev \
    libusb-1.0-0-dev

# Install Python tools for FPGA
echo "Installing Python FPGA tools..."
pip3 install \
    apio \
    pyserial \
    ftdi1

# Create udev rules for FPGA boards
echo "Setting up udev rules for FPGA boards..."
sudo tee /etc/udev/rules.d/99-fpga.rules > /dev/null << EOF
# IceStorm
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", MODE="0666"
EOF

sudo udevadm control --reload-rules

echo ""
echo "✅ FPGA open-source tools installed!"
echo "Test: yosys --version && nextpnr-ice40 --version"
Yosys nextpnr IceStorm FPGA Tools
IoT

Embedded + IoT

embedded_iot.sh
Used in: Embedded, IoT Fast Track
Setup Time: ~10-15 minutes
#!/bin/bash
echo "=== Installing Embedded & IoT Tools ==="
echo ""

# Update system
echo "Updating package list..."
sudo apt update

# Install Arduino IDE and tools
echo "Installing Arduino IDE..."
sudo apt install -y \
    arduino \
    arduino-core \
    arduino-mk

# Install serial communication tools
echo "Installing serial tools..."
sudo apt install -y \
    minicom \
    screen \
    picocom \
    cutecom

# Install Python for IoT
echo "Installing Python and IoT libraries..."
sudo apt install -y \
    python3 \
    python3-pip \
    python3-venv \
    python3-serial

# Install IoT protocols and libraries
echo "Installing IoT libraries..."
pip3 install \
    paho-mqtt \
    flask \
    flask-socketio \
    requests \
    numpy \
    pandas

# Install build tools
echo "Installing build tools..."
sudo apt install -y \
    gcc-arm-none-eabi \
    gdb-arm-none-eabi \
    openocd \
    stlink-tools

# Install platformio for embedded development
echo "Installing PlatformIO..."
pip3 install platformio

echo ""
echo "✅ Embedded & IoT tools installed!"
echo "Arduino IDE: Menu → Programming"
echo "Test: python3 -c \"import paho.mqtt.client; print('MQTT OK')\""
Arduino MQTT PlatformIO Serial Tools
Robotics

Robotics

robotics.sh
Used in: Robotics Programs
Setup Time: ~10-15 minutes
#!/bin/bash
echo "=== Installing Robotics Tools ==="
echo ""

# Update system
echo "Updating package list..."
sudo apt update

# Install Arduino for robotics control
echo "Installing Arduino..."
sudo apt install -y \
    arduino \
    arduino-mk

# Install Python for robotics
echo "Installing Python and scientific libraries..."
sudo apt install -y \
    python3 \
    python3-pip \
    python3-venv \
    python3-numpy \
    python3-matplotlib \
    python3-scipy

# Install robotics-specific Python libraries
echo "Installing robotics libraries..."
pip3 install \
    pyserial \
    opencv-python \
    opencv-contrib-python \
    pygame \
    pyside6 \
    pyqt5

# Install ROS2 (optional - for advanced robotics)
echo "For ROS2 (Robot Operating System 2):"
echo "Visit: https://docs.ros.org/en/humble/Installation.html"
echo ""
echo "For basic robotics, above tools are sufficient."

# Install simulation tools
echo "Installing robotics simulation tools..."
sudo apt install -y \
    gazebo \
    ros-humble-desktop \
    rviz2

# Install communication tools
echo "Installing communication tools..."
sudo apt install -y \
    minicom \
    mosquitto \
    mosquitto-clients

echo ""
echo "✅ Robotics tools installed!"
echo ""
echo "For ROS2 installation (optional):"
echo "Follow: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html"
Arduino OpenCV NumPy Gazebo
Complete

Complete Toolchain

setup_all.sh
Used in: All Programs (Full Setup)
Setup Time: ~45-60 minutes
#!/bin/bash
echo "=== Complete Chip Design Academy Toolchain Setup ==="
echo "This will install ALL tools for RTL, FPGA, Embedded & Robotics"
echo "Estimated time: 45-60 minutes"
echo ""
read -p "Continue? (y/n): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    echo "Setup cancelled."
    exit 1
fi

# Run all individual scripts
SCRIPTS=(
    "rtl_basics.sh"
    "rtl_verification.sh"
    "synthesis_sta.sh"
    "physical_design.sh"
    "fpga_flow.sh"
    "embedded_iot.sh"
    "robotics.sh"
)

for script in "${SCRIPTS[@]}"; do
    if [ -f "$script" ]; then
        echo ""
        echo "=== Running $script ==="
        bash "$script"
        echo "=== Finished $script ==="
    else
        echo "⚠️  Script $script not found, skipping..."
    fi
done

echo ""
echo "========================================"
echo "✅ COMPLETE TOOLCHAIN SETUP FINISHED!"
echo "========================================"
echo ""
echo "Next steps:"
echo "1. Re-login for Docker group changes"
echo "2. Test installations with provided commands"
echo "3. Refer to course materials for tool usage"
All Tools RTL to GDS FPGA Embedded Robotics

How to Use These Scripts

1
Download Scripts

Click "Download" on individual scripts or "Download All" for complete package

2
Make Executable
chmod +x script_name.sh
3
Run Script
./script_name.sh
4
Follow Prompts

Some scripts may require sudo password or user confirmation

Ready to Start Your Chip Design Journey?

Download our complete toolchain setup scripts and get started with industry-relevant tools today.