Skip to content

Add UVM/UVMF Example #6

@rfdonnelly

Description

@rfdonnelly

Add an example that uses UVM. Use one of the examples provided by Questa. It seems the only UVM examples provided by Questa also use UVMF.

Download UVMF 2019.1 and extract to example/UVMF_2019.1.

Setup environment:

export MGLS_LICENSE_FILE=...
hostname=...
domain=...
username=...

Build the user image:

cd example
docker build --build-arg DOCKER_USER=$username --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t questa .

Run a single testbench:

cd UVMF_2019.1
docker run -it -v $PWD:/src -w /src -u $(id -u):$(id -g) \
    --hostname $hostname --dns-search $domain \
    -e MGLS_LICENSE_FILE \
    -e UVMF_HOME \
    questa \
    make -C base_examples/project_benches/alu/sim cli

Run full regression:

docker run -it -v $PWD:/src -w /src -u $(id -u):$(id -g) \
    --hostname $hostname --dns-search $domain \
    --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
    -e MGLS_LICENSE_FILE \
    -e UVMF_HOME=/src \
    -e QUESTA_MVC_HOME=/src \
    questa \
    make -C base_examples/project_benches/full_regression/sim

NOTE: Set QUESTA_MVC_HOME to avoid undefined errors. This variable defines the path to Questa VIP but we don't have it and we actually need it.

NOTE: The --cap-add and --security-opt options are required so that VRM doesn't fail due to Warning: setting ADDR_NO_RANDOMIZE failed - Operation not permitted. being printed to stderr.

Example error:

Error: Action 'top/each_top/build_group~alu/build_task/execScript' failed (failed/stderr):
  logfile: /src/base_examples/project_benches/full_regression/sim/VRMDATA/top/each_top/build_group~alu/build_task/execScript.log
  stderr: ** Warning: setting ADDR_NO_RANDOMIZE failed - Operation not permitted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions