/docker-questa

A Docker image for Mentor/Siemens Questa

Primary LanguageShell

Docker Images for Questa

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.

1. Usage

  1. Build the base image

  2. Push to registry

  3. Copy the example Dockerfile template into user testbench

  4. Setup continuous integration service to use the example Dockerfile

2. Example

See example/.

3. Notes on Packaging

3.1. Questa

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).

3.2. Questa VIP

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.