Skip to content

[rstmgr,dv] Reset Manager DV ported to mocha#506

Draft
KolosKoblasz-Semify wants to merge 6 commits intolowRISC:mainfrom
KolosKoblasz-Semify:kk_rst_mgr_dv
Draft

[rstmgr,dv] Reset Manager DV ported to mocha#506
KolosKoblasz-Semify wants to merge 6 commits intolowRISC:mainfrom
KolosKoblasz-Semify:kk_rst_mgr_dv

Conversation

@KolosKoblasz-Semify
Copy link
Copy Markdown
Collaborator

@KolosKoblasz-Semify KolosKoblasz-Semify commented Apr 29, 2026

TO DO

This PR will address: #433

@martin-velay martin-velay changed the title Reset Manager DV ported to mocha [rstmgr,dv] Reset Manager DV ported to mocha Apr 29, 2026
- files_rtl
- files_dv
default_tool: vcs
default_tool: xcelium
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is the source of your issue with the src file being not generated. The .src file is your file list generated from FuseSoc. I know that confusing, I went into this trap earlier too.
The VCS backend generates a .scr file, which is an identical format to a more standard .f format. We are only running FuseSoc up to the point it generates the filelist file (.scr in this case).

@KolosKoblasz-Semify KolosKoblasz-Semify force-pushed the kk_rst_mgr_dv branch 6 times, most recently from d7f29db to 7d337b2 Compare May 5, 2026 11:14
// Wait till rst_lc_n is inactive for non-aon.
`DV_WAIT(cfg.rstmgr_vif.resets_o.rst_lc_n[1])
// Wait till rst_por_aon_n is inactive for non-aon.
`DV_WAIT(cfg.rstmgr_vif.resets_o.rst_por_aon_n[1])
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 this should be the same reset as the one fed into the reset manager block in the top which is rst_por_io_n

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

In rstmgr.sv line 351 constant zero is assigned to it:

Image

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The assignment happens here: rstmgr.sv#L340

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Probably makes sense to switch rst_*lc* with rst_por_io_n everywhere (and Marno agrees as well).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Okay, but then it is DomainAonSel right?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

rst_lc_n[1] -> rst_por_io_n[1] so this is going to be Domain0Sel?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yes, DomainAonSel is 0, Domain0Sel is 1.

 * open titan specific paths changed to mocha specific ones
   in the template files
 * 0001_Fix_Paths_And_Tools.patch file created with the changes

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
@KolosKoblasz-Semify KolosKoblasz-Semify force-pushed the kk_rst_mgr_dv branch 2 times, most recently from c0ca16b to a5c3e8f Compare May 8, 2026 06:51
 * The patched config and template config files
   added to the source code

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * 0002 patches fix the auto generated
   reset manager's dv files to be run

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * These modifications will enable to run
   block level simulations on rstmgr
   while using correct reset signals and domains
   in the UVM tb.

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * As result of previous patches to template files
   new dv files are generated for rstmgr.

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * rstmgr's smoketest added to top level
   simulation list

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
Copy link
Copy Markdown
Collaborator

@marnovandermaas marnovandermaas left a comment

Choose a reason for hiding this comment

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

Some comments from my end.

- `CASCADED_ASSERTS(CascadeLcToLc, rst_lc_src_n[rstmgr_pkg::Domain0Sel],
- resets_o.rst_lc_n[rstmgr_pkg::Domain0Sel], SysCycles, clk_main_i)
-
- // Controlled by rst_sys_src_n.
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.

There are a few resets controlled by SYS SRC in Mocha, such as rst_{main,io,spi_device,spi_host,i2c}_n

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.

It would be good to investigate whether we should have cascade asserts for those.

else:
assert 0, "No preferred clock available"

-preferred_rst_n = f"rst_lc_{preferred_domain}_n"
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.

Can't we just update the preferred domain? This also fixes the power on reset preference below.

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.

4 participants