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,240 @@
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>pv2apb</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="AMBA2" spirit:name="APB_rtl" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
53
+ <spirit:portMaps>
54
+ <spirit:portMap>
55
+ <spirit:logicalPort>
56
+ <spirit:name>PSELx</spirit:name>
57
+ </spirit:logicalPort>
58
+ <spirit:physicalPort>
59
+ <spirit:name>psel</spirit:name>
60
+ </spirit:physicalPort>
61
+ </spirit:portMap>
62
+ <spirit:portMap>
63
+ <spirit:logicalPort>
64
+ <spirit:name>PENABLE</spirit:name>
65
+ </spirit:logicalPort>
66
+ <spirit:physicalPort>
67
+ <spirit:name>penable</spirit:name>
68
+ </spirit:physicalPort>
69
+ </spirit:portMap>
70
+ <spirit:portMap>
71
+ <spirit:logicalPort>
72
+ <spirit:name>PADDR</spirit:name>
73
+ </spirit:logicalPort>
74
+ <spirit:physicalPort>
75
+ <spirit:name>paddr</spirit:name>
76
+ </spirit:physicalPort>
77
+ </spirit:portMap>
78
+ <spirit:portMap>
79
+ <spirit:logicalPort>
80
+ <spirit:name>PWRITE</spirit:name>
81
+ </spirit:logicalPort>
82
+ <spirit:physicalPort>
83
+ <spirit:name>pwrite</spirit:name>
84
+ </spirit:physicalPort>
85
+ </spirit:portMap>
86
+ <spirit:portMap>
87
+ <spirit:logicalPort>
88
+ <spirit:name>PWDATA</spirit:name>
89
+ </spirit:logicalPort>
90
+ <spirit:physicalPort>
91
+ <spirit:name>pwdata</spirit:name>
92
+ </spirit:physicalPort>
93
+ </spirit:portMap>
94
+ <spirit:portMap>
95
+ <spirit:logicalPort>
96
+ <spirit:name>PRDATA</spirit:name>
97
+ </spirit:logicalPort>
98
+ <spirit:physicalPort>
99
+ <spirit:name>prdata</spirit:name>
100
+ </spirit:physicalPort>
101
+ </spirit:portMap>
102
+ <spirit:portMap>
103
+ <spirit:logicalPort>
104
+ <spirit:name>PCLK</spirit:name>
105
+ </spirit:logicalPort>
106
+ <spirit:physicalPort>
107
+ <spirit:name>pclk</spirit:name>
108
+ </spirit:physicalPort>
109
+ </spirit:portMap>
110
+ <spirit:portMap>
111
+ <spirit:logicalPort>
112
+ <spirit:name>PRESETn</spirit:name>
113
+ </spirit:logicalPort>
114
+ <spirit:physicalPort>
115
+ <spirit:name>presetn</spirit:name>
116
+ </spirit:physicalPort>
117
+ </spirit:portMap>
118
+ </spirit:portMaps>
119
+ </spirit:abstractorInterface>
120
+ </spirit:abstractorInterfaces>
121
+ <spirit:model>
122
+ <spirit:views>
123
+ <spirit:view>
124
+ <spirit:name>PVPVT</spirit:name>
125
+ <spirit:envIdentifier>systemCSource:OSCI:v21</spirit:envIdentifier>
126
+ <spirit:envIdentifier>systemCSource:NCSim:ncsc</spirit:envIdentifier>
127
+ <spirit:language>systemc2.1</spirit:language>
128
+ <spirit:modelName>pv2apb</spirit:modelName>
129
+ <spirit:fileSetRef>
130
+ <spirit:localName>pv2apbFileSet</spirit:localName>
131
+ </spirit:fileSetRef>
132
+ </spirit:view>
133
+ </spirit:views>
134
+ <spirit:ports>
135
+ <spirit:port>
136
+ <spirit:name>tlmpv_slave_port</spirit:name>
137
+ <spirit:transactional>
138
+ <spirit:transTypeDef>
139
+ <spirit:typeName>pv_target_port</spirit:typeName>
140
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
141
+ </spirit:transTypeDef>
142
+ <spirit:service>
143
+ <spirit:initiative>provides</spirit:initiative>
144
+ <spirit:serviceTypeDefs>
145
+ <spirit:serviceTypeDef>
146
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
147
+ <spirit:parameters>
148
+ <spirit:parameter>
149
+ <spirit:name>typedef1</spirit:name>
150
+ <spirit:value>ADDRESS_TYPE</spirit:value>
151
+ </spirit:parameter>
152
+ <spirit:parameter>
153
+ <spirit:name>typedef2</spirit:name>
154
+ <spirit:value>DATA_TYPE</spirit:value>
155
+ </spirit:parameter>
156
+ </spirit:parameters>
157
+ </spirit:serviceTypeDef>
158
+ </spirit:serviceTypeDefs>
159
+ </spirit:service>
160
+ </spirit:transactional>
161
+ </spirit:port>
162
+ <spirit:port>
163
+ <spirit:name>pclk</spirit:name>
164
+ <spirit:wire>
165
+ <spirit:direction>in</spirit:direction>
166
+ </spirit:wire>
167
+ </spirit:port>
168
+ <spirit:port>
169
+ <spirit:name>presetn</spirit:name>
170
+ <spirit:wire>
171
+ <spirit:direction>in</spirit:direction>
172
+ </spirit:wire>
173
+ </spirit:port>
174
+ <spirit:port>
175
+ <spirit:name>psel</spirit:name>
176
+ <spirit:wire>
177
+ <spirit:direction>out</spirit:direction>
178
+ </spirit:wire>
179
+ </spirit:port>
180
+ <spirit:port>
181
+ <spirit:name>penable</spirit:name>
182
+ <spirit:wire>
183
+ <spirit:direction>out</spirit:direction>
184
+ </spirit:wire>
185
+ </spirit:port>
186
+ <spirit:port>
187
+ <spirit:name>paddr</spirit:name>
188
+ <spirit:wire>
189
+ <spirit:direction>out</spirit:direction>
190
+ <spirit:vector>
191
+ <spirit:left>11</spirit:left>
192
+ <spirit:right>0</spirit:right>
193
+ </spirit:vector>
194
+ </spirit:wire>
195
+ </spirit:port>
196
+ <spirit:port>
197
+ <spirit:name>pwrite</spirit:name>
198
+ <spirit:wire>
199
+ <spirit:direction>out</spirit:direction>
200
+ </spirit:wire>
201
+ </spirit:port>
202
+ <spirit:port>
203
+ <spirit:name>pwdata</spirit:name>
204
+ <spirit:wire>
205
+ <spirit:direction>out</spirit:direction>
206
+ <spirit:vector>
207
+ <spirit:left>31</spirit:left>
208
+ <spirit:right>0</spirit:right>
209
+ </spirit:vector>
210
+ </spirit:wire>
211
+ </spirit:port>
212
+ <spirit:port>
213
+ <spirit:name>prdata</spirit:name>
214
+ <spirit:wire>
215
+ <spirit:direction>in</spirit:direction>
216
+ <spirit:vector>
217
+ <spirit:left>31</spirit:left>
218
+ <spirit:right>0</spirit:right>
219
+ </spirit:vector>
220
+ </spirit:wire>
221
+ </spirit:port>
222
+ </spirit:ports>
223
+ </spirit:model>
224
+ <spirit:fileSets>
225
+ <spirit:fileSet>
226
+ <spirit:name>pv2apbFileSet</spirit:name>
227
+ <spirit:file>
228
+ <spirit:name>./tlmsrc/pv2apb.h</spirit:name>
229
+ <spirit:fileType>systemCSource-2.1</spirit:fileType>
230
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
231
+ <spirit:logicalName>pv2apb</spirit:logicalName>
232
+ </spirit:file>
233
+ <spirit:file>
234
+ <spirit:name>./tlmsrc/pv2apb.cc</spirit:name>
235
+ <spirit:fileType>systemCSource-2.1</spirit:fileType>
236
+ <spirit:logicalName>pv2apb</spirit:logicalName>
237
+ </spirit:file>
238
+ </spirit:fileSet>
239
+ </spirit:fileSets>
240
+ </spirit:abstractor>
@@ -0,0 +1,153 @@
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 "pv2apb.h"
27
+
28
+ pv2apb::pv2apb( sc_module_name module_name ) :
29
+ sc_module( module_name ),
30
+
31
+ pclk ("pclk"),
32
+ presetn ("presetn"),
33
+ psel ("psel"),
34
+ penable ("penable"),
35
+ pwrite ("pwrite"),
36
+ paddr ("paddr"),
37
+ pwdata ("pwdata"),
38
+ prdata ("prdata"),
39
+
40
+ pv_slave_base<ADDRESS_TYPE,DATA_TYPE>(name()),
41
+ tlmpv_slave_port("tlmpv_slave_port")
42
+ {
43
+ tlmpv_slave_port( *this );
44
+
45
+ psel.initialize(static_cast<sc_logic>(0));
46
+ penable.initialize(static_cast<sc_logic>(0));
47
+ pwrite.initialize(static_cast<sc_logic>(0));
48
+ paddr.initialize(0);
49
+ pwdata.initialize(0);
50
+
51
+ // SC_METHOD( reset );
52
+ // sensitive << presetn;
53
+ }
54
+
55
+ void pv2apb::end_of_elaboration() {
56
+ cout << name() << " constructed." << endl;
57
+ }
58
+
59
+ pv2apb::~pv2apb()
60
+ {
61
+ }
62
+
63
+ tlm::tlm_status pv2apb::write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
64
+ const unsigned int byte_enable,
65
+ const tlm::tlm_mode mode,
66
+ const unsigned int export_id)
67
+ {
68
+
69
+ // NEED CODE HERE TO SET APB SIGNALS
70
+ //
71
+ //
72
+
73
+ psel.write(static_cast<sc_logic>(0));
74
+ penable.write(static_cast<sc_logic>(0));
75
+ pwrite.write(static_cast<sc_logic>(0));
76
+ paddr.write(0);
77
+ pwdata.write(0);
78
+
79
+ // wait(pclk.posedge_event());
80
+ wait(500, SC_NS);
81
+
82
+ psel.write(static_cast<sc_logic>(1));
83
+ penable.write(static_cast<sc_logic>(1));
84
+ pwrite.write(static_cast<sc_logic>(1));
85
+ paddr.write(addr);
86
+ pwdata.write(data);
87
+
88
+ // wait(pclk.posedge_event());
89
+ wait(500, SC_NS);
90
+
91
+ psel.write(static_cast<sc_logic>(0));
92
+ penable.write(static_cast<sc_logic>(0));
93
+ pwrite.write(static_cast<sc_logic>(0));
94
+ paddr.write(0);
95
+ pwdata.write(0);
96
+
97
+
98
+ tlm::tlm_status status;
99
+ status.set_ok();
100
+ return status;
101
+ }
102
+
103
+ tlm::tlm_status pv2apb::read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
104
+ const unsigned int byte_enable,
105
+ const tlm::tlm_mode mode,
106
+ const unsigned int export_id)
107
+ {
108
+ // NEED CODE HERE TO SET APB SIGNALS
109
+ //
110
+ //
111
+ sc_int<32> scdata;
112
+
113
+ psel.write(static_cast<sc_logic>(0));
114
+ penable.write(static_cast<sc_logic>(0));
115
+ pwrite.write(static_cast<sc_logic>(0));
116
+ paddr.write(0);
117
+ pwdata.write(0);
118
+
119
+ // wait(pclk.posedge_event());
120
+ wait(500, SC_NS);
121
+
122
+ psel.write(static_cast<sc_logic>(1));
123
+ penable.write(static_cast<sc_logic>(1));
124
+ pwrite.write(static_cast<sc_logic>(0));
125
+ paddr.write(addr);
126
+
127
+ // wait(pclk.posedge_event());
128
+ wait(500, SC_NS);
129
+
130
+ scdata = prdata.read();
131
+ data = scdata;
132
+
133
+ psel.write(static_cast<sc_logic>(0));
134
+ penable.write(static_cast<sc_logic>(0));
135
+ pwrite.write(static_cast<sc_logic>(0));
136
+ paddr.write(0);
137
+
138
+ // cout << name() << " done. data=" << data << endl;
139
+
140
+ tlm::tlm_status status;
141
+ status.set_ok();
142
+ return status;
143
+ }
144
+
145
+ void pv2apb::reset()
146
+ {
147
+ psel.write(static_cast<sc_logic>(0));
148
+ penable.write(static_cast<sc_logic>(0));
149
+ pwrite.write(static_cast<sc_logic>(0));
150
+ paddr.write(0);
151
+ pwdata.write(0);
152
+ }
153
+
@@ -0,0 +1,77 @@
1
+ /*******************************************************************************
2
+ * SPIRIT 1.4 OSCI-TLM-PV to APB example
3
+ *------------------------------------------------------------------------------
4
+ * Simple Leon2 TLM PV to APB converter
5
+ *------------------------------------------------------------------------------
6
+ * Revision: 1.0
7
+ * Authors: SWG
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 _PV2APB_H_
34
+ #define _PV2APB_H_
35
+
36
+ #include <systemc.h>
37
+ #include "pv_slave_base.h"
38
+ #include "pv_target_port.h"
39
+ #include "user_types.h"
40
+
41
+ class pv2apb :
42
+ public sc_module,
43
+ public pv_slave_base< ADDRESS_TYPE , DATA_TYPE >
44
+ {
45
+ public:
46
+ SC_HAS_PROCESS(pv2apb);
47
+
48
+ sc_in<sc_logic> pclk;
49
+ sc_in<sc_logic> presetn;
50
+ sc_out<sc_logic> psel;
51
+ sc_out<sc_logic> penable;
52
+ sc_out<sc_logic> pwrite;
53
+ sc_out<sc_lv<12> > paddr;
54
+ sc_out<sc_lv<32> > pwdata;
55
+ sc_in<sc_lv<32> > prdata;
56
+
57
+
58
+ pv2apb( sc_module_name module_name );
59
+ ~pv2apb();
60
+
61
+ pv_target_port<ADDRESS_TYPE,DATA_TYPE> tlmpv_slave_port;
62
+
63
+ tlm::tlm_status write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
64
+ const unsigned int byte_enable = tlm::NO_BE,
65
+ const tlm::tlm_mode mode = tlm::REGULAR,
66
+ const unsigned int export_id = 0 );
67
+ tlm::tlm_status read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
68
+ const unsigned int byte_enable = tlm::NO_BE,
69
+ const tlm::tlm_mode mode = tlm::REGULAR,
70
+ const unsigned int export_id = 0 );
71
+
72
+ private:
73
+ void end_of_elaboration();
74
+ void reset();
75
+ };
76
+
77
+ #endif