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

Should the reference model be enabled by default?

MikeOpenHWGroup opened this issue · comments

Several of the verification environments supported by CORE-V-VERIF require the installation of a licensed product, ImperasDV. As user's of these CORE-V-VERIF may wish to evaluate the environment prior to obtaining the reference model we have implemented a command-line switch, USE_ISS, to enable/disable the reference model.

It is a requirement that all CORE-V-VERIF environments that use licensed IP be able to run with or without the licensed IP. The question asked by this Issue is, should the licensed IP be enabled or disabled by default? It would be preferable to have this be consistent across all invocations of CORE-V-VERIF, whether it be for a single test, a CI regression, riscof or a full-up coverage-closure regression. See #2117 for a discussion about this.

Note that this issue is labelled as an CV32E40P issue because #2117 is for that project, but this question could apply to all projects.

Hi Mike,

My first thought about this is that the Makefile should able to detect if one of ImperasDV environment variable has been set or not by the user (i.e. the current user has sourced all the necessary code and therefore he should know what he is doing and have the license). As an example, the Makefile could detect if IMPERAS_HOME or IMPERAS_VLNV has been set.

If no ImperasDV env variable is detected, USE_ISS is set by default to “no”, and it could not be overridden to avoid potential simulation errors (Maybe with a warning message if the user tries to force it by using the switch).

Else, if ImperasDV is sourced, USE_ISS is softly set by default to yes, while the user should still be able to force it to “no” anytime if needed.

I think this should solve the potential newcomers issue you mentionned, while being mainly transparent for regular users

I like this strategy @XavierAubert. The only thing I would add is that the Makefile should emit a message when it sets USE_ISS to "NO".

Hi @silabs-halfdan, what do you think? I've Labled this as an "cv32e40p" issue (mostly because of #2117), but this topic is also relavent to the E40S and E40X.