ipxact-tools 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/config/detector.yml +63 -0
  2. data/lib/ipxact_tools.rb +287 -0
  3. data/lib/ipxact_tools/graph_pathfinder.rb +191 -0
  4. data/lib/ipxact_tools/interrupt_line_detector.rb +98 -0
  5. data/spec/integration/integration_spec.rb +254 -0
  6. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.h +135 -0
  7. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.tpp +247 -0
  8. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port_base.h +189 -0
  9. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.h +205 -0
  10. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.tpp +278 -0
  11. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.h +115 -0
  12. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.tpp +126 -0
  13. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port.h +168 -0
  14. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port_base.h +133 -0
  15. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_tlm_if.h +280 -0
  16. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/user_types.h +38 -0
  17. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/Leon2Platform.xml +77 -0
  18. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/design_Leon2Platform.xml +156 -0
  19. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/tlmsrc/Leon2Platform.h +149 -0
  20. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/apbSubSystem.xml +406 -0
  21. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/design_apbSubSystem.xml +135 -0
  22. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/tlmsrc/apbSubSystem.h +133 -0
  23. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/Leon2Platform.xml +77 -0
  24. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/design_Leon2Platform.xml +157 -0
  25. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/tlmsrc/Leon2Platform.h +150 -0
  26. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/apbSubSystem.xml +422 -0
  27. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/designConfig_apbSubSystem.xml +79 -0
  28. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/design_apbSubSystem.xml +184 -0
  29. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/tlmsrc/apbSubSystem.h +164 -0
  30. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/Leon2Platform.xml +105 -0
  31. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/design_Leon2Platform.xml +157 -0
  32. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/tlmsrc/Leon2Platform.h +152 -0
  33. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/apbSubSystem.xml +429 -0
  34. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/designConfig_apbSubSystem.xml +64 -0
  35. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/design_apbSubSystem.xml +150 -0
  36. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/tlmsrc/apbSubSystem.h +167 -0
  37. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/ahbbus22.xml +236 -0
  38. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/tlmsrc/ahbbus.h +52 -0
  39. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/ahbram.xml +184 -0
  40. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.cc +93 -0
  41. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.h +77 -0
  42. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/apbbus8.xml +544 -0
  43. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/tlmsrc/apbbus.h +55 -0
  44. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/apbmst.xml +209 -0
  45. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/tlmsrc/apbmst.h +53 -0
  46. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/apbram.xml +395 -0
  47. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.cc +89 -0
  48. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.h +69 -0
  49. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.v +82 -0
  50. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.vhd +132 -0
  51. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/cgu.xml +686 -0
  52. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.cc +121 -0
  53. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.h +81 -0
  54. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/cgu.xml +707 -0
  55. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.cc +121 -0
  56. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.h +81 -0
  57. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/dma.xml +272 -0
  58. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.cc +230 -0
  59. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.h +116 -0
  60. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/irqctrl.xml +530 -0
  61. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.cc +211 -0
  62. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.h +108 -0
  63. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/processor.xml +423 -0
  64. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.cc +331 -0
  65. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.h +121 -0
  66. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/pv2apb.xml +240 -0
  67. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.cc +153 -0
  68. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.h +77 -0
  69. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/pv2tac.xml +154 -0
  70. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.cc +114 -0
  71. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.h +67 -0
  72. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/rgu.xml +766 -0
  73. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.cc +126 -0
  74. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.h +105 -0
  75. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/scmlAdaptor.xml +154 -0
  76. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.cc +100 -0
  77. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.h +62 -0
  78. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/serial_device.xml +151 -0
  79. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/tlmsrc/serial_device.h +85 -0
  80. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/timers.xml +460 -0
  81. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.cc +201 -0
  82. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.h +102 -0
  83. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart.h +152 -0
  84. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_fifo.h +113 -0
  85. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_memory_map.h +96 -0
  86. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_types.h +60 -0
  87. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart.cc +125 -0
  88. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_interrupt_handler.cc +136 -0
  89. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_register_bank.cc +129 -0
  90. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_serial_tx_rx.cc +145 -0
  91. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/uart_scml.xml +372 -0
  92. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/Leon2_uart.h +216 -0
  93. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h +34 -0
  94. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_field.h +72 -0
  95. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_register.h +129 -0
  96. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlmreg_Leon2_uart.h +133 -0
  97. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/Leon2_uart.cc +316 -0
  98. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/tlmreg_Leon2_uart.cc +197 -0
  99. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/user_specific_Leon2_uart.cc +146 -0
  100. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/uart_tac.xml +222 -0
  101. data/spec/unit/graph_pathfinder_spec.rb +128 -0
  102. metadata +272 -0
