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,220 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : signalDrivers.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: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="simpleTypes.xsd"/>
32
+ <xs:include schemaLocation="autoConfigure.xsd"/>
33
+ <xs:element name="defaultValue">
34
+ <xs:annotation>
35
+ <xs:documentation>Default value for a wire port.</xs:documentation>
36
+ </xs:annotation>
37
+ <xs:complexType>
38
+ <xs:simpleContent>
39
+ <xs:extension base="spirit:scaledNonNegativeInteger">
40
+ <xs:attributeGroup ref="spirit:long.prompt.att"/>
41
+ </xs:extension>
42
+ </xs:simpleContent>
43
+ </xs:complexType>
44
+ </xs:element>
45
+ <xs:element name="clockDriver">
46
+ <xs:annotation>
47
+ <xs:documentation>Describes a driven clock port. </xs:documentation>
48
+ </xs:annotation>
49
+ <xs:complexType>
50
+ <xs:complexContent>
51
+ <xs:extension base="spirit:clockDriverType">
52
+ <xs:attribute name="clockName" type="xs:string">
53
+ <xs:annotation>
54
+ <xs:documentation>Indicates the name of the cllock. If not specified the name is assumed to be the name of the containing port. </xs:documentation>
55
+ </xs:annotation>
56
+ </xs:attribute>
57
+ </xs:extension>
58
+ </xs:complexContent>
59
+ </xs:complexType>
60
+ </xs:element>
61
+ <xs:element name="singleShotDriver">
62
+ <xs:annotation>
63
+ <xs:documentation>Describes a driven one-shot port.</xs:documentation>
64
+ </xs:annotation>
65
+ <xs:complexType>
66
+ <xs:sequence>
67
+ <xs:element name="singleShotOffset">
68
+ <xs:annotation>
69
+ <xs:documentation>Time in nanoseconds until start of one-shot.</xs:documentation>
70
+ </xs:annotation>
71
+ <xs:complexType>
72
+ <xs:simpleContent>
73
+ <xs:extension base="spirit:configurableDouble">
74
+ <xs:attributeGroup ref="spirit:float.prompt.att"/>
75
+ </xs:extension>
76
+ </xs:simpleContent>
77
+ </xs:complexType>
78
+ </xs:element>
79
+ <xs:element name="singleShotValue">
80
+ <xs:annotation>
81
+ <xs:documentation>Value of port after first edge of one-shot.</xs:documentation>
82
+ </xs:annotation>
83
+ <xs:complexType>
84
+ <xs:simpleContent>
85
+ <xs:extension base="spirit:scaledNonNegativeInteger">
86
+ <xs:attributeGroup ref="spirit:long.prompt.att"/>
87
+ </xs:extension>
88
+ </xs:simpleContent>
89
+ </xs:complexType>
90
+ </xs:element>
91
+ <xs:element name="singleShotDuration">
92
+ <xs:annotation>
93
+ <xs:documentation>Duration in nanoseconds of the one shot.</xs:documentation>
94
+ </xs:annotation>
95
+ <xs:complexType>
96
+ <xs:simpleContent>
97
+ <xs:extension base="spirit:configurableDouble">
98
+ <xs:attributeGroup ref="spirit:float.prompt.att"/>
99
+ </xs:extension>
100
+ </xs:simpleContent>
101
+ </xs:complexType>
102
+ </xs:element>
103
+ </xs:sequence>
104
+ </xs:complexType>
105
+ </xs:element>
106
+ <xs:element name="requiresDriver" default="false">
107
+ <xs:annotation>
108
+ <xs:documentation>Specifies if a port requires a driver. Default is false. The attribute driverType can further qualify what type of driver is required. Undefined behaviour if direction is not input or inout. Driver type any indicates that any unspecified type of driver must be connected</xs:documentation>
109
+ </xs:annotation>
110
+ <xs:complexType>
111
+ <xs:simpleContent>
112
+ <xs:extension base="xs:boolean">
113
+ <xs:attribute name="driverType" use="optional" default="any">
114
+ <xs:annotation>
115
+ <xs:documentation>Defines the type of driver that is required. The default is any type of driver. The 2 other options are a clock type driver or a singleshot type driver.</xs:documentation>
116
+ </xs:annotation>
117
+ <xs:simpleType>
118
+ <xs:restriction base="xs:token">
119
+ <xs:enumeration value="clock"/>
120
+ <xs:enumeration value="singleShot"/>
121
+ <xs:enumeration value="any"/>
122
+ </xs:restriction>
123
+ </xs:simpleType>
124
+ </xs:attribute>
125
+ </xs:extension>
126
+ </xs:simpleContent>
127
+ </xs:complexType>
128
+ </xs:element>
129
+ <xs:complexType name="driverType">
130
+ <xs:annotation>
131
+ <xs:documentation>Wire port driver type.</xs:documentation>
132
+ </xs:annotation>
133
+ <xs:choice minOccurs="0">
134
+ <xs:element ref="spirit:defaultValue" minOccurs="0"/>
135
+ <xs:element ref="spirit:clockDriver" minOccurs="0"/>
136
+ <xs:element ref="spirit:singleShotDriver" minOccurs="0"/>
137
+ </xs:choice>
138
+ </xs:complexType>
139
+ <xs:element name="driver" type="spirit:driverType">
140
+ <xs:annotation>
141
+ <xs:documentation>Wire port driver element.</xs:documentation>
142
+ </xs:annotation>
143
+ </xs:element>
144
+ <xs:complexType name="clockDriverType">
145
+ <xs:sequence>
146
+ <xs:element name="clockPeriod">
147
+ <xs:annotation>
148
+ <xs:documentation>Clock period in units defined by the units attribute. Default is nanoseconds.</xs:documentation>
149
+ </xs:annotation>
150
+ <xs:complexType>
151
+ <xs:simpleContent>
152
+ <xs:extension base="spirit:configurableDouble">
153
+ <xs:attribute name="units" type="spirit:delayValueUnitType" use="optional" default="ns"/>
154
+ <xs:attributeGroup ref="spirit:float.prompt.att"/>
155
+ </xs:extension>
156
+ </xs:simpleContent>
157
+ </xs:complexType>
158
+ </xs:element>
159
+ <xs:element name="clockPulseOffset">
160
+ <xs:annotation>
161
+ <xs:documentation>Time until first pulse. Units are defined by the units attribute. Default is nanoseconds.</xs:documentation>
162
+ </xs:annotation>
163
+ <xs:complexType>
164
+ <xs:simpleContent>
165
+ <xs:extension base="spirit:configurableDouble">
166
+ <xs:attribute name="units" type="spirit:delayValueUnitType" use="optional" default="ns"/>
167
+ <xs:attributeGroup ref="spirit:float.prompt.att"/>
168
+ </xs:extension>
169
+ </xs:simpleContent>
170
+ </xs:complexType>
171
+ </xs:element>
172
+ <xs:element name="clockPulseValue">
173
+ <xs:annotation>
174
+ <xs:documentation>Value of port after first clock edge.</xs:documentation>
175
+ </xs:annotation>
176
+ <xs:complexType>
177
+ <xs:simpleContent>
178
+ <xs:extension base="spirit:scaledNonNegativeInteger">
179
+ <xs:attributeGroup ref="spirit:long.prompt.att"/>
180
+ </xs:extension>
181
+ </xs:simpleContent>
182
+ </xs:complexType>
183
+ </xs:element>
184
+ <xs:element name="clockPulseDuration">
185
+ <xs:annotation>
186
+ <xs:documentation>Duration of first state in cycle. Units are defined by the units attribute. Default is nanoseconds.</xs:documentation>
187
+ </xs:annotation>
188
+ <xs:complexType>
189
+ <xs:simpleContent>
190
+ <xs:extension base="spirit:configurableDouble">
191
+ <xs:attribute name="units" type="spirit:delayValueUnitType" use="optional" default="ns"/>
192
+ <xs:attributeGroup ref="spirit:float.prompt.att"/>
193
+ </xs:extension>
194
+ </xs:simpleContent>
195
+ </xs:complexType>
196
+ </xs:element>
197
+ </xs:sequence>
198
+ </xs:complexType>
199
+ <xs:element name="otherClockDriver">
200
+ <xs:annotation>
201
+ <xs:documentation>Describes a clock not directly associated with an input port. The clockSource attribute can be used on these clocks to indicate the actual clock source (e.g. an output port of a clock generator cell).</xs:documentation>
202
+ </xs:annotation>
203
+ <xs:complexType>
204
+ <xs:complexContent>
205
+ <xs:extension base="spirit:clockDriverType">
206
+ <xs:attribute name="clockName" type="xs:Name" use="required">
207
+ <xs:annotation>
208
+ <xs:documentation>Indicates the name of the clock.</xs:documentation>
209
+ </xs:annotation>
210
+ </xs:attribute>
211
+ <xs:attribute name="clockSource" type="xs:string" use="optional">
212
+ <xs:annotation>
213
+ <xs:documentation>Indicates the name of the actual clock source (e.g. an output pin of a clock generator cell).</xs:documentation>
214
+ </xs:annotation>
215
+ </xs:attribute>
216
+ </xs:extension>
217
+ </xs:complexContent>
218
+ </xs:complexType>
219
+ </xs:element>
220
+ </xs:schema>
@@ -0,0 +1,90 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : simpleTypes.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: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:simpleType name="scaledInteger">
32
+ <xs:annotation>
33
+ <xs:documentation>A scaled integer. It supports any string recognized by java.lang.Long.decode(). It also supports a magnitude scale suffix of upper or lower case K (kilo=2^10), M (mega=2^20), G (giga=2^30) or T (tera=2^40).</xs:documentation>
34
+ </xs:annotation>
35
+ <xs:restriction base="xs:string">
36
+ <xs:pattern value="[+\-]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
37
+ </xs:restriction>
38
+ </xs:simpleType>
39
+ <xs:simpleType name="scaledNonNegativeInteger">
40
+ <xs:annotation>
41
+ <xs:documentation>A scaled nonnegative integer that consists of the value set {0, 1, ...}. It is derived from scaledInteger and it supports a magnitude scale suffix of upper or lower case K (kilo=2^10), M (mega=2^20), G (giga=2^30) or T (tera=2^40).</xs:documentation>
42
+ </xs:annotation>
43
+ <xs:restriction base="spirit:scaledInteger">
44
+ <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
45
+ </xs:restriction>
46
+ </xs:simpleType>
47
+ <xs:simpleType name="scaledPositiveInteger">
48
+ <xs:annotation>
49
+ <xs:documentation>A scaled positive integer that consists of the value set {1, 2, ...}. It is derived from scaledNonNegativeInteger and it supports a magnitude scale suffix of upper or lower case K (kilo=2^10), M (mega=2^20), G (giga=2^30) or T (tera=2^40).</xs:documentation>
50
+ </xs:annotation>
51
+ <xs:restriction base="spirit:scaledNonNegativeInteger">
52
+ <xs:pattern value="[+]?(0x|0X|#)?[0]*[1-9a-fA-F][0-9a-fA-F]*[kmgtKMGT]?"/>
53
+ </xs:restriction>
54
+ </xs:simpleType>
55
+ <xs:simpleType name="doubleList">
56
+ <xs:annotation>
57
+ <xs:documentation>List of doubles. Used to build configurableDouble type.</xs:documentation>
58
+ </xs:annotation>
59
+ <xs:list itemType="xs:double"/>
60
+ </xs:simpleType>
61
+ <xs:simpleType name="configurableDouble">
62
+ <xs:annotation>
63
+ <xs:documentation>Can be a double or an empty string.</xs:documentation>
64
+ </xs:annotation>
65
+ <xs:restriction base="spirit:doubleList">
66
+ <xs:minLength value="0"/>
67
+ <xs:maxLength value="1"/>
68
+ </xs:restriction>
69
+ </xs:simpleType>
70
+ <xs:simpleType name="portName">
71
+ <xs:annotation>
72
+ <xs:documentation>A type for a port name string, allows letters, digits, dash, colon, underscore and period</xs:documentation>
73
+ </xs:annotation>
74
+ <xs:restriction base="xs:string">
75
+ <xs:whiteSpace value="collapse"/>
76
+ <xs:pattern value="\i[\p{L}\p{N}\.\-:_]*"/>
77
+ </xs:restriction>
78
+ </xs:simpleType>
79
+ <xs:simpleType name="instancePath">
80
+ <xs:annotation>
81
+ <xs:documentation>A type for a instance name path string, allows letters, digits, dash, colon, underscore, period and slash</xs:documentation>
82
+ </xs:annotation>
83
+ <xs:restriction base="xs:string">
84
+ <xs:whiteSpace value="collapse"/>
85
+ <xs:pattern value="\i[\p{L}\p{N}\.\-:_]*"/>
86
+ <xs:pattern value="\i[\p{L}\p{N}\.\-:_]*/\i[\p{L}\p{N}\.\-:_]*"/>
87
+ <xs:pattern value="(\i[\p{L}\p{N}\.\-:_]*/)+[\i\p{L}\p{N}\.\-:_]*"/>
88
+ </xs:restriction>
89
+ </xs:simpleType>
90
+ </xs:schema>
@@ -0,0 +1,256 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : subInstances.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: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="simpleTypes.xsd"/>
32
+ <xs:include schemaLocation="commonStructures.xsd"/>
33
+ <xs:include schemaLocation="identifier.xsd"/>
34
+ <xs:include schemaLocation="autoConfigure.xsd"/>
35
+ <xs:element name="configurableElementValues">
36
+ <xs:annotation>
37
+ <xs:documentation>All configuration information for a contained component, generator, generator chain or abstractor instance.</xs:documentation>
38
+ </xs:annotation>
39
+ <xs:complexType>
40
+ <xs:sequence>
41
+ <xs:element ref="spirit:configurableElementValue" maxOccurs="unbounded">
42
+ <xs:annotation>
43
+ <xs:documentation>Describes the content of a configurable element. The required referenceId attribute refers to the ID attribute of the configurable element.</xs:documentation>
44
+ </xs:annotation>
45
+ </xs:element>
46
+ </xs:sequence>
47
+ </xs:complexType>
48
+ </xs:element>
49
+ <xs:element name="configurableElementValue">
50
+ <xs:annotation>
51
+ <xs:documentation>Describes the content of a configurable element. The required referenceId attribute refers to the ID attribute of the configurable element.</xs:documentation>
52
+ </xs:annotation>
53
+ <xs:complexType>
54
+ <xs:simpleContent>
55
+ <xs:extension base="xs:string">
56
+ <xs:attribute name="referenceId" type="xs:Name" use="required">
57
+ <xs:annotation>
58
+ <xs:documentation>Refers to the ID attribute of the configurable element.</xs:documentation>
59
+ </xs:annotation>
60
+ </xs:attribute>
61
+ </xs:extension>
62
+ </xs:simpleContent>
63
+ </xs:complexType>
64
+ </xs:element>
65
+ <xs:element name="instanceName" type="xs:Name">
66
+ <xs:annotation>
67
+ <xs:documentation>An instance name assigned to subcomponent instances and contained channels, that is unique within the parent component.</xs:documentation>
68
+ </xs:annotation>
69
+ </xs:element>
70
+ <xs:element name="componentInstance">
71
+ <xs:annotation>
72
+ <xs:documentation>Component instance element. The instance name is contained in the unique-value instanceName attribute.</xs:documentation>
73
+ </xs:annotation>
74
+ <xs:complexType>
75
+ <xs:sequence>
76
+ <xs:element ref="spirit:instanceName"/>
77
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
78
+ <xs:element ref="spirit:description" minOccurs="0"/>
79
+ <xs:element name="componentRef" type="spirit:libraryRefType">
80
+ <xs:annotation>
81
+ <xs:documentation>References a component to be found in an external library. The four attributes define the VLNV of the referenced element.</xs:documentation>
82
+ </xs:annotation>
83
+ </xs:element>
84
+ <xs:element ref="spirit:configurableElementValues" minOccurs="0"/>
85
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
86
+ </xs:sequence>
87
+ </xs:complexType>
88
+ </xs:element>
89
+ <xs:element name="componentInstances">
90
+ <xs:annotation>
91
+ <xs:documentation>Sub instances of internal components.</xs:documentation>
92
+ </xs:annotation>
93
+ <xs:complexType>
94
+ <xs:sequence>
95
+ <xs:element ref="spirit:componentInstance" maxOccurs="unbounded"/>
96
+ </xs:sequence>
97
+ </xs:complexType>
98
+ </xs:element>
99
+ <xs:element name="adHocConnection">
100
+ <xs:annotation>
101
+ <xs:documentation>Represents an ad-hoc connection between component ports.</xs:documentation>
102
+ </xs:annotation>
103
+ <xs:complexType>
104
+ <xs:sequence>
105
+ <xs:group ref="spirit:nameGroupPort"/>
106
+ <xs:element name="internalPortReference" maxOccurs="unbounded">
107
+ <xs:annotation>
108
+ <xs:documentation>Defines a reference to a port on a component contained within the design.</xs:documentation>
109
+ </xs:annotation>
110
+ <xs:complexType>
111
+ <xs:attribute name="componentRef" type="xs:Name" use="required">
112
+ <xs:annotation>
113
+ <xs:documentation>A reference to the instanceName element of a component in this design.</xs:documentation>
114
+ </xs:annotation>
115
+ </xs:attribute>
116
+ <xs:attribute name="portRef" type="spirit:portName" use="required">
117
+ <xs:annotation>
118
+ <xs:documentation>A port on the on the referenced component from componentRef.</xs:documentation>
119
+ </xs:annotation>
120
+ </xs:attribute>
121
+ <xs:attribute name="left" type="xs:nonNegativeInteger">
122
+ <xs:annotation>
123
+ <xs:documentation>Left index of a vector.</xs:documentation>
124
+ </xs:annotation>
125
+ </xs:attribute>
126
+ <xs:attribute name="right" type="xs:nonNegativeInteger">
127
+ <xs:annotation>
128
+ <xs:documentation>Right index of a vector.</xs:documentation>
129
+ </xs:annotation>
130
+ </xs:attribute>
131
+ </xs:complexType>
132
+ </xs:element>
133
+ <xs:element name="externalPortReference" minOccurs="0" maxOccurs="unbounded">
134
+ <xs:annotation>
135
+ <xs:documentation>Defines a reference to a port on the component containing this design. The portRef attribute indicates the name of the port in the containing component.</xs:documentation>
136
+ </xs:annotation>
137
+ <xs:complexType>
138
+ <xs:attribute name="portRef" type="spirit:portName" use="required">
139
+ <xs:annotation>
140
+ <xs:documentation>A port on the top level component.</xs:documentation>
141
+ </xs:annotation>
142
+ </xs:attribute>
143
+ <xs:attribute name="left" type="xs:nonNegativeInteger">
144
+ <xs:annotation>
145
+ <xs:documentation>Left index of a vector.</xs:documentation>
146
+ </xs:annotation>
147
+ </xs:attribute>
148
+ <xs:attribute name="right" type="xs:nonNegativeInteger">
149
+ <xs:annotation>
150
+ <xs:documentation>Right index of a vector.</xs:documentation>
151
+ </xs:annotation>
152
+ </xs:attribute>
153
+ </xs:complexType>
154
+ </xs:element>
155
+ </xs:sequence>
156
+ <xs:attribute name="tiedValue" type="spirit:scaledNonNegativeInteger">
157
+ <xs:annotation>
158
+ <xs:documentation>The logic value of this connection. Only valid for ports of style wire.</xs:documentation>
159
+ </xs:annotation>
160
+ </xs:attribute>
161
+ </xs:complexType>
162
+ </xs:element>
163
+ <xs:element name="adHocConnections">
164
+ <xs:annotation>
165
+ <xs:documentation>Defines the set of ad-hoc connections in a design. An ad-hoc connection represents a connection between two component pins which were not connected as a result of interface connections (i.e.the pin to pin connection was made explicitly and is represented explicitly).</xs:documentation>
166
+ </xs:annotation>
167
+ <xs:complexType>
168
+ <xs:sequence>
169
+ <xs:element ref="spirit:adHocConnection" maxOccurs="unbounded"/>
170
+ </xs:sequence>
171
+ </xs:complexType>
172
+ </xs:element>
173
+ <xs:element name="interconnection">
174
+ <xs:annotation>
175
+ <xs:documentation>Describes a connection between two active (not monitor) busInterfaces.</xs:documentation>
176
+ </xs:annotation>
177
+ <xs:complexType>
178
+ <xs:sequence>
179
+ <xs:group ref="spirit:nameGroup"/>
180
+ <xs:element name="activeInterface" type="spirit:interface" minOccurs="2" maxOccurs="2">
181
+ <xs:annotation>
182
+ <xs:documentation>Describes one interface of the interconnection.
183
+
184
+ The componentRef and busRef attributes indicate the instance name and bus interface name of one end of the connection.</xs:documentation>
185
+ </xs:annotation>
186
+ </xs:element>
187
+ </xs:sequence>
188
+ </xs:complexType>
189
+ </xs:element>
190
+ <xs:element name="interconnections">
191
+ <xs:annotation>
192
+ <xs:documentation>Connections between internal sub components.</xs:documentation>
193
+ </xs:annotation>
194
+ <xs:complexType>
195
+ <xs:sequence>
196
+ <xs:element ref="spirit:interconnection" minOccurs="0" maxOccurs="unbounded"/>
197
+ <xs:element ref="spirit:monitorInterconnection" minOccurs="0" maxOccurs="unbounded"/>
198
+ </xs:sequence>
199
+ </xs:complexType>
200
+ </xs:element>
201
+ <xs:complexType name="interface">
202
+ <xs:annotation>
203
+ <xs:documentation>A representation of a component/bus interface relation; i.e. a bus interface belonging to a certain component.</xs:documentation>
204
+ </xs:annotation>
205
+ <xs:attribute name="componentRef" type="xs:Name" use="required">
206
+ <xs:annotation>
207
+ <xs:documentation>Reference to a component instance name.</xs:documentation>
208
+ </xs:annotation>
209
+ </xs:attribute>
210
+ <xs:attribute name="busRef" type="xs:Name" use="required">
211
+ <xs:annotation>
212
+ <xs:documentation>Reference to the components bus interface</xs:documentation>
213
+ </xs:annotation>
214
+ </xs:attribute>
215
+ </xs:complexType>
216
+ <xs:element name="monitorInterconnection">
217
+ <xs:annotation>
218
+ <xs:documentation>Describes a connection from the interface of one component to any number of monitor interfaces in the design.
219
+
220
+ An active interface can be connected to unlimited number of monitor interfaces.</xs:documentation>
221
+ </xs:annotation>
222
+ <xs:complexType>
223
+ <xs:sequence>
224
+ <xs:group ref="spirit:nameGroup"/>
225
+ <xs:element name="monitoredActiveInterface" type="spirit:hierInterface">
226
+ <xs:annotation>
227
+ <xs:documentation>Describes an active interface of the design that all the monitors will be connected to.
228
+
229
+ The componentRef and busRef attributes indicate the instance name and bus interface name. The optional path attribute indicates the hierarchical instance name path to the component.</xs:documentation>
230
+ </xs:annotation>
231
+ </xs:element>
232
+ <xs:element name="monitorInterface" type="spirit:hierInterface" maxOccurs="unbounded">
233
+ <xs:annotation>
234
+ <xs:documentation>Describes a list of monitor interfaces that are connected to the single active interface.
235
+
236
+ The componentRef and busRef attributes indicate the instance name and bus interface name. The optional path attribute indicates the hierarchical instance name path to the component.</xs:documentation>
237
+ </xs:annotation>
238
+ </xs:element>
239
+ </xs:sequence>
240
+ </xs:complexType>
241
+ </xs:element>
242
+ <xs:complexType name="hierInterface">
243
+ <xs:annotation>
244
+ <xs:documentation>Hierarchical reference to an interface</xs:documentation>
245
+ </xs:annotation>
246
+ <xs:complexContent>
247
+ <xs:extension base="spirit:interface">
248
+ <xs:attribute name="path" type="spirit:instancePath">
249
+ <xs:annotation>
250
+ <xs:documentation>A decending hierarchical (slash separated - example x/y/z) path to the component instance containing the specified component instance in componentRef. If not specified the componentRef instance shall exist in the current design. </xs:documentation>
251
+ </xs:annotation>
252
+ </xs:attribute>
253
+ </xs:extension>
254
+ </xs:complexContent>
255
+ </xs:complexType>
256
+ </xs:schema>