Skip to content

[hw] Split DV and DD for lowRISC vendored IPs - #612

Open
martin-velay wants to merge 3 commits into
lowRISC:mainfrom
martin-velay:split_dd_dv_opentitan
Open

[hw] Split DV and DD for lowRISC vendored IPs#612
martin-velay wants to merge 3 commits into
lowRISC:mainfrom
martin-velay:split_dd_dv_opentitan

Conversation

@martin-velay

Copy link
Copy Markdown
Contributor

This would allow us to pull in the upstream DV files while maintmaining the DD files in the same state as before. This is needed as some RTL changes are not desired while we need to get latest DV changes from upstream. This will work until the DV diverge from the DD. Then, another solution will be needed to keep the DV and DD in sync (maybe cherry- picking individual changes in an OpenTitan fork dedicated to Mocha which will be manually maintained for Mocha needs).

@martin-velay
martin-velay force-pushed the split_dd_dv_opentitan branch 2 times, most recently from 15c23c1 to ab0db08 Compare June 16, 2026 15:26
@martin-velay
martin-velay removed the request for review from marnovandermaas July 17, 2026 06:51
@martin-velay
martin-velay force-pushed the split_dd_dv_opentitan branch 2 times, most recently from 2a25528 to 4aa3ac2 Compare July 17, 2026 07:00
This would allow us to pull in the upstream DV files while maintmaining
the DD files in the same state as before. This is needed as some RTL
changes are not desired while we need to get latest DV changes from
upstream. This will work until the DV diverge from the DD. Then, another
solution will be needed to keep the DV and DD in sync (maybe cherry-
picking individual changes in an OpenTitan fork dedicated to Mocha which
will be manually maintained for Mocha needs).

Signed-off-by: martin-velay <mvelay@lowrisc.org>
@martin-velay
martin-velay force-pushed the split_dd_dv_opentitan branch from 4aa3ac2 to 8e41c4a Compare July 20, 2026 15:30
Command:
util/vendor.py --update hw/vendor/lowrisc_ip_dv.vendor.hjson

Signed-off-by: martin-velay <mvelay@lowrisc.org>
Signed-off-by: martin-velay <mvelay@lowrisc.org>
@martin-velay
martin-velay force-pushed the split_dd_dv_opentitan branch from 8e41c4a to 0a563db Compare July 20, 2026 15:33
@martin-velay

Copy link
Copy Markdown
Contributor Author

All looks good now:

dvsim hw/top_chip/dv/mocha_sim_cfgs.hjson -i smoke --reseed 1
...
|                                              Name                                               |  Passing  |  Total  |  Pass Rate  |  Coverage  |
|:-----------------------------------------------------------------------------------------------:|:---------:|:-------:|:-----------:|:----------:|
|                     [UART](scratch/split_dd_dv_opentitan/reports/uart.html)                     |     3     |    3    |  100.00 %   |     --     |
|            [SPI_DEVICE_2P](scratch/split_dd_dv_opentitan/reports/spi_device_2p.html)            |     3     |    3    |  100.00 %   |     --     |
|                 [SPI_HOST](scratch/split_dd_dv_opentitan/reports/spi_host.html)                 |     3     |    3    |  100.00 %   |     --     |
|                 [RV_TIMER](scratch/split_dd_dv_opentitan/reports/rv_timer.html)                 |     3     |    3    |  100.00 %   |     --     |
|               [PRIM_ALERT](scratch/split_dd_dv_opentitan/reports/prim_alert.html)               |     2     |    2    |  100.00 %   |     --     |
|                 [PRIM_ESC](scratch/split_dd_dv_opentitan/reports/prim_esc.html)                 |     1     |    1    |  100.00 %   |     --     |
|                [PRIM_LFSR](scratch/split_dd_dv_opentitan/reports/prim_lfsr.html)                |     2     |    2    |  100.00 %   |     --     |
|   [ENTROPY_SRC_RNG_16BITS](scratch/split_dd_dv_opentitan/reports/entropy_src_rng_16bits.html)   |     3     |    3    |  100.00 %   |     --     |
|                      [I2C](scratch/split_dd_dv_opentitan/reports/i2c.html)                      |     3     |    3    |  100.00 %   |     --     |
|            [KMAC_UNMASKED](scratch/split_dd_dv_opentitan/reports/kmac_unmasked.html)            |     3     |    3    |  100.00 %   |     --     |
|                [XBAR_PERI](scratch/split_dd_dv_opentitan/reports/xbar_peri.html)                |     1     |    1    |  100.00 %   |     --     |
|                     [GPIO](scratch/split_dd_dv_opentitan/reports/gpio.html)                     |     4     |    4    |  100.00 %   |     --     |
|                   [PWRMGR](scratch/split_dd_dv_opentitan/reports/pwrmgr.html)                   |     3     |    3    |  100.00 %   |     --     |
|                   [RSTMGR](scratch/split_dd_dv_opentitan/reports/rstmgr.html)                   |     3     |    3    |  100.00 %   |     --     |
|            [ROM_CTRL_32KB](scratch/split_dd_dv_opentitan/reports/rom_ctrl_32kb.html)            |     3     |    3    |  100.00 %   |     --     |
| [RV_DM_USE_JTAG_INTERFACE](scratch/split_dd_dv_opentitan/reports/rv_dm_use_jtag_interface.html) |     0     |    7    |   0.00 %    |     --     |
|            [TOP_MOCHA_SIM](scratch/split_dd_dv_opentitan/reports/top_mocha_sim.html)            |    30     |   34    |   88.24 %   |     --     |

@martin-velay
martin-velay marked this pull request as ready for review July 20, 2026 15:35
Comment thread hw/top_chip/tmp_sim_cfg/rv_dm_base_sim_cfg.hjson
Comment thread hw/vendor/lowrisc_ip.vendor.hjson
Comment thread util/artefacts.py
Comment on lines +67 to +69
# vendor OpenTitan before doing the IP generation because patches might change the template.
# DD and DV vendors share a target_dir; run both before checking, since DD deletes IP dirs
# (including their dv/ subdirs) which the DV vendor then re-populates.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the ordering of dependencies: I checked this with Claude and I think now if we vendor the DD enviornment alone, it will remove the dv vendor. Is this constraint acceptable here, or should we add some glue logic to the scripts?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could still re-run the DV vendor script even if we don't update the Git hash version, just to get the files back. WDYT? Maybe you have a cleaner solution in mind?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's fine. We could technically exclude the the DD script from touching the DV directories on deletion, but this would be extra effort for limited returns. Maybe better to stay pragmatic.

@tchilikov-semify
tchilikov-semify self-requested a review July 31, 2026 09:35
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.

2 participants