Skip to content

Add experimental Z01x support to sync with in-tree OpenTitan DVSim#143

Draft
AlexJones0 wants to merge 2 commits intolowRISC:masterfrom
AlexJones0:z01x_support
Draft

Add experimental Z01x support to sync with in-tree OpenTitan DVSim#143
AlexJones0 wants to merge 2 commits intolowRISC:masterfrom
AlexJones0:z01x_support

Conversation

@AlexJones0
Copy link
Copy Markdown
Contributor

Since DVSim was pulled out and separated from OpenTitan, one additional PR has been made that has modified the operation of DVSim: lowRISC/opentitan#28782

This PR aims to replicate the changes from that PR, refactored to fit out-of-tree DVSim:

  1. For the first commit, almost nothing is changed, except for fixes to keep the Deploy tests passing.
  2. For the second commit, the modification to RunTest is changed to now instead add Z01X as a separate simulation tool plugin. This way, we can inherit all of the relevant plugin functionality of VCS, whilst decoupling the Z01X-specific logic from the Deploy core itself. To do this, a generic mechanism is introduced to allow tools to mutate deploy objects after all initialization and expansion.

Note: this PR is a draft for now since I do not have the ability to test OpenTitan Z01X flows locally. This PR can be merged after it has been confirmed that these changes work properly and allow Z01X to be used.

AlexJones0 and others added 2 commits April 2, 2026 12:32
DVSim enables running commands after building has finished with the
`post_build_cmds` option, but does not provide a mechanism for passing
additional options to this post build command. Introduce this mechanism
via `post_build_opts`, defined in the HJSON configs.

Co-authored-by: Pascal Nasahl <nasahlpa@lowrisc.org>
Signed-off-by: Alex Jones <alex.jones@lowrisc.org>
Add support for the VC Z01X simulation tool, which is a fault simulation
& injection tool layered on top of the VCS engine.

A new method is introduced to the SimTool protocol to allow mutating the
attributes of the Deploy objects after all attributes have been
initialized & expanded. Then, when the tool is configured as Z01X, the
RunTest job is changed to use two different run options:
- run_opts_fi_sim: the runtime options needed for Z01X.
- run_opts: Z01X itself starts the simulation using simv. Those
            run_opts parameters are then passed by Z01X to simv.

Co-authored-by: Pascal Nasahl <nasahlpa@lowrisc.org>
Signed-off-by: Alex Jones <alex.jones@lowrisc.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant