Jump to content
Sign in to follow this  
balasubramanian.g@pmcs.com

Capturing register array information inside IPXACT XML

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×