Skip to content

Conversation

@ctopal-rl
Copy link

@ctopal-rl ctopal-rl commented Mar 12, 2025

configure method of uvm_vreg accepts an offset argument which is useful especially when we try to declare a virtual register array inside a memory block in systemRDL. Example case below

mem my_mem{
    name = "My Memory";
    mementries = 1024*128; // 1MB space
    memwidth = 64;

    reg {
        name = "ArrayA";
        regwidth = 64;
        field {
            name = "An array of values in a particular address of memory";
        } value[63:0];
    } arrayA[32] @ 0x100;

    reg {
        name = "ArrayB";
        regwidth = 64;
        field {
            name = "Different array of values in a different address";
        } value[63:0];
    } arrayB[32] @ 0x200;

This patch allows us to use peakrdl-uvm to still generate a useful UVM-RAL with correct offsets. Without this, compilation errors out complaining that there are multiple virtual registers trying to occupy the same address.

Link to uvm_vreg configure method: https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files/reg/uvm_vreg-svh.html#uvm_vreg.configure

@ctopal-rl
Copy link
Author

@amykyta3 not sure if you still maintain this repo but saw your name as the last committer and couldn't manage to add you as a reviewer so I'm just tagging you just in case.

@junechanh
Copy link

Our team just ran into this shortcoming and was able to validate against our codebase that the changeset does indeed provide the support as stated. I see this PR has been open for several months -- do y'all have any line of sight on when this might be available in an official release?

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