A practical, reproducible setup guide for an open-source digital ASIC/VLSI environment on Ubuntu or WSL2.
This repository helps you install and verify a collection of open-source tools commonly used for:
- RTL simulation
- Logic synthesis
- Static timing analysis
- Floorplanning, placement and routing
- Physical design
- Layout viewing and editing
- DRC/LVS-related workflows
- Digital design learning and experimentation
The repository is intentionally split into installation, verification, and examples so that a fresh user can quickly determine whether the environment is working.
The verification script checks for tools that are available in the user's environment, including:
- Git
- Python 3
- Icarus Verilog
- Yosys
- OpenROAD
- KLayout
- Magic
- Docker
- Nix
OpenLane is checked when it is available through the user's chosen installation method. The script does not pretend a tool is installed when it cannot be detected.
Tool packaging and installation commands can change over time. The scripts therefore prefer existing commands and provide clear warnings rather than silently installing an incompatible version.
git clone https://github.com/saifullah3186/open-source-tool-installation-guide.git
cd open-source-tool-installation-guidechmod +x scripts/install-ubuntu.sh scripts/verify.sh./scripts/install-ubuntu.sh./scripts/verify.shcd examples/counter
./run.shIf the counter example passes, your Verilog simulator is functioning.
open-source-tool-installation-guide/
├── README.md
├── LICENSE
├── INSTALL.md
├── VERIFY.md
├── .gitignore
│
├── scripts/
│ ├── install-ubuntu.sh
│ └── verify.sh
│
├── examples/
│ ├── counter/
│ │ ├── counter.v
│ │ ├── counter_tb.v
│ │ └── run.sh
│ │
│ ├── uart/
│ │ ├── uart.v
│ │ ├── uart_tb.v
│ │ └── run.sh
│ │
│ └── dft/
│ └── README.md
│
└── docs/
└── troubleshooting.md
The tools in this repository can be used as building blocks for a flow such as:
Verilog RTL
|
v
Simulation
|
v
Synthesis
|
v
Timing / Netlist checks
|
v
Floorplanning
|
v
Placement
|
v
Clock Tree Synthesis
|
v
Routing
|
v
Physical verification
|
v
GDSII
For DFT-oriented work, a separate flow can be used for scan insertion, ATPG, MBIST and fault simulation. Those flows often require additional commercial or project-specific tools and are therefore not falsely represented as fully automated by this repository.
- INSTALL.md — installation and prerequisites
- VERIFY.md — verification and expected results
- docs/troubleshooting.md — common problems
A minimal synchronous counter and testbench using Icarus Verilog.
cd examples/counter
./run.shA small educational UART transmitter example.
cd examples/uart
./run.shThe DFT directory contains guidance for extending the environment for scan/ATPG/MBIST experiments.
The primary target is:
- Ubuntu Linux
- Ubuntu under WSL2
- x86_64 systems
Other Linux distributions may work, but the installation script is deliberately conservative and is not intended to support every distribution automatically.
The installer:
- checks the operating system
- uses
aptonly when available - does not overwrite project source files
- avoids modifying shell startup files unnecessarily
- reports failures instead of hiding them
- makes existing installations detectable
Review scripts before running them on production systems.
Pull requests are welcome. When adding a tool:
- Document why it is needed.
- Add a detection check to
scripts/verify.sh. - Update
INSTALL.md. - Add or update an example where appropriate.
- Test the change on a clean Ubuntu/WSL2 environment when possible.
See LICENSE.