Pre-Compiling Vendor Libraries¶
Contents of this Page
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) |
---|---|---|---|---|---|
|
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. |