@@ -0,0 +1,52 @@
1
+ //
2
+ // Revision: $Revision: 1506 $
3
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
4
+ //
5
+ // Copyright (c) 2005, 2006, 2007, 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
+ * Simple Leon2 TLM AHBbus
27
+ *------------------------------------------------------------------------------*/
28
+
29
+ #ifndef __AHBBUS_H__
30
+ #define __AHBBUS_H__
31
+
32
+ #include <systemc.h>
33
+ #include "pv_router.h"
34
+ #include "user_types.h"
35
+
36
+ typedef pv_router< ADDRESS_TYPE , DATA_TYPE > basic_router;
37
+
38
+
39
+ // this class has 1 target port (target_port) and 2 initiator ports (r_port[x])
40
+ class ahbbus : public basic_router
41
+ {
42
+ public:
43
+ ahbbus (sc_module_name module_name, const char* mapFile)
44
+ : basic_router (module_name, mapFile)
45
+ {}
46
+ void end_of_elaboration() {
47
+ basic_router::end_of_elaboration();
48
+ }
49
+ };
50
+
51
+
52
+ #endif
@@ -0,0 +1,184 @@
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>ahbram</spirit:name>
32
+ <spirit:version>1.4</spirit:version>
33
+ <spirit:busInterfaces>
34
+ <spirit:busInterface>
35
+ <spirit:name>AHB_Slave</spirit:name>
36
+ <spirit:busType spirit:library="AMBA2" spirit:name="AHB" spirit:vendor="amba.com" spirit:version="r2p0_6"/>
37
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="ahb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
38
+ <spirit:slave>
39
+ <spirit:memoryMapRef spirit:memoryMapRef="AHB_MM"/>
40
+ </spirit:slave>
41
+ <spirit:portMaps>
42
+ <spirit:portMap>
43
+ <spirit:logicalPort>
44
+ <spirit:name>PV_TRANS</spirit:name>
45
+ </spirit:logicalPort>
46
+ <spirit:physicalPort>
47
+ <spirit:name>ahb_slave_port</spirit:name>
48
+ </spirit:physicalPort>
49
+ </spirit:portMap>
50
+ </spirit:portMaps>
51
+ </spirit:busInterface>
52
+ </spirit:busInterfaces>
53
+ <spirit:memoryMaps>
54
+ <spirit:memoryMap>
55
+ <spirit:name>AHB_MM</spirit:name>
56
+ <spirit:bank spirit:bankAlignment="parallel">
57
+ <spirit:name>ahbMemoryMap</spirit:name>
58
+ <spirit:baseAddress spirit:id="memoryBaseAddress" spirit:resolve="user" spirit:configGroups="immediate" spirit:prompt="Base address offset:">0x00000000</spirit:baseAddress>
59
+ <spirit:addressBlock>
60
+ <spirit:name>defaultid4489955</spirit:name>
61
+ <spirit:range spirit:dependency="spirit:pow(2,id('addressBusSize'))" spirit:id="addressRange0" spirit:resolve="dependent">1</spirit:range>
62
+ <spirit:width>8</spirit:width>
63
+ <spirit:usage>memory</spirit:usage>
64
+ <spirit:access>read-write</spirit:access>
65
+ </spirit:addressBlock>
66
+ <spirit:addressBlock>
67
+ <spirit:name>defaultid4489979</spirit:name>
68
+ <spirit:range spirit:dependency="spirit:pow(2,id('addressBusSize'))" spirit:id="addressRange1" spirit:resolve="dependent">1</spirit:range>
69
+ <spirit:width>8</spirit:width>
70
+ <spirit:usage>memory</spirit:usage>
71
+ <spirit:access>read-write</spirit:access>
72
+ </spirit:addressBlock>
73
+ <spirit:addressBlock>
74
+ <spirit:name>defaultid4490002</spirit:name>
75
+ <spirit:range spirit:dependency="spirit:pow(2,id('addressBusSize'))" spirit:id="addressRange2" spirit:resolve="dependent">1</spirit:range>
76
+ <spirit:width>8</spirit:width>
77
+ <spirit:usage>memory</spirit:usage>
78
+ <spirit:access>read-write</spirit:access>
79
+ </spirit:addressBlock>
80
+ <spirit:addressBlock>
81
+ <spirit:name>defaultid4490024</spirit:name>
82
+ <spirit:range spirit:dependency="spirit:pow(2,id('addressBusSize'))" spirit:id="addressRange3" spirit:resolve="dependent">1</spirit:range>
83
+ <spirit:width>8</spirit:width>
84
+ <spirit:usage>memory</spirit:usage>
85
+ <spirit:access>read-write</spirit:access>
86
+ </spirit:addressBlock>
87
+ </spirit:bank>
88
+ </spirit:memoryMap>
89
+ </spirit:memoryMaps>
90
+ <spirit:model>
91
+ <spirit:views>
92
+ <spirit:view>
93
+ <spirit:name>TLM_PV</spirit:name>
94
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
95
+ <spirit:language>systemc</spirit:language>
96
+ <spirit:modelName>ahbram</spirit:modelName>
97
+ <spirit:fileSetRef>
98
+ <spirit:localName>sourceCode</spirit:localName>
99
+ </spirit:fileSetRef>
100
+ </spirit:view>
101
+ </spirit:views>
102
+ <spirit:ports>
103
+ <spirit:port>
104
+ <spirit:name>ahb_slave_port</spirit:name>
105
+ <spirit:transactional>
106
+ <spirit:transTypeDef>
107
+ <spirit:typeName>pv_target_port</spirit:typeName>
108
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
109
+ </spirit:transTypeDef>
110
+ <spirit:service>
111
+ <spirit:initiative>provides</spirit:initiative>
112
+ <spirit:serviceTypeDefs>
113
+ <spirit:serviceTypeDef>
114
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
115
+ <spirit:parameters>
116
+ <spirit:parameter>
117
+ <spirit:name>typedef1</spirit:name>
118
+ <spirit:value>ADDRESS_TYPE</spirit:value>
119
+ </spirit:parameter>
120
+ <spirit:parameter>
121
+ <spirit:name>typedef2</spirit:name>
122
+ <spirit:value>DATA_TYPE</spirit:value>
123
+ </spirit:parameter>
124
+ </spirit:parameters>
125
+ </spirit:serviceTypeDef>
126
+ </spirit:serviceTypeDefs>
127
+ </spirit:service>
128
+ </spirit:transactional>
129
+ </spirit:port>
130
+ </spirit:ports>
131
+ <spirit:modelParameters>
132
+ <spirit:modelParameter spirit:dataType="unsigned long">
133
+ <spirit:name>addrsize</spirit:name>
134
+ <spirit:value spirit:id="addressBusSize" spirit:resolve="user" spirit:choiceRef="addressWidthChoice" spirit:configGroups="requiredConfig" spirit:format="long" spirit:prompt="RAM Depth (bytes):">16</spirit:value>
135
+ </spirit:modelParameter>
136
+ </spirit:modelParameters>
137
+ </spirit:model>
138
+ <spirit:choices>
139
+ <spirit:choice>
140
+ <spirit:name>addressWidthChoice</spirit:name>
141
+ <spirit:enumeration spirit:text="1K">8</spirit:enumeration>
142
+ <spirit:enumeration spirit:text="2K">9</spirit:enumeration>
143
+ <spirit:enumeration spirit:text="4K">10</spirit:enumeration>
144
+ <spirit:enumeration spirit:text="8K">11</spirit:enumeration>
145
+ <spirit:enumeration spirit:text="16K">12</spirit:enumeration>
146
+ <spirit:enumeration spirit:text="32K">13</spirit:enumeration>
147
+ <spirit:enumeration spirit:text="64K">14</spirit:enumeration>
148
+ <spirit:enumeration spirit:text="128K">15</spirit:enumeration>
149
+ <spirit:enumeration spirit:text="256K">16</spirit:enumeration>
150
+ </spirit:choice>
151
+ </spirit:choices>
152
+ <spirit:fileSets>
153
+ <spirit:fileSet>
154
+ <spirit:name>sourceCode</spirit:name>
155
+ <spirit:file>
156
+ <spirit:name>tlmsrc/ahbram.cc</spirit:name>
157
+ <spirit:fileType>systemCSource</spirit:fileType>
158
+ <spirit:dependency>tlmsrc</spirit:dependency>
159
+ </spirit:file>
160
+ <spirit:file>
161
+ <spirit:name>tlmsrc/ahbram.h</spirit:name>
162
+ <spirit:fileType>systemCSource</spirit:fileType>
163
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
164
+ <spirit:logicalName>ahbram</spirit:logicalName>
165
+ <spirit:dependency>../../PV</spirit:dependency>
166
+ </spirit:file>
167
+ <spirit:file>
168
+ <spirit:name>../../PV/pv_slave_base.h</spirit:name>
169
+ <spirit:fileType>unknown</spirit:fileType>
170
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
171
+ </spirit:file>
172
+ <spirit:file>
173
+ <spirit:name>../../PV/pv_target_port.h</spirit:name>
174
+ <spirit:fileType>unknown</spirit:fileType>
175
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
176
+ </spirit:file>
177
+ <spirit:file>
178
+ <spirit:name>../../PV/user_types.h</spirit:name>
179
+ <spirit:fileType>unknown</spirit:fileType>
180
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
181
+ </spirit:file>
182
+ </spirit:fileSet>
183
+ </spirit:fileSets>
184
+ </spirit:component>
@@ -0,0 +1,93 @@
1
+ //
2
+ // Revision: $Revision: 1506 $
3
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
4
+ //
5
+ // Copyright (c) 2005, 2006, 2007, 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
+ /*------------------------------------------------------------------------------
27
+ * Simple Leon2 TLM AHBram memory
28
+ *------------------------------------------------------------------------------*/
29
+
30
+ /*------------------------------------------------------------------------------
31
+ * Includes
32
+ *----------------------------------------------------------------------------*/
33
+ #include "ahbram.h"
34
+
35
+
36
+ /*------------------------------------------------------------------------------
37
+ * Methods
38
+ *----------------------------------------------------------------------------*/
39
+ ahbram::ahbram( sc_module_name module_name , unsigned long addrsize ) :
40
+ sc_module( module_name ),
41
+ pv_slave_base<ADDRESS_TYPE,DATA_TYPE>(name()),
42
+ ahb_slave_port("ahb_slave_port"),
43
+ memory(0x1<<addrsize)
44
+ {
45
+ memorySize = 0x1<<addrsize; // actual number of locations
46
+ ahb_slave_port( *this );
47
+ init_memory(0x1<<addrsize);
48
+ }
49
+
50
+ ahbram::~ahbram() {
51
+ }
52
+
53
+ void ahbram::end_of_elaboration() {
54
+ cout << name() << " constructed." << endl;
55
+ }
56
+
57
+ tlm::tlm_status ahbram::write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
58
+ const unsigned int byte_enable,
59
+ const tlm::tlm_mode mode,
60
+ const unsigned int export_id)
61
+ {
62
+ tlm::tlm_status status;
63
+ if ((addr < MEM_BASE_ADDR) || (addr >= MEM_BASE_ADDR+memorySize)) {
64
+ cout << "ERROR\t" << name() << " : trying to write out of bounds at address " << memorySize << endl;
65
+ status.set_error();
66
+ return status;
67
+ }
68
+ memory[addr] = data;
69
+ status.set_ok();
70
+ return status;
71
+ }
72
+
73
+ tlm::tlm_status ahbram::read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
74
+ const unsigned int byte_enable,
75
+ const tlm::tlm_mode mode,
76
+ const unsigned int export_id)
77
+ {
78
+ tlm::tlm_status status;
79
+ if ((addr < MEM_BASE_ADDR) || (addr >= MEM_BASE_ADDR+memorySize)) {
80
+ cout << "ERROR\t" << name() << " : trying to read out of bounds at address " << addr << endl;
81
+ status.set_error();
82
+ return status;
83
+ }
84
+ data = memory[addr];
85
+ status.set_ok();
86
+ return status;
87
+ }
88
+
89
+ void ahbram::init_memory(unsigned long s)
90
+ {
91
+ for (unsigned long i=0; i < s; i++) memory[i]=1;
92
+ }
93
+
@@ -0,0 +1,77 @@
1
+ //
2
+ // Revision: $Revision: 1506 $
3
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
4
+ //
5
+ // Copyright (c) 2005, 2006, 2007, 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
+ * Simple Leon2 TLM AHBram memory
27
+ *------------------------------------------------------------------------------*/
28
+
29
+ #ifndef _AHBRAM_H_
30
+ #define _AHBRAM_H_
31
+
32
+ /*------------------------------------------------------------------------------
33
+ * Includes
34
+ *----------------------------------------------------------------------------*/
35
+ #include <systemc.h>
36
+ #include "pv_slave_base.h"
37
+ #include "pv_target_port.h"
38
+ #include "user_types.h"
39
+
40
+ /*------------------------------------------------------------------------------
41
+ * Define device parameters
42
+ *----------------------------------------------------------------------------*/
43
+ #define MEM_BASE_ADDR 0x0
44
+
45
+ /*------------------------------------------------------------------------------
46
+ * leon2 ahbram
47
+ *----------------------------------------------------------------------------*/
48
+
49
+ class ahbram :
50
+ public sc_module ,
51
+ public pv_slave_base< ADDRESS_TYPE , DATA_TYPE >
52
+ {
53
+ public:
54
+ SC_HAS_PROCESS(ahbram);
55
+ ahbram( sc_module_name module_name , unsigned long addrsize = 18);
56
+ ~ahbram();
57
+
58
+ pv_target_port<ADDRESS_TYPE , DATA_TYPE> ahb_slave_port;
59
+
60
+ tlm::tlm_status write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
61
+ const unsigned int byte_enable = tlm::NO_BE,
62
+ const tlm::tlm_mode mode = tlm::REGULAR,
63
+ const unsigned int export_id = 0 );
64
+ tlm::tlm_status read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
65
+ const unsigned int byte_enable = tlm::NO_BE,
66
+ const tlm::tlm_mode mode = tlm::REGULAR,
67
+ const unsigned int export_id = 0 );
68
+
69
+ private:
70
+ void end_of_elaboration();
71
+ sc_pvector<DATA_TYPE> memory;
72
+ int memorySize;
73
+ void init_memory(unsigned long s);
74
+ };
75
+
76
+
77
+ #endif /* _AHBRAM_H_ */
@@ -0,0 +1,544 @@
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>apbbus8</spirit:name>
32
+ <spirit:version>1.4</spirit:version>
33
+ <spirit:busInterfaces>
34
+ <spirit:busInterface>
35
+ <spirit:name>APB_MirroredMaster</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:mirroredMaster/>
39
+ <spirit:connectionRequired>true</spirit:connectionRequired>
40
+ <spirit:portMaps>
41
+ <spirit:portMap>
42
+ <spirit:logicalPort>
43
+ <spirit:name>PV_TRANS</spirit:name>
44
+ </spirit:logicalPort>
45
+ <spirit:physicalPort>
46
+ <spirit:name>target_port</spirit:name>
47
+ </spirit:physicalPort>
48
+ </spirit:portMap>
49
+ </spirit:portMaps>
50
+ </spirit:busInterface>
51
+ <spirit:busInterface>
52
+ <spirit:name>APB_MirroredSlave0</spirit:name>
53
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
54
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
55
+ <spirit:mirroredSlave>
56
+ <spirit:baseAddresses>
57
+ <spirit:remapAddress spirit:id="remapAddressSlv0" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 0 Starting Address (18 bits):">0</spirit:remapAddress>
58
+ <spirit:range spirit:id="rangeSlv0" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 0 Range:">4096</spirit:range>
59
+ </spirit:baseAddresses>
60
+ </spirit:mirroredSlave>
61
+ <spirit:portMaps>
62
+ <spirit:portMap>
63
+ <spirit:logicalPort>
64
+ <spirit:name>PV_TRANS</spirit:name>
65
+ </spirit:logicalPort>
66
+ <spirit:physicalPort>
67
+ <spirit:name>initiator_port0</spirit:name>
68
+ </spirit:physicalPort>
69
+ </spirit:portMap>
70
+ </spirit:portMaps>
71
+ </spirit:busInterface>
72
+ <spirit:busInterface>
73
+ <spirit:name>APB_MirroredSlave1</spirit:name>
74
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
75
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
76
+ <spirit:mirroredSlave>
77
+ <spirit:baseAddresses>
78
+ <spirit:remapAddress spirit:id="remapAddressSlv1" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 1 Starting Address (18 bits):">4096</spirit:remapAddress>
79
+ <spirit:range spirit:id="rangeSlv1" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 1 Range:">4096</spirit:range>
80
+ </spirit:baseAddresses>
81
+ </spirit:mirroredSlave>
82
+ <spirit:portMaps>
83
+ <spirit:portMap>
84
+ <spirit:logicalPort>
85
+ <spirit:name>PV_TRANS</spirit:name>
86
+ </spirit:logicalPort>
87
+ <spirit:physicalPort>
88
+ <spirit:name>initiator_port1</spirit:name>
89
+ </spirit:physicalPort>
90
+ </spirit:portMap>
91
+ </spirit:portMaps>
92
+ </spirit:busInterface>
93
+ <spirit:busInterface>
94
+ <spirit:name>APB_MirroredSlave2</spirit:name>
95
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
96
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
97
+ <spirit:mirroredSlave>
98
+ <spirit:baseAddresses>
99
+ <spirit:remapAddress spirit:id="remapAddressSlv2" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 2 Starting Address (18 bits):">8192</spirit:remapAddress>
100
+ <spirit:range spirit:id="rangeSlv2" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 2 Range:">4096</spirit:range>
101
+ </spirit:baseAddresses>
102
+ </spirit:mirroredSlave>
103
+ <spirit:portMaps>
104
+ <spirit:portMap>
105
+ <spirit:logicalPort>
106
+ <spirit:name>PV_TRANS</spirit:name>
107
+ </spirit:logicalPort>
108
+ <spirit:physicalPort>
109
+ <spirit:name>initiator_port2</spirit:name>
110
+ </spirit:physicalPort>
111
+ </spirit:portMap>
112
+ </spirit:portMaps>
113
+ </spirit:busInterface>
114
+ <spirit:busInterface>
115
+ <spirit:name>APB_MirroredSlave3</spirit:name>
116
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
117
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
118
+ <spirit:mirroredSlave>
119
+ <spirit:baseAddresses>
120
+ <spirit:remapAddress spirit:id="remapAddressSlv3" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 3 Starting Address (18 bits):">12288</spirit:remapAddress>
121
+ <spirit:range spirit:id="rangeSlv3" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 3 Range:">4096</spirit:range>
122
+ </spirit:baseAddresses>
123
+ </spirit:mirroredSlave>
124
+ <spirit:portMaps>
125
+ <spirit:portMap>
126
+ <spirit:logicalPort>
127
+ <spirit:name>PV_TRANS</spirit:name>
128
+ </spirit:logicalPort>
129
+ <spirit:physicalPort>
130
+ <spirit:name>initiator_port3</spirit:name>
131
+ </spirit:physicalPort>
132
+ </spirit:portMap>
133
+ </spirit:portMaps>
134
+ </spirit:busInterface>
135
+ <spirit:busInterface>
136
+ <spirit:name>APB_MirroredSlave4</spirit:name>
137
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
138
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
139
+ <spirit:mirroredSlave>
140
+ <spirit:baseAddresses>
141
+ <spirit:remapAddress spirit:id="remapAddressSlv4" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 4 Starting Address (18 bits):">16384</spirit:remapAddress>
142
+ <spirit:range spirit:id="rangeSlv4" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 4 Range:">4096</spirit:range>
143
+ </spirit:baseAddresses>
144
+ </spirit:mirroredSlave>
145
+ <spirit:portMaps>
146
+ <spirit:portMap>
147
+ <spirit:logicalPort>
148
+ <spirit:name>PV_TRANS</spirit:name>
149
+ </spirit:logicalPort>
150
+ <spirit:physicalPort>
151
+ <spirit:name>initiator_port4</spirit:name>
152
+ </spirit:physicalPort>
153
+ </spirit:portMap>
154
+ </spirit:portMaps>
155
+ </spirit:busInterface>
156
+ <spirit:busInterface>
157
+ <spirit:name>APB_MirroredSlave5</spirit:name>
158
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
159
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
160
+ <spirit:mirroredSlave>
161
+ <spirit:baseAddresses>
162
+ <spirit:remapAddress spirit:id="remapAddressSlv5" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 5 Starting Address (18 bits):">20480</spirit:remapAddress>
163
+ <spirit:range spirit:id="rangeSlv5" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 5 Range:">4096</spirit:range>
164
+ </spirit:baseAddresses>
165
+ </spirit:mirroredSlave>
166
+ <spirit:portMaps>
167
+ <spirit:portMap>
168
+ <spirit:logicalPort>
169
+ <spirit:name>PV_TRANS</spirit:name>
170
+ </spirit:logicalPort>
171
+ <spirit:physicalPort>
172
+ <spirit:name>initiator_port5</spirit:name>
173
+ </spirit:physicalPort>
174
+ </spirit:portMap>
175
+ </spirit:portMaps>
176
+ </spirit:busInterface>
177
+ <spirit:busInterface>
178
+ <spirit:name>APB_MirroredSlave6</spirit:name>
179
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
180
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
181
+ <spirit:mirroredSlave>
182
+ <spirit:baseAddresses>
183
+ <spirit:remapAddress spirit:id="remapAddressSlv6" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 6 Starting Address (18 bits):">24576</spirit:remapAddress>
184
+ <spirit:range spirit:id="rangeSlv6" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 6 Range:">4096</spirit:range>
185
+ </spirit:baseAddresses>
186
+ </spirit:mirroredSlave>
187
+ <spirit:portMaps>
188
+ <spirit:portMap>
189
+ <spirit:logicalPort>
190
+ <spirit:name>PV_TRANS</spirit:name>
191
+ </spirit:logicalPort>
192
+ <spirit:physicalPort>
193
+ <spirit:name>initiator_port6</spirit:name>
194
+ </spirit:physicalPort>
195
+ </spirit:portMap>
196
+ </spirit:portMaps>
197
+ </spirit:busInterface>
198
+ <spirit:busInterface>
199
+ <spirit:name>APB_MirroredSlave7</spirit:name>
200
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
201
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
202
+ <spirit:mirroredSlave>
203
+ <spirit:baseAddresses>
204
+ <spirit:remapAddress spirit:id="remapAddressSlv7" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 7 Starting Address (18 bits):">28672</spirit:remapAddress>
205
+ <spirit:range spirit:id="rangeSlv7" spirit:resolve="user" spirit:configGroups="requiredConfig" spirit:maximum="262144" spirit:minimum="0" spirit:prompt="Slave 7 Range:">4096</spirit:range>
206
+ </spirit:baseAddresses>
207
+ </spirit:mirroredSlave>
208
+ <spirit:portMaps>
209
+ <spirit:portMap>
210
+ <spirit:logicalPort>
211
+ <spirit:name>PV_TRANS</spirit:name>
212
+ </spirit:logicalPort>
213
+ <spirit:physicalPort>
214
+ <spirit:name>initiator_port7</spirit:name>
215
+ </spirit:physicalPort>
216
+ </spirit:portMap>
217
+ </spirit:portMaps>
218
+ </spirit:busInterface>
219
+ </spirit:busInterfaces>
220
+ <spirit:channels>
221
+ <spirit:channel>
222
+ <spirit:name>APBChannel</spirit:name>
223
+ <spirit:busInterfaceRef>APB_MirroredMaster</spirit:busInterfaceRef>
224
+ <spirit:busInterfaceRef>APB_MirroredSlave0</spirit:busInterfaceRef>
225
+ <spirit:busInterfaceRef>APB_MirroredSlave1</spirit:busInterfaceRef>
226
+ <spirit:busInterfaceRef>APB_MirroredSlave2</spirit:busInterfaceRef>
227
+ <spirit:busInterfaceRef>APB_MirroredSlave3</spirit:busInterfaceRef>
228
+ <spirit:busInterfaceRef>APB_MirroredSlave4</spirit:busInterfaceRef>
229
+ <spirit:busInterfaceRef>APB_MirroredSlave5</spirit:busInterfaceRef>
230
+ <spirit:busInterfaceRef>APB_MirroredSlave6</spirit:busInterfaceRef>
231
+ <spirit:busInterfaceRef>APB_MirroredSlave7</spirit:busInterfaceRef>
232
+ </spirit:channel>
233
+ </spirit:channels>
234
+ <spirit:model>
235
+ <spirit:views>
236
+ <spirit:view>
237
+ <spirit:name>TLM_PV</spirit:name>
238
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
239
+ <spirit:language>systemc</spirit:language>
240
+ <spirit:modelName>apbbus</spirit:modelName>
241
+ <spirit:fileSetRef>
242
+ <spirit:localName>sourceCode</spirit:localName>
243
+ </spirit:fileSetRef>
244
+ </spirit:view>
245
+ </spirit:views>
246
+ <spirit:ports>
247
+ <spirit:port>
248
+ <spirit:name>target_port</spirit:name>
249
+ <spirit:transactional>
250
+ <spirit:transTypeDef>
251
+ <spirit:typeName>pv_target_port</spirit:typeName>
252
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
253
+ </spirit:transTypeDef>
254
+ <spirit:service>
255
+ <spirit:initiative>provides</spirit:initiative>
256
+ <spirit:serviceTypeDefs>
257
+ <spirit:serviceTypeDef>
258
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
259
+ <spirit:parameters>
260
+ <spirit:parameter>
261
+ <spirit:name>typedef1</spirit:name>
262
+ <spirit:value>ADDRESS_TYPE</spirit:value>
263
+ </spirit:parameter>
264
+ <spirit:parameter>
265
+ <spirit:name>typedef2</spirit:name>
266
+ <spirit:value>DATA_TYPE</spirit:value>
267
+ </spirit:parameter>
268
+ </spirit:parameters>
269
+ </spirit:serviceTypeDef>
270
+ </spirit:serviceTypeDefs>
271
+ </spirit:service>
272
+ </spirit:transactional>
273
+ </spirit:port>
274
+ <spirit:port>
275
+ <spirit:name>initiator_port0</spirit:name>
276
+ <spirit:transactional>
277
+ <spirit:transTypeDef>
278
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
279
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
280
+ </spirit:transTypeDef>
281
+ <spirit:service>
282
+ <spirit:initiative>requires</spirit:initiative>
283
+ <spirit:serviceTypeDefs>
284
+ <spirit:serviceTypeDef>
285
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
286
+ <spirit:parameters>
287
+ <spirit:parameter>
288
+ <spirit:name>typedef1</spirit:name>
289
+ <spirit:value>ADDRESS_TYPE</spirit:value>
290
+ </spirit:parameter>
291
+ <spirit:parameter>
292
+ <spirit:name>typedef2</spirit:name>
293
+ <spirit:value>DATA_TYPE</spirit:value>
294
+ </spirit:parameter>
295
+ </spirit:parameters>
296
+ </spirit:serviceTypeDef>
297
+ </spirit:serviceTypeDefs>
298
+ </spirit:service>
299
+ </spirit:transactional>
300
+ <spirit:access>
301
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
302
+ </spirit:access>
303
+ </spirit:port>
304
+ <spirit:port>
305
+ <spirit:name>initiator_port1</spirit:name>
306
+ <spirit:transactional>
307
+ <spirit:transTypeDef>
308
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
309
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
310
+ </spirit:transTypeDef>
311
+ <spirit:service>
312
+ <spirit:initiative>requires</spirit:initiative>
313
+ <spirit:serviceTypeDefs>
314
+ <spirit:serviceTypeDef>
315
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
316
+ <spirit:parameters>
317
+ <spirit:parameter>
318
+ <spirit:name>typedef1</spirit:name>
319
+ <spirit:value>ADDRESS_TYPE</spirit:value>
320
+ </spirit:parameter>
321
+ <spirit:parameter>
322
+ <spirit:name>typedef2</spirit:name>
323
+ <spirit:value>DATA_TYPE</spirit:value>
324
+ </spirit:parameter>
325
+ </spirit:parameters>
326
+ </spirit:serviceTypeDef>
327
+ </spirit:serviceTypeDefs>
328
+ </spirit:service>
329
+ </spirit:transactional>
330
+ <spirit:access>
331
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
332
+ </spirit:access>
333
+ </spirit:port>
334
+ <spirit:port>
335
+ <spirit:name>initiator_port2</spirit:name>
336
+ <spirit:transactional>
337
+ <spirit:transTypeDef>
338
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
339
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
340
+ </spirit:transTypeDef>
341
+ <spirit:service>
342
+ <spirit:initiative>requires</spirit:initiative>
343
+ <spirit:serviceTypeDefs>
344
+ <spirit:serviceTypeDef>
345
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
346
+ <spirit:parameters>
347
+ <spirit:parameter>
348
+ <spirit:name>typedef1</spirit:name>
349
+ <spirit:value>ADDRESS_TYPE</spirit:value>
350
+ </spirit:parameter>
351
+ <spirit:parameter>
352
+ <spirit:name>typedef2</spirit:name>
353
+ <spirit:value>DATA_TYPE</spirit:value>
354
+ </spirit:parameter>
355
+ </spirit:parameters>
356
+ </spirit:serviceTypeDef>
357
+ </spirit:serviceTypeDefs>
358
+ </spirit:service>
359
+ </spirit:transactional>
360
+ <spirit:access>
361
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
362
+ </spirit:access>
363
+ </spirit:port>
364
+ <spirit:port>
365
+ <spirit:name>initiator_port3</spirit:name>
366
+ <spirit:transactional>
367
+ <spirit:transTypeDef>
368
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
369
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
370
+ </spirit:transTypeDef>
371
+ <spirit:service>
372
+ <spirit:initiative>requires</spirit:initiative>
373
+ <spirit:serviceTypeDefs>
374
+ <spirit:serviceTypeDef>
375
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
376
+ <spirit:parameters>
377
+ <spirit:parameter>
378
+ <spirit:name>typedef1</spirit:name>
379
+ <spirit:value>ADDRESS_TYPE</spirit:value>
380
+ </spirit:parameter>
381
+ <spirit:parameter>
382
+ <spirit:name>typedef2</spirit:name>
383
+ <spirit:value>DATA_TYPE</spirit:value>
384
+ </spirit:parameter>
385
+ </spirit:parameters>
386
+ </spirit:serviceTypeDef>
387
+ </spirit:serviceTypeDefs>
388
+ </spirit:service>
389
+ </spirit:transactional>
390
+ <spirit:access>
391
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
392
+ </spirit:access>
393
+ </spirit:port>
394
+ <spirit:port>
395
+ <spirit:name>initiator_port4</spirit:name>
396
+ <spirit:transactional>
397
+ <spirit:transTypeDef>
398
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
399
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
400
+ </spirit:transTypeDef>
401
+ <spirit:service>
402
+ <spirit:initiative>requires</spirit:initiative>
403
+ <spirit:serviceTypeDefs>
404
+ <spirit:serviceTypeDef>
405
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
406
+ <spirit:parameters>
407
+ <spirit:parameter>
408
+ <spirit:name>typedef1</spirit:name>
409
+ <spirit:value>ADDRESS_TYPE</spirit:value>
410
+ </spirit:parameter>
411
+ <spirit:parameter>
412
+ <spirit:name>typedef2</spirit:name>
413
+ <spirit:value>DATA_TYPE</spirit:value>
414
+ </spirit:parameter>
415
+ </spirit:parameters>
416
+ </spirit:serviceTypeDef>
417
+ </spirit:serviceTypeDefs>
418
+ </spirit:service>
419
+ </spirit:transactional>
420
+ <spirit:access>
421
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
422
+ </spirit:access>
423
+ </spirit:port>
424
+ <spirit:port>
425
+ <spirit:name>initiator_port5</spirit:name>
426
+ <spirit:transactional>
427
+ <spirit:transTypeDef>
428
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
429
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
430
+ </spirit:transTypeDef>
431
+ <spirit:service>
432
+ <spirit:initiative>requires</spirit:initiative>
433
+ <spirit:serviceTypeDefs>
434
+ <spirit:serviceTypeDef>
435
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
436
+ <spirit:parameters>
437
+ <spirit:parameter>
438
+ <spirit:name>typedef1</spirit:name>
439
+ <spirit:value>ADDRESS_TYPE</spirit:value>
440
+ </spirit:parameter>
441
+ <spirit:parameter>
442
+ <spirit:name>typedef2</spirit:name>
443
+ <spirit:value>DATA_TYPE</spirit:value>
444
+ </spirit:parameter>
445
+ </spirit:parameters>
446
+ </spirit:serviceTypeDef>
447
+ </spirit:serviceTypeDefs>
448
+ </spirit:service>
449
+ </spirit:transactional>
450
+ <spirit:access>
451
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
452
+ </spirit:access>
453
+ </spirit:port>
454
+ <spirit:port>
455
+ <spirit:name>initiator_port6</spirit:name>
456
+ <spirit:transactional>
457
+ <spirit:transTypeDef>
458
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
459
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
460
+ </spirit:transTypeDef>
461
+ <spirit:service>
462
+ <spirit:initiative>requires</spirit:initiative>
463
+ <spirit:serviceTypeDefs>
464
+ <spirit:serviceTypeDef>
465
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
466
+ <spirit:parameters>
467
+ <spirit:parameter>
468
+ <spirit:name>typedef1</spirit:name>
469
+ <spirit:value>ADDRESS_TYPE</spirit:value>
470
+ </spirit:parameter>
471
+ <spirit:parameter>
472
+ <spirit:name>typedef2</spirit:name>
473
+ <spirit:value>DATA_TYPE</spirit:value>
474
+ </spirit:parameter>
475
+ </spirit:parameters>
476
+ </spirit:serviceTypeDef>
477
+ </spirit:serviceTypeDefs>
478
+ </spirit:service>
479
+ </spirit:transactional>
480
+ <spirit:access>
481
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
482
+ </spirit:access>
483
+ </spirit:port>
484
+ <spirit:port>
485
+ <spirit:name>initiator_port7</spirit:name>
486
+ <spirit:transactional>
487
+ <spirit:transTypeDef>
488
+ <spirit:typeName>pv_initiator_port</spirit:typeName>
489
+ <spirit:typeDefinition>pv_initiator_port.h</spirit:typeDefinition>
490
+ </spirit:transTypeDef>
491
+ <spirit:service>
492
+ <spirit:initiative>requires</spirit:initiative>
493
+ <spirit:serviceTypeDefs>
494
+ <spirit:serviceTypeDef>
495
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
496
+ <spirit:parameters>
497
+ <spirit:parameter>
498
+ <spirit:name>typedef1</spirit:name>
499
+ <spirit:value>ADDRESS_TYPE</spirit:value>
500
+ </spirit:parameter>
501
+ <spirit:parameter>
502
+ <spirit:name>typedef2</spirit:name>
503
+ <spirit:value>DATA_TYPE</spirit:value>
504
+ </spirit:parameter>
505
+ </spirit:parameters>
506
+ </spirit:serviceTypeDef>
507
+ </spirit:serviceTypeDefs>
508
+ </spirit:service>
509
+ </spirit:transactional>
510
+ <spirit:access>
511
+ <spirit:portAccessHandle>initiator_port</spirit:portAccessHandle>
512
+ </spirit:access>
513
+ </spirit:port>
514
+ </spirit:ports>
515
+ <spirit:modelParameters>
516
+ <spirit:modelParameter spirit:dataType="const char*" spirit:usageType="nontyped">
517
+ <spirit:name>mapfile</spirit:name>
518
+ <spirit:value spirit:id="mapfile" spirit:resolve="user">apbmstMapFile.map</spirit:value>
519
+ </spirit:modelParameter>
520
+ </spirit:modelParameters>
521
+ </spirit:model>
522
+ <spirit:fileSets>
523
+ <spirit:fileSet>
524
+ <spirit:name>sourceCode</spirit:name>
525
+ <spirit:file>
526
+ <spirit:name>tlmsrc/apbbus.h</spirit:name>
527
+ <spirit:fileType>systemCSource</spirit:fileType>
528
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
529
+ <spirit:logicalName>apbbus</spirit:logicalName>
530
+ <spirit:dependency>../../PV</spirit:dependency>
531
+ </spirit:file>
532
+ <spirit:file>
533
+ <spirit:name>../../PV/pv_router.h</spirit:name>
534
+ <spirit:fileType>unknown</spirit:fileType>
535
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
536
+ </spirit:file>
537
+ <spirit:file>
538
+ <spirit:name>../../PV/user_types.h</spirit:name>
539
+ <spirit:fileType>unknown</spirit:fileType>
540
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
541
+ </spirit:file>
542
+ </spirit:fileSet>
543
+ </spirit:fileSets>
544
+ </spirit:component>