An Introduction to NAUET
The NAUET package includes the NAUET Design Assembler, the NAUET Component Editor, and a library of IP-XACT documents describing OpenCore open source IP. We use the NAUET Component Editor to create all the components and bus definitions in that library. It is so helpful, we cannot imagine going back to using ordinary XML editors for IP-XACT documents. To illustrate how it can help, we are going to use the Component Editor to review some documents created with a typical XML editor.
The SPIRIT Consortium is the organization responsible for the IP-XACT standard. They include a few examples with every release of the standard. The comments in these example documents indicate the files were created with XML Spy, an excellent XML editor for typical XML documents. On Feb 16, 2007 we downloaded the IP-XACT V1.2 public release from the SPIRIT Consortium website and loaded 12 files from the Leon2 example into the Component Editor.
Note: the documents will all be identified by name only. All the documents have vendor “spiritconsortium.org”. The lone bus definition, Int, has library “leon” and version “v1.0”.All other documents have library “leon2” and version “1.2”. APBSubSystem is a design, and all the other documents are components.
Please take advantage of our free 30-day demonstration of NAUET and follow along the steps described yourself. After opening the files, the following report would automatically generate in the background in a minute or two; alternatively, a menu item can generate the report in the foreground in less than 5 seconds.
spiritconsortium.org Leon Int v1.0
spiritconsortium.org Leon Int v1.0:
busDefinition\signals\signal\defaultValue\strength is not a valid path.
busDefinition\signals\signal\defaultValue\strength is not a valid path.
spiritconsortium.org Leon Int v1.0:
busDefinition\signals\signal\defaultValue\strength is not a valid path.
busDefinition\signals\signal\defaultValue\strength is not a valid path.
spiritconsortium.org Leon2 ahbbus 1.2
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
5. MirroredMaster0 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
6. MirroredMaster1 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
7. MirroredSlave0 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 37 violation: element range has a dependency attribute but resolve attribute is not dependent
Rule 37 violation: element remapAddress has a dependency attribute but resolve attribute is not dependent
9. MirroredSlave1 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 37 violation: element range has a dependency attribute but resolve attribute is not dependent
Rule 37 violation: element remapAddress has a dependency attribute but resolve attribute is not dependent
spiritconsortium.org Leon2 ahbstat 1.2
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
12. AHBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
13. ambaAHBSlave ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
14. ambaAHBMaster ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
16. hsize ( Field )
Rule 51 violation: this field (LSB=0, MSB=2) overlaps with field newError (LSB=1, MSB=8)
Rule 51 violation: this field (LSB=1, MSB=8) overlaps with field hsize (LSB=0, MSB=2)
spiritconsortium.org Leon2 apbbus 1.2
18. MirroredMaster ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
19. MirroredSlave0 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
20. MirroredSlave1 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
21. MirroredSlave2 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
22. MirroredSlave3 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
spiritconsortium.org Leon2 apbmst 1.2
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
24. AHBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
Signal Match Warning: signal haddr definition does not match values found in file:
left (file value is hamax-1 )
spiritconsortium.org Leon2 dma 1.2
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
29. AHBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
32. destinationAddress 0x4 ( Register )
Rule 50 violation: This register overlaps register control.
Rule 50 violation: This register overlaps register destinationAddress.
34. length ( Field )
Rule 51 violation: this field (LSB=0, MSB=7) overlaps with field sourceIncrement (LSB=0, MSB=1)
Rule 51 violation: this field (LSB=0, MSB=1) overlaps with field length (LSB=0, MSB=7)
36. enable ( Field )
Rule 51 violation: this field (LSB=0, MSB=0) overlaps with field length (LSB=0, MSB=7)
spiritconsortium.org Leon2 irqctrl 1.2
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
38. APBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
spiritconsortium.org Leon2 leon2Proc 1.2
40. leon2Proc 1.2 ( Component )
Unused Signal Warning: the following signals were found in leon2Proc but not in this component: diagrdy.
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
42. AHBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
43. AHBmaster ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
44. APBslave ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
45. AHBslave ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Signal Match Warning: clk does not match any signal found in any file.
Signal Match Warning: clkn does not match any signal found in any file.
Signal Match Warning: diagrdv does not match any signal found in any file.
spiritconsortium.org Leon2 timers 1.2
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
50. APBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
spiritconsortium.org Leon2 uart 1.2
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
53. APBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
Rule 53 violation: field reserved has MSB of 33 with parent register size of 32.
56. OutputFileName ( Parameter )
Rule 42 violation: In an id attribute is required in any element with a resolve attribute value of user
spiritconsortium.org Leon2 APBSubSystem 1.2
57. i_apbbus ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_apbbus 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_apbbus 1.2" is not a component.
58. i_apbmst ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_apbmst 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_apbmst 1.2" is not a component.
59. i_irqctrl ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_Irqctrl 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_Irqctrl 1.2" is not a component.
60. i_timers ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_Timers 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_Timers 1.2" is not a component.
61. i_uart1 ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_Uart 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_Uart 1.2" is not a component.
62. i_uart2 ( Component Instance )
Rule 2 violation: "spiritconsortium.org Leon2 leon2_Uart 1.2" does not match any identifier in the IP Library
Rule 11 violation: "spiritconsortium.org Leon2 leon2_Uart 1.2" is not a component.
spiritconsortium.org Leon2 hierAHBSystem 1.2
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_CLK does not match any group found in "AMBA AMBA2 AHB r0p0".
64. AHBReset ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
AHB_RESET does not match any group found in "AMBA AMBA2 AHB r0p0".
Rule 2 violation: "AMBA AMBA2 AHB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 AHB r0p0" is not a bus definition.
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
67. APBReset0 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
69. APBReset1 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
71. APBReset2 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_CLK does not match any group found in "AMBA AMBA2 APB r0p0".
73. APBReset3 ( Bus Interface )
Rule 2 violation: "AMBA AMBA2 APB r0p0" does not match any identifier in the IP Library
Rule 4 violation: "AMBA AMBA2 APB r0p0" is not a bus definition.
APB_RESET does not match any group found in "AMBA AMBA2 APB r0p0".
Address Block Overlap Warning: Address block with base address 0x10 overlaps the range of this address block.
Address Block Overlap Warning: Address block with base address 0x40 overlaps the range of this address block.
Rule 53 violation: field reserved has MSB of 33 with parent register size of 32.
Rule 53 violation: field reserved has MSB of 33 with parent register size of 32.
End of list. Note that the Component Editor lint report does not number the items or include document identifiers as shown - those were added for convenience of referencing. In the Component Editor, selecting a lint item also selects the problem element for editing, and other features would make clear which open document is selected.
The initial lint report lists 77 elements with potential problems. At this point, most of the problems NAUET identified are violations of IP-XACT v1.2 semantic rule 2, which states, “Any VLNV in an IP-XACT document used to reference another IP-XACT document shall precisely match the identifying VLNV of an existing IP-XACTdocument.“ Cross-reference problems like these are the most urgent since other semantic rules depend on the contents of the referenced document.
Almost all of the rule 2 violations (49 by my count) occur because the SPIRIT Consortium does not supply bus definitions for AMBA AHB or APB, which are used in all of the components. These definitions are available by registering with ARM. The examples, however, do not use the identifier used by AMBA (for ahb, SPIRIT uses “AMBA AMBA2 AHB r0p0”, while AMBA uses “amba.com busdef.amba.amba2 ahb r1p0”) so 49 bus interfaces need fixing. Using the NAUET Component Editor, it only takes a few mouse clicks to fix each one - 1 to select a problem bus interface, another to activate the busType choicebox showing all the valid bus definitions available and one more to choose the new bus definition. Finding other problem elements is easy - their labels are bold and red, and they are also listed prominently. Fixing all 49 bus interfaces took me less than 10 minutes.

Comments