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,154 @@
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:abstractor 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>pv2tac</spirit:name>
32
+ <spirit:version>1.0</spirit:version>
33
+ <spirit:abstractorMode>direct</spirit:abstractorMode>
34
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
35
+ <spirit:abstractorInterfaces>
36
+ <spirit:abstractorInterface>
37
+ <spirit:name>APB_Slave</spirit:name>
38
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
39
+ <spirit:portMaps>
40
+ <spirit:portMap>
41
+ <spirit:logicalPort>
42
+ <spirit:name>PV_TRANS</spirit:name>
43
+ </spirit:logicalPort>
44
+ <spirit:physicalPort>
45
+ <spirit:name>tlmpv_slave_port</spirit:name>
46
+ </spirit:physicalPort>
47
+ </spirit:portMap>
48
+ </spirit:portMaps>
49
+ </spirit:abstractorInterface>
50
+ <spirit:abstractorInterface>
51
+ <spirit:name>ambaAPB</spirit:name>
52
+ <spirit:abstractionType spirit:library="SPG" spirit:name="tlm_tac" spirit:vendor="st.com" spirit:version="2.0"/>
53
+ <spirit:portMaps>
54
+ <spirit:portMap>
55
+ <spirit:logicalPort>
56
+ <spirit:name>tac_if</spirit:name>
57
+ </spirit:logicalPort>
58
+ <spirit:physicalPort>
59
+ <spirit:name>tac_master_port</spirit:name>
60
+ </spirit:physicalPort>
61
+ </spirit:portMap>
62
+ </spirit:portMaps>
63
+ </spirit:abstractorInterface>
64
+ </spirit:abstractorInterfaces>
65
+ <spirit:model>
66
+ <spirit:views>
67
+ <spirit:view>
68
+ <spirit:name>PVPVT</spirit:name>
69
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
70
+ <spirit:language>systemc2.1</spirit:language>
71
+ <spirit:modelName>pv2tac</spirit:modelName>
72
+ <spirit:fileSetRef>
73
+ <spirit:localName>pv2tacFileSet</spirit:localName>
74
+ </spirit:fileSetRef>
75
+ </spirit:view>
76
+ </spirit:views>
77
+ <spirit:ports>
78
+ <spirit:port>
79
+ <spirit:name>tlmpv_slave_port</spirit:name>
80
+ <spirit:transactional>
81
+ <spirit:transTypeDef>
82
+ <spirit:typeName>pv_target_port</spirit:typeName>
83
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
84
+ </spirit:transTypeDef>
85
+ <spirit:service>
86
+ <spirit:initiative>provides</spirit:initiative>
87
+ <spirit:serviceTypeDefs>
88
+ <spirit:serviceTypeDef>
89
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
90
+ <spirit:parameters>
91
+ <spirit:parameter>
92
+ <spirit:name>typedef1</spirit:name>
93
+ <spirit:value>ADDRESS_TYPE</spirit:value>
94
+ </spirit:parameter>
95
+ <spirit:parameter>
96
+ <spirit:name>typedef2</spirit:name>
97
+ <spirit:value>DATA_TYPE</spirit:value>
98
+ </spirit:parameter>
99
+ </spirit:parameters>
100
+ </spirit:serviceTypeDef>
101
+ </spirit:serviceTypeDefs>
102
+ </spirit:service>
103
+ </spirit:transactional>
104
+ </spirit:port>
105
+ <spirit:port>
106
+ <spirit:name>tac_master_port</spirit:name>
107
+ <spirit:transactional>
108
+ <spirit:transTypeDef>
109
+ <spirit:typeName>prt_tlm_tac::tac_initiator_port</spirit:typeName>
110
+ <spirit:typeDefinition>tac_initiator_port.h</spirit:typeDefinition>
111
+ </spirit:transTypeDef>
112
+ <spirit:service>
113
+ <spirit:initiative>requires</spirit:initiative>
114
+ <spirit:serviceTypeDefs>
115
+ <spirit:serviceTypeDef>
116
+ <spirit:typeName spirit:implicit="true">TAC</spirit:typeName>
117
+ <spirit:parameters>
118
+ <spirit:parameter>
119
+ <spirit:name>DT</spirit:name>
120
+ <spirit:value spirit:resolve="immediate">tlm_uint32_t</spirit:value>
121
+ </spirit:parameter>
122
+ <spirit:parameter>
123
+ <spirit:name>AT</spirit:name>
124
+ <spirit:value spirit:resolve="immediate">tlm_uint32_t</spirit:value>
125
+ </spirit:parameter>
126
+ </spirit:parameters>
127
+ </spirit:serviceTypeDef>
128
+ </spirit:serviceTypeDefs>
129
+ </spirit:service>
130
+ </spirit:transactional>
131
+ <spirit:access>
132
+ <spirit:portAccessType>ref</spirit:portAccessType>
133
+ <spirit:portAccessHandle>tac_master_port</spirit:portAccessHandle>
134
+ </spirit:access>
135
+ </spirit:port>
136
+ </spirit:ports>
137
+ </spirit:model>
138
+ <spirit:fileSets>
139
+ <spirit:fileSet>
140
+ <spirit:name>pv2tacFileSet</spirit:name>
141
+ <spirit:file>
142
+ <spirit:name>./tlmsrc/pv2tac.h</spirit:name>
143
+ <spirit:fileType>systemCSource-2.1</spirit:fileType>
144
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
145
+ <spirit:logicalName>pv2tac</spirit:logicalName>
146
+ </spirit:file>
147
+ <spirit:file>
148
+ <spirit:name>./tlmsrc/pv2tac.cc</spirit:name>
149
+ <spirit:fileType>systemCSource-2.1</spirit:fileType>
150
+ <spirit:logicalName>pv2tac</spirit:logicalName>
151
+ </spirit:file>
152
+ </spirit:fileSet>
153
+ </spirit:fileSets>
154
+ </spirit:abstractor>
@@ -0,0 +1,114 @@
1
+ //
2
+ //Revision: $Revision: 1506 $
3
+ //Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
4
+ //
5
+ //Copyright (c) 2008, 2009 The SPIRIT Consortium.
6
+ //
7
+ //This work forms part of a deliverable of The SPIRIT Consortium.
8
+ //
9
+ //Use of these materials are governed by the legal terms and conditions
10
+ //outlined in the disclaimer available from www.spiritconsortium.org.
11
+ //
12
+ //This source file is provided on an AS IS basis. The SPIRIT
13
+ //Consortium disclaims any warranty express or implied including
14
+ //any warranty of merchantability and fitness for use for a
15
+ //particular purpose.
16
+ //
17
+ //The user of the source file shall indemnify and hold The SPIRIT
18
+ //Consortium and its members harmless from any damages or liability.
19
+ //Users are requested to provide feedback to The SPIRIT Consortium
20
+ //using either mailto:feedback@lists.spiritconsortium.org or the forms at
21
+ //http://www.spiritconsortium.org/about/contact_us/
22
+ //
23
+ //This file may be copied, and distributed, with or without
24
+ //modifications; but this notice must be included on any copy.
25
+
26
+ #include "pv2tac.h"
27
+ #include "tac_if.h"
28
+ #include "tac_protocol.h"
29
+
30
+ pv2tac::pv2tac( sc_module_name module_name ) :
31
+ sc_module( module_name ),
32
+ pv_slave_base<ADDRESS_TYPE,DATA_TYPE>(name()),
33
+ tlmpv_slave_port("tlmpv_slave_port"),
34
+ tac_master_port("tac_master_port")
35
+ {
36
+ tlmpv_slave_port( *this );
37
+ }
38
+
39
+ void pv2tac::end_of_elaboration() {
40
+ cout << name() << " constructed." << endl;
41
+ }
42
+
43
+ pv2tac::~pv2tac()
44
+ {
45
+ }
46
+
47
+ tlm::tlm_status pv2tac::write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
48
+ const unsigned int byte_enable,
49
+ const tlm::tlm_mode mode,
50
+ const unsigned int export_id)
51
+ {
52
+ tlm::tlm_status status;
53
+ prt_tlm_tac::tac_error_reason error_reason;
54
+
55
+ prt_tlm_tac::tac_request<tlm_uint32_t, tlm_uint32_t> req;
56
+ prt_tlm_tac::tac_response<tlm_uint32_t> resp;
57
+
58
+ tlm_uint32_t tdata = data;
59
+
60
+ req.set_access(prt_tlm_tac::WRITE);
61
+ req.set_access_mode(prt_tlm_tac::DEFAULT);
62
+ req.set_address(addr);
63
+ req.set_data_ptr(&tdata); // Correctness depends on DATA_TYPE
64
+ req.set_number(1);
65
+ req.set_byte_enable(prt_tlm_tac::NO_BE);
66
+ req.set_block_byte_enable_period(0);
67
+ req.set_error_reason(error_reason);
68
+ req.set_port_id(0);
69
+
70
+ tac_master_port.do_transport(req, resp);
71
+
72
+ if (resp.get_status().is_ok()) {
73
+ status.set_ok();
74
+ } else {
75
+ status.set_error();
76
+ }
77
+ return status;
78
+ }
79
+
80
+ tlm::tlm_status pv2tac::read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
81
+ const unsigned int byte_enable,
82
+ const tlm::tlm_mode mode,
83
+ const unsigned int export_id)
84
+ {
85
+ tlm::tlm_status status;
86
+ prt_tlm_tac::tac_error_reason error_reason;
87
+
88
+ prt_tlm_tac::tac_request<tlm_uint32_t, tlm_uint32_t> req;
89
+ prt_tlm_tac::tac_response<tlm_uint32_t> resp;
90
+
91
+ tlm_uint32_t tdata;
92
+
93
+ req.set_access(prt_tlm_tac::READ);
94
+ req.set_access_mode(prt_tlm_tac::DEFAULT);
95
+ req.set_address(addr);
96
+ req.set_data_ptr(&tdata); // Correctness depends on DATA_TYPE
97
+ req.set_number(1);
98
+ req.set_byte_enable(byte_enable);
99
+ req.set_block_byte_enable_period(0);
100
+ req.set_error_reason(error_reason);
101
+ req.set_port_id(0);
102
+
103
+ tac_master_port.do_transport(req, resp);
104
+
105
+ data = tdata;
106
+
107
+
108
+ if (resp.get_status().is_ok()) {
109
+ status.set_ok();
110
+ } else {
111
+ status.set_error();
112
+ }
113
+ return status;
114
+ }
@@ -0,0 +1,67 @@
1
+ /*******************************************************************************
2
+ * SPIRIT 1.4 OSCI-TLM-PV to TAC example
3
+ *------------------------------------------------------------------------------
4
+ * Simple Leon2 TLM PV to TAC converter
5
+ *------------------------------------------------------------------------------
6
+ * Revision: 1.4
7
+ * Authors: Jean-Michel Fernandez
8
+ * Revision: $Revision: 1506 $
9
+ * Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
10
+ *
11
+ * Copyright (c) 2007, 2008, 2009 The SPIRIT Consortium.
12
+ *
13
+ * This work forms part of a deliverable of The SPIRIT Consortium.
14
+ *
15
+ * Use of these materials are governed by the legal terms and conditions
16
+ * outlined in the disclaimer available from www.spiritconsortium.org.
17
+ *
18
+ * This source file is provided on an AS IS basis. The SPIRIT
19
+ * Consortium disclaims any warranty express or implied including
20
+ * any warranty of merchantability and fitness for use for a
21
+ * particular purpose.
22
+ *
23
+ * The user of the source file shall indemnify and hold The SPIRIT
24
+ * Consortium and its members harmless from any damages or liability.
25
+ * Users are requested to provide feedback to The SPIRIT Consortium
26
+ * using either mailto:feedback@lists.spiritconsortium.org or the forms at
27
+ * http://www.spiritconsortium.org/about/contact_us/
28
+ *
29
+ * This file may be copied, and distributed, with or without
30
+ * modifications; but this notice must be included on any copy.
31
+ *---------------------------------------------------------------------------*/
32
+
33
+ #ifndef _PV2TAC_H_
34
+ #define _PV2TAC_H_
35
+
36
+ #include <systemc.h>
37
+ #include "pv_slave_base.h"
38
+ #include "pv_target_port.h"
39
+ #include "user_types.h"
40
+ #include "tac_initiator_port.h"
41
+
42
+ class pv2tac :
43
+ public sc_module,
44
+ public pv_slave_base< ADDRESS_TYPE , DATA_TYPE >
45
+ {
46
+ public:
47
+ SC_HAS_PROCESS(pv2tac);
48
+ pv2tac( sc_module_name module_name );
49
+ ~pv2tac();
50
+
51
+ pv_target_port<ADDRESS_TYPE,DATA_TYPE> tlmpv_slave_port;
52
+ prt_tlm_tac::tac_initiator_port<tlm_uint32_t,tlm_uint32_t> tac_master_port;
53
+
54
+ tlm::tlm_status write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
55
+ const unsigned int byte_enable = tlm::NO_BE,
56
+ const tlm::tlm_mode mode = tlm::REGULAR,
57
+ const unsigned int export_id = 0 );
58
+ tlm::tlm_status read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
59
+ const unsigned int byte_enable = tlm::NO_BE,
60
+ const tlm::tlm_mode mode = tlm::REGULAR,
61
+ const unsigned int export_id = 0 );
62
+
63
+ private:
64
+ void end_of_elaboration();
65
+ };
66
+
67
+ #endif
@@ -0,0 +1,766 @@
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>rgu</spirit:name>
32
+ <spirit:version>1.4</spirit:version>
33
+ <spirit:busInterfaces>
34
+ <spirit:busInterface>
35
+ <spirit:name>APB_Slave</spirit:name>
36
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
37
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
38
+ <spirit:slave>
39
+ <spirit:memoryMapRef spirit:memoryMapRef="APB_MM"/>
40
+ </spirit:slave>
41
+ <spirit:connectionRequired>true</spirit:connectionRequired>
42
+ <spirit:portMaps>
43
+ <spirit:portMap>
44
+ <spirit:logicalPort>
45
+ <spirit:name>PV_TRANS</spirit:name>
46
+ </spirit:logicalPort>
47
+ <spirit:physicalPort>
48
+ <spirit:name>apb_slave_port</spirit:name>
49
+ </spirit:physicalPort>
50
+ </spirit:portMap>
51
+ </spirit:portMaps>
52
+ </spirit:busInterface>
53
+ <spirit:busInterface>
54
+ <spirit:name>reset0_apb0</spirit:name>
55
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
56
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
57
+ <spirit:master/>
58
+ <spirit:portMaps>
59
+ <spirit:portMap>
60
+ <spirit:logicalPort>
61
+ <spirit:name>RESETn</spirit:name>
62
+ </spirit:logicalPort>
63
+ <spirit:physicalPort>
64
+ <spirit:name>rstout_an</spirit:name>
65
+ <spirit:vector>
66
+ <spirit:left>0</spirit:left>
67
+ <spirit:right>0</spirit:right>
68
+ </spirit:vector>
69
+ </spirit:physicalPort>
70
+ </spirit:portMap>
71
+ </spirit:portMaps>
72
+ </spirit:busInterface>
73
+ <spirit:busInterface>
74
+ <spirit:name>reset1_apb0</spirit:name>
75
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
76
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
77
+ <spirit:master/>
78
+ <spirit:portMaps>
79
+ <spirit:portMap>
80
+ <spirit:logicalPort>
81
+ <spirit:name>RESETn</spirit:name>
82
+ </spirit:logicalPort>
83
+ <spirit:physicalPort>
84
+ <spirit:name>rstout_an</spirit:name>
85
+ <spirit:vector>
86
+ <spirit:left>1</spirit:left>
87
+ <spirit:right>1</spirit:right>
88
+ </spirit:vector>
89
+ </spirit:physicalPort>
90
+ </spirit:portMap>
91
+ </spirit:portMaps>
92
+ </spirit:busInterface>
93
+ <spirit:busInterface>
94
+ <spirit:name>reset2_apb0</spirit:name>
95
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
96
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
97
+ <spirit:master/>
98
+ <spirit:portMaps>
99
+ <spirit:portMap>
100
+ <spirit:logicalPort>
101
+ <spirit:name>RESETn</spirit:name>
102
+ </spirit:logicalPort>
103
+ <spirit:physicalPort>
104
+ <spirit:name>rstout_an</spirit:name>
105
+ <spirit:vector>
106
+ <spirit:left>2</spirit:left>
107
+ <spirit:right>2</spirit:right>
108
+ </spirit:vector>
109
+ </spirit:physicalPort>
110
+ </spirit:portMap>
111
+ </spirit:portMaps>
112
+ </spirit:busInterface>
113
+ <spirit:busInterface>
114
+ <spirit:name>reset3_apb0</spirit:name>
115
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
116
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
117
+ <spirit:master/>
118
+ <spirit:portMaps>
119
+ <spirit:portMap>
120
+ <spirit:logicalPort>
121
+ <spirit:name>RESETn</spirit:name>
122
+ </spirit:logicalPort>
123
+ <spirit:physicalPort>
124
+ <spirit:name>rstout_an</spirit:name>
125
+ <spirit:vector>
126
+ <spirit:left>3</spirit:left>
127
+ <spirit:right>3</spirit:right>
128
+ </spirit:vector>
129
+ </spirit:physicalPort>
130
+ </spirit:portMap>
131
+ </spirit:portMaps>
132
+ </spirit:busInterface>
133
+ <spirit:busInterface>
134
+ <spirit:name>reset4_apb0</spirit:name>
135
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
136
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
137
+ <spirit:master/>
138
+ <spirit:portMaps>
139
+ <spirit:portMap>
140
+ <spirit:logicalPort>
141
+ <spirit:name>RESETn</spirit:name>
142
+ </spirit:logicalPort>
143
+ <spirit:physicalPort>
144
+ <spirit:name>rstout_an</spirit:name>
145
+ <spirit:vector>
146
+ <spirit:left>4</spirit:left>
147
+ <spirit:right>4</spirit:right>
148
+ </spirit:vector>
149
+ </spirit:physicalPort>
150
+ </spirit:portMap>
151
+ </spirit:portMaps>
152
+ </spirit:busInterface>
153
+ <spirit:busInterface>
154
+ <spirit:name>reset5_apb0</spirit:name>
155
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
156
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
157
+ <spirit:master/>
158
+ <spirit:portMaps>
159
+ <spirit:portMap>
160
+ <spirit:logicalPort>
161
+ <spirit:name>RESETn</spirit:name>
162
+ </spirit:logicalPort>
163
+ <spirit:physicalPort>
164
+ <spirit:name>rstout_an</spirit:name>
165
+ <spirit:vector>
166
+ <spirit:left>5</spirit:left>
167
+ <spirit:right>5</spirit:right>
168
+ </spirit:vector>
169
+ </spirit:physicalPort>
170
+ </spirit:portMap>
171
+ </spirit:portMaps>
172
+ </spirit:busInterface>
173
+ <spirit:busInterface>
174
+ <spirit:name>reset6_apb0</spirit:name>
175
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
176
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
177
+ <spirit:master/>
178
+ <spirit:portMaps>
179
+ <spirit:portMap>
180
+ <spirit:logicalPort>
181
+ <spirit:name>RESETn</spirit:name>
182
+ </spirit:logicalPort>
183
+ <spirit:physicalPort>
184
+ <spirit:name>rstout_an</spirit:name>
185
+ <spirit:vector>
186
+ <spirit:left>6</spirit:left>
187
+ <spirit:right>6</spirit:right>
188
+ </spirit:vector>
189
+ </spirit:physicalPort>
190
+ </spirit:portMap>
191
+ </spirit:portMaps>
192
+ </spirit:busInterface>
193
+ <spirit:busInterface>
194
+ <spirit:name>reset7_apb0</spirit:name>
195
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
196
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
197
+ <spirit:master/>
198
+ <spirit:portMaps>
199
+ <spirit:portMap>
200
+ <spirit:logicalPort>
201
+ <spirit:name>RESETn</spirit:name>
202
+ </spirit:logicalPort>
203
+ <spirit:physicalPort>
204
+ <spirit:name>rstout_an</spirit:name>
205
+ <spirit:vector>
206
+ <spirit:left>7</spirit:left>
207
+ <spirit:right>7</spirit:right>
208
+ </spirit:vector>
209
+ </spirit:physicalPort>
210
+ </spirit:portMap>
211
+ </spirit:portMaps>
212
+ </spirit:busInterface>
213
+ <spirit:busInterface>
214
+ <spirit:name>reset0_ahb0</spirit:name>
215
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
216
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
217
+ <spirit:master/>
218
+ <spirit:portMaps>
219
+ <spirit:portMap>
220
+ <spirit:logicalPort>
221
+ <spirit:name>RESETn</spirit:name>
222
+ </spirit:logicalPort>
223
+ <spirit:physicalPort>
224
+ <spirit:name>rstout_an</spirit:name>
225
+ <spirit:vector>
226
+ <spirit:left>0</spirit:left>
227
+ <spirit:right>0</spirit:right>
228
+ </spirit:vector>
229
+ </spirit:physicalPort>
230
+ </spirit:portMap>
231
+ </spirit:portMaps>
232
+ </spirit:busInterface>
233
+ <spirit:busInterface>
234
+ <spirit:name>reset1_ahb0</spirit:name>
235
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
236
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
237
+ <spirit:master/>
238
+ <spirit:portMaps>
239
+ <spirit:portMap>
240
+ <spirit:logicalPort>
241
+ <spirit:name>RESETn</spirit:name>
242
+ </spirit:logicalPort>
243
+ <spirit:physicalPort>
244
+ <spirit:name>rstout_an</spirit:name>
245
+ <spirit:vector>
246
+ <spirit:left>1</spirit:left>
247
+ <spirit:right>1</spirit:right>
248
+ </spirit:vector>
249
+ </spirit:physicalPort>
250
+ </spirit:portMap>
251
+ </spirit:portMaps>
252
+ </spirit:busInterface>
253
+ <spirit:busInterface>
254
+ <spirit:name>reset2_ahb0</spirit:name>
255
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
256
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
257
+ <spirit:master/>
258
+ <spirit:portMaps>
259
+ <spirit:portMap>
260
+ <spirit:logicalPort>
261
+ <spirit:name>RESETn</spirit:name>
262
+ </spirit:logicalPort>
263
+ <spirit:physicalPort>
264
+ <spirit:name>rstout_an</spirit:name>
265
+ <spirit:vector>
266
+ <spirit:left>2</spirit:left>
267
+ <spirit:right>2</spirit:right>
268
+ </spirit:vector>
269
+ </spirit:physicalPort>
270
+ </spirit:portMap>
271
+ </spirit:portMaps>
272
+ </spirit:busInterface>
273
+ <spirit:busInterface>
274
+ <spirit:name>reset3_ahb0</spirit:name>
275
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
276
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
277
+ <spirit:master/>
278
+ <spirit:portMaps>
279
+ <spirit:portMap>
280
+ <spirit:logicalPort>
281
+ <spirit:name>RESETn</spirit:name>
282
+ </spirit:logicalPort>
283
+ <spirit:physicalPort>
284
+ <spirit:name>rstout_an</spirit:name>
285
+ <spirit:vector>
286
+ <spirit:left>3</spirit:left>
287
+ <spirit:right>3</spirit:right>
288
+ </spirit:vector>
289
+ </spirit:physicalPort>
290
+ </spirit:portMap>
291
+ </spirit:portMaps>
292
+ </spirit:busInterface>
293
+ <spirit:busInterface>
294
+ <spirit:name>reset4_ahb0</spirit:name>
295
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
296
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
297
+ <spirit:master/>
298
+ <spirit:portMaps>
299
+ <spirit:portMap>
300
+ <spirit:logicalPort>
301
+ <spirit:name>RESETn</spirit:name>
302
+ </spirit:logicalPort>
303
+ <spirit:physicalPort>
304
+ <spirit:name>rstout_an</spirit:name>
305
+ <spirit:vector>
306
+ <spirit:left>4</spirit:left>
307
+ <spirit:right>4</spirit:right>
308
+ </spirit:vector>
309
+ </spirit:physicalPort>
310
+ </spirit:portMap>
311
+ </spirit:portMaps>
312
+ </spirit:busInterface>
313
+ <spirit:busInterface>
314
+ <spirit:name>reset5_ahb0</spirit:name>
315
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
316
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
317
+ <spirit:master/>
318
+ <spirit:portMaps>
319
+ <spirit:portMap>
320
+ <spirit:logicalPort>
321
+ <spirit:name>RESETn</spirit:name>
322
+ </spirit:logicalPort>
323
+ <spirit:physicalPort>
324
+ <spirit:name>rstout_an</spirit:name>
325
+ <spirit:vector>
326
+ <spirit:left>5</spirit:left>
327
+ <spirit:right>5</spirit:right>
328
+ </spirit:vector>
329
+ </spirit:physicalPort>
330
+ </spirit:portMap>
331
+ </spirit:portMaps>
332
+ </spirit:busInterface>
333
+ <spirit:busInterface>
334
+ <spirit:name>reset6_ahb0</spirit:name>
335
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
336
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
337
+ <spirit:master/>
338
+ <spirit:portMaps>
339
+ <spirit:portMap>
340
+ <spirit:logicalPort>
341
+ <spirit:name>RESETn</spirit:name>
342
+ </spirit:logicalPort>
343
+ <spirit:physicalPort>
344
+ <spirit:name>rstout_an</spirit:name>
345
+ <spirit:vector>
346
+ <spirit:left>6</spirit:left>
347
+ <spirit:right>6</spirit:right>
348
+ </spirit:vector>
349
+ </spirit:physicalPort>
350
+ </spirit:portMap>
351
+ </spirit:portMaps>
352
+ </spirit:busInterface>
353
+ <spirit:busInterface>
354
+ <spirit:name>reset7_ahb0</spirit:name>
355
+ <spirit:busType spirit:library="busdef.reset" spirit:name="reset" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
356
+ <spirit:abstractionType spirit:library="busdef.reset" spirit:name="reset_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
357
+ <spirit:master/>
358
+ <spirit:portMaps>
359
+ <spirit:portMap>
360
+ <spirit:logicalPort>
361
+ <spirit:name>RESETn</spirit:name>
362
+ </spirit:logicalPort>
363
+ <spirit:physicalPort>
364
+ <spirit:name>rstout_an</spirit:name>
365
+ <spirit:vector>
366
+ <spirit:left>7</spirit:left>
367
+ <spirit:right>7</spirit:right>
368
+ </spirit:vector>
369
+ </spirit:physicalPort>
370
+ </spirit:portMap>
371
+ </spirit:portMaps>
372
+ </spirit:busInterface>
373
+ </spirit:busInterfaces>
374
+ <spirit:memoryMaps>
375
+ <spirit:memoryMap>
376
+ <spirit:name>APB_MM</spirit:name>
377
+ <spirit:bank spirit:bankAlignment="serial">
378
+ <spirit:name>defaultid4490635</spirit:name>
379
+ <spirit:baseAddress>0</spirit:baseAddress>
380
+ <spirit:addressBlock>
381
+ <spirit:name>resetDelays</spirit:name>
382
+ <spirit:range spirit:format="long">32</spirit:range>
383
+ <spirit:width spirit:format="long">32</spirit:width>
384
+ <spirit:usage>register</spirit:usage>
385
+ <spirit:volatile>false</spirit:volatile>
386
+ <spirit:access>read-only</spirit:access>
387
+ <spirit:register>
388
+ <spirit:name>reset0Delay</spirit:name>
389
+ <spirit:addressOffset>0x0</spirit:addressOffset>
390
+ <spirit:size>32</spirit:size>
391
+ <spirit:volatile>false</spirit:volatile>
392
+ <spirit:access>read-only</spirit:access>
393
+ <spirit:reset>
394
+ <spirit:value>0x0</spirit:value>
395
+ </spirit:reset>
396
+ <spirit:field>
397
+ <spirit:name>Reserved</spirit:name>
398
+ <spirit:description>Reserved</spirit:description>
399
+ <spirit:bitOffset>8</spirit:bitOffset>
400
+ <spirit:bitWidth>24</spirit:bitWidth>
401
+ <spirit:access>read-only</spirit:access>
402
+ </spirit:field>
403
+ <spirit:field>
404
+ <spirit:name>delay</spirit:name>
405
+ <spirit:description>Delay value for reset 0, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
406
+ <spirit:bitOffset>0</spirit:bitOffset>
407
+ <spirit:bitWidth>8</spirit:bitWidth>
408
+ <spirit:access>read-only</spirit:access>
409
+ </spirit:field>
410
+ </spirit:register>
411
+ <spirit:register>
412
+ <spirit:name>reset1Delay</spirit:name>
413
+ <spirit:addressOffset>0x4</spirit:addressOffset>
414
+ <spirit:size>32</spirit:size>
415
+ <spirit:volatile>false</spirit:volatile>
416
+ <spirit:access>read-only</spirit:access>
417
+ <spirit:reset>
418
+ <spirit:value>0x1</spirit:value>
419
+ </spirit:reset>
420
+ <spirit:field>
421
+ <spirit:name>Reserved</spirit:name>
422
+ <spirit:description>Reserved</spirit:description>
423
+ <spirit:bitOffset>8</spirit:bitOffset>
424
+ <spirit:bitWidth>24</spirit:bitWidth>
425
+ <spirit:access>read-only</spirit:access>
426
+ </spirit:field>
427
+ <spirit:field>
428
+ <spirit:name>delay</spirit:name>
429
+ <spirit:description>Delay value for reset 1, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
430
+ <spirit:bitOffset>0</spirit:bitOffset>
431
+ <spirit:bitWidth>8</spirit:bitWidth>
432
+ <spirit:access>read-only</spirit:access>
433
+ </spirit:field>
434
+ </spirit:register>
435
+ <spirit:register>
436
+ <spirit:name>reset2Delay</spirit:name>
437
+ <spirit:addressOffset>0x8</spirit:addressOffset>
438
+ <spirit:size>32</spirit:size>
439
+ <spirit:volatile>false</spirit:volatile>
440
+ <spirit:access>read-only</spirit:access>
441
+ <spirit:reset>
442
+ <spirit:value>0x2</spirit:value>
443
+ </spirit:reset>
444
+ <spirit:field>
445
+ <spirit:name>Reserved</spirit:name>
446
+ <spirit:description>Reserved</spirit:description>
447
+ <spirit:bitOffset>8</spirit:bitOffset>
448
+ <spirit:bitWidth>24</spirit:bitWidth>
449
+ <spirit:access>read-only</spirit:access>
450
+ </spirit:field>
451
+ <spirit:field>
452
+ <spirit:name>delay</spirit:name>
453
+ <spirit:description>Delay value for reset 2, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
454
+ <spirit:bitOffset>0</spirit:bitOffset>
455
+ <spirit:bitWidth>8</spirit:bitWidth>
456
+ <spirit:access>read-only</spirit:access>
457
+ </spirit:field>
458
+ </spirit:register>
459
+ <spirit:register>
460
+ <spirit:name>reset3Delay</spirit:name>
461
+ <spirit:addressOffset>0xC</spirit:addressOffset>
462
+ <spirit:size>32</spirit:size>
463
+ <spirit:volatile>false</spirit:volatile>
464
+ <spirit:access>read-only</spirit:access>
465
+ <spirit:reset>
466
+ <spirit:value>0x4</spirit:value>
467
+ </spirit:reset>
468
+ <spirit:field>
469
+ <spirit:name>Reserved</spirit:name>
470
+ <spirit:description>Reserved</spirit:description>
471
+ <spirit:bitOffset>8</spirit:bitOffset>
472
+ <spirit:bitWidth>24</spirit:bitWidth>
473
+ <spirit:access>read-only</spirit:access>
474
+ </spirit:field>
475
+ <spirit:field>
476
+ <spirit:name>delay</spirit:name>
477
+ <spirit:description>Delay value for reset 3, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
478
+ <spirit:bitOffset>0</spirit:bitOffset>
479
+ <spirit:bitWidth>8</spirit:bitWidth>
480
+ <spirit:access>read-only</spirit:access>
481
+ </spirit:field>
482
+ </spirit:register>
483
+ <spirit:register>
484
+ <spirit:name>reset4Delay</spirit:name>
485
+ <spirit:addressOffset>0x10</spirit:addressOffset>
486
+ <spirit:size>32</spirit:size>
487
+ <spirit:volatile>false</spirit:volatile>
488
+ <spirit:access>read-only</spirit:access>
489
+ <spirit:reset>
490
+ <spirit:value>0x8</spirit:value>
491
+ </spirit:reset>
492
+ <spirit:field>
493
+ <spirit:name>Reserved</spirit:name>
494
+ <spirit:description>Reserved</spirit:description>
495
+ <spirit:bitOffset>8</spirit:bitOffset>
496
+ <spirit:bitWidth>24</spirit:bitWidth>
497
+ <spirit:access>read-only</spirit:access>
498
+ </spirit:field>
499
+ <spirit:field>
500
+ <spirit:name>delay</spirit:name>
501
+ <spirit:description>Delay value for reset 4, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
502
+ <spirit:bitOffset>0</spirit:bitOffset>
503
+ <spirit:bitWidth>8</spirit:bitWidth>
504
+ <spirit:access>read-only</spirit:access>
505
+ </spirit:field>
506
+ </spirit:register>
507
+ <spirit:register>
508
+ <spirit:name>reset5Delay</spirit:name>
509
+ <spirit:addressOffset>0x14</spirit:addressOffset>
510
+ <spirit:size>32</spirit:size>
511
+ <spirit:volatile>false</spirit:volatile>
512
+ <spirit:access>read-only</spirit:access>
513
+ <spirit:reset>
514
+ <spirit:value>0x10</spirit:value>
515
+ </spirit:reset>
516
+ <spirit:field>
517
+ <spirit:name>Reserved</spirit:name>
518
+ <spirit:description>Reserved</spirit:description>
519
+ <spirit:bitOffset>8</spirit:bitOffset>
520
+ <spirit:bitWidth>24</spirit:bitWidth>
521
+ <spirit:access>read-only</spirit:access>
522
+ </spirit:field>
523
+ <spirit:field>
524
+ <spirit:name>delay</spirit:name>
525
+ <spirit:description>Delay value for reset 5, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
526
+ <spirit:bitOffset>0</spirit:bitOffset>
527
+ <spirit:bitWidth>8</spirit:bitWidth>
528
+ <spirit:access>read-only</spirit:access>
529
+ </spirit:field>
530
+ </spirit:register>
531
+ <spirit:register>
532
+ <spirit:name>reset6Delay</spirit:name>
533
+ <spirit:addressOffset>0x18</spirit:addressOffset>
534
+ <spirit:size>32</spirit:size>
535
+ <spirit:volatile>false</spirit:volatile>
536
+ <spirit:access>read-only</spirit:access>
537
+ <spirit:reset>
538
+ <spirit:value>0x20</spirit:value>
539
+ </spirit:reset>
540
+ <spirit:field>
541
+ <spirit:name>Reserved</spirit:name>
542
+ <spirit:description>Reserved</spirit:description>
543
+ <spirit:bitOffset>8</spirit:bitOffset>
544
+ <spirit:bitWidth>24</spirit:bitWidth>
545
+ <spirit:access>read-only</spirit:access>
546
+ </spirit:field>
547
+ <spirit:field>
548
+ <spirit:name>delay</spirit:name>
549
+ <spirit:description>Delay value for reset 6, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
550
+ <spirit:bitOffset>0</spirit:bitOffset>
551
+ <spirit:bitWidth>8</spirit:bitWidth>
552
+ <spirit:access>read-only</spirit:access>
553
+ </spirit:field>
554
+ </spirit:register>
555
+ <spirit:register>
556
+ <spirit:name>reset7Delay</spirit:name>
557
+ <spirit:addressOffset>0x1C</spirit:addressOffset>
558
+ <spirit:size>32</spirit:size>
559
+ <spirit:volatile>false</spirit:volatile>
560
+ <spirit:access>read-only</spirit:access>
561
+ <spirit:reset>
562
+ <spirit:value>0x40</spirit:value>
563
+ </spirit:reset>
564
+ <spirit:field>
565
+ <spirit:name>Reserved</spirit:name>
566
+ <spirit:description>Reserved</spirit:description>
567
+ <spirit:bitOffset>8</spirit:bitOffset>
568
+ <spirit:bitWidth>24</spirit:bitWidth>
569
+ <spirit:access>read-only</spirit:access>
570
+ </spirit:field>
571
+ <spirit:field>
572
+ <spirit:name>delay</spirit:name>
573
+ <spirit:description>Delay value for reset 7, 0=no delay, 1=delay by 1 ipclk, 2=delay by 2 ipclk, ...</spirit:description>
574
+ <spirit:bitOffset>0</spirit:bitOffset>
575
+ <spirit:bitWidth>8</spirit:bitWidth>
576
+ <spirit:access>read-only</spirit:access>
577
+ </spirit:field>
578
+ </spirit:register>
579
+ </spirit:addressBlock>
580
+ <spirit:addressBlock>
581
+ <spirit:name>EEPROM</spirit:name>
582
+ <spirit:range spirit:format="long">32</spirit:range>
583
+ <spirit:width spirit:format="long">32</spirit:width>
584
+ <spirit:usage>register</spirit:usage>
585
+ <spirit:volatile>false</spirit:volatile>
586
+ <spirit:access>read-write</spirit:access>
587
+ <spirit:register>
588
+ <spirit:name>eeprom</spirit:name>
589
+ <spirit:dim>8</spirit:dim>
590
+ <spirit:addressOffset>0x0</spirit:addressOffset>
591
+ <spirit:size>32</spirit:size>
592
+ <spirit:volatile>false</spirit:volatile>
593
+ <spirit:access>read-write</spirit:access>
594
+ <spirit:reset>
595
+ <spirit:value>0x0</spirit:value>
596
+ </spirit:reset>
597
+ <spirit:field>
598
+ <spirit:name>data</spirit:name>
599
+ <spirit:description>Scratch memory, EEPROM</spirit:description>
600
+ <spirit:bitOffset>0</spirit:bitOffset>
601
+ <spirit:bitWidth>32</spirit:bitWidth>
602
+ <spirit:access>read-write</spirit:access>
603
+ </spirit:field>
604
+ </spirit:register>
605
+ </spirit:addressBlock>
606
+ <spirit:addressBlock>
607
+ <spirit:name>Reserved</spirit:name>
608
+ <spirit:range spirit:format="long">4028</spirit:range>
609
+ <spirit:width spirit:format="long">32</spirit:width>
610
+ <spirit:usage>reserved</spirit:usage>
611
+ <spirit:volatile>false</spirit:volatile>
612
+ <spirit:access>read-only</spirit:access>
613
+ </spirit:addressBlock>
614
+ <spirit:addressBlock>
615
+ <spirit:name>idAddressBlock</spirit:name>
616
+ <spirit:range spirit:format="long">4</spirit:range>
617
+ <spirit:width spirit:format="long">32</spirit:width>
618
+ <spirit:usage>register</spirit:usage>
619
+ <spirit:volatile>false</spirit:volatile>
620
+ <spirit:access>read-only</spirit:access>
621
+ <spirit:register>
622
+ <spirit:name>IDReg</spirit:name>
623
+ <spirit:description>ID register</spirit:description>
624
+ <spirit:addressOffset>0x0</spirit:addressOffset>
625
+ <spirit:size>32</spirit:size>
626
+ <spirit:access>read-only</spirit:access>
627
+ <spirit:reset>
628
+ <spirit:value>0x00000D01</spirit:value>
629
+ </spirit:reset>
630
+ <spirit:field>
631
+ <spirit:name>ID</spirit:name>
632
+ <spirit:description>ID Field</spirit:description>
633
+ <spirit:bitOffset>0</spirit:bitOffset>
634
+ <spirit:bitWidth>32</spirit:bitWidth>
635
+ <spirit:access>read-only</spirit:access>
636
+ </spirit:field>
637
+ </spirit:register>
638
+ </spirit:addressBlock>
639
+ </spirit:bank>
640
+ </spirit:memoryMap>
641
+ </spirit:memoryMaps>
642
+ <spirit:model>
643
+ <spirit:views>
644
+ <spirit:view>
645
+ <spirit:name>TLM_PV</spirit:name>
646
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
647
+ <spirit:language>systemc</spirit:language>
648
+ <spirit:modelName>rgu</spirit:modelName>
649
+ <spirit:fileSetRef>
650
+ <spirit:localName>sourceCode</spirit:localName>
651
+ </spirit:fileSetRef>
652
+ </spirit:view>
653
+ </spirit:views>
654
+ <spirit:ports>
655
+ <spirit:port>
656
+ <spirit:name>apb_slave_port</spirit:name>
657
+ <spirit:transactional>
658
+ <spirit:transTypeDef>
659
+ <spirit:typeName>pv_target_port</spirit:typeName>
660
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
661
+ </spirit:transTypeDef>
662
+ <spirit:service>
663
+ <spirit:initiative>provides</spirit:initiative>
664
+ <spirit:serviceTypeDefs>
665
+ <spirit:serviceTypeDef>
666
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
667
+ <spirit:parameters>
668
+ <spirit:parameter>
669
+ <spirit:name>typedef1</spirit:name>
670
+ <spirit:value>ADDRESS_TYPE</spirit:value>
671
+ </spirit:parameter>
672
+ <spirit:parameter>
673
+ <spirit:name>typedef2</spirit:name>
674
+ <spirit:value>DATA_TYPE</spirit:value>
675
+ </spirit:parameter>
676
+ </spirit:parameters>
677
+ </spirit:serviceTypeDef>
678
+ </spirit:serviceTypeDefs>
679
+ </spirit:service>
680
+ </spirit:transactional>
681
+ </spirit:port>
682
+ <spirit:port>
683
+ <spirit:name>ipclk</spirit:name>
684
+ <spirit:wire>
685
+ <spirit:direction>in</spirit:direction>
686
+ <spirit:wireTypeDefs>
687
+ <spirit:wireTypeDef>
688
+ <spirit:typeName>sc_logic</spirit:typeName>
689
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
690
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
691
+ </spirit:wireTypeDef>
692
+ </spirit:wireTypeDefs>
693
+ </spirit:wire>
694
+ </spirit:port>
695
+ <spirit:port>
696
+ <spirit:name>rstin_an</spirit:name>
697
+ <spirit:wire>
698
+ <spirit:direction>in</spirit:direction>
699
+ <spirit:wireTypeDefs>
700
+ <spirit:wireTypeDef>
701
+ <spirit:typeName>sc_logic</spirit:typeName>
702
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
703
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
704
+ </spirit:wireTypeDef>
705
+ </spirit:wireTypeDefs>
706
+ <spirit:driver>
707
+ <spirit:singleShotDriver>
708
+ <spirit:singleShotOffset>0.0</spirit:singleShotOffset>
709
+ <spirit:singleShotValue>0</spirit:singleShotValue>
710
+ <spirit:singleShotDuration>10.0</spirit:singleShotDuration>
711
+ </spirit:singleShotDriver>
712
+ </spirit:driver>
713
+ </spirit:wire>
714
+ </spirit:port>
715
+ <spirit:port>
716
+ <spirit:name>rstout_an</spirit:name>
717
+ <spirit:wire>
718
+ <spirit:direction>out</spirit:direction>
719
+ <spirit:vector>
720
+ <spirit:left>7</spirit:left>
721
+ <spirit:right>0</spirit:right>
722
+ </spirit:vector>
723
+ <spirit:wireTypeDefs>
724
+ <spirit:wireTypeDef>
725
+ <spirit:typeName>bool</spirit:typeName>
726
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
727
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
728
+ </spirit:wireTypeDef>
729
+ </spirit:wireTypeDefs>
730
+ </spirit:wire>
731
+ </spirit:port>
732
+ </spirit:ports>
733
+ </spirit:model>
734
+ <spirit:fileSets>
735
+ <spirit:fileSet>
736
+ <spirit:name>sourceCode</spirit:name>
737
+ <spirit:file>
738
+ <spirit:name>tlmsrc/rgu.cc</spirit:name>
739
+ <spirit:fileType>systemCSource</spirit:fileType>
740
+ <spirit:dependency>tlmsrc</spirit:dependency>
741
+ </spirit:file>
742
+ <spirit:file>
743
+ <spirit:name>tlmsrc/rgu.h</spirit:name>
744
+ <spirit:fileType>systemCSource</spirit:fileType>
745
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
746
+ <spirit:logicalName>rgu</spirit:logicalName>
747
+ <spirit:dependency>../../PV</spirit:dependency>
748
+ </spirit:file>
749
+ <spirit:file>
750
+ <spirit:name>../../PV/pv_slave_base.h</spirit:name>
751
+ <spirit:fileType>unknown</spirit:fileType>
752
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
753
+ </spirit:file>
754
+ <spirit:file>
755
+ <spirit:name>../../PV/pv_target_port.h</spirit:name>
756
+ <spirit:fileType>unknown</spirit:fileType>
757
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
758
+ </spirit:file>
759
+ <spirit:file>
760
+ <spirit:name>../../PV/user_types.h</spirit:name>
761
+ <spirit:fileType>unknown</spirit:fileType>
762
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
763
+ </spirit:file>
764
+ </spirit:fileSet>
765
+ </spirit:fileSets>
766
+ </spirit:component>