-
Notifications
You must be signed in to change notification settings - Fork 221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verilog compile fails on uvmt_cv32_tb.sv on commit 1e77175 using vcs simulator #294
Comments
According to this post on verification academy, this is a VCS bug. Unfortuately, I do not have access to VCS, so I cannot reproduce the issue. I have access to Metrics dsim and Cadence Xcelium and this code works with both. Another Contributor to OpenHW who does have VCS access is @masgia and they may have some insight to the issue. We do encounter these kinds of problems find time to time and while we try to avoid it as much as possible, there are several instances of simulator-specific code in the environment. An example of this can be found at That verification academy post hints at a possible workaround in
Give that a try and let me know if that works for you. If it does, we shall need to determine a minimally invasive edit to allow support for VCS. |
Mike, thanks for the great feedback. Will give it a try this afternoon. |
I was able to make the change described above to work around all but one error. The remaining error is an input that is declared as an enum type which is a variable (ctrl_fsm_cs input). I commented out that assign statement in the uvmt_cv32_tb.sv to avoid that compile error for now. These changes allowed me to compile without errors. I will ask Synopsys about this and see what they say. |
Thanks for the update @mtvaden. Please let us know the outcome of the discussion with SNPS. You could also issue a pull-request, which would make it very easy for me or another member of the project to support you directly. |
Hi, I confirm I get the same errors (w/o the workaround). |
Hi @mtvaden. Do you have an update on this issue? |
Hi @masgia and @mtvaden, we are approaching RTL Freeze for CV32E40P and need to resolve this issue soon. I would like to implement the known workaround and test it against all supported simulators. To do that, we need to:
If we can get all that done in the next few days, then the official RTL Freeze tag will work for VCS users. Please help us achieve that goal. |
Signed-off-by: Massimiliano Giacometti <massimiliano.giacometti@hensoldt-cyber.de>
Now I get an error which is unrelated to the issue discussed here and which I didn't have one week back
This results in
|
@masgia Thanks for reporting this. We have not seen this in Xcelium, Questa or Metrics, but none of us have access to VCS to fully test. The variable (valid_interrupt_mask) above should be a constant variable inside the package riscv_instr_pkg. See corev-dv/target/cv32e40p/riscv_core_setting.sv This package (riscv_instr_pkg) should be imported into corev_instr_test_pkg, which is where the above sequence is contained. Please make a local edit to try either:
Feel free to issue a PR on this or reply here and I'll file the PR for you. |
PR #361 fixed the problem |
Thanks @masgia |
Verilog compile fails on uvmt_cv32_tb.sv on commit 1e77175 using vcs simulator
Compile error using VCS
Error-[VIPCBD] Variable input ports cannot be driven
/home/mvaden/work/core-v-verif/cv32/tb/uvmt_cv32/uvmt_cv32_tb.sv, 95
Variable input ports cannot be driven.
The input variable port "clk_i" of interface "uvmt_cv32_debug_cov_assert_if"
cannot be driven.
Source info: assign uvmt_cv32_tb.debug_cov_assert_if.clk_i = uvmt_cv32_tb.clknrst_if.clk;
Interface 'uvmt_cv32_debug_cov_assert_if' is defined at
"/home/mvaden/work/core-v-verif/cv32/tb/uvmt-cv32/uvmt_cv32_tb_ifs.sv", 296
Similar error message received for the following input variable ports:
MAX_ERROR_COUNT
Problem source
The addition of the uvmt_cv32_debug_cov_assert_if debug_cov_assert_if(); and the associated
assignments appear to be the source of the problem. It may be that the other simulators are
not reporting an error here.
To Reproduce
core-v-verif/cv32/sim/uvmt_cv32$ make SIMULATOR=vcs sanity
Mike Vaden
mvaden@futurewei.com
The text was updated successfully, but these errors were encountered: