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,283 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : constraints.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="commonStructures.xsd"/>
32
+ <xs:include schemaLocation="autoConfigure.xsd"/>
33
+ <xs:include schemaLocation="signalDrivers.xsd"/>
34
+ <xs:simpleType name="cellFunctionValueType">
35
+ <xs:annotation>
36
+ <xs:documentation>Indicates legal cell function values.</xs:documentation>
37
+ </xs:annotation>
38
+ <xs:restriction base="xs:token">
39
+ <xs:enumeration value="nand2"/>
40
+ <xs:enumeration value="buf"/>
41
+ <xs:enumeration value="inv"/>
42
+ <xs:enumeration value="mux21"/>
43
+ <xs:enumeration value="dff"/>
44
+ <xs:enumeration value="latch"/>
45
+ <xs:enumeration value="xor2"/>
46
+ </xs:restriction>
47
+ </xs:simpleType>
48
+ <xs:simpleType name="cellClassValueType">
49
+ <xs:annotation>
50
+ <xs:documentation>Indicates legal cell class values.</xs:documentation>
51
+ </xs:annotation>
52
+ <xs:restriction base="xs:token">
53
+ <xs:enumeration value="combinational"/>
54
+ <xs:enumeration value="sequential"/>
55
+ </xs:restriction>
56
+ </xs:simpleType>
57
+ <xs:simpleType name="cellStrengthValueType">
58
+ <xs:annotation>
59
+ <xs:documentation>Indicates legal cell strength values.</xs:documentation>
60
+ </xs:annotation>
61
+ <xs:restriction base="xs:token">
62
+ <xs:enumeration value="low"/>
63
+ <xs:enumeration value="median"/>
64
+ <xs:enumeration value="high"/>
65
+ </xs:restriction>
66
+ </xs:simpleType>
67
+ <xs:simpleType name="edgeValueType">
68
+ <xs:annotation>
69
+ <xs:documentation>Indicates legal values for edge specification attributes.</xs:documentation>
70
+ </xs:annotation>
71
+ <xs:restriction base="xs:token">
72
+ <xs:enumeration value="rise"/>
73
+ <xs:enumeration value="fall"/>
74
+ </xs:restriction>
75
+ </xs:simpleType>
76
+ <xs:simpleType name="delayValueType">
77
+ <xs:annotation>
78
+ <xs:documentation>Indicates the type of delay value - minimum or maximum delay.</xs:documentation>
79
+ </xs:annotation>
80
+ <xs:restriction base="xs:token">
81
+ <xs:enumeration value="min"/>
82
+ <xs:enumeration value="max"/>
83
+ </xs:restriction>
84
+ </xs:simpleType>
85
+ <xs:simpleType name="delayPercentageType">
86
+ <xs:annotation>
87
+ <xs:documentation>Type used to record percentage values.</xs:documentation>
88
+ </xs:annotation>
89
+ <xs:restriction base="xs:float">
90
+ <xs:minInclusive value="0.0"/>
91
+ <xs:maxInclusive value="100.0"/>
92
+ </xs:restriction>
93
+ </xs:simpleType>
94
+ <xs:simpleType name="nonNegativeFloat">
95
+ <xs:annotation>
96
+ <xs:documentation>Defines a non-negative floating point number.</xs:documentation>
97
+ </xs:annotation>
98
+ <xs:restriction base="xs:float">
99
+ <xs:minInclusive value="0.0"/>
100
+ </xs:restriction>
101
+ </xs:simpleType>
102
+ <xs:complexType name="otherClocks">
103
+ <xs:annotation>
104
+ <xs:documentation>List of clocks associated with the component that are not associated with ports. Set the clockSource attribute on the clockDriver to indicate the source of a clock not associated with a particular component port.</xs:documentation>
105
+ </xs:annotation>
106
+ <xs:sequence>
107
+ <xs:element ref="spirit:otherClockDriver" maxOccurs="unbounded"/>
108
+ </xs:sequence>
109
+ </xs:complexType>
110
+ <xs:attribute name="cellStrength" type="spirit:cellStrengthValueType">
111
+ <xs:annotation>
112
+ <xs:documentation>Indicates the desired strength of the specified cell.</xs:documentation>
113
+ </xs:annotation>
114
+ </xs:attribute>
115
+ <xs:attribute name="clockEdge" type="spirit:edgeValueType">
116
+ <xs:annotation>
117
+ <xs:documentation>Indicates the clock edge that a timing constraint is relative to.</xs:documentation>
118
+ </xs:annotation>
119
+ </xs:attribute>
120
+ <xs:attribute name="delayType" type="spirit:delayValueType">
121
+ <xs:annotation>
122
+ <xs:documentation>Indicates the type of delay in a timing constraint - minimum or maximum.</xs:documentation>
123
+ </xs:annotation>
124
+ </xs:attribute>
125
+ <xs:attribute name="constraintSetId" type="xs:NMTOKEN" default="default">
126
+ <xs:annotation>
127
+ <xs:documentation>Indicates a name for this set of constraints. Constraints are tied to a view using this name in the constraintSetRef element.</xs:documentation>
128
+ </xs:annotation>
129
+ </xs:attribute>
130
+ <xs:element name="cellSpecification">
131
+ <xs:annotation>
132
+ <xs:documentation>Used to provide a generic description of a technology library cell.</xs:documentation>
133
+ </xs:annotation>
134
+ <xs:complexType>
135
+ <xs:choice>
136
+ <xs:element name="cellFunction">
137
+ <xs:annotation>
138
+ <xs:documentation>Defines a technology library cell in library independent fashion, based on specification of a cell function and strength.</xs:documentation>
139
+ </xs:annotation>
140
+ <xs:complexType>
141
+ <xs:simpleContent>
142
+ <xs:extension base="spirit:cellFunctionValueType">
143
+ <xs:attribute ref="spirit:cellStrength"/>
144
+ </xs:extension>
145
+ </xs:simpleContent>
146
+ </xs:complexType>
147
+ </xs:element>
148
+ <xs:element name="cellClass">
149
+ <xs:annotation>
150
+ <xs:documentation>Defines a technology library cell in library independent fashion, based on specification of a cell class and strength.</xs:documentation>
151
+ </xs:annotation>
152
+ <xs:complexType>
153
+ <xs:simpleContent>
154
+ <xs:extension base="spirit:cellClassValueType">
155
+ <xs:attribute ref="spirit:cellStrength"/>
156
+ </xs:extension>
157
+ </xs:simpleContent>
158
+ </xs:complexType>
159
+ </xs:element>
160
+ </xs:choice>
161
+ </xs:complexType>
162
+ </xs:element>
163
+ <xs:element name="timingConstraint">
164
+ <xs:annotation>
165
+ <xs:documentation>Defines a timing constraint for the associated port. The constraint is relative to the clock specified by the clockName attribute. The clockEdge indicates which clock edge the constraint is associated with (default is rising edge). The delayType attribute can be specified to further refine the constraint.</xs:documentation>
166
+ </xs:annotation>
167
+ <xs:complexType>
168
+ <xs:simpleContent>
169
+ <xs:extension base="spirit:delayPercentageType">
170
+ <xs:attribute ref="spirit:clockEdge" default="rise"/>
171
+ <xs:attribute ref="spirit:delayType"/>
172
+ <xs:attribute name="clockName" type="spirit:portName" use="required">
173
+ <xs:annotation>
174
+ <xs:documentation>Indicates the name of the clock to which this constraint applies.</xs:documentation>
175
+ </xs:annotation>
176
+ </xs:attribute>
177
+ </xs:extension>
178
+ </xs:simpleContent>
179
+ </xs:complexType>
180
+ </xs:element>
181
+ <xs:element name="driveConstraint">
182
+ <xs:annotation>
183
+ <xs:documentation>Defines a constraint indicating how an input is to be driven. The preferred methodology is to specify a library cell in technology independent fashion. The implemention tool should assume that the associated port is driven by the specified cell, or that the drive strength of the input port is indicated by the specified resistance value.</xs:documentation>
184
+ </xs:annotation>
185
+ <xs:complexType>
186
+ <xs:sequence>
187
+ <xs:element ref="spirit:cellSpecification"/>
188
+ </xs:sequence>
189
+ </xs:complexType>
190
+ </xs:element>
191
+ <xs:element name="loadConstraint">
192
+ <xs:annotation>
193
+ <xs:documentation>Defines a constraint indicating the type of load on an output port.</xs:documentation>
194
+ </xs:annotation>
195
+ <xs:complexType>
196
+ <xs:sequence>
197
+ <xs:element ref="spirit:cellSpecification"/>
198
+ <xs:element name="count" type="xs:positiveInteger" default="3" minOccurs="0">
199
+ <xs:annotation>
200
+ <xs:documentation>Indicates how many loads of the specified cell are connected. If not present, 3 is assumed.</xs:documentation>
201
+ </xs:annotation>
202
+ </xs:element>
203
+ </xs:sequence>
204
+ </xs:complexType>
205
+ </xs:element>
206
+ <xs:element name="constraintSet">
207
+ <xs:annotation>
208
+ <xs:documentation>Defines constraints that apply to a component port. If multiple constraintSet elements are used, each must have a unique value for the constraintSetId attribute.</xs:documentation>
209
+ </xs:annotation>
210
+ <xs:complexType>
211
+ <xs:sequence>
212
+ <xs:group ref="spirit:nameGroupOptional"/>
213
+ <xs:element name="vector" minOccurs="0">
214
+ <xs:annotation>
215
+ <xs:documentation>The optional element vector specify the bits of a vector for which the constraints apply. The vaules of left and right must be within the range of the port. If the vector is not specified then the constraints apply to all the bits of the port.</xs:documentation>
216
+ </xs:annotation>
217
+ <xs:complexType>
218
+ <xs:sequence>
219
+ <xs:element name="left">
220
+ <xs:annotation>
221
+ <xs:documentation>The optional elements left and right can be used to select a bit-slice of a vector. </xs:documentation>
222
+ </xs:annotation>
223
+ <xs:complexType>
224
+ <xs:simpleContent>
225
+ <xs:extension base="xs:nonNegativeInteger"/>
226
+ </xs:simpleContent>
227
+ </xs:complexType>
228
+ </xs:element>
229
+ <xs:element name="right">
230
+ <xs:annotation>
231
+ <xs:documentation>The optional elements left and right can be used to select a bit-slice of a vector. </xs:documentation>
232
+ </xs:annotation>
233
+ <xs:complexType>
234
+ <xs:simpleContent>
235
+ <xs:extension base="xs:nonNegativeInteger"/>
236
+ </xs:simpleContent>
237
+ </xs:complexType>
238
+ </xs:element>
239
+ </xs:sequence>
240
+ </xs:complexType>
241
+ </xs:element>
242
+ <xs:element ref="spirit:driveConstraint" minOccurs="0"/>
243
+ <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
244
+ <xs:element ref="spirit:timingConstraint" minOccurs="0" maxOccurs="unbounded"/>
245
+ </xs:sequence>
246
+ <xs:attribute ref="spirit:constraintSetId" use="optional"/>
247
+ </xs:complexType>
248
+ </xs:element>
249
+ <xs:element name="constraintSets">
250
+ <xs:annotation>
251
+ <xs:documentation>List of constraintSet elements for a component port.</xs:documentation>
252
+ </xs:annotation>
253
+ <xs:complexType>
254
+ <xs:sequence>
255
+ <xs:element ref="spirit:constraintSet" maxOccurs="unbounded"/>
256
+ </xs:sequence>
257
+ </xs:complexType>
258
+ </xs:element>
259
+ <xs:element name="constraintSetRef" type="xs:NMTOKEN">
260
+ <xs:annotation>
261
+ <xs:documentation>A reference to a set of port constraints.</xs:documentation>
262
+ </xs:annotation>
263
+ </xs:element>
264
+ <xs:complexType name="abstractionDefPortConstraintsType">
265
+ <xs:annotation>
266
+ <xs:documentation>Defines constraints that apply to a wire type port in an abstraction definition. </xs:documentation>
267
+ </xs:annotation>
268
+ <xs:choice>
269
+ <xs:sequence>
270
+ <xs:element ref="spirit:timingConstraint" maxOccurs="unbounded"/>
271
+ <xs:element ref="spirit:driveConstraint" minOccurs="0"/>
272
+ <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
273
+ </xs:sequence>
274
+ <xs:sequence>
275
+ <xs:element ref="spirit:driveConstraint"/>
276
+ <xs:element ref="spirit:loadConstraint" minOccurs="0"/>
277
+ </xs:sequence>
278
+ <xs:sequence>
279
+ <xs:element ref="spirit:loadConstraint"/>
280
+ </xs:sequence>
281
+ </xs:choice>
282
+ </xs:complexType>
283
+ </xs:schema>
@@ -0,0 +1,105 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description : design.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="commonStructures.xsd"/>
32
+ <xs:include schemaLocation="subInstances.xsd"/>
33
+ <xs:include schemaLocation="model.xsd"/>
34
+ <xs:include schemaLocation="port.xsd"/>
35
+ <xs:element name="design">
36
+ <xs:annotation>
37
+ <xs:documentation>Root element for a platform design.</xs:documentation>
38
+ </xs:annotation>
39
+ <xs:complexType>
40
+ <xs:sequence>
41
+ <xs:group ref="spirit:versionedIdentifier"/>
42
+ <xs:element ref="spirit:componentInstances" minOccurs="0"/>
43
+ <xs:element ref="spirit:interconnections" minOccurs="0"/>
44
+ <xs:element ref="spirit:adHocConnections" minOccurs="0"/>
45
+ <xs:element name="hierConnections" minOccurs="0">
46
+ <xs:annotation>
47
+ <xs:documentation>A list of hierarchy connections between bus interfaces on component instances and the bus interfaces on the encompassing component.</xs:documentation>
48
+ </xs:annotation>
49
+ <xs:complexType>
50
+ <xs:sequence>
51
+ <xs:element name="hierConnection" maxOccurs="unbounded">
52
+ <xs:annotation>
53
+ <xs:documentation>Represents a hierarchy connection</xs:documentation>
54
+ </xs:annotation>
55
+ <xs:complexType>
56
+ <xs:sequence>
57
+ <xs:element name="interface" type="spirit:interface">
58
+ <xs:annotation>
59
+ <xs:documentation>Component and bus reference to export to the upper level component.
60
+
61
+ The componentRef and busRef attributes indicate the instance name and bus interface name (active or monitor) of the hierachical connection.</xs:documentation>
62
+ </xs:annotation>
63
+ </xs:element>
64
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
65
+ </xs:sequence>
66
+ <xs:attribute name="interfaceRef" type="xs:Name" use="required">
67
+ <xs:annotation>
68
+ <xs:documentation>This is the name of the bus interface on the upper level component.</xs:documentation>
69
+ </xs:annotation>
70
+ </xs:attribute>
71
+ </xs:complexType>
72
+ </xs:element>
73
+ </xs:sequence>
74
+ </xs:complexType>
75
+ </xs:element>
76
+ <xs:element ref="spirit:description" minOccurs="0"/>
77
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
78
+ </xs:sequence>
79
+ </xs:complexType>
80
+ <xs:key name="designComponentInstanceKey">
81
+ <xs:selector xpath="spirit:componentInstances/spirit:componentInstance"/>
82
+ <xs:field xpath="spirit:instanceName"/>
83
+ </xs:key>
84
+ <xs:keyref name="designInterconnectionActiveInstanceRef" refer="spirit:designComponentInstanceKey">
85
+ <xs:selector xpath="spirit:interconnections/spirit:interconnection/spirit:activeInterface"/>
86
+ <xs:field xpath="@spirit:componentRef"/>
87
+ </xs:keyref>
88
+ <xs:keyref name="designHierConnectionActiveInstanceRef" refer="spirit:designComponentInstanceKey">
89
+ <xs:selector xpath="spirit:hierConnections/spirit:hierConnection/spirit:interface"/>
90
+ <xs:field xpath="@spirit:componentRef"/>
91
+ </xs:keyref>
92
+ <xs:keyref name="designAdhocConnectionActiveInstanceRef" refer="spirit:designComponentInstanceKey">
93
+ <xs:selector xpath="spirit:adHocConnections/spirit:adHocConnection/spirit:internalPortReference"/>
94
+ <xs:field xpath="@spirit:componentRef"/>
95
+ </xs:keyref>
96
+ <xs:unique name="designInterconnectionName">
97
+ <xs:selector xpath=".//spirit:interconnection|.//spirit:monitorInterconnection"/>
98
+ <xs:field xpath="spirit:name"/>
99
+ </xs:unique>
100
+ <xs:unique name="designAdHocName">
101
+ <xs:selector xpath=".//spirit:adHocConnection"/>
102
+ <xs:field xpath="spirit:name"/>
103
+ </xs:unique>
104
+ </xs:element>
105
+ </xs:schema>
@@ -0,0 +1,144 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description: designConfig.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:include schemaLocation="commonStructures.xsd"/>
32
+ <xs:include schemaLocation="identifier.xsd"/>
33
+ <xs:include schemaLocation="model.xsd"/>
34
+ <xs:include schemaLocation="subInstances.xsd"/>
35
+ <xs:element name="designConfiguration">
36
+ <xs:annotation>
37
+ <xs:documentation>Top level element for describing the current configuration of a design. Does not describe instance parameterization</xs:documentation>
38
+ </xs:annotation>
39
+ <xs:complexType>
40
+ <xs:sequence>
41
+ <xs:group ref="spirit:versionedIdentifier"/>
42
+ <xs:element name="designRef" type="spirit:libraryRefType">
43
+ <xs:annotation>
44
+ <xs:documentation>The design to which this configuration applies</xs:documentation>
45
+ </xs:annotation>
46
+ </xs:element>
47
+ <xs:element name="generatorChainConfiguration" minOccurs="0" maxOccurs="unbounded">
48
+ <xs:annotation>
49
+ <xs:documentation>Contains the configurable information associated with a generatorChain and its generators. Note that configurable information for generators associated with components is stored in the design file.</xs:documentation>
50
+ </xs:annotation>
51
+ <xs:complexType>
52
+ <xs:sequence>
53
+ <xs:element name="generatorChainRef" type="spirit:libraryRefType">
54
+ <xs:annotation>
55
+ <xs:documentation>References a generatorChain.</xs:documentation>
56
+ </xs:annotation>
57
+ </xs:element>
58
+ <xs:element ref="spirit:configurableElementValues" minOccurs="0"/>
59
+ </xs:sequence>
60
+ </xs:complexType>
61
+ </xs:element>
62
+ <xs:element name="interconnectionConfiguration" minOccurs="0" maxOccurs="unbounded">
63
+ <xs:annotation>
64
+ <xs:documentation>Contains the information about the abstractors required to cross between two interfaces at with different abstractionDefs.</xs:documentation>
65
+ </xs:annotation>
66
+ <xs:complexType>
67
+ <xs:sequence>
68
+ <xs:element name="interconnectionRef" type="xs:Name">
69
+ <xs:annotation>
70
+ <xs:documentation>Reference to the interconnection name, monitor interconnection name or possibly a hierConnection interfaceName in a design file.</xs:documentation>
71
+ </xs:annotation>
72
+ </xs:element>
73
+ <xs:element name="abstractors">
74
+ <xs:annotation>
75
+ <xs:documentation>List of abstractors for this interconnection</xs:documentation>
76
+ </xs:annotation>
77
+ <xs:complexType>
78
+ <xs:sequence>
79
+ <xs:element name="abstractor" maxOccurs="unbounded">
80
+ <xs:annotation>
81
+ <xs:documentation>Element to hold a the abstractor reference, the configuration and viewName. If multiple elements are present then the order is the order in which the abstractors should be chained together.</xs:documentation>
82
+ </xs:annotation>
83
+ <xs:complexType>
84
+ <xs:sequence>
85
+ <xs:element name="instanceName" type="xs:Name">
86
+ <xs:annotation>
87
+ <xs:documentation>Instance name for the abstractor</xs:documentation>
88
+ </xs:annotation>
89
+ </xs:element>
90
+ <xs:element ref="spirit:displayName" minOccurs="0"/>
91
+ <xs:element ref="spirit:description" minOccurs="0"/>
92
+ <xs:element name="abstractorRef" type="spirit:libraryRefType">
93
+ <xs:annotation>
94
+ <xs:documentation>Abstractor reference</xs:documentation>
95
+ </xs:annotation>
96
+ </xs:element>
97
+ <xs:element ref="spirit:configurableElementValues" minOccurs="0"/>
98
+ <xs:element name="viewName" type="xs:NMTOKEN">
99
+ <xs:annotation>
100
+ <xs:documentation>The name of the active view for this abstractor instance.</xs:documentation>
101
+ </xs:annotation>
102
+ </xs:element>
103
+ </xs:sequence>
104
+ </xs:complexType>
105
+ </xs:element>
106
+ </xs:sequence>
107
+ </xs:complexType>
108
+ </xs:element>
109
+ </xs:sequence>
110
+ </xs:complexType>
111
+ </xs:element>
112
+ <xs:element name="viewConfiguration" minOccurs="0" maxOccurs="unbounded">
113
+ <xs:annotation>
114
+ <xs:documentation>Contains the active view for each instance in the design</xs:documentation>
115
+ </xs:annotation>
116
+ <xs:complexType>
117
+ <xs:sequence>
118
+ <xs:element ref="spirit:instanceName"/>
119
+ <xs:element name="viewName" type="xs:NMTOKEN">
120
+ <xs:annotation>
121
+ <xs:documentation>The name of the active view for this instance</xs:documentation>
122
+ </xs:annotation>
123
+ </xs:element>
124
+ </xs:sequence>
125
+ </xs:complexType>
126
+ </xs:element>
127
+ <xs:element ref="spirit:description" minOccurs="0"/>
128
+ <xs:element ref="spirit:vendorExtensions" minOccurs="0"/>
129
+ </xs:sequence>
130
+ </xs:complexType>
131
+ <xs:key name="designConfigViewInstanceKey">
132
+ <xs:selector xpath="spirit:viewConfiguration"/>
133
+ <xs:field xpath="spirit:instanceName"/>
134
+ </xs:key>
135
+ <xs:key name="designConfigAbstractorInstanceKey">
136
+ <xs:selector xpath="spirit:interconnectionConfiguration/spirit:abstractors/spirit:abstractor"/>
137
+ <xs:field xpath="spirit:instanceName"/>
138
+ </xs:key>
139
+ <xs:key name="designConfigInterconnectionRefKey">
140
+ <xs:selector xpath="spirit:interconnectionConfiguration"/>
141
+ <xs:field xpath="spirit:interconnectionRef"/>
142
+ </xs:key>
143
+ </xs:element>
144
+ </xs:schema>