Skip to content

[chip,dv] Define a virtual "chip_ral" core#30140

Draft
rswarbrick wants to merge 3 commits into
lowRISC:masterfrom
rswarbrick:virtual-chip-ral
Draft

[chip,dv] Define a virtual "chip_ral" core#30140
rswarbrick wants to merge 3 commits into
lowRISC:masterfrom
rswarbrick:virtual-chip-ral

Conversation

@rswarbrick
Copy link
Copy Markdown
Contributor

This PR is a draft because it depends on both #29727 and #29730. Once they are merged, only the last commit remains, which has the following commit message.

[chip,dv] Define a virtual "chip_ral" core

This is supplied by a top-level chip-level register model. Defining it
like this means that a block-level environment can depend on
lowrisc:dv:chip_ral if the chip_level config parameter is set, which
will ensure it appears in the EDA file list after the register model
upon which it depends.

This gets defined in the cores for chip environments. The advantage is
that these cores can now depend on the environments of IPs, which
won't generate their own RAL definitions (because the chip-level
environment has done it already).

Note that this is different from the existing skip_ral_gen flag. As
far as I can tell, there's no way to set a flag for just the cores
that get pulled in as a dependencie. So skip_ral_gen will let you turn
everything off, but I don't think you can turn off just the RAL for
the blocks.

To set the "chip_level" flag, it has to be set to true in the core
file that gets invoked by fusesoc (I think). This is chip_sim.core.

Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
Splitting it up like this will allow us to integrate a block-level
testbench, whose register model is generated in the chip-level RAL
file.

We need to split that out of chip_env.core to avoid a circular
dependency (because the chip environment depends on the block-level
environment, which depends on the register model).

Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
This is supplied by a top-level chip-level register model. Defining it
like this means that a block-level environment can depend on
lowrisc:dv:chip_ral if the chip_level config parameter is set, which
will ensure it appears in the EDA file list *after* the register model
upon which it depends.

Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
@rswarbrick rswarbrick added Component:DV DV issue: testbench, test case, etc. Component:ChipLevelTest Used to filter the chip-level test backlog labels May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component:ChipLevelTest Used to filter the chip-level test backlog Component:DV DV issue: testbench, test case, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant