Bhargav Posted January 16, 2019 Report Share Posted January 16, 2019 Previous versions of IPXACT has attributes, 'left' and 'right' inside internalPortReference element of adHocConnection in design IPXACT as shown in the following 4 lines of xml. <spirit:adHocConnection> <spirit:name>....</spirit:name> <spirit:internalPortReference spirit:ComponentRef = "..." spirit:PortRef=".." spirit:left="..." spirit:right="...."/> </spirit:adHocConnection> These attributes basically say that which vector range of port from one component is mapped to another (I assume) However, the same IPXACT with latest schema, while validation gives schema error stating, attribute right/left is not allowed. Even the latest xsd files available with accellera doesn't define these attributes.There must be some means how currently, these multibit adHocConnections are mapped between two components inside an IPXACT-design. What could be the solution for this? Quote Link to comment Share on other sites More sharing options...
kock Posted January 16, 2019 Report Share Posted January 16, 2019 Hi Bhargav, In the 1685-2014 version, component wire ports can be multidimensional, i.e., it can have muliple arrays and multiple vectors. For this reason, a portReference must support multiple dimensions as well. This is done using the partSelect element. The partSelect element can contain a single range with left and right to support a single vector as before. Or it can contain can indices plus a range. The indices indicate which dimension the range applies to. If the indices contain more than one index then the first indices apply to the arrays and the last indices apply to the vectors. Best regards, Erwin Bhargav 1 Quote Link to comment Share on other sites More sharing options...
Bhargav Posted January 17, 2019 Author Report Share Posted January 17, 2019 Hi Erwin, Thanks for that. I tried the above mentioned solution and its working. I have a question regarding connectivity of multidimensional port range. I tried to implement multidimensional ports like below attached image in my xml: It is giving this error while validation: "Element range is not expected". Must be because, range element max bound is only one. If that is the case, how to implement the following case: I have a port A from component1 like this: A[2:0][2:0] and port B of component2: B[5:3][6:4] and are supposed to be connected. Now, how will I regenerate this in IPXACT? If I am using, "indices" element, with two indexes, each for each dimension, still I will be able to give range definition only once. I mean, I can give connectivity information for only one dimension of A and B. What about the range information for the second dimension? Best regards, Bhargav Kandru. Quote Link to comment Share on other sites More sharing options...
kock Posted January 17, 2019 Report Share Posted January 17, 2019 Hi Bhargav, In case of your example connecting A[2:0][2:0] to B[5:3][6:4] there is no need to describe the partSelect. If there is no partSelect then automatically the full range is connected. If you want to create connections different from A[x][y] -> B[x+3][y+4], let's say A[x[[y] -> B[y+3][x+4], then you can use two adhoc connections: <ipxact:adHocConnections> <ipxact:adHocConnection> <ipxact:name>adhoc1</ipxact:name> <ipxact:portReferences> <ipxact:internalPortReference componentRef="cA" portRef="A"> <ipxact:partSelect> <ipxact:indices> <ipxact:index>0</ipxact:index> </ipxact:indices> <ipxact:range> <ipxact:left>2</ipxact:left> <ipxact:right>0</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> <ipxact:internalPortReference componentRef="cB" portRef="B"> <ipxact:partSelect> <ipxact:indices> <ipxact:index>1</ipxact:index> </ipxact:indices> <ipxact:range> <ipxact:left>6</ipxact:left> <ipxact:right>4</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> </ipxact:portReferences> </ipxact:adHocConnection> <ipxact:adHocConnection> <ipxact:name>adhoc2</ipxact:name> <ipxact:portReferences> <ipxact:internalPortReference componentRef="cA" portRef="A"> <ipxact:partSelect> <ipxact:indices> <ipxact:index>1</ipxact:index> </ipxact:indices> <ipxact:range> <ipxact:left>2</ipxact:left> <ipxact:right>0</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> <ipxact:internalPortReference componentRef="cB" portRef="B"> <ipxact:partSelect> <ipxact:indices> <ipxact:index>0</ipxact:index> </ipxact:indices> <ipxact:range> <ipxact:left>5</ipxact:left> <ipxact:right>3</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> </ipxact:portReferences> </ipxact:adHocConnection> </ipxact:adHocConnections> Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
Bhargav Posted January 18, 2019 Author Report Share Posted January 18, 2019 That was very useful for me Erwin. Thank You. Will there be any significance, if I connect two unequal length ports under adHocConnection. Suppose, port A[3:0], connected to port B[7:0]. Just as below: <ipxact:adHocConnection> <ipxact:name>adhoc1</ipxact:name> <ipxact:portReferences> <ipxact:internalPortReference componentRef="cA" portRef="A"> <ipxact:partSelect> <ipxact:range> <ipxact:left>3</ipxact:left> <ipxact:right>0</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> <ipxact:internalPortReference componentRef="cB" portRef="B"> <ipxact:partSelect> <ipxact:range> <ipxact:left>7</ipxact:left> <ipxact:right>0</ipxact:right> </ipxact:range> </ipxact:partSelect> </ipxact:internalPortReference> </ipxact:portReferences> </ipxact:adHocConnection> In this case, what is the IPXACT exactly stating? A[3:0] connected to B[7:4], with B[3:0] left unconnected or the other way? or this IPXACT description is entirely invalid as incorrect length vectors are tied up? Best Regards, Bhargav K Quote Link to comment Share on other sites More sharing options...
kock Posted January 21, 2019 Report Share Posted January 21, 2019 Hi Bhargav, This is not allowed by SCR 6.25 on page 203 of the IEEE std. 1685-2014: "All ports referenced in an ad hoc connection shall reference the same number of bits. If no range is specified for a nonscalar port, then the full range from the port definition is presumed." Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
Bhargav Posted January 21, 2019 Author Report Share Posted January 21, 2019 Thank you so much for the support, Erwin. Best Regards, Bhargav Kandru 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.