Showing posts with label compiler. Show all posts
Showing posts with label compiler. Show all posts

Mar 26, 2026

[github] NVC: VHDL compiler and simulator

 

https://cameron-eda.com/

NVC is a VHDL compiler and simulator

NVC supports almost all of VHDL-2008 with the exception of PSL, and it has been successfully used to simulate several real-world designs. Experimental support for Verilog and VHDL-2019 is under development. NVC has a particular emphasis on simulation performance and uses LLVM to compile VHDL to native machine code. NVC is not a synthesizer. That is, it does not output something that could be used to program an FPGA or ASIC. It implements only the simulation behaviour of the language as described by the IEEE 1076 standard. NVC supports popular verification frameworks including OSVVM, UVVM, VUnit and cocotb. See below for installation instructions.

Vendor Libraries
NVC provides scripts to compile popular verification frameworks and the simulation libraries of common FPGA vendors
  • For OSVVM use nvc --install osvvm
  • For UVVM use nvc --install uvvm
  • For Xilinx ISE use nvc --install ise
  • For Xilinx Vivado use nvc --install vivado and additionally nvc --install xpm_vhdl
    if you require simulation models of the XPM macros
  • For Altera Quartus use nvc --install quartus
  • For Lattice iCEcube2 use nvc --install icecube2
  • For Free Model Foundry common packages use nvc --install fmf


Dec 20, 2022

[OpenVAF] Next-Generation Verilog-A Compiler

OpenVAF is a Next-Generation Verilog-A compiler
that empowers the open source silicon revolution

Roadmap: OpenVAF is still in development and there many goals we aim to achieve in the longterm:

  • Noise analysis (planned for 2023)
  • Reaching full compliance with the Verilog-A standard
  • Behavioral modelling features
  • Support for features that allow defining full circuits/full PDKs in Verilog-A
  • OSDI integration in Xyce
  • Improved documentation
  • A detailed paper about the technical innovations in OpenVAF and attendance at international conferences
We, OpenVAF Developers, are always looking for cooperation partners, please do not hesitate to contact SemiMod GmbH.

Circuit simulators play a critical role in the design of electrical circuits. Accurate simulations enable circuit designers to validate circuit behavior before actual fabrication happens, potentially saving significant re-design costs. The simulation of a circuit critically depends on the so-called compact models and therefore:

  • The accuracy of the compact-model equations
  • The quality of the model parameters
Compact models predict the device terminal characteristics by means of computationally inexpensive equations. With increasingly advanced technologies, compact models have been growing significantly in complexity. At the same time an increasingly diverse set of technologies is offered to designers, requiring specific compact models for each kind of electron device.
The complexity of compact models has made the manual integration into simulators a tedious, error-prone and therefore expensive task. One reason for this is that not only the model equations have to be implemented, but also their symbolic derivatives. Numeric derivatives are not an option because they are orders of magnitude slower to compute than analytical derivatives and can introduce convergence problems due to inaccuracies. It is not uncommon - even in commercial tools - to find model implementation bugs or to observe convergence problems that result from incorrectly implemented derivatives. Some simulators with no or limited Verilog-A integration do not implement certain compact-models and can therefore not be used to simulate some processes at all.
Manually implemented compact models may differ between simulators since EDA vendors often rename parameters or alter particular model equations. Due to these simulator specific peculiarities, PDKs can usually only be used by a few specific simulators.

Verilog-A has been developed to address these problems and has become the de-facto standard for developing and distributing compact models. It allows implementing compact models via a simulator independent and standardized language. Verilog-A compilers can translate these models to machine code and allow simulators to use these models without manually implementing them. Verilog-A enables:

  • model development and customization by allowing to quickly modify the model equations without having to worry about model implementation details.
  • implementing behavioral or data-driven models, or even entire circuits.
  • inherent portability between simulators for both models and PDKs that would not be possible with traditional netlist-based formats.
Model development and customization is necessary for advanced technologies and applications, for example quantum computing, where existing models cannot provide satisfactory results and must be adjusted. It also enables research and development.