This repository provides Docker images for Questa.
These images were created for running UVM testbenches via a continuous integration service with a FLEXnet license server.
-
Build the base image
-
Push to registry
-
Copy the example Dockerfile template into user testbench
-
Setup continuous integration service to use the example Dockerfile
See example/.
Questa is large but can be pruned. Both the Questa GCC and the system GCC must be installed. The system GCC is required for DPI compilation (e.g. UVM). Questa GCC is required for Questa VIP. It may be possible to use just one but I haven’t dug any deeper.
Install:
-
System GCC
-
Questa 64-bit
-
Questa provided GCC 64-bit
Do not install:
-
Questa 32-bit
-
Questa provided GCC 32-bit
Prune:
-
The Questa provided GCC installs several versions. Remove all but the latest GCC from
$QUESTA_ROOT
. -
AVM, OVM, and old versions of UVM may be pruned. See prune-install.sh. But note, these must also be removed from
modelsim.ini
. See prune-install.sh:61.
Additional savings may be had by using a smaller base image (e.g. Alpine).
The Questa VIP install includes all available Questa VIP. When packaging, only the VIP used should be packaged. The QVIP has common components and protocol specific components. Package all common components but only include the protocol components needed.
Exclude:
-
32-bit components
-
Versions compiled with older GCCs
Common components:
-
include/
-
linux_x86_64/
-
questa_mvc_core/include/
-
questa_mvc_core/lib/
-
questa_mvc_core/linux_x86_64_gcc-7.4.0/libquesta*
-
questa_mvc_src/sv/mvc_*
Protocol components:
-
questa_mvc_core/linux_x86_64_gcc-7.4.0/lib<protocol>*
-
questa_mvc_src/sv/<protocol>
See the contrib/package-qvip
script for automating this.