All Projects → nickg → Nvc

nickg / Nvc

Licence: gpl-3.0
VHDL compiler and simulator

Labels

Projects that are alternatives of or similar to Nvc

pyarch
🔌 Hardware Abstraction Library in Python
Stars: ✭ 15 (-95.68%)
Mutual labels:  vhdl
fpga puf
🔑 Technology-agnostic Physical Unclonable Function (PUF) hardware module for any FPGA.
Stars: ✭ 44 (-87.32%)
Mutual labels:  vhdl
Csi2rx
Open Source 4k CSI-2 Rx core for Xilinx FPGAs
Stars: ✭ 266 (-23.34%)
Mutual labels:  vhdl
QNICE-FPGA
QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
Stars: ✭ 51 (-85.3%)
Mutual labels:  vhdl
hwt
VHDL/Verilog/SystemC code generator, simulator API written in python/c++
Stars: ✭ 145 (-58.21%)
Mutual labels:  vhdl
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (-87.61%)
Mutual labels:  vhdl
cocotb-bus
Pre-packaged testbenching tools and reusable bus interfaces for cocotb
Stars: ✭ 20 (-94.24%)
Mutual labels:  vhdl
Dsi Shield
Arduino MIPI DSI Shield
Stars: ✭ 330 (-4.9%)
Mutual labels:  vhdl
vcd
VCD file (Value Change Dump) command line viewer
Stars: ✭ 40 (-88.47%)
Mutual labels:  vhdl
Opl3 fpga
Reverse engineered SystemVerilog RTL version of the Yamaha OPL3 (YMF262) FM Synthesizer
Stars: ✭ 255 (-26.51%)
Mutual labels:  vhdl
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (-95.68%)
Mutual labels:  vhdl
CryptoHDL
A list of VHDL codes implementing cryptographic algorithms
Stars: ✭ 14 (-95.97%)
Mutual labels:  vhdl
SmartVHDL
SublimeText Plugin for VHDL (highlight, autocompletion, navigation, ...)
Stars: ✭ 12 (-96.54%)
Mutual labels:  vhdl
PoC-Examples
This repository contains synthesizable examples which use the PoC-Library.
Stars: ✭ 27 (-92.22%)
Mutual labels:  vhdl
Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (-22.19%)
Mutual labels:  vhdl
fphdl
VHDL-2008 Support Library
Stars: ✭ 36 (-89.63%)
Mutual labels:  vhdl
docker
Scripts to build and use docker images including GHDL
Stars: ✭ 27 (-92.22%)
Mutual labels:  vhdl
F32c
A 32-bit RISC-V / MIPS ISA retargetable CPU core & SoC, 1.63 DMIPS/MHz
Stars: ✭ 338 (-2.59%)
Mutual labels:  vhdl
Hal
HAL – The Hardware Analyzer
Stars: ✭ 298 (-14.12%)
Mutual labels:  vhdl
simple-riscv
A simple three-stage RISC-V CPU
Stars: ✭ 14 (-95.97%)
Mutual labels:  vhdl

Synopsis

Build Status Coverage Status

NVC is a GPLv3 VHDL compiler and simulator aiming for IEEE 1076-2002 compliance. See these blog posts for background information. NVC has been successfully used to simulate several real-world designs.

Brief usage example:

$ nvc -a my_design.vhd my_tb.vhd
$ nvc -e my_tb
$ nvc -r my_tb

Or more succinctly, as a single command:

$ nvc -a my_design.vhd my_tb.vhd -e my_tb -r

The full manual can be read after installing NVC using man nvc or online.

Report bugs using the GitHub issue tracker.

Installing

NVC is developed on Debian Linux and is regularly tested on macOS and Windows under MSYS2. Ports to other systems are welcome.

NVC has both a release branch and a development master branch. The master branch should be stable enough for day-to-day use and has comprehensive regression tests, but the release branch is more suitable for third party packaging. The latest released version is 1.5. Significant changes since the last release are detailed in HISTORY.md.

To build from a Git clone:

./autogen.sh
mkdir build && cd build
../configure
make
make install

Generating the configure script requires autoconf 2.63 and automake 1.11 or later.

To build from a released tarball:

./configure
make
sudo make install

To use a specific version of LLVM add --with-llvm=/path/to/llvm-config to the configure command. LLVM 7, 8, and 9 have all been tested.

NVC also depends GNU Flex to generate the lexical analyser.

GtkWave can be used to view simulation waveforms. Version 3.3.79 or later is required for the default FST format.

Debian and Ubuntu

On a Debian derivative the following should be sufficient to install all required dependencies:

sudo apt-get install build-essential automake autoconf autoconf-archive flex \
    check llvm-dev pkg-config zlib1g-dev

macOS

The easiest way to install NVC on macOS is with Homebrew.

brew install nvc

This will install the latest stable version. The current git master can be installed with

brew install --HEAD nvc

To build from source follow the generic instructions above.

Windows

Windows support is via MinGW or Cygwin.

If you do not already have Cygwin it is easiest to build for MinGW using MSYS2. Install the following dependencies using pacman.

pacman -S base-devel mingw-w64-x86_64-{llvm,ncurses,libffi,check,pkg-config}
export PATH=/mingw64/bin:$PATH
mkdir build && cd build
../configure
make install

For Cygwin use setup.exe to install either gcc or clang and the following dependencies: automake, autoconf, pkg-config, llvm, libllvm-devel, flex, libffi-devel, libcurses-devel, and make. Then follow the standard installation instructions above.

OpenBSD

Install the dependencies with pkg_add:

pkg_add automake autoconf libexecinfo llvm check libexecinfo

To configure using the system compiler:

./configure LDFLAGS="-L/usr/local/lib" CC=/usr/bin/cc CXX=/usr/bin/c++ \
    --with-llvm=/usr/local/bin/llvm-config

Then follow the generic instructions above.

IEEE Libraries

The source files for the IEEE standard libraries are included in the repository for convenience but the license forbids distribution of modifications. See lib/ieee/README.ieee for details. These files can also be downloaded from the IEEE SA.

To recompile the standard libraries:

make bootstrap

Note this happens automatically when installing.

Testing

To run the regression tests:

make check

The unit tests require the check library.

VHDL-2008

NVC supports a small subset of VHDL-2008 which can be enabled with the --std=2008 option. If you require library functions from the 2008 standard you can use the VHDL-2008 Support Library which provides backwards-compatible implementations for VHDL-1993. Run ./tools/build-2008-support.rb to download and install this.

Vendor Libraries

NVC provides scripts to compile the simulation libraries of common FPGA vendors.

  • For Xilinx ISE use ./tools/build-xilinx-ise.rb
  • For Xilinx Vivado use ./tools/build-xilinx-vivado.rb
  • For Altera Quartus use ./tools/build-altera.rb
  • For Lattice iCEcube2 use ./tools/build-lattice.rb

The libraries will be installed under ~/.nvc/lib.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].