Khushi Posted January 8, 2021 Report Share Posted January 8, 2021 Hi In IPXACT standard document, I see inside an address block we can have either register or registerFile. In the same context I have following questions - What is the difference between register and registerfile in ipxact ? - When we should use register element or registerfile element to describe registers? Thanks Khushi Quote Link to comment Share on other sites More sharing options...
kock Posted January 11, 2021 Report Share Posted January 11, 2021 Hi Kushi, A register file is a group of registers. The group has its own range and dimension, so you can see it as an array. Assume register file RF with offset 0, range 8, and dimension 2 containing two registers A and B at offsets 0 and 4. Then there are two occurences of register A at offsets 0 and 8 and two occurences of registers B at offsets 4 and 12. You cannot describe this without register files unless you unroll all registers. Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
Khushi Posted January 11, 2021 Author Report Share Posted January 11, 2021 Thanks Erwin Why in the standard we have two different elements (register and registerFile) ? Why not all capabilities (from simple to complex) are supported using simple register element. Is there some specific reason to have two elements (register for simple register sand registerFile for complex registers e.g. arrays, interleaved etc) > Can we write the IPXact registers descriptions entirely using register files? Are EDA tools supporting registerFile elements to generate UVM or C files? Regarding when we should use register and when registerFile => Can we use registerFile when complex array kind of things are not expressible using register ? Thank Khushi Quote Link to comment Share on other sites More sharing options...
kock Posted January 12, 2021 Report Share Posted January 12, 2021 Hi Kushi, Objects such as address blocks, registers files, and registers are not allowed to overlap or to be interleaved. So you cannot create a register array with gaps and interleave it with another register array with gaps. Instead you can create a register file array. Each element in the register file array can contain multiple registers or even register files. The register files can thus be nested. So indeed, certain things, you can only express using register files. You cannot describe registers without IP-XACT registers because IP-XACT registers do appear in IP-XACT register files. A register file is only a container for registers. In general, EDA tools do support register files. I cannot comment on specific tools. Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
ravin Posted July 12, 2022 Report Share Posted July 12, 2022 HI, Which function can be used to extract information incase of nested registerfile. I am using getRegisterFileAraay but this is giving only one level of register array in address block. Quote Link to comment Share on other sites More sharing options...
kock Posted July 14, 2022 Report Share Posted July 14, 2022 Hello, IEEE Std. 1685-2009 mentions TGI functions getRegisterFileRegisterIDs and getRegisterFileRegisterFileIDs to retrieve handles to registers and nested register files inside a given register file. Unfortunately it seems this functions were missed in the 2014 version but it should work the same way. Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.