kkibria replied to kkibria's topic in IP-XACT DiscussionHi Mark: In such case I need a bit more clarification. I will use the following example, let me know if my bit order assumptions are correct. Lets say the port is [3:0][2:0][1:0] portname; Example 1: If the range is not specified then the width of the default value has to be 4x3x2 = 24. Default value bit ordering, leftmost ---- rightmost portname, portname, portname, portname ---- portname Example 2: If the range is specified = [2:1] then the width of the default value has to be 2x3x2 = 6. Default value bit ordering, leftmost ---- rightmost portname, portname, portname, portname ---- portname Regards, -- Khan.
kkibria posted a topic in IP-XACT DiscussionHello folks: I am referring to IP-XACT 1685-2014 standard, but may be applicable to earlier versions as well. Component wire ports can have multiple drivers. The each driver has an optional range (section 18.104.22.168) which can only be one dimensional. This works alright for one dimensional ports. However the standard also allows for declaring multidimensional component ports with arrays (22.214.171.124) and vectors (126.96.36.199). How do I interpret the driver range within the context of multidimensional ports? It seems like default value can be specified for a slice of an standard verilog port. One may use a list of ranges allow port default value to be broken into several mutually exclusive parts perhaps in a more meaningful way. On the other hand, it seems to me from the spec that the default value can not be specified for an arbitrary multi dimensional slice of a (system verilog) multi dimensional port. Is it a correct assumption? I also thought of an interpretation. I am not sure if that was the real intent of the spec. Let me attempt describing using following examples. Verilog: [n:m] portname; In this case we are clear what default value and range would do. System Verilog: [a:b][c:d]...[n:m] portname; In this case we can think [n:m] portname as the base object, and other additional dimensions merely repeats the base object. Now if we interpret that we will have to apply the default value and range to all the base base objects the same way then it is consistent across the board. It would be a great help if someone can clarify this for me. Thanks in advance. -- Khan Kibria