Glossary and acronyms

  • API: Application Programming Interface (see Wikipedia: Application programming interface).

  • ABI: Application Binary Interface (see Wikipedia: Application binary interface).

  • BFM: Bus Functional Model.

  • cocotb: a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python [6].

  • DPI: Direct Programming Interface. SystemVerilog DPI is an interface which can be used to interface SystemVerilog with foreign languages (see Wikipedia: SystemVerilog DPI).

  • DUT: Design Under Test.

  • FFI: Foreign Function Interface, a mechanism by which a program written in one programming language can call routines or make use of services written in another (see Wikipedia: Foreign function interface).

  • FIFO: First In First Out, a method for organising the manipulation of a data structure where the oldest (first) entry, or head of the queue, is processed first (see Wikipedia: FIFO (computing and electronics)).

  • FLI: Foreign Language Interface. Mentor Graphics’ ModelSim/Questa tools implement an interface named VHDL FLI: “FLI routines are C programming language functions that provide procedural access to information within Model Technology’s HDL simulator, vsim”.

  • FOSS/FLOSS: Free/Libre and Open Source Software.

  • GCC: the GNU Compiler Collection [7].

  • GDB: the GNU Project Debugger [8].

  • GHDL: open-source analyzer, compiler, simulator and (experimental) synthesizer for VHDL [9].

  • GRT: GHDL’s RunTime library.

  • HDL: Hardware Description Language.

  • HLS: High Level Synthesis.

  • IEEE: Institute of Electrical and Electronics Engineers (see ieee.org).

  • IR: Intermediate Representation.

  • LCS: Language Change Specification.

  • LLVM: a compiler infrastructure designed around a language-independent IR [10].

  • OSVVM: Open Source VHDL Verification Methodology [1].

  • PLI: Program Language Interface. PLI was superseeded by VPI in IEEE Std 1364-2005, sometimes referred to as PLI 2.

  • PPC: commonly used to refer to PowerPC and/or Power ISA processors.

  • PSL: Property Specification Language, IEEE Std 1850, incorporated in IEEE Std 1076-2008 (see Wikipedia: Property Specification Language).

  • QEMU: a generic and open source machine emulator and virtualizer.

  • RPC: Remote Procedure Call.

  • RTL: Register-Transfer Level.

  • UUT: Unit Under Test.

  • VASG: VHDL Analysis and Standardization Group (see eda-twiki.org/cgi-bin/view.cgi/P1076).

  • VC: Verification Component.

  • Verilator: FLOSS tool for converting Verilog to a cycle-accurate behaviour model in C++ or SystemC [2].

  • Verilog: a HDL, IEEE Std 1364. In 2009, it was merged into the SystemVerilog standard creating IEEE Std 1800 (see Wikipedia: Verilog).

  • VHDL: VHSIC-HDL, Very High Speed Integrated Circuit Hardware Description Language, IEEE Std 1076 (see Wikipedia: VHDL).
    • Revisions: 1987, 1993, 2000, 2002 (IEC 61691-1-1:2004), 2008 (IEC 61691-1-1:2011), 2019.
    • Related standards:
      • 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)
      • 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)
      • 1076.2 VHDL Math Package
      • 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric_std)
      • 1076.3 VHDL Synthesis Package – Floating Point (fphdl)
      • 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)
      • 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)[11]
      • 1164 VHDL Multivalue Logic (std_logic_1164) Packages
  • VHPI: VHDL Procedural Interface, incorporated in IEEE Std 1076-2008.

  • VPI: Verilog Procedural Interface, incorporated in IEEE Std 1364-2005 (see Wikipedia: Verilog Procedural Interface).

  • VUnit: an open source unit testing framework for VHDL/SystemVerilog [11].

  • XSI: Xilinx Simulator Interface, “a C/C++ application programming interface (API) to the Xilinx Vivado Simulator (xsim) that enables a C/C++ program to serve as the test bench for a HDL design[12].

References

[1] J. Lewis and contributors, “Open Source VHDL Verification Methodology (OSVVM),” May 2013. https://osvvm.org/.

[2] W. Snyder and contributors, “Verilator, FOSS tool which converts Verilog to a cycle-accurate behavioral model in C++ or SystemC,” 2003. https://www.veripool.org/wiki/verilator.

[6] C. Higgs, S. Hodgson, and contributors, “Coroutine Cosimulation TestBench (cocotb),” Jun. 2013. https://github.com/cocotb/cocotb.

[7] R. Stallman and contributors, “GCC, the GNU Compiler Collection,” May 1987. http://gcc.gnu.org/.

[8] R. Stallman and GNU Project, “GDB: The GNU Project Debugger,” 1986. https://www.gnu.org/software/gdb/.

[9] T. O. Gingold and contributors, “GHDL: open-source analyzer, compiler, simulator and (experimental) synthesizer for VHDL,” 2003. http://ghdl.free.fr/.

[10] V. Adve, C. Lattner, and LLVM Developer Group, “LLVM Project, a collection of modular and reusable compiler and toolchain technologies,” 2003. https://www.llvm.org/.

[11] L. Asplund, O. Kraigher, and contributors, “VUnit: a unit testing framework for VHDL/SystemVerilog,” Sep. 2014. http://vunit.github.io/.

[12] Xilinx, “UG900 (v2018.3) Vivado Design Suite User Guide, Logic Simulation,” 2018. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug900-vivado-logic-simulation.pdf.