Skip to content

[dv] Teach cip_base_scoreboard about allowed fetches - #29948

Open
rswarbrick wants to merge 1 commit into
lowRISC:masterfrom
rswarbrick:cip-base-scb-fetches
Open

[dv] Teach cip_base_scoreboard about allowed fetches#29948
rswarbrick wants to merge 1 commit into
lowRISC:masterfrom
rswarbrick:cip-base-scb-fetches

Conversation

@rswarbrick

@rswarbrick rswarbrick commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Commit ec5e1c4 taught virtual sequences not to target the debug ROM with fetches and expect TL errors. This commit teaches the analysis side of things to match.

One change to the dv_base_reg_block code in this commit is that dv_base_reg_block::reg_allows_fetch is no longer local. In the previous commit, the virtual sequence worked by getting a list of registers that don't allow fetches, but that isn't very convenient for a scoreboard that has seen a fetch from a particular register.

@rswarbrick rswarbrick added Component:DV DV issue: testbench, test case, etc. IP:rv_dm labels Apr 28, 2026
@rswarbrick
rswarbrick force-pushed the cip-base-scb-fetches branch 2 times, most recently from 11e6ef1 to 9a18287 Compare May 7, 2026 20:17
@rswarbrick
rswarbrick force-pushed the cip-base-scb-fetches branch from 9a18287 to feae1a3 Compare August 12, 2026 22:15
@rswarbrick
rswarbrick force-pushed the cip-base-scb-fetches branch from feae1a3 to 51a43b2 Compare August 26, 2026 13:51
Commit ec5e1c4 taught virtual sequences not to target the debug ROM
with fetches and expect TL errors. This commit teaches the analysis
side of things to match.

One change to the dv_base_reg_block code in this commit is that
dv_base_reg_block::reg_allows_fetch is no longer local. In the
previous commit, the virtual sequence worked by getting a list of
registers that don't allow fetches, but that isn't very convenient for
a scoreboard that has seen a fetch from a particular register.

Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
@rswarbrick
rswarbrick force-pushed the cip-base-scb-fetches branch from 51a43b2 to e577547 Compare August 26, 2026 13:54
@rswarbrick

Copy link
Copy Markdown
Contributor Author

The force-push rebases the work over a change that @andreaskurth landed a few days ago to do the sequence side of the work (thanks!)

The new version just updates the scoreboard side of things to match. I'll update the PR message to match the commit message in a sec.

@rswarbrick rswarbrick changed the title [dv] Allow some fetches in cip_base_scoreboard and cip_base_vseq [dv] Teach cip_base_scoreboard about allowed fetches Aug 26, 2026
@rswarbrick
rswarbrick marked this pull request as ready for review August 26, 2026 13:55
@rswarbrick
rswarbrick requested a review from a team as a code owner August 26, 2026 13:55
@rswarbrick
rswarbrick requested review from KinzaQamar and removed request for a team August 26, 2026 13:55
@rswarbrick

Copy link
Copy Markdown
Contributor Author

@andreaskurth: At the start of this week, I wrongly told you that this change depended on a bunch of vertical integration work that I was doing for rv_dm. Sorry for the confusion! It turns out that fixing this problem prompted the vertical integration work, rather than depending on it.


// Does this address a register? If not, return false.
aligned_addr = block.get_word_aligned_addr(item.a_addr);
tgt_reg = block.get_default_map().get_reg_by_offset(aligned_addr, 1);

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.

You are setting the argument read of get_reg_by_offset() but is_tl_access_mapped_addr() doesn't. I s there a reason why

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component:DV DV issue: testbench, test case, etc. IP:rv_dm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants