ieda-infra is a toolkit that provides development and runtime environments for iEDA. iEDA is an open-source EDA infrastructure and toolchain for ASIC design from netlist to GDS. This project offers a Nix-based development environment with all dependencies integrated for iEDA.
- 📦 Complete dependency management based on Nix
- 🔄 Offline development environment support
- 🐳 Pre-configured Docker images
- 🛠️ Multi-platform support (x86_64/aarch64, Linux/macOS)
- ⚙️ Integration of all iEDA dependencies
- Supported operating systems:
- Linux (x86_64, aarch64)
- macOS (x86_64, aarch64)
- Nix (flakes feature required)
# Build and install iEDA with Nix
nix build -L github:Emin017/ieda-infra#iedaNote
We provide hydra builds for x86_64 architecture, which can be found in Hydra Builds
You can use the binary cache to speed up the build process:
nix build -L github:Emin017/ieda-infra#iedaUnstable \
--option substituters "https://serve.eminrepo.cc/" \
--option trusted-public-keys "serve.eminrepo.cc:fgdTGDMn75Z0NOvTmus/Z9Fyh6ExgoqddNVkaYVi5qk="# Package iEDA with all dependencies
# As RPM format
nix bundle -L --bundler github:NixOS/bundlers#toRPM github:Emin017/ieda-infra#ieda
# As DEB format
nix bundle -L --bundler github:NixOS/bundlers#toDEB github:Emin017/ieda-infra#ieda
# The generated packages can be used in offline environments# Build Docker image
nix build github:Emin017/ieda-infra#releaseDocker# Build offline package
nix build -L github:Emin017/ieda-infra#offlineDevBundle
# The generated package can be copied to offline environments for compiling iEDAUsing RPM as an example:
- Copy the built
rpm-single-nix-env-wrapper-bin-nix-env-wrapper/nix-env-wrapper-bin-nix-env-wrapper-1.0-1.x86_64.rpmto the target environment - Install with
yum:nix-env-wrapper-bin-nix-env-wrapper-1.0-1.x86_64.rpm - Run the
nix-env-wrapperscript to enter the development environment - Follow the normal workflow to develop or build iEDA
ieda-infra/
├── flake.nix # Nix Flake configuration
├── nix/
│ ├── overlay.nix # Nix overlay configuration
│ ├── pkgs/ # Package definitions
│ │ ├── ieda/ # iEDA main package
│ │ └── rustpkgs/ # Rust dependency packages
│ └── env/ # Environment configurations
│ ├── offline/ # Offline environment
│ └── docker.nix # Docker image configuration
└── README.md # Project documentation
Contributions of any form are welcome!
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Mulan Permissive Software License v2 (Mulan PSL v2). See the LICENSE file for details.