# Install icestorm with Homebrew, apk, dnf, Nix

Tools for analyzing and creating Lattice iCE40 FPGA bitstream files. Version 1.1 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:icestorm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install icestorm
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add icestorm
```

  Evidence: Alpine Linux edge package indexes: icestorm from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install icestorm
```

  Evidence: Fedora Rawhide package metadata: icestorm from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#icestorm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ic/icestorm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:icestorm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/icestorm>
- **Version:** 1.1
- **Source summary:** Tools for analyzing and creating Lattice iCE40 FPGA bitstream files
- **Homepage:** <https://prjicestorm.readthedocs.io>
- **Repository:** <https://github.com/YosysHQ/icestorm>
- **Upstream docs:** <https://prjicestorm.readthedocs.io>
- **License:** ISC
- **Source archive:** <https://github.com/YosysHQ/icestorm/archive/refs/tags/v1.1.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- icebox_asc2hlc (cli)
- icebox_chipdb (cli)
- icebox_colbuf (cli)
- icebox_diff (cli)
- icebox_explain (cli)
- icebox_hlc2asc (cli)
- icebox_html (cli)
- icebox_maps (cli)
- icebox_stat (cli)
- icebox_vlog (cli)
- icebram (cli)
- icemulti (cli)
- icepack (cli)
- icepll (cli)
- iceprog (cli)
- icetime (cli)
- iceunpack (cli)
- icebox_asc2hlc (alias)
- icebox_chipdb (alias)
- icebox_colbuf (alias)
- icebox_diff (alias)
- icebox_explain (alias)
- icebox_hlc2asc (alias)
- icebox_html (alias)
- icebox_maps (alias)
- icebox_stat (alias)
- icebox_vlog (alias)
- icebram (alias)
- icemulti (alias)
- icepack (alias)
- icepll (alias)
- iceprog (alias)
- icetime (alias)
- iceunpack (alias)

## Dependencies

- libftdi
- libusb
- python@3.14

## Build dependencies

- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.1
- Local data: ok
- Upstream repository: https://github.com/YosysHQ/icestorm
- Upstream latest detected: v1.1 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

Project IceStorm is the reverse-engineered documentation and tool suite for Lattice iCE40 FPGA bitstreams. In package-manager terms it is the `ice*` tool bundle that helped make a fully open-source Verilog-to-bitstream flow practical on inexpensive FPGA boards.

### Project history

The project began as an effort to document the iCE40 bitstream format and provide simple tools for analyzing and creating bitstream files. Its own timeline records a first public release in March 2015, a working fully open-source flow with Yosys and Arachne-pnr in May 2015, and a move of the source code to GitHub in July 2015.

IceStorm's documentation frames Lattice iCE40 as a good target because the architecture is regular and minimal, with inexpensive development boards available. That made the family useful both for reverse-engineered documentation and as a reference platform for open FPGA tooling.

### Adoption history

IceStorm became important because it linked several independent tools into an end-to-end flow: Yosys for synthesis, Arachne-pnr and later nextpnr for place-and-route, IceStorm tools for packing, unpacking, timing, bitstream inspection, and programming. By 2016 the documentation listed support across LP/HX 1K, 4K, and 8K package variants, and in 2018 it added iCE40 UltraPlus support.

The package shows up in Homebrew, Alpine, Fedora, and Nix metadata because FPGA hobbyists, hardware hackers, and digital-design developers often want the flow on ordinary Unix-like developer machines rather than inside vendor IDEs.

### How it is used

A typical flow synthesizes Verilog with Yosys, places and routes with Arachne-pnr or nextpnr, packs the ASCII bitstream with `icepack`, and programs hardware with `iceprog`. Other tools such as `iceunpack`, `icebox_explain`, `icebox_vlog`, `icetime`, and `icepll` support reverse engineering, inspection, timing, and PLL configuration.

The package is especially associated with small iCE40 boards such as the iCEstick and HX8K breakout board, where a command-line flow is enough to build, inspect, and upload simple FPGA designs.

### Why package nerds care

Project IceStorm is one of the packages that made open FPGA development feel like normal Unix development: install compiler-like tools, run commands, inspect generated artifacts, and avoid proprietary GUI-only flows for supported iCE40 parts.

It is also historically important as a bridge between software package managers and hardware toolchains. Its executables expose FPGA bitstreams as files that can be packed, unpacked, explained, converted to Verilog, timed, and programmed.

### Timeline

- 2015-03-22: First public release and demonstration video.
- 2015-05-27: Working fully open-source flow with Yosys and Arachne-pnr.
- 2015-07-19: 8K chip support released and source code moved to GitHub.
- 2016-01-17: First IceTime timing-analysis release.
- 2016-02-07: Support for all package variants of LP1K, LP4K, LP8K, HX1K, HX4K, and HX8K.
- 2018-01-30: iCE40 UltraPlus support released.
- 2025: The GitHub repository lists v1.1 as a tagged release.

### Related projects

- Yosys provides Verilog synthesis for the iCE40 flow.
- Arachne-pnr and nextpnr provide place-and-route options used with IceStorm.
- Lattice iCEcube2 is the proprietary tool whose generated bitstreams were used as comparison material during reverse engineering.
- F4PGA and other FPGA documentation efforts belong to the broader open FPGA tooling movement.

### Sources

- <https://formulae.brew.sh/formula/icestorm>
- <https://github.com/YosysHQ/icestorm>
- <https://github.com/YosysHQ/icestorm/releases>
- <https://prjicestorm.readthedocs.io/en/latest/overview.html>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** icestorm
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - icestorm: normalized package name match | nixpkgs package indexes: pkgs/by-name/ic/icestorm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - icestorm - 0_git20240517-r0: normalized package name match | Alpine Linux edge package indexes: icestorm from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Project IceStorm - Lattice iCE40 FPGAs Bitstream Documentation | https://github.com/YosysHQ/icestorm
- dnf - icestorm - 0-0.43.20250707gitf31c39c.fc44: normalized package name match | Fedora Rawhide package metadata: icestorm from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Lattice iCE40 FPGA bitstream creation/analysis/programming tools | http://bygone.clairexen.net/icestorm


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [libftdi](https://www.automicvault.com/pkg/brew/libftdi/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [nextpnr-ice40](https://www.automicvault.com/pkg/brew/nextpnr-ice40/) - Popular package that depends on this formula.
- [prjtrellis](https://www.automicvault.com/pkg/brew/prjtrellis/) - Shares av.db curated category or tags: bitstream, cli, developer-tools, fpga, hardware.
- [openfpgaloader](https://www.automicvault.com/pkg/brew/openfpgaloader/) - Shares av.db curated category or tags: cli, developer-tools, fpga, hardware.
- [rggen](https://www.automicvault.com/pkg/brew/rggen/) - Shares av.db curated category or tags: cli, developer-tools, fpga, hardware.
- [i2c-tools](https://www.automicvault.com/pkg/brew/i2c-tools/) - Shares av.db curated category or tags: cli, developer-tools, hardware.
- [sigrok-cli](https://www.automicvault.com/pkg/brew/sigrok-cli/) - Shares av.db curated category or tags: cli, developer-tools, hardware.
- [verilator](https://www.automicvault.com/pkg/brew/verilator/) - Shares av.db curated category or tags: cli, developer-tools, hardware.
- [apktool](https://www.automicvault.com/pkg/brew/apktool/) - Shares av.db curated category or tags: cli, developer-tools, reverse-engineering.

## Combined YAML source

View the package source record on GitHub. [combined/icestorm.yml](https://github.com/automic-vault/db/blob/main/combined/icestorm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
