In search of determining a language used to define the HSI (Hardware/Software Interface), inevitably IP-XACT is brought up. Engineering teams consider it because it is an IEEE standard. It contains information on registers and address maps and may be a deliverable for their product. Also, IP vendors supply IP-XACT descriptions of their designs. The issue is that the goal of IP-XACT is not to be an authoring format. It is to be an interchange format for different IPs to connect. Yes, registers and memories are part of that interchange, but so are bus protocols and system models. The IP-XACT standard covers more information than just registers; it is over 700 pages long. Whereas SystemRDL, an HSI authoring language, is less than 150 pages.
While the IP-XACT format does have information about the layout and software access of the address map registers, it does not have implementation information. A field has a title and description, but there isn’t a way in IP-XACT to define the field’s behavior. For example, if you have a counter field that counts interrupt overflows, there isn’t a way to connect those in IP-XACT. It can label ports in a design, but if that port drives a field? There is simply no way in IP-XACT to connect the two. This is why IP-XACT is not suitable as an authoring format.
None of this is saying that IP-XACT is not a viable standard. As an interchange format, it works great. When developing IP, creating an IP-XACT file gives the end user a way to understand how the design is used. Various tools can use IP-XACT to stitch together the design.
A tool should generate IP-XACT from some other format. A designer wouldn’t write the gate-level netlist or the mask data by hand. They might tweak or edit one of those files but wouldn’t create one by hand. The IP-XACT file also shouldn’t be handwritten, maybe tweaked but not entirely written by hand. IP-XACT lends itself to be autogenerated from a tool of some sort.
At Semifore, we’ve spent a lot of time ensuring CSRCompiler’s generated IP-XACT is correct to the standard. We spent the time understanding all 700 pages of the standard, so you don’t have to. Focus on making the design right and less time on ensuring the format is. With CSRCompiler-generated IP-XACT, you don’t have to worry when you pass it along to your customers.
IP-XACT is not an authoring format; it should be for what it is suitable for, an interchange format. If you are struggling with IP-XACT, either creating or getting one from a vendor, reach out to Semifore.