ipxact-ruby 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,135 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description: design_apbSubSystem.xml
4
+ // Author: The SPIRIT Consortium
5
+ // Revision: $Revision: 1506 $
6
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
7
+ //
8
+ // Copyright (c) 2009 The SPIRIT Consortium.
9
+ //
10
+ // This work forms part of a deliverable of The SPIRIT Consortium.
11
+ //
12
+ // Use of these materials are governed by the legal terms and conditions
13
+ // outlined in the disclaimer available from www.spiritconsortium.org.
14
+ //
15
+ // This source file is provided on an AS IS basis. The SPIRIT
16
+ // Consortium disclaims any warranty express or implied including
17
+ // any warranty of merchantability and fitness for use for a
18
+ // particular purpose.
19
+ //
20
+ // The user of the source file shall indemnify and hold The SPIRIT
21
+ // Consortium and its members harmless from any damages or liability.
22
+ // Users are requested to provide feedback to The SPIRIT Consortium
23
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
24
+ // http://www.spiritconsortium.org/about/contact_us/
25
+ //
26
+ // This file may be copied, and distributed, with or without
27
+ // modifications; this notice must be included on any copy.
28
+ -->
29
+ <spirit:design xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5/index.xsd">
30
+ <spirit:vendor>spiritconsortium.org</spirit:vendor>
31
+ <spirit:library>Leon2TLM</spirit:library>
32
+ <spirit:name>design_apbSubSystem</spirit:name>
33
+ <spirit:version>1.1</spirit:version>
34
+ <spirit:componentInstances>
35
+ <spirit:componentInstance>
36
+ <spirit:instanceName>i_apb</spirit:instanceName>
37
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="apbbus8" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
38
+ <spirit:configurableElementValues>
39
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv0">4096</spirit:configurableElementValue>
40
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv1">4096</spirit:configurableElementValue>
41
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv2">4096</spirit:configurableElementValue>
42
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv3">4096</spirit:configurableElementValue>
43
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv4">4096</spirit:configurableElementValue>
44
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv5">4096</spirit:configurableElementValue>
45
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv6">4096</spirit:configurableElementValue>
46
+ <spirit:configurableElementValue spirit:referenceId="rangeSlv7">4096</spirit:configurableElementValue>
47
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv0">0x0</spirit:configurableElementValue>
48
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv1">0x1000</spirit:configurableElementValue>
49
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv2">0x2000</spirit:configurableElementValue>
50
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv3">0x3000</spirit:configurableElementValue>
51
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv4">0x4000</spirit:configurableElementValue>
52
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv5">0x5000</spirit:configurableElementValue>
53
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv6">0x6000</spirit:configurableElementValue>
54
+ <spirit:configurableElementValue spirit:referenceId="remapAddressSlv7">0x7000</spirit:configurableElementValue>
55
+ <spirit:configurableElementValue spirit:referenceId="mapfile">leon2ApbBus.map</spirit:configurableElementValue>
56
+ </spirit:configurableElementValues>
57
+ </spirit:componentInstance>
58
+ <spirit:componentInstance>
59
+ <spirit:instanceName>i_h2p</spirit:instanceName>
60
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="apbmst" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
61
+ <spirit:configurableElementValues>
62
+ <spirit:configurableElementValue spirit:referenceId="masterRange">1M</spirit:configurableElementValue>
63
+ <spirit:configurableElementValue spirit:referenceId="mapfile">leon2ApbMst.map</spirit:configurableElementValue>
64
+ </spirit:configurableElementValues>
65
+ </spirit:componentInstance>
66
+ <spirit:componentInstance>
67
+ <spirit:instanceName>i_irq</spirit:instanceName>
68
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="irqctrl" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
69
+ </spirit:componentInstance>
70
+ <spirit:componentInstance>
71
+ <spirit:instanceName>i_tim</spirit:instanceName>
72
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="timers" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
73
+ <spirit:configurableElementValues>
74
+ <spirit:configurableElementValue spirit:referenceId="TPRESC">22</spirit:configurableElementValue>
75
+ </spirit:configurableElementValues>
76
+ </spirit:componentInstance>
77
+ </spirit:componentInstances>
78
+ <spirit:interconnections>
79
+ <spirit:interconnection>
80
+ <spirit:name>defaultid4490143</spirit:name>
81
+ <spirit:activeInterface spirit:busRef="APB_Master" spirit:componentRef="i_h2p"/>
82
+ <spirit:activeInterface spirit:busRef="APB_MirroredMaster" spirit:componentRef="i_apb"/>
83
+ </spirit:interconnection>
84
+ <spirit:interconnection>
85
+ <spirit:name>defaultid4490160</spirit:name>
86
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_irq"/>
87
+ <spirit:activeInterface spirit:busRef="APB_MirroredSlave0" spirit:componentRef="i_apb"/>
88
+ </spirit:interconnection>
89
+ <spirit:interconnection>
90
+ <spirit:name>defaultid4490176</spirit:name>
91
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_tim"/>
92
+ <spirit:activeInterface spirit:busRef="APB_MirroredSlave1" spirit:componentRef="i_apb"/>
93
+ </spirit:interconnection>
94
+ <spirit:interconnection>
95
+ <spirit:name>defaultid4490226</spirit:name>
96
+ <spirit:activeInterface spirit:busRef="INT_Slave3" spirit:componentRef="i_irq"/>
97
+ <spirit:activeInterface spirit:busRef="Int0" spirit:componentRef="i_tim"/>
98
+ </spirit:interconnection>
99
+ <spirit:interconnection>
100
+ <spirit:name>defaultid4490243</spirit:name>
101
+ <spirit:activeInterface spirit:busRef="INT_Slave2" spirit:componentRef="i_irq"/>
102
+ <spirit:activeInterface spirit:busRef="Int1" spirit:componentRef="i_tim"/>
103
+ </spirit:interconnection>
104
+ </spirit:interconnections>
105
+ <spirit:adHocConnections>
106
+ <spirit:adHocConnection>
107
+ <spirit:name>clk_timers</spirit:name>
108
+ <spirit:internalPortReference spirit:componentRef="i_tim" spirit:portRef="clk"/>
109
+ <spirit:externalPortReference spirit:portRef="clk_timers"/>
110
+ </spirit:adHocConnection>
111
+ </spirit:adHocConnections>
112
+ <spirit:hierConnections>
113
+ <spirit:hierConnection spirit:interfaceRef="AHB_Slave">
114
+ <spirit:interface spirit:busRef="AHB_Slave" spirit:componentRef="i_h2p"/>
115
+ </spirit:hierConnection>
116
+ <spirit:hierConnection spirit:interfaceRef="INT_Master">
117
+ <spirit:interface spirit:busRef="INT_Master" spirit:componentRef="i_irq"/>
118
+ </spirit:hierConnection>
119
+ <spirit:hierConnection spirit:interfaceRef="INT_Slave">
120
+ <spirit:interface spirit:busRef="INT_Slave4" spirit:componentRef="i_irq"/>
121
+ </spirit:hierConnection>
122
+ <spirit:hierConnection spirit:interfaceRef="APB_MSlave_4">
123
+ <spirit:interface spirit:busRef="APB_MirroredSlave4" spirit:componentRef="i_apb"/>
124
+ </spirit:hierConnection>
125
+ <spirit:hierConnection spirit:interfaceRef="APB_MSlave_5">
126
+ <spirit:interface spirit:busRef="APB_MirroredSlave5" spirit:componentRef="i_apb"/>
127
+ </spirit:hierConnection>
128
+ <spirit:hierConnection spirit:interfaceRef="APB_MSlave_6">
129
+ <spirit:interface spirit:busRef="APB_MirroredSlave6" spirit:componentRef="i_apb"/>
130
+ </spirit:hierConnection>
131
+ <spirit:hierConnection spirit:interfaceRef="APB_MSlave_7">
132
+ <spirit:interface spirit:busRef="APB_MirroredSlave7" spirit:componentRef="i_apb"/>
133
+ </spirit:hierConnection>
134
+ </spirit:hierConnections>
135
+ </spirit:design>
@@ -0,0 +1,133 @@
1
+ /*---------------------------------------------------------------------------
2
+ *
3
+ * Revision: $Revision: 1506 $
4
+ * Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
5
+ *
6
+ * Copyright (c) 2007, 2008, 2009 The SPIRIT Consortium.
7
+ *
8
+ * This work forms part of a deliverable of The SPIRIT Consortium.
9
+ *
10
+ * Use of these materials are governed by the legal terms and conditions
11
+ * outlined in the disclaimer available from www.spiritconsortium.org.
12
+ *
13
+ * This source file is provided on an AS IS basis. The SPIRIT
14
+ * Consortium disclaims any warranty express or implied including
15
+ * any warranty of merchantability and fitness for use for a
16
+ * particular purpose.
17
+ *
18
+ * The user of the source file shall indemnify and hold The SPIRIT
19
+ * Consortium and its members harmless from any damages or liability.
20
+ * Users are requested to provide feedback to The SPIRIT Consortium
21
+ * using either mailto:feedback@lists.spiritconsortium.org or the forms at
22
+ * http://www.spiritconsortium.org/about/contact_us/
23
+ *
24
+ * This file may be copied, and distributed, with or without
25
+ * modifications; but this notice must be included on any copy.
26
+ *---------------------------------------------------------------------------*/
27
+
28
+ /*******************************************************************************
29
+ * SPIRIT 1.4 OSCI-TLM-PV example
30
+ *------------------------------------------------------------------------------
31
+ * Simple TLM APB design
32
+ *------------------------------------------------------------------------------
33
+ * Revision: 1.4
34
+ * Authors: Jean-Michel Fernandez
35
+ * Copyright The SPIRIT Consortium 2006
36
+ *******************************************************************************/
37
+
38
+ #ifndef _APB_SUBSYSTEM_H_
39
+ #define _APB_SUBSYSTEM_H_
40
+
41
+ /*------------------------------------------------------------------------------
42
+ * Includes
43
+ *----------------------------------------------------------------------------*/
44
+ #include <systemc.h>
45
+
46
+ #include "apbbus.h"
47
+ #include "apbmst.h"
48
+ #include "timers.h"
49
+ #include "irqctrl.h"
50
+ #include "user_types.h"
51
+
52
+ #include "pv_target_port.h"
53
+ #include "pv_initiator_port.h"
54
+
55
+ /*------------------------------------------------------------------------------
56
+ * top netlist
57
+ *----------------------------------------------------------------------------*/
58
+ class apbSubSystem : public sc_module
59
+ {
60
+ public:
61
+ // slave ports
62
+ sc_in<int> int4_slave_port;
63
+ pv_target_port<ADDRESS_TYPE,DATA_TYPE> ahb_slave_port;
64
+ // interrupt ports
65
+ sc_out<int> irl_master_port;
66
+ sc_in<int> irq_slave_port;
67
+ sc_in<bool> ack_slave_port;
68
+ sc_in<sc_logic> clk_timers;
69
+
70
+ pv_initiator_port<ADDRESS_TYPE,DATA_TYPE> apb4_mslave_port;
71
+ pv_initiator_port<ADDRESS_TYPE,DATA_TYPE> apb5_mslave_port;
72
+ pv_initiator_port<ADDRESS_TYPE,DATA_TYPE> apb6_mslave_port;
73
+ pv_initiator_port<ADDRESS_TYPE,DATA_TYPE> apb7_mslave_port;
74
+
75
+ private:
76
+ // component instances
77
+ apbmst* i_h2p;
78
+ apbbus* i_apb;
79
+ irqctrl* i_irq;
80
+ timers* i_tim;
81
+ // interrupt signals
82
+ sc_buffer<int> interrupt_tim0;
83
+ sc_buffer<int> interrupt_tim1;
84
+ sc_buffer<int> dangling;
85
+
86
+ public:
87
+ apbSubSystem(sc_module_name module_name) : sc_module(module_name),
88
+ ahb_slave_port("ahb_slave_port"),
89
+ apb4_mslave_port("apb4_mslave_port"),
90
+ apb5_mslave_port("apb5_mslave_port"),
91
+ apb6_mslave_port("apb6_mslave_port"),
92
+ apb7_mslave_port("apb7_mslave_port")
93
+ {
94
+ // instances
95
+ i_h2p = new apbmst("i_apbmst","leon2ApbMst.map");
96
+ i_apb = new apbbus("i_apbbus","leon2ApbBus.map");
97
+ i_irq = new irqctrl("i_irqctrl");
98
+ i_tim = new timers("i_timers");
99
+ // interconnections (transactional port binding)
100
+ i_h2p->initiator_port ( i_apb->target_port );
101
+ i_apb->initiator_port ( i_irq->apb_slave_port ); // binding of APB 0
102
+ i_apb->initiator_port ( i_tim->apb_slave_port ); // binding of APB 1
103
+ // adhoc connections (wire port binding)
104
+ i_tim->int0 (interrupt_tim0);
105
+ i_irq->int3 (interrupt_tim0);
106
+ i_tim->int1 (interrupt_tim1);
107
+ i_irq->int2 (interrupt_tim1);
108
+ i_tim->clk (clk_timers);
109
+ i_irq->int1 (dangling);
110
+ i_irq->int0 (dangling);
111
+ // external interconnections
112
+ ahb_slave_port (i_h2p->target_port );
113
+ i_apb->initiator_port ( apb4_mslave_port ); // binding of APB 4
114
+ i_apb->initiator_port ( apb5_mslave_port ); // binding of APB 5
115
+ i_apb->initiator_port ( apb6_mslave_port ); // binding of APB 6
116
+ i_apb->initiator_port ( apb7_mslave_port ); // binding of APB 7
117
+ // external adhoc connections
118
+ i_irq->int4 ( this->int4_slave_port );
119
+ i_irq->irlout ( this->irl_master_port );
120
+ i_irq->irlin ( this->irq_slave_port );
121
+ i_irq->intack ( this->ack_slave_port );
122
+ }
123
+ ~apbSubSystem() {
124
+ delete i_h2p;
125
+ delete i_apb;
126
+ delete i_tim;
127
+ delete i_irq;
128
+ }
129
+ };
130
+
131
+ #endif /* _APB_SUBSYSTEM_H_ */
132
+
133
+
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ //
4
+ // Revision: $Revision: 1506 $
5
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
6
+ //
7
+ // Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
8
+ //
9
+ // This work forms part of a deliverable of The SPIRIT Consortium.
10
+ //
11
+ // Use of these materials are governed by the legal terms and conditions
12
+ // outlined in the disclaimer available from www.spiritconsortium.org.
13
+ //
14
+ // This source file is provided on an AS IS basis. The SPIRIT
15
+ // Consortium disclaims any warranty express or implied including
16
+ // any warranty of merchantability and fitness for use for a
17
+ // particular purpose.
18
+ //
19
+ // The user of the source file shall indemnify and hold The SPIRIT
20
+ // Consortium and its members harmless from any damages or liability.
21
+ // Users are requested to provide feedback to The SPIRIT Consortium
22
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
23
+ // http://www.spiritconsortium.org/about/contact_us/
24
+ //
25
+ // This file may be copied, and distributed, with or without
26
+ // modifications; but this notice must be included on any copy.
27
+ -->
28
+ <spirit:component xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5/index.xsd">
29
+ <spirit:vendor>spiritconsortium.org</spirit:vendor>
30
+ <spirit:library>Leon2TLM</spirit:library>
31
+ <spirit:name>Leon2Platform</spirit:name>
32
+ <spirit:version>1.2</spirit:version>
33
+ <spirit:model>
34
+ <spirit:views>
35
+ <spirit:view>
36
+ <spirit:name>spirit-design</spirit:name>
37
+ <spirit:envIdentifier>::Hierarchy</spirit:envIdentifier>
38
+ <spirit:hierarchyRef spirit:library="Leon2TLM" spirit:name="design_Leon2Platform" spirit:vendor="spiritconsortium.org" spirit:version="1.2"/>
39
+ </spirit:view>
40
+ <spirit:view>
41
+ <spirit:name>TLM_PV</spirit:name>
42
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
43
+ <spirit:language>systemc</spirit:language>
44
+ <spirit:modelName>Leon2Platform</spirit:modelName>
45
+ <spirit:fileSetRef>
46
+ <spirit:localName>sourceCode</spirit:localName>
47
+ </spirit:fileSetRef>
48
+ </spirit:view>
49
+ </spirit:views>
50
+ <spirit:ports>
51
+ <spirit:port>
52
+ <spirit:name>rstin_an</spirit:name>
53
+ <spirit:wire>
54
+ <spirit:direction>in</spirit:direction>
55
+ <spirit:driver>
56
+ <spirit:singleShotDriver>
57
+ <spirit:singleShotOffset>500.0</spirit:singleShotOffset>
58
+ <spirit:singleShotValue>1</spirit:singleShotValue>
59
+ <spirit:singleShotDuration>1000.0</spirit:singleShotDuration>
60
+ </spirit:singleShotDriver>
61
+ </spirit:driver>
62
+ </spirit:wire>
63
+ </spirit:port>
64
+ </spirit:ports>
65
+ </spirit:model>
66
+ <spirit:fileSets>
67
+ <spirit:fileSet>
68
+ <spirit:name>sourceCode</spirit:name>
69
+ <spirit:file>
70
+ <spirit:name>tlmsrc/Leon2Platform.h</spirit:name>
71
+ <spirit:fileType>systemCSource</spirit:fileType>
72
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
73
+ <spirit:logicalName>Leon2Platform</spirit:logicalName>
74
+ </spirit:file>
75
+ </spirit:fileSet>
76
+ </spirit:fileSets>
77
+ </spirit:component>
@@ -0,0 +1,157 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ //
4
+ // Revision: $Revision: 1506 $
5
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
6
+ //
7
+ // Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
8
+ //
9
+ // This work forms part of a deliverable of The SPIRIT Consortium.
10
+ //
11
+ // Use of these materials are governed by the legal terms and conditions
12
+ // outlined in the disclaimer available from www.spiritconsortium.org.
13
+ //
14
+ // This source file is provided on an AS IS basis. The SPIRIT
15
+ // Consortium disclaims any warranty express or implied including
16
+ // any warranty of merchantability and fitness for use for a
17
+ // particular purpose.
18
+ //
19
+ // The user of the source file shall indemnify and hold The SPIRIT
20
+ // Consortium and its members harmless from any damages or liability.
21
+ // Users are requested to provide feedback to The SPIRIT Consortium
22
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
23
+ // http://www.spiritconsortium.org/about/contact_us/
24
+ //
25
+ // This file may be copied, and distributed, with or without
26
+ // modifications; but this notice must be included on any copy.
27
+ -->
28
+ <spirit:design xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5/index.xsd">
29
+ <spirit:vendor>spiritconsortium.org</spirit:vendor>
30
+ <spirit:library>Leon2TLM</spirit:library>
31
+ <spirit:name>design_Leon2Platform</spirit:name>
32
+ <spirit:version>1.2</spirit:version>
33
+ <spirit:componentInstances>
34
+ <spirit:componentInstance>
35
+ <spirit:instanceName>i_ahb</spirit:instanceName>
36
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="ahbbus22" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
37
+ <spirit:configurableElementValues>
38
+ <spirit:configurableElementValue spirit:referenceId="range_slv0_mirror">0x00040000</spirit:configurableElementValue>
39
+ <spirit:configurableElementValue spirit:referenceId="range_slv1_mirror">0x00009000</spirit:configurableElementValue>
40
+ <spirit:configurableElementValue spirit:referenceId="start_addr_slv0_mirror">0x0</spirit:configurableElementValue>
41
+ <spirit:configurableElementValue spirit:referenceId="start_addr_slv1_mirror">0x30000000</spirit:configurableElementValue>
42
+ <spirit:configurableElementValue spirit:referenceId="mapfile">leon2AhbBus.map</spirit:configurableElementValue>
43
+ </spirit:configurableElementValues>
44
+ </spirit:componentInstance>
45
+ <spirit:componentInstance>
46
+ <spirit:instanceName>i_mem</spirit:instanceName>
47
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="ahbram" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
48
+ <spirit:configurableElementValues>
49
+ <spirit:configurableElementValue spirit:referenceId="addressBusSize">16</spirit:configurableElementValue>
50
+ </spirit:configurableElementValues>
51
+ </spirit:componentInstance>
52
+ <spirit:componentInstance>
53
+ <spirit:instanceName>i_sub</spirit:instanceName>
54
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="apbSubSystem" spirit:vendor="spiritconsortium.org" spirit:version="1.2"/>
55
+ </spirit:componentInstance>
56
+ <spirit:componentInstance>
57
+ <spirit:instanceName>i_cgu</spirit:instanceName>
58
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="cgu" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
59
+ <spirit:configurableElementValues>
60
+ <spirit:configurableElementValue spirit:referenceId="ClockPeriod">100</spirit:configurableElementValue>
61
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseDuration">50</spirit:configurableElementValue>
62
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseOffset">50</spirit:configurableElementValue>
63
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseValue">1</spirit:configurableElementValue>
64
+ </spirit:configurableElementValues>
65
+ </spirit:componentInstance>
66
+ <spirit:componentInstance>
67
+ <spirit:instanceName>i_dma</spirit:instanceName>
68
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="dma" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
69
+ </spirit:componentInstance>
70
+ <spirit:componentInstance>
71
+ <spirit:instanceName>i_proc</spirit:instanceName>
72
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="processor" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
73
+ </spirit:componentInstance>
74
+ <spirit:componentInstance>
75
+ <spirit:instanceName>i_rgu</spirit:instanceName>
76
+ <spirit:componentRef spirit:library="Leon2TLM" spirit:name="rgu" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
77
+ <spirit:configurableElementValues>
78
+ <spirit:configurableElementValue spirit:referenceId="ClockPeriod">100</spirit:configurableElementValue>
79
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseDuration">50</spirit:configurableElementValue>
80
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseOffset">50</spirit:configurableElementValue>
81
+ <spirit:configurableElementValue spirit:referenceId="ClockPulseValue">1</spirit:configurableElementValue>
82
+ </spirit:configurableElementValues>
83
+ </spirit:componentInstance>
84
+ </spirit:componentInstances>
85
+ <spirit:interconnections>
86
+ <spirit:interconnection>
87
+ <spirit:name>defaultid4489931</spirit:name>
88
+ <spirit:activeInterface spirit:busRef="AHB_Master" spirit:componentRef="i_proc"/>
89
+ <spirit:activeInterface spirit:busRef="AHB_MirroredMaster0" spirit:componentRef="i_ahb"/>
90
+ </spirit:interconnection>
91
+ <spirit:interconnection>
92
+ <spirit:name>defaultid4489948</spirit:name>
93
+ <spirit:activeInterface spirit:busRef="AHB_Master" spirit:componentRef="i_dma"/>
94
+ <spirit:activeInterface spirit:busRef="AHB_MirroredMaster1" spirit:componentRef="i_ahb"/>
95
+ </spirit:interconnection>
96
+ <spirit:interconnection>
97
+ <spirit:name>defaultid4489949</spirit:name>
98
+ <spirit:activeInterface spirit:busRef="INT_Master" spirit:componentRef="i_dma"/>
99
+ <spirit:activeInterface spirit:busRef="INT_Slave" spirit:componentRef="i_sub"/>
100
+ </spirit:interconnection>
101
+ <spirit:interconnection>
102
+ <spirit:name>defaultid4489964</spirit:name>
103
+ <spirit:activeInterface spirit:busRef="AHB_Slave" spirit:componentRef="i_mem"/>
104
+ <spirit:activeInterface spirit:busRef="AHB_MirroredSlave0" spirit:componentRef="i_ahb"/>
105
+ </spirit:interconnection>
106
+ <spirit:interconnection>
107
+ <spirit:name>defaultid4489981</spirit:name>
108
+ <spirit:activeInterface spirit:busRef="AHB_Slave" spirit:componentRef="i_sub"/>
109
+ <spirit:activeInterface spirit:busRef="AHB_MirroredSlave1" spirit:componentRef="i_ahb"/>
110
+ </spirit:interconnection>
111
+ <spirit:interconnection>
112
+ <spirit:name>defaultid4489998</spirit:name>
113
+ <spirit:activeInterface spirit:busRef="INT_Slave" spirit:componentRef="i_proc"/>
114
+ <spirit:activeInterface spirit:busRef="INT_Master" spirit:componentRef="i_sub"/>
115
+ </spirit:interconnection>
116
+ <spirit:interconnection>
117
+ <spirit:name>defaultid4490014</spirit:name>
118
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_cgu"/>
119
+ <spirit:activeInterface spirit:busRef="APB_MSlave_4" spirit:componentRef="i_sub"/>
120
+ </spirit:interconnection>
121
+ <spirit:interconnection>
122
+ <spirit:name>defaultid4490031</spirit:name>
123
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_rgu"/>
124
+ <spirit:activeInterface spirit:busRef="APB_MSlave_5" spirit:componentRef="i_sub"/>
125
+ </spirit:interconnection>
126
+ <spirit:interconnection>
127
+ <spirit:name>defaultid4490048</spirit:name>
128
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_proc"/>
129
+ <spirit:activeInterface spirit:busRef="APB_MSlave_6" spirit:componentRef="i_sub"/>
130
+ </spirit:interconnection>
131
+ <spirit:interconnection>
132
+ <spirit:name>defaultid4490065</spirit:name>
133
+ <spirit:activeInterface spirit:busRef="APB_Slave" spirit:componentRef="i_dma"/>
134
+ <spirit:activeInterface spirit:busRef="APB_MSlave_7" spirit:componentRef="i_sub"/>
135
+ </spirit:interconnection>
136
+ </spirit:interconnections>
137
+ <spirit:adHocConnections>
138
+ <spirit:adHocConnection>
139
+ <spirit:name>rstin_an</spirit:name>
140
+ <spirit:internalPortReference spirit:componentRef="i_rgu" spirit:portRef="rstin_an"/>
141
+ <spirit:externalPortReference spirit:portRef="rstin_an"/>
142
+ </spirit:adHocConnection>
143
+ <spirit:adHocConnection>
144
+ <spirit:name>clkdiv0</spirit:name>
145
+ <spirit:internalPortReference spirit:componentRef="i_sub" spirit:portRef="clk_timers"/>
146
+ <spirit:internalPortReference spirit:componentRef="i_proc" spirit:portRef="clk"/>
147
+ <spirit:internalPortReference spirit:componentRef="i_cgu" spirit:left="0" spirit:portRef="clkout" spirit:right="0"/>
148
+ <spirit:internalPortReference spirit:componentRef="i_rgu" spirit:portRef="ipclk"/>
149
+ </spirit:adHocConnection>
150
+ <spirit:adHocConnection>
151
+ <spirit:name>rstdiv0</spirit:name>
152
+ <spirit:internalPortReference spirit:componentRef="i_rgu" spirit:left="0" spirit:portRef="rstout_an" spirit:right="0"/>
153
+ <spirit:internalPortReference spirit:componentRef="i_sub" spirit:portRef="reset_port"/>
154
+ <spirit:internalPortReference spirit:componentRef="i_proc" spirit:portRef="rst_an"/>
155
+ </spirit:adHocConnection>
156
+ </spirit:adHocConnections>
157
+ </spirit:design>