balasubramanian.g@pmcs.com Posted August 12, 2014 Report Share Posted August 12, 2014 Hi there IPXACT needs to capture array of registers properly in a design. Currently there is only one tag ''spirit:dim" to represent an array of registers. This does not enable us to capture an array of register effectively. Consider the following cases: 1. An array of registers can be one dimensional with each element offset by offset address 0x10. 2. An Array of multidimensional registers something like this: register_1[0][0] -> 0x0 register_1[0][1] -> 0x4 register_1[1][0] -> 0x10 register_1[1][1] -> 0x14 ... likewise Is there any way to capture just the address relationship to an array instance within IP-XACT XML tags? (Without using vendorExtensions tag?) We have not been able to capture the above said information inside IPXACT XML.(using only IP-XACT tags) Requesting thoughts regarding the same. Best regards Balasubramanian G Quote Link to comment Share on other sites More sharing options...
Richard Weber Posted August 12, 2014 Report Share Posted August 12, 2014 Hello Balasubramanian, The word you are looking for is "stride". Stride is the offset distance between elements of an array. IP-XACT 1685-2009 does not have a stride feature. Due lack of participation and resources for the forthcoming IP-XACT version (hopefully 2014) the stride feature has been deferred until the committee reconvenes for the subsequent version. We look forward to your participation. In general an array is an indexed sequential collection of identical elements. Stride is one property which is assumed identical between array elements. The second example violates this assumption of consistent stride between elements. Which standards or programming languages inspire the second example? Best Regards Richard Weber Semifore, Inc. Quote Link to comment Share on other sites More sharing options...
balasubramanian.g@pmcs.com Posted August 13, 2014 Author Report Share Posted August 13, 2014 Hi Richard Thanks for your response. We have SoC designs where 2-dimensional arrays are implemented. The 2-dimensional arrays have two types of 'stride' values in them. 1st stride tries to increment address of the first dimension (consider this as COLUMN) 2nd stride tries to increment address of the second dimension (consider this as ROW) Example: REG_1[0][0]->0x0 REG_1[0][1]->0x4 REG_1[0][2]->0x8 REG_2[1][0]->0x10 REG_2[1][0]->0x14 REG_2[1][0]->0x18 COLUMN stride (=0x4) and ROW stride (=0x10) values make sure that each array element gets unique address. (Though there may be gaps introduced in between them). SystemVerilog arrays are our motivation to map this RTL implementation into arrays. (IEEE 1800-2012) Best regards Balasubramanian G Quote Link to comment Share on other sites More sharing options...
chiggs Posted August 13, 2014 Report Share Posted August 13, 2014 Hi Richard, We look forward to your participation. Could you kindly explain how one could participate in the IP-XACT committee? Is it possible for non accellera members to contribute? Thanks, Chris Quote Link to comment Share on other sites More sharing options...
Richard Weber Posted August 13, 2014 Report Share Posted August 13, 2014 Hello Chris, IP-XACT is actually two committees. First, there is the Accellera IP-XACT committee. I believe participation is limited to Accellera members, but, check with the chair of the committee. Second, there is the IEEE P1685 committee which is entity based. Participation is limited to entity (company, university, government) members of the IEEE Standards Association. The next version of IP-XACT is worked on by the Accellera committee first and then the result is contributed to the IEEE P1685 committee for refinement and eventual publication. Once published by the IEEE P1685 committee, IP-XACT becomes an international standard. The next opportunity for technical participation will be when the Accellera IP-XACT schema subcommittee reconvenes, and, this will probably be at least year from when the standard is published depending on industry participation. Quote Link to comment Share on other sites More sharing options...
Richard Weber Posted August 13, 2014 Report Share Posted August 13, 2014 Hello Balasubramanian, Many languages support multi-dimensional arrays of objects including System Verilog and IP-XACT. However, I was hoping that you would provide a reference to a standard or a programming language which specifies the offset layout of the array in memory and includes the multiple stride feature you are requesting. Our concern is that this multiple stride feature would not translate to the expected derived outputs of IP-XACT especially those for the software community. Also, IP-XACT is not an authoring format. You should be using a tool to generate the IP-XACT to resolve this issue. Using SystemRDL to generate IP-XACT is one such path, but, there are other richer formats and platforms commercially available. Quote Link to comment Share on other sites More sharing options...
ankit jain Posted July 18, 2019 Report Share Posted July 18, 2019 Hi, one solution could be using register file containing registers with dimension (for column) and then applying dimension on register file (for row). Quote Link to comment Share on other sites More sharing options...
Khushi Posted November 8, 2019 Report Share Posted November 8, 2019 I believe registerFile concept in IP-Xact can handle the 2 dimensional registers as Ankit specified above. 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.