Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


kock last won the day on August 14 2020

kock had the most liked content!

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1,807 profile views

kock's Achievements

Advanced Member

Advanced Member (2/2)



  1. Hi Kushi, Yes, you can express it like this: <ipxact:parameters> <ipxact:parameter parameterId="myparamID" ipxact:resolve="user"> <ipxact:name>myparam</ipxact:name> <ipxact:value>""</ipxact:value> </ipxact:parameter> </ipxact:parameters> The value "" denotes an empty string. The value of the value element is an expression. An empty expression is not allowed. If you want to put a constant string then you have to quote it. You can override it in a design instance by referencing the parameterId attribute value. Best regards, Erwin
  2. Hi Kushi, IP-XACT does not allow that. Parameters always need to have a default value. Best regards, Erwin
  3. Hi Kushi, The standard contains Annex C.3 complexBaseExpression which can be any of the following: — realExpression (see C.3.1) — signedLongintExpression (see C.3.2) — stringExpression (see C.3.3) — stringURIExpression (see C.3.4) — unsignedBitExpression (see C.3.5) — unsignedBitVectorExpression (see C.3.6) — unsignedIntExpression (see C.3.7) — unsignedLongintExpression (see C.3.8) — unsignedPositiveIntExpression (see C.3.9) — unsignedPositiveLongintExpression (see C.3.10) If an IP-XACT element is of a type that is mentioned here, then its value can be an expression. For example, on page 91, the field volatile element is of type boolean so it is not parameterizable, while the field reserved element is of type unsignedBitExpression so it is parameterizable. Note that the standard contains an error here because for reserved the default value false is not a legal value. This should be 0. Best regards, Erwin
  4. Hi Mats, As you say, you can add a special address block with a width of 128 (or more). The width indicates the maximum number of bits that can be accessed in a single transaction. This address block can contain registers with a size equal to the width or smaller. Best regards, Erwin
  5. Hi Mats, Yes, my understanding is that SCR 7.5 "The size of any register shall be no greater than the width of the containing address block" also applies to virtual registers. Best regards, Erwin
  6. Hi Galong, I only know of https://github.com/kactus2 but I never used it so I do not know what quality of documentation is generated. There are commercial solutions that do exactly what you ask for. Some of the vendors are mentioned here https://www.accellera.org/community/ip-xact/ecosystem/. Best regards, Erwin
  7. Hi Kushi, No you should not describe it like that to avoid ".". You can avoid the separator by putting pathSegments in different elements. So in a field you put "fld", in a register you put "reg". The two segments can be put together then as reg.fld by a generator. I do not have an example at end. Best regards, Erwin
  8. Hello Kushi, The intended and recommended way is to avoid the path separator "." inside a pathSegment Name. For this reason, the element is called named pathSegment since it describes a segment of the path. However, it is not illegal to use the path separator inside a pathSegment and sometime this cannot be avoided. Best regards, Erwin
  9. Hi Kushi, No, you cannot describe this using the IP-XACT schema. You may want to introduce a vendor extension for that. Best regards, Erwin
  10. Hello Kushi, Yes indeed you can think of this as arrays of parameters. Section 6.12.6 Module parameters also describes these vectors and arrays. For module parameters, the arrays described the unpacked dimensions of a parameter and the vectors describe the packed dimensions. So for parameter [3:0] PARAM [7:0], [3:0] is a vector and [7:0] is an array. For parameters it works the same as for module parameters, although a parameter does not directly describe an HDL language parameter. Best regards, Erwin
  11. 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
  12. Hi Kushi, No this is not possible. For the next revision of IP-XACT we propose a stride element which indicates the distance between two array elements. For now you have the following options: A) make your register 64 bit wide, B) unroll the registers and do not use dim, C) create a register file with range 8 (64 bits) and dim 8 and put the register in the register file. Best regards, Erwin
  13. 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
  14. Hi Kushi, The user guide does not explain this. Section 12 and 13 and Annex H of the standard explaining addressing. It is not very easy to read though. Best regards, Erwin
  15. Hi Kushi, That completely depends on the UVM register model generator that you use. It is tool dependent. Best regards, Erwin
  • Create New...