ipxact-ruby 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/.autotest +15 -0
  2. data/.gitignore +2 -0
  3. data/README.html +89 -0
  4. data/README.mdown +91 -0
  5. data/Rakefile +31 -0
  6. data/VERSION +1 -0
  7. data/autotest/discover.rb +17 -0
  8. data/lib/ipxact.rb +263 -0
  9. data/lib/ipxact/component.rb +235 -0
  10. data/lib/ipxact/parser.rb +27 -0
  11. data/lib/ipxact/parser/bus_data_parser.rb +229 -0
  12. data/lib/ipxact/parser/component_data_parser.rb +309 -0
  13. data/lib/ipxact/parser/platform_data_parser.rb +63 -0
  14. data/lib/ipxact/pathfinder/graph_pathfinder.rb +191 -0
  15. data/lib/ipxact/platform.rb +43 -0
  16. data/schemas/abstractionDefinition.xsd +332 -0
  17. data/schemas/abstractor.xsd +156 -0
  18. data/schemas/autoConfigure.xsd +226 -0
  19. data/schemas/busDefinition.xsd +99 -0
  20. data/schemas/busInterface.xsd +640 -0
  21. data/schemas/commonStructures.xsd +189 -0
  22. data/schemas/component.xsd +253 -0
  23. data/schemas/configurable.xsd +82 -0
  24. data/schemas/constraints.xsd +283 -0
  25. data/schemas/design.xsd +105 -0
  26. data/schemas/designConfig.xsd +144 -0
  27. data/schemas/file.xsd +560 -0
  28. data/schemas/fileType.xsd +86 -0
  29. data/schemas/generator.xsd +240 -0
  30. data/schemas/identifier.xsd +93 -0
  31. data/schemas/index.xsd +67 -0
  32. data/schemas/memoryMap.xsd +1007 -0
  33. data/schemas/model.xsd +291 -0
  34. data/schemas/port.xsd +441 -0
  35. data/schemas/signalDrivers.xsd +220 -0
  36. data/schemas/simpleTypes.xsd +90 -0
  37. data/schemas/subInstances.xsd +256 -0
  38. data/spec/integration/bus_data_extraction_spec.rb +105 -0
  39. data/spec/integration/data_calculation_spec.rb +133 -0
  40. data/spec/integration/data_construction_spec.rb +52 -0
  41. data/spec/integration/general_spec.rb +121 -0
  42. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.h +135 -0
  43. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.tpp +247 -0
  44. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port_base.h +189 -0
  45. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.h +205 -0
  46. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.tpp +278 -0
  47. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.h +115 -0
  48. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.tpp +126 -0
  49. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port.h +168 -0
  50. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port_base.h +133 -0
  51. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_tlm_if.h +280 -0
  52. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/user_types.h +38 -0
  53. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/Leon2Platform.xml +77 -0
  54. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/design_Leon2Platform.xml +156 -0
  55. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/tlmsrc/Leon2Platform.h +149 -0
  56. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/apbSubSystem.xml +406 -0
  57. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/design_apbSubSystem.xml +135 -0
  58. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/tlmsrc/apbSubSystem.h +133 -0
  59. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/Leon2Platform.xml +77 -0
  60. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/design_Leon2Platform.xml +157 -0
  61. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/tlmsrc/Leon2Platform.h +150 -0
  62. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/apbSubSystem.xml +422 -0
  63. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/designConfig_apbSubSystem.xml +79 -0
  64. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/design_apbSubSystem.xml +184 -0
  65. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/tlmsrc/apbSubSystem.h +164 -0
  66. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/Leon2Platform.xml +105 -0
  67. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/design_Leon2Platform.xml +157 -0
  68. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/tlmsrc/Leon2Platform.h +152 -0
  69. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/apbSubSystem.xml +429 -0
  70. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/designConfig_apbSubSystem.xml +64 -0
  71. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/design_apbSubSystem.xml +150 -0
  72. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/tlmsrc/apbSubSystem.h +167 -0
  73. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/ahbbus22.xml +236 -0
  74. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/tlmsrc/ahbbus.h +52 -0
  75. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/ahbram.xml +184 -0
  76. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.cc +93 -0
  77. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.h +77 -0
  78. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/apbbus8.xml +544 -0
  79. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/tlmsrc/apbbus.h +55 -0
  80. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/apbmst.xml +209 -0
  81. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/tlmsrc/apbmst.h +53 -0
  82. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/apbram.xml +395 -0
  83. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.cc +89 -0
  84. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.h +69 -0
  85. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.v +82 -0
  86. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.vhd +132 -0
  87. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/cgu.xml +686 -0
  88. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.cc +121 -0
  89. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.h +81 -0
  90. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/cgu.xml +707 -0
  91. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.cc +121 -0
  92. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.h +81 -0
  93. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/dma.xml +272 -0
  94. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.cc +230 -0
  95. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.h +116 -0
  96. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/irqctrl.xml +530 -0
  97. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.cc +211 -0
  98. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.h +108 -0
  99. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/processor.xml +423 -0
  100. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.cc +331 -0
  101. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.h +121 -0
  102. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/pv2apb.xml +240 -0
  103. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.cc +153 -0
  104. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.h +77 -0
  105. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/pv2tac.xml +154 -0
  106. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.cc +114 -0
  107. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.h +67 -0
  108. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/rgu.xml +766 -0
  109. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.cc +126 -0
  110. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.h +105 -0
  111. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/scmlAdaptor.xml +154 -0
  112. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.cc +100 -0
  113. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.h +62 -0
  114. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/serial_device.xml +151 -0
  115. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/tlmsrc/serial_device.h +85 -0
  116. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/timers.xml +460 -0
  117. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.cc +201 -0
  118. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.h +102 -0
  119. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart.h +152 -0
  120. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_fifo.h +113 -0
  121. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_memory_map.h +96 -0
  122. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_types.h +60 -0
  123. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart.cc +125 -0
  124. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_interrupt_handler.cc +136 -0
  125. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_register_bank.cc +129 -0
  126. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_serial_tx_rx.cc +145 -0
  127. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/uart_scml.xml +372 -0
  128. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/Leon2_uart.h +216 -0
  129. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h +34 -0
  130. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_field.h +72 -0
  131. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_register.h +129 -0
  132. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlmreg_Leon2_uart.h +133 -0
  133. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/Leon2_uart.cc +316 -0
  134. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/tlmreg_Leon2_uart.cc +197 -0
  135. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/user_specific_Leon2_uart.cc +146 -0
  136. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/uart_tac.xml +222 -0
  137. data/spec/unit/component_spec.rb +98 -0
  138. data/spec/unit/graph_pathfinder_spec.rb +128 -0
  139. data/spec/unit/interconnect_spec.rb +177 -0
  140. data/spec/unit/ipxact_spec.rb +69 -0
  141. data/spec/unit/platform_spec.rb +34 -0
  142. metadata +225 -0
