openhwgroup / core-v-verif

Functional verification project for the CORE-V family of RISC-V cores.

Home Page:https://docs.openhwgroup.org/projects/core-v-verif/en/latest/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provide mechanism for a test-program to select its configuration

MikeOpenHWGroup opened this issue · comments

This issue is inspired by Issue #336 and Pull-Request #2159.

Background

As detailed in the Common Makefile for the CORE-V-VERIF UVM Verification Environment and TOOLCHAIN READMEs, each test-program in CORE-V-VERIF has an associated test.yaml that specifies various compile and/or runtime options used by the CORE-V-VERIF Makefiles and scriptware to compile and run the test. The scriptware also parses a global yaml file which defines a set of common options applicable to a number of test-programs. For example:

$ make test CFG=pulp_cluster_fpu_zfinx TEST=pulp_hardware_loop

will compile and run the test-program found in <core>/tests/program/custom/pulp_hardware_loop using <core>/tests/cfg/pulp_cluster_fpu_zfinx.yaml.

Some tests are intended to use one-and-only-one global yaml from <core>/tests/cfg, while other test-programs are intended to be used with multiple global yamls. Recall that in the absence of a CFG parameter on the make command-line, <core>/tests/cfg/default.yaml is used.

The Issue

Currently, there is no way for a human to know which global yaml to use for a given testcase. For example, as discussed in #2159, $ make test TEST=pulp_hardware_loop will not work because the default.yaml does not specify the MARCH needed to compile this test-program.

Proposed Solution

Currently, the scriptware will parse <core>/tests/cfg/default.yaml in the absence of a CFG parameter on the make command-line. The script YAML2MAKE could be updated to look for a "default_cfg" variable that would specify the default global yaml file to be used for a given test. For example, <core>/tests/program/custom/pulp_hardware_loop/test.yaml could look like this (the line with "default_cfg" is added):

# Test definition YAML for PULP_HARDWARE_LOOP test-program

# Debug directed test
name: debug_test
default_cfg: pulp_cluster_fpu_zfinx
uvm_test: uvmt_$(CV_CORE_LC)_firmware_test_c
program: debug_test
description: >
    Debug directed test

The default_cfg could be overridden with any other cfg using the CFG option as above.