# Install nvc with Homebrew, Nix

VHDL compiler and simulator. Version 1.22.1 via Homebrew; verified 2026-08-01. Also installable with nix: nix profile install nixpkgs#nvc.

## Install

```sh
sudo av install brew:nvc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install nvc
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#nvc
```

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

## Package facts

- **Package key:** brew:nvc
- **Package manager:** Homebrew
- **Version:** 1.22.1
- **Source summary:** VHDL compiler and simulator
- **Homepage:** <https://www.nickg.me.uk/nvc/>
- **Repository:** <https://github.com/nickg/nvc>
- **Last updated:** 2026-08-01T11:05:56Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- nvc (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.22.1
## Project history and usage

NVC is a free software VHDL compiler and simulator. The project emphasizes simulation performance by compiling VHDL to native machine code through LLVM, and its README states that it supports almost all of VHDL-2008 except PSL, with experimental Verilog and VHDL-2019 work under development.

### Project history

Nick Gasson wrote in 2011 about a VHDL compiler named `nvc`, and his GitHub Sponsors profile later described NVC as a spare-time Free Software VHDL compiler and simulator project he had worked on for 10 years. That small independent compiler has since grown into a maintained simulator with releases, Windows packaging, Homebrew/Nix packaging, verification-framework integration, and mixed-language work.

### Adoption history

NVC sits in the open HDL tooling ecosystem: not a synthesizer, but useful for compiling, elaborating, and running VHDL test benches. The README explicitly calls out support for OSVVM, UVVM, VUnit, and cocotb, which is the practical adoption surface for verification users. Homebrew analytics on 2026-07-01 showed 783 installs over 365 days, a modest but real signal for a specialized EDA tool.

### How it is used

The normal workflow is three commands: analyze source files into a work library with `nvc -a`, elaborate a top-level test bench with `nvc -e`, then run it with `nvc -r`. Users can combine those steps in one command for quick test-bench runs, install standard verification libraries, dump waveforms, and experiment with newer mixed VHDL/Verilog support when their designs fit the supported subset.

### Why package nerds care

NVC matters to package nerds because it is a compact, open HDL simulator that packages cleanly and complements heavier commercial simulators and GHDL. Its LLVM-native-code design also gives it a distinct performance story in the VHDL simulation niche.

### Timeline

- 2011-11-05: Nick Gasson publishes a post about writing a VHDL compiler named `nvc`.
- 2026-04-12: GitHub releases show NVC 1.20.0 with improved Verilog and mixed-language support.
- 2026-07-01: Homebrew lists NVC 1.21.1 with LLVM and zstd dependencies.

### Related projects

- GHDL
- LLVM
- OSVVM
- UVVM
- VUnit
- cocotb

### Sources

- <https://formulae.brew.sh/formula/nvc>
- <https://github.com/nickg/nvc>
- <https://github.com/nickg/nvc/releases>
- <https://github.com/sponsors/nickg>
- <https://www.doof.me.uk/2011/11/05/writing-a-vhdl-compiler/>
- <https://www.nickg.me.uk/nvc/manual.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Nix - nvc: normalized package name match | nixpkgs package indexes: pkgs/by-name/nv/nvc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/nvc.yml](https://github.com/mxcl/pkgdb/blob/main/combined/nvc.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
