[verilator] uart_smoketest_sim_verilator times out immediately after simctrl.Exec()
Nobody has claimed this yet.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
Description
Description
I am trying to run the UART smoketest using the Verilator backend.
The Verilator simulation model (//hw:verilator_real) builds successfully using Bazel. However, when running the UART smoketest target (//sw/device/tests:uart_smoketest_sim_verilator), the simulation consistently times out immediately after simctrl.Exec() is called.
I am not sure whether the issue is related to the OpenTitan simulation flow, the Verilator backend integration, or my local setup, and would appreciate any guidance.
Environment
- Branch: master
- OS: Ubuntu 26.04 LTS running under WSL2 (Windows 11)
- Verilator: 5.049
- Python (OpenTitan): 3.10.16
- Edalize: 0.6.3
Commands
Build
./bazelisk.sh build //hw:verilator_real
Build completes successfully and generates the Verilator simulation model.
Run
./bazelisk.sh test --test_output=all //sw/device/tests:uart_smoketest_sim_verilator
Observed Output
Simulation of OpenTitan Earl Grey
[TB] About to call simctrl.Exec()
Tracing can be toggled by sending SIGUSR1 to this process:
$ kill -USR1
Error: Timed out
The simulator launches successfully, but the software testcase never appears to start executing. I also added debug messages in test_main(), but they are never printed.
Expected Behavior
The UART smoketest should execute successfully and complete with a PASS status
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing //sw/device/tests:uart_smoketest_sim_verilator after building //hw:verilator_real, and trace the flow around simctrl.Exec(). Check why the simulator does not reach the UART smoketest's test_main(); done means the test executes and completes with PASS instead of timing out.
Written by the indexing model from the issue text.
Assessment
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100