Pre-Compiling Vendor Libraries

Overview

Running vendor specific testbenches may require pre-compiled vendor libraries. Some vendors ship their simulators with diverse pre-compiled libraries, but these don’t include primitive libraries from hardware vendors. More over, many auxillary libraries are outdated. Hardware vendors ship their tool chains with pre-compile scripts or user guides to pre-compile the primitive libraries for a list of supported simulators on a target system.

PoC is shipped with a set of pre-compile scripts to offer a unified interface and common storage for all supported vendor’s pre-compile procedures. The scripts are located in \tools\precompile\ and the output is stored in \temp\precompiled\<Simulator>\<Library>.

Supported Simulators

The current set of pre-compile scripts support these simulators:

Vendor Simulator and Edition Altera Lattice Xilinx (ISE) Xilinx (Vivado)
  1. Gingold
GHDL with --std=93c
GHDL with --std=08
yes
yes
yes
yes
yes
yes
yes
yes
Aldec

Active-HDL (or Stududent Ed.)
Active-HDL Lattice Ed.
Reviera-PRO
planned
planned
planned
planned
shipped
planned
planned
planned
planned
planned
planned
planned
Mentor


ModelSim PE (or Stududent Ed.)
ModelSim SE
ModelSim Altera Ed.
QuestaSim
yes
yes
shipped
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
Xilinx
ISE Simulator
Vivado Simulator
    shipped
not supported
not supported
shipped

FPGA Vendor’s Primitive Libraries

Altera

Note

The Altera Quartus tool chain needs to be configured in PoC.
See Configuring PoC’s Infrastruture for further details.

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-altera.sh --all
# Example 2 - Compile only for GHDL and VHDL-2008
./tools/precompile/compile-altera.sh --ghdl --vhdl2008

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.
  --vhdl93 GHDL only: Compile only for VHDL-93.
  --vhdl2008 GHDL only: Compile only for VHDL-2008.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-altera.ps1 -All
# Example 2 - Compile only for GHDL and VHDL-2008
.\tools\precompile\compile-altera.ps1 -GHDL -VHDL2008

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.
  -VHDL93 GHDL only: Compile only for VHDL-93.
  -VHDL2008 GHDL only: Compile only for VHDL-2008.

Lattice

Note

The Lattice Diamond tool chain needs to be configured in PoC.
See Configuring PoC’s Infrastruture for further details.

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-lattice.sh --all
# Example 2 - Compile only for GHDL and VHDL-2008
./tools/precompile/compile-lattice.sh --ghdl --vhdl2008

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.
  --vhdl93 GHDL only: Compile only for VHDL-93.
  --vhdl2008 GHDL only: Compile only for VHDL-2008.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-lattice.ps1 -All
# Example 2 - Compile only for GHDL and VHDL-2008
.\tools\precompile\compile-lattice.ps1 -GHDL -VHDL2008

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.
  -VHDL93 GHDL only: Compile only for VHDL-93.
  -VHDL2008 GHDL only: Compile only for VHDL-2008.

Xilinx ISE

Note

The Xilinx ISE tool chain needs to be configured in PoC.
See Configuring PoC’s Infrastruture for further details.

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-xilinx-ise.sh --all
# Example 2 - Compile only for GHDL and VHDL-2008
./tools/precompile/compile-xilinx-ise.sh --ghdl --vhdl2008

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.
  --vhdl93 GHDL only: Compile only for VHDL-93.
  --vhdl2008 GHDL only: Compile only for VHDL-2008.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-xilinx-ise.ps1 -All
# Example 2 - Compile only for GHDL and VHDL-2008
.\tools\precompile\compile-xilinx-ise.ps1 -GHDL -VHDL2008

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.
  -VHDL93 GHDL only: Compile only for VHDL-93.
  -VHDL2008 GHDL only: Compile only for VHDL-2008.

Xilinx Vivado

Note

The Xilinx Vivado tool chain needs to be configured in PoC.
See Configuring PoC’s Infrastruture for further details.

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-xilinx-vivado.sh --all
# Example 2 - Compile only for GHDL and VHDL-2008
./tools/precompile/compile-xilinx-vivado.sh --ghdl --vhdl2008

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.
  --vhdl93 GHDL only: Compile only for VHDL-93.
  --vhdl2008 GHDL only: Compile only for VHDL-2008.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-xilinx-vivado.ps1 -All
# Example 2 - Compile only for GHDL and VHDL-2008
.\tools\precompile\compile-xilinx-vivado.ps1 -GHDL -VHDL2008

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.
  -VHDL93 GHDL only: Compile only for VHDL-93.
  -VHDL2008 GHDL only: Compile only for VHDL-2008.

Third-Party Libraries

OSVVM

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-osvvm.sh --all
# Example 2 - Compile only for GHDL
./tools/precompile/compile-osvvm.sh --ghdl

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-osvvm.ps1 -All
# Example 2 - Compile only for GHDL
.\tools\precompile\compile-osvvm.ps1 -GHDL

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.

UVVM

On Linux

# Example 1 - Compile for all Simulators
./tools/precompile/compile-uvvm.sh --all
# Example 2 - Compile only for GHDL
./tools/precompile/compile-uvvm.sh --ghdl

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.

On Windows

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-uvvm.ps1 -All
# Example 2 - Compile only for GHDL
.\tools\precompile\compile-uvvm.ps1 -GHDL

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.

Simulator Adapters

Cocotb

On Linux

Attention

This is an experimental compile script.

# Example 1 - Compile for all Simulators
./tools/precompile/compile-cocotb.sh --all
# Example 2 - Compile only for GHDL
./tools/precompile/compile-cocotb.sh --ghdl

List of command line arguments:

Common Option Parameter Description
-h --help Print embedded help page(s).
-c --clean Clean-up directories.
-a --all Compile for all simulators.
  --ghdl Compile for GHDL.
  --questa Compile for QuestaSim.

On Windows

Attention

This is an experimental compile script.

# Example 1 - Compile for all Simulators
.\tools\precompile\compile-cocotb.ps1 -All
# Example 2 - Compile only for GHDL
.\tools\precompile\compile-cocotb.ps1 -GHDL

List of command line arguments:

Common Option Parameter Description
-h -Help Print embedded help page(s).
-c -Clean Clean-up directories.
-a -All Compile for all simulators.
  -GHDL Compile for GHDL.
  -Questa Compile for QuestaSim.