# Install nvc with Homebrew, Nix

VHDL compiler and simulator. Version 1.21.1 via Homebrew; verified 2026-06-22.

## 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
- **Package manager page:** <https://formulae.brew.sh/formula/nvc>
- **Version:** 1.21.1
- **Source summary:** VHDL compiler and simulator
- **Homepage:** <https://www.nickg.me.uk/nvc/>
- **Repository:** <https://github.com/nickg/nvc>
- **Upstream docs:** <https://www.nickg.me.uk/nvc>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://github.com/nickg/nvc/releases/download/r1.21.1/nvc-1.21.1.tar.gz>
- **Last updated:** 2026-06-22T14:05:39-07:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- nvc (cli)
- nvc (alias)

## Dependencies

- llvm
- zstd

## Build dependencies

- check
- pkgconf

## Uses from macOS

- libffi

## 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.21.1
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/nickg/nvc
- info: No cached GitHub release or tag data was available.
## 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

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** nvc
- **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 - 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


## Related links

- [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.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [llvm](https://www.automicvault.com/pkg/brew/llvm/) - Runtime dependency declared by Homebrew.
- [zstd](https://www.automicvault.com/pkg/brew/zstd/) - Runtime dependency declared by Homebrew.
- [check](https://www.automicvault.com/pkg/brew/check/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [aarch64-elf-gcc](https://www.automicvault.com/pkg/brew/aarch64-elf-gcc/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [adaptivecpp](https://www.automicvault.com/pkg/brew/adaptivecpp/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [arm-none-eabi-gcc](https://www.automicvault.com/pkg/brew/arm-none-eabi-gcc/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [bunster](https://www.automicvault.com/pkg/brew/bunster/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [dtc](https://www.automicvault.com/pkg/brew/dtc/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [foma](https://www.automicvault.com/pkg/brew/foma/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [i686-elf-gcc](https://www.automicvault.com/pkg/brew/i686-elf-gcc/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [m68k-elf-gcc](https://www.automicvault.com/pkg/brew/m68k-elf-gcc/) - Shares av.db curated category or tags: cli, compiler, compilers, developer-tools.
- [surelog](https://www.automicvault.com/pkg/brew/surelog/) - Local package facts share a topical domain. Shared terms: cli, compiler, description, developer, developer-tools.
- [sv2v](https://www.automicvault.com/pkg/brew/sv2v/) - Local package facts share a topical domain. Shared terms: cli, description, developer, developer-tools, hardware.
- [bsc](https://www.automicvault.com/pkg/brew/bsc/) - Local package facts share a topical domain. Shared terms: cli, compiler, description, developer, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/nvc.yml](https://github.com/automic-vault/db/blob/main/combined/nvc.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