@@ -0,0 +1,189 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : commonStructures.xsd
4
+ // Author: The SPIRIT Consortium Schema Working Group
5
+ //
6
+ // Revision: $Revision: 1526 $
7
+ // Date: $Date: 2009-05-27 16:31:29 -0500 (Wed, 27 May 2009) $
8
+ //
9
+ // Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
10
+ //
11
+ // This work forms part of a deliverable of The SPIRIT Consortium.
12
+ //
13
+ // Use of these materials are governed by the legal terms and conditions
14
+ // outlined in the disclaimer available from www.spiritconsortium.org.
15
+ //
16
+ // This source file is provided on an AS IS basis. The SPIRIT
17
+ // Consortium disclaims any warranty express or implied including
18
+ // any warranty of merchantability and fitness for use for a
19
+ // particular purpose.
20
+ //
21
+ // The user of the source file shall indemnify and hold The SPIRIT
22
+ // Consortium and its members harmless from any damages or liability.
23
+ // Users are requested to provide feedback to The SPIRIT Consortium
24
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
25
+ // http://www.spiritconsortium.org/about/contact_us/
26
+ //
27
+ // This file may be copied, and distributed, WITHOUT
28
+ // modifications; this notice must be included on any copy.
29
+ -->
30
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" elementFormDefault="qualified" attributeFormDefault="qualified">
31
+ <xs:include schemaLocation="autoConfigure.xsd"/>
32
+ <xs:include schemaLocation="simpleTypes.xsd"/>
33
+ <xs:complexType name="nameValueTypeType">
34
+ <xs:annotation>
35
+ <xs:documentation>Name value pair with data type information.</xs:documentation>
36
+ </xs:annotation>
37
+ <xs:complexContent>
38
+ <xs:extension base="spirit:nameValuePairType">
39
+ <xs:attribute name="dataType" type="xs:string">
40
+ <xs:annotation>
41
+ <xs:documentation>The data type of the argument as pertains to the language. Example: "int", "double", "char *".</xs:documentation>
42
+ </xs:annotation>
43
+ </xs:attribute>
44
+ <xs:attribute name="usageType" default="nontyped">
45
+ <xs:annotation>
46
+ <xs:documentation>Indicates the type of the model parameter. Legal values are defined in the attribute enumeration list. Default value is 'nontyped'.</xs:documentation>
47
+ </xs:annotation>
48
+ <xs:simpleType>
49
+ <xs:restriction base="xs:string">
50
+ <xs:enumeration value="nontyped"/>
51
+ <xs:enumeration value="typed"/>
52
+ </xs:restriction>
53
+ </xs:simpleType>
54
+ </xs:attribute>
55
+ </xs:extension>
56
+ </xs:complexContent>
57
+ </xs:complexType>
58
+ <xs:element name="parameter" type="spirit:nameValuePairType">
59
+ <xs:annotation>
60
+ <xs:documentation>A name value pair. The name is specified by the name element. The value is in the text content of the value element. This value element supports all configurability attributes.</xs:documentation>
61
+ </xs:annotation>
62
+ </xs:element>
63
+ <xs:element name="parameters">
64
+ <xs:annotation>
65
+ <xs:documentation>A collection of parameters.</xs:documentation>
66
+ </xs:annotation>
67
+ <xs:complexType>
68
+ <xs:sequence>
69
+ <xs:element ref="spirit:parameter" maxOccurs="unbounded"/>
70
+ </xs:sequence>
71
+ </xs:complexType>
72
+ </xs:element>
73
+ <xs:element name="vendorExtensions">
74
+ <xs:annotation>
75
+ <xs:documentation>Container for vendor specific extensions.</xs:documentation>
76
+ </xs:annotation>
77
+ <xs:complexType>
78
+ <xs:sequence>
79
+ <xs:any namespace="##any" processContents="lax" maxOccurs="unbounded">
80
+ <xs:annotation>
81
+ <xs:documentation>Accepts any element(s) the content provider wants to put here, including elements from the spirit namespace.</xs:documentation>
82
+ </xs:annotation>
83
+ </xs:any>
84
+ </xs:sequence>
85
+ </xs:complexType>
86
+ </xs:element>
87
+ <xs:group name="nameGroup">
88
+ <xs:annotation>
89
+ <xs:documentation>A group of elements for name (xs:name), displayName and description</xs:documentation>
90
+ </xs:annotation>
91
+ <xs:sequence>
92
+ <xs:element name="name" type="xs:Name">
93
+ <xs:annotation>
94
+ <xs:documentation>Unique name</xs:documentation>
95
+ </xs:annotation>
96
+ </xs:element>
97
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
98
+ <xs:element ref="spirit:description" minOccurs="0"/>
99
+ </xs:sequence>
100
+ </xs:group>
101
+ <xs:group name="nameGroupOptional">
102
+ <xs:annotation>
103
+ <xs:documentation>A group of elements for name (xs:name), displayName and description where the name is optional</xs:documentation>
104
+ </xs:annotation>
105
+ <xs:sequence>
106
+ <xs:element name="name" type="xs:Name" minOccurs="0">
107
+ <xs:annotation>
108
+ <xs:documentation>Unique name</xs:documentation>
109
+ </xs:annotation>
110
+ </xs:element>
111
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
112
+ <xs:element ref="spirit:description" minOccurs="0"/>
113
+ </xs:sequence>
114
+ </xs:group>
115
+ <xs:group name="nameGroupNMTOKEN">
116
+ <xs:annotation>
117
+ <xs:documentation>A group of elements for name(xs:NMTOKEN), displayName and description</xs:documentation>
118
+ </xs:annotation>
119
+ <xs:sequence>
120
+ <xs:element name="name" type="xs:NMTOKEN">
121
+ <xs:annotation>
122
+ <xs:documentation>Unique name</xs:documentation>
123
+ </xs:annotation>
124
+ </xs:element>
125
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
126
+ <xs:element ref="spirit:description" minOccurs="0"/>
127
+ </xs:sequence>
128
+ </xs:group>
129
+ <xs:group name="nameGroupPort">
130
+ <xs:annotation>
131
+ <xs:documentation>A group of elements for name(portName), displayName and description</xs:documentation>
132
+ </xs:annotation>
133
+ <xs:sequence>
134
+ <xs:element name="name" type="spirit:portName">
135
+ <xs:annotation>
136
+ <xs:documentation>Unique name</xs:documentation>
137
+ </xs:annotation>
138
+ </xs:element>
139
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
140
+ <xs:element ref="spirit:description" minOccurs="0"/>
141
+ </xs:sequence>
142
+ </xs:group>
143
+ <xs:complexType name="nameValuePairType">
144
+ <xs:annotation>
145
+ <xs:documentation>Name and value type for use in resolvable elements</xs:documentation>
146
+ </xs:annotation>
147
+ <xs:sequence>
148
+ <xs:group ref="spirit:nameGroupString"/>
149
+ <xs:element name="value">
150
+ <xs:annotation>
151
+ <xs:documentation>The value of the parameter.</xs:documentation>
152
+ </xs:annotation>
153
+ <xs:complexType>
154
+ <xs:simpleContent>
155
+ <xs:extension base="xs:string">
156
+ <xs:attributeGroup ref="spirit:string.prompt.att"/>
157
+ </xs:extension>
158
+ </xs:simpleContent>
159
+ </xs:complexType>
160
+ </xs:element>
161
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
162
+ </xs:sequence>
163
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
164
+ </xs:complexType>
165
+ <xs:group name="nameGroupString">
166
+ <xs:annotation>
167
+ <xs:documentation>A group of elements for name(xs:string), displayName and description</xs:documentation>
168
+ </xs:annotation>
169
+ <xs:sequence>
170
+ <xs:element name="name" type="xs:string">
171
+ <xs:annotation>
172
+ <xs:documentation>Unique name</xs:documentation>
173
+ </xs:annotation>
174
+ </xs:element>
175
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
176
+ <xs:element ref="spirit:description" minOccurs="0"/>
177
+ </xs:sequence>
178
+ </xs:group>
179
+ <xs:element name="displayName" type="xs:string">
180
+ <xs:annotation>
181
+ <xs:documentation>Element name for display purposes. Typically a few words providing a more detailed and/or user-friendly name than the spirit:name.</xs:documentation>
182
+ </xs:annotation>
183
+ </xs:element>
184
+ <xs:element name="description" type="xs:string">
185
+ <xs:annotation>
186
+ <xs:documentation>Full description string, typically for documentation</xs:documentation>
187
+ </xs:annotation>
188
+ </xs:element>
189
+ </xs:schema>
@@ -0,0 +1,253 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : component.xsd
4
+ // Author: The SPIRIT Consortium Schema Working Group
5
+ //
6
+ // Revision: $Revision: 1527 $
7
+ // Date: $Date: 2009-05-27 16:36:43 -0500 (Wed, 27 May 2009) $
8
+ //
9
+ // Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
10
+ //
11
+ // This work forms part of a deliverable of The SPIRIT Consortium.
12
+ //
13
+ // Use of these materials are governed by the legal terms and conditions
14
+ // outlined in the disclaimer available from www.spiritconsortium.org.
15
+ //
16
+ // This source file is provided on an AS IS basis. The SPIRIT
17
+ // Consortium disclaims any warranty express or implied including
18
+ // any warranty of merchantability and fitness for use for a
19
+ // particular purpose.
20
+ //
21
+ // The user of the source file shall indemnify and hold The SPIRIT
22
+ // Consortium and its members harmless from any damages or liability.
23
+ // Users are requested to provide feedback to The SPIRIT Consortium
24
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
25
+ // http://www.spiritconsortium.org/about/contact_us/
26
+ //
27
+ // This file may be copied, and distributed, WITHOUT
28
+ // modifications; this notice must be included on any copy.
29
+ -->
30
+ <xs:schema xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" elementFormDefault="qualified" attributeFormDefault="qualified">
31
+ <xs:include schemaLocation="busInterface.xsd"/>
32
+ <xs:include schemaLocation="identifier.xsd"/>
33
+ <xs:include schemaLocation="generator.xsd"/>
34
+ <xs:include schemaLocation="commonStructures.xsd"/>
35
+ <xs:include schemaLocation="model.xsd"/>
36
+ <xs:include schemaLocation="subInstances.xsd"/>
37
+ <xs:include schemaLocation="constraints.xsd"/>
38
+ <xs:complexType name="componentType">
39
+ <xs:annotation>
40
+ <xs:documentation>Component-specific extension to componentType</xs:documentation>
41
+ </xs:annotation>
42
+ <xs:sequence>
43
+ <xs:group ref="spirit:versionedIdentifier"/>
44
+ <xs:element ref="spirit:busInterfaces" minOccurs="0"/>
45
+ <xs:element ref="spirit:channels" minOccurs="0"/>
46
+ <xs:element ref="spirit:remapStates" minOccurs="0"/>
47
+ <xs:element ref="spirit:addressSpaces" minOccurs="0"/>
48
+ <xs:element ref="spirit:memoryMaps" minOccurs="0"/>
49
+ <xs:element ref="spirit:model" minOccurs="0"/>
50
+ <xs:element ref="spirit:componentGenerators" minOccurs="0">
51
+ <xs:annotation>
52
+ <xs:documentation>Generator list is tools-specific.</xs:documentation>
53
+ </xs:annotation>
54
+ </xs:element>
55
+ <xs:element ref="spirit:choices" minOccurs="0"/>
56
+ <xs:element ref="spirit:fileSets" minOccurs="0"/>
57
+ <xs:element name="whiteboxElements" minOccurs="0">
58
+ <xs:annotation>
59
+ <xs:documentation>A list of whiteboxElements</xs:documentation>
60
+ </xs:annotation>
61
+ <xs:complexType>
62
+ <xs:sequence>
63
+ <xs:element name="whiteboxElement" type="spirit:whiteboxElementType" maxOccurs="unbounded">
64
+ <xs:annotation>
65
+ <xs:documentation>A whiteboxElement is a useful way to identify elements of a component that can not be identified through other means such as internal signals and non-software accessible registers.</xs:documentation>
66
+ </xs:annotation>
67
+ </xs:element>
68
+ </xs:sequence>
69
+ </xs:complexType>
70
+ </xs:element>
71
+ <xs:element name="cpus" minOccurs="0">
72
+ <xs:annotation>
73
+ <xs:documentation>cpu's in the component</xs:documentation>
74
+ </xs:annotation>
75
+ <xs:complexType>
76
+ <xs:sequence>
77
+ <xs:element name="cpu" maxOccurs="unbounded">
78
+ <xs:annotation>
79
+ <xs:documentation>Describes a processor in this component.</xs:documentation>
80
+ </xs:annotation>
81
+ <xs:complexType>
82
+ <xs:sequence>
83
+ <xs:group ref="spirit:nameGroup">
84
+ <xs:annotation>
85
+ <xs:documentation>The name of the cpu instance relative to the platform core.</xs:documentation>
86
+ </xs:annotation>
87
+ </xs:group>
88
+ <xs:element ref="spirit:addressSpaceRef" maxOccurs="unbounded">
89
+ <xs:annotation>
90
+ <xs:documentation>Indicates which address space maps into this cpu.</xs:documentation>
91
+ </xs:annotation>
92
+ </xs:element>
93
+ <xs:element ref="spirit:parameters" minOccurs="0">
94
+ <xs:annotation>
95
+ <xs:documentation>Data specific to the cpu.</xs:documentation>
96
+ </xs:annotation>
97
+ </xs:element>
98
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
99
+ </xs:sequence>
100
+ </xs:complexType>
101
+ </xs:element>
102
+ </xs:sequence>
103
+ </xs:complexType>
104
+ </xs:element>
105
+ <xs:element name="otherClockDrivers" type="spirit:otherClocks" minOccurs="0">
106
+ <xs:annotation>
107
+ <xs:documentation>Defines a set of clock drivers that are not directly associated with an input port of the component.</xs:documentation>
108
+ </xs:annotation>
109
+ </xs:element>
110
+ <xs:element ref="spirit:description" minOccurs="0"/>
111
+ <xs:element ref="spirit:parameters" minOccurs="0"/>
112
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
113
+ </xs:sequence>
114
+ </xs:complexType>
115
+ <xs:element name="component" type="spirit:componentType">
116
+ <xs:annotation>
117
+ <xs:documentation>This is the root element for all non platform-core components.</xs:documentation>
118
+ </xs:annotation>
119
+ <xs:key name="interfaceKey">
120
+ <xs:selector xpath="spirit:busInterfaces/spirit:busInterface"/>
121
+ <xs:field xpath="spirit:name"/>
122
+ </xs:key>
123
+ <xs:keyref name="interfaceRef" refer="spirit:interfaceKey">
124
+ <xs:selector xpath="spirit:busInterfaces/spirit:busInterface/spirit:slave/spirit:bridge"/>
125
+ <xs:field xpath="@spirit:masterRef"/>
126
+ </xs:keyref>
127
+ <xs:keyref name="channelInterfaceRef" refer="spirit:interfaceKey">
128
+ <xs:selector xpath="spirit:channels/spirit:channel/spirit:busInterfaceRef"/>
129
+ <xs:field xpath="."/>
130
+ </xs:keyref>
131
+ <xs:keyref name="subspaceMapRef" refer="spirit:interfaceKey">
132
+ <xs:selector xpath=".//spirit:subspaceMap"/>
133
+ <xs:field xpath="@spirit:masterRef"/>
134
+ </xs:keyref>
135
+ <xs:key name="addressSpaceKey">
136
+ <xs:selector xpath="spirit:addressSpaces/spirit:addressSpace"/>
137
+ <xs:field xpath="spirit:name"/>
138
+ </xs:key>
139
+ <xs:keyref name="addressSpaceRef" refer="spirit:addressSpaceKey">
140
+ <xs:selector xpath=".//spirit:addressSpaceRef"/>
141
+ <xs:field xpath="@spirit:addressSpaceRef"/>
142
+ </xs:keyref>
143
+ <xs:key name="memoryMapKey">
144
+ <xs:selector xpath="spirit:memoryMaps/spirit:memoryMap"/>
145
+ <xs:field xpath="spirit:name"/>
146
+ </xs:key>
147
+ <xs:keyref name="memoryMapRef" refer="spirit:memoryMapKey">
148
+ <xs:selector xpath=".//spirit:memoryMapRef"/>
149
+ <xs:field xpath="@spirit:memoryMapRef"/>
150
+ </xs:keyref>
151
+ <xs:unique name="cpuNameConstraint">
152
+ <xs:selector xpath="spirit:cpus/spirit:cpu"/>
153
+ <xs:field xpath="spirit:name"/>
154
+ </xs:unique>
155
+ <xs:key name="componentChoiceKey">
156
+ <xs:selector xpath="spirit:choices/spirit:choice"/>
157
+ <xs:field xpath="spirit:name"/>
158
+ </xs:key>
159
+ <xs:keyref name="componentChoiceRef" refer="spirit:componentChoiceKey">
160
+ <xs:selector xpath=".//*"/>
161
+ <xs:field xpath="@spirit:choiceRef"/>
162
+ </xs:keyref>
163
+ <xs:key name="componentViewKey">
164
+ <xs:selector xpath="spirit:model/spirit:views/spirit:view"/>
165
+ <xs:field xpath="spirit:name"/>
166
+ </xs:key>
167
+ <xs:keyref name="componentTypeDefViewNameRef" refer="spirit:componentViewKey">
168
+ <xs:selector xpath=".//spirit:viewNameRef"/>
169
+ <xs:field xpath="."/>
170
+ </xs:keyref>
171
+ <xs:key name="fileSetKey">
172
+ <xs:selector xpath=".//spirit:fileSet"/>
173
+ <xs:field xpath="spirit:name"/>
174
+ </xs:key>
175
+ <xs:keyref name="fileSetRef" refer="spirit:fileSetKey">
176
+ <xs:selector xpath=".//spirit:fileSetRef"/>
177
+ <xs:field xpath="spirit:localName"/>
178
+ </xs:keyref>
179
+ <xs:key name="remapStateKey">
180
+ <xs:selector xpath="spirit:remapStates/spirit:remapState"/>
181
+ <xs:field xpath="spirit:name"/>
182
+ </xs:key>
183
+ <xs:keyref name="remapStateRef" refer="spirit:remapStateKey">
184
+ <xs:selector xpath="spirit:memoryMaps/spirit:memoryMap/spirit:memoryRemap"/>
185
+ <xs:field xpath="@spirit:state"/>
186
+ </xs:keyref>
187
+ <xs:keyref name="remapStateRefMS" refer="spirit:remapStateKey">
188
+ <xs:selector xpath="spirit:busInterfaces/spirit:busInterface/spirit:mirroredSlave/spirit:baseAddresses/spirit:remapAddress"/>
189
+ <xs:field xpath="@spirit:state"/>
190
+ </xs:keyref>
191
+ <xs:key name="portKey">
192
+ <xs:selector xpath="spirit:model/spirit:ports/spirit:port"/>
193
+ <xs:field xpath="spirit:name"/>
194
+ </xs:key>
195
+ <xs:keyref name="portRef" refer="spirit:portKey">
196
+ <xs:selector xpath="spirit:busInterfaces/spirit:busInterface/spirit:portMaps/spirit:portMap/spirit:physicalPort/spirit:name"/>
197
+ <xs:field xpath="."/>
198
+ </xs:keyref>
199
+ <xs:keyref name="remapStatePortRef" refer="spirit:portKey">
200
+ <xs:selector xpath="spirit:remapStates/spirit:remapState/spirit:remapPorts/spirit:remapPort"/>
201
+ <xs:field xpath="@spirit:portNameRef"/>
202
+ </xs:keyref>
203
+ <xs:key name="whiteboxKey">
204
+ <xs:selector xpath="spirit:whiteboxElements/spirit:whiteboxElement"/>
205
+ <xs:field xpath="spirit:name"/>
206
+ </xs:key>
207
+ <xs:keyref name="whiteboxRef" refer="spirit:whiteboxKey">
208
+ <xs:selector xpath="spirit:model/spirit:views/spirit:view/spirit:whiteboxElementRefs/spirit:whiteboxElementRef"/>
209
+ <xs:field xpath="@spirit:name"/>
210
+ </xs:keyref>
211
+ <xs:key name="componentGeneratorKey">
212
+ <xs:selector xpath="spirit:componentGenerators/spirit:componentGenerator"/>
213
+ <xs:field xpath="spirit:name"/>
214
+ </xs:key>
215
+ <xs:keyref name="componentGeneratorRef" refer="spirit:componentGeneratorKey">
216
+ <xs:selector xpath=".//spirit:generatorRef"/>
217
+ <xs:field xpath="."/>
218
+ </xs:keyref>
219
+ </xs:element>
220
+ <xs:complexType name="whiteboxElementType">
221
+ <xs:annotation>
222
+ <xs:documentation>Defines a white box reference point within the component.</xs:documentation>
223
+ </xs:annotation>
224
+ <xs:sequence>
225
+ <xs:group ref="spirit:nameGroup"/>
226
+ <xs:element name="whiteboxType">
227
+ <xs:annotation>
228
+ <xs:documentation>Indicates the type of the element. The pin and signal types refer to elements within the HDL description. The register type refers to a register in the memory map. The interface type refers to a group of signals addressed as a single unit.</xs:documentation>
229
+ </xs:annotation>
230
+ <xs:simpleType>
231
+ <xs:restriction base="xs:token">
232
+ <xs:enumeration value="register"/>
233
+ <xs:enumeration value="signal"/>
234
+ <xs:enumeration value="pin"/>
235
+ <xs:enumeration value="interface"/>
236
+ </xs:restriction>
237
+ </xs:simpleType>
238
+ </xs:element>
239
+ <xs:element name="driveable" type="xs:boolean" default="false" minOccurs="0">
240
+ <xs:annotation>
241
+ <xs:documentation>If true, indicates that the white box element can be driven (e.g. have a new value forced into it).</xs:documentation>
242
+ </xs:annotation>
243
+ </xs:element>
244
+ <xs:element name="registerRef" type="xs:string" minOccurs="0">
245
+ <xs:annotation>
246
+ <xs:documentation>Indicates the name of the register associated with this white box element. The name should be a full hierarchical path from the memory map to the register, using '/' as a hierarchy separator. When specified, the whiteboxType must be 'register'.</xs:documentation>
247
+ </xs:annotation>
248
+ </xs:element>
249
+ <xs:element ref="spirit:parameters" minOccurs="0"/>
250
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
251
+ </xs:sequence>
252
+ </xs:complexType>
253
+ </xs:schema>
@@ -0,0 +1,82 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : configurable.xsd
4
+ // Author: The SPIRIT Consortium Schema Working Group
5
+ //
6
+ // Revision: $Revision: 1506 $
7
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
8
+ //
9
+ // Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
10
+ //
11
+ // This work forms part of a deliverable of The SPIRIT Consortium.
12
+ //
13
+ // Use of these materials are governed by the legal terms and conditions
14
+ // outlined in the disclaimer available from www.spiritconsortium.org.
15
+ //
16
+ // This source file is provided on an AS IS basis. The SPIRIT
17
+ // Consortium disclaims any warranty express or implied including
18
+ // any warranty of merchantability and fitness for use for a
19
+ // particular purpose.
20
+ //
21
+ // The user of the source file shall indemnify and hold The SPIRIT
22
+ // Consortium and its members harmless from any damages or liability.
23
+ // Users are requested to provide feedback to The SPIRIT Consortium
24
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
25
+ // http://www.spiritconsortium.org/about/contact_us/
26
+ //
27
+ // This file may be copied, and distributed, WITHOUT
28
+ // modifications; this notice must be included on any copy.
29
+ -->
30
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" targetNamespace="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" elementFormDefault="qualified" attributeFormDefault="qualified">
31
+ <xs:simpleType name="resolveType">
32
+ <xs:annotation>
33
+ <xs:documentation>Determines how a property is resolved. Immediate means the value is included in the XML document and cannot be changed by the user. User means the value must be obtained from the user. Dependent means the value depends on the value of other properties. A dependency expression must be supplied in the dependency attribute. Generated means the value will be provided by a generator.</xs:documentation>
34
+ </xs:annotation>
35
+ <xs:restriction base="xs:token">
36
+ <xs:enumeration value="immediate">
37
+ <xs:annotation>
38
+ <xs:documentation>Property value is included in the XML file. It cannot be configured.</xs:documentation>
39
+ </xs:annotation>
40
+ </xs:enumeration>
41
+ <xs:enumeration value="user">
42
+ <xs:annotation>
43
+ <xs:documentation>Property content can be modified through confiugration. Modifications will be saved with the design.</xs:documentation>
44
+ </xs:annotation>
45
+ </xs:enumeration>
46
+ <xs:enumeration value="dependent">
47
+ <xs:annotation>
48
+ <xs:documentation>Property value is expressed as an XPath expression which may refer to other properties. The expression must appear in the dendency attribute.</xs:documentation>
49
+ </xs:annotation>
50
+ </xs:enumeration>
51
+ <xs:enumeration value="generated">
52
+ <xs:annotation>
53
+ <xs:documentation>Generators may modify this property. Modifications get saved with the design.</xs:documentation>
54
+ </xs:annotation>
55
+ </xs:enumeration>
56
+ </xs:restriction>
57
+ </xs:simpleType>
58
+ <xs:attribute name="resolve" type="spirit:resolveType" default="immediate">
59
+ <xs:annotation>
60
+ <xs:documentation>Determines how a property value is resolved.</xs:documentation>
61
+ </xs:annotation>
62
+ </xs:attribute>
63
+ <xs:attribute name="id" type="xs:ID">
64
+ <xs:annotation>
65
+ <xs:documentation>ID attribute for uniquely identifying an element within its document. On elements with spirit:resolve attribute is used to refer to this element and otherwise can be used as a documentation ID.</xs:documentation>
66
+ </xs:annotation>
67
+ </xs:attribute>
68
+ <xs:attribute name="dependency" type="xs:string">
69
+ <xs:annotation>
70
+ <xs:documentation>Required on properties with a resolve = "dependent" attribute. This is an XPath expression supplying the resultant value for the containing element in terms of other properties in the containing file. </xs:documentation>
71
+ </xs:annotation>
72
+ </xs:attribute>
73
+ <xs:attributeGroup name="configurable">
74
+ <xs:annotation>
75
+ <xs:documentation>Base set of attributes for an element to be configurable.</xs:documentation>
76
+ </xs:annotation>
77
+ <xs:attribute ref="spirit:resolve"/>
78
+ <xs:attribute ref="spirit:id"/>
79
+ <xs:attribute ref="spirit:dependency"/>
80
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
81
+ </xs:attributeGroup>
82
+ </xs:schema>