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,62 @@
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
+
27
+ #ifndef _SCMLADAPTOR_H_
28
+ #define _SCMLADAPTOR_H_
29
+
30
+ #include <systemc.h>
31
+ #include "scml.h"
32
+ #include "PV/PV.h"
33
+ #include "pv_slave_base.h"
34
+ #include "pv_target_port.h"
35
+ #include "user_types.h"
36
+
37
+ class scmlAdaptor :
38
+ public sc_module,
39
+ public pv_slave_base< ADDRESS_TYPE , DATA_TYPE >
40
+ {
41
+ public:
42
+ SC_HAS_PROCESS(scmlAdaptor);
43
+ scmlAdaptor( sc_module_name module_name );
44
+ ~scmlAdaptor();
45
+
46
+ pv_target_port<ADDRESS_TYPE,DATA_TYPE> apb_slave_port;
47
+ PVInitiator_port<DATA_TYPE, ADDRESS_TYPE> scml_master_port;
48
+
49
+ tlm::tlm_status write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
50
+ const unsigned int byte_enable = tlm::NO_BE,
51
+ const tlm::tlm_mode mode = tlm::REGULAR,
52
+ const unsigned int export_id = 0 );
53
+ tlm::tlm_status read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
54
+ const unsigned int byte_enable = tlm::NO_BE,
55
+ const tlm::tlm_mode mode = tlm::REGULAR,
56
+ const unsigned int export_id = 0 );
57
+
58
+ private:
59
+ void end_of_elaboration();
60
+ };
61
+
62
+ #endif
@@ -0,0 +1,151 @@
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>serial_device</spirit:name>
32
+ <spirit:version>1.0</spirit:version>
33
+ <spirit:busInterfaces>
34
+ <spirit:busInterface>
35
+ <spirit:name>SerialOut</spirit:name>
36
+ <spirit:busType spirit:library="busdef.generic" spirit:name="serial" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
37
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="serial_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
38
+ <spirit:master/>
39
+ <spirit:connectionRequired>true</spirit:connectionRequired>
40
+ <spirit:portMaps>
41
+ <spirit:portMap>
42
+ <spirit:logicalPort>
43
+ <spirit:name>RW_TRANSACTION</spirit:name>
44
+ </spirit:logicalPort>
45
+ <spirit:physicalPort>
46
+ <spirit:name>pSerialOut</spirit:name>
47
+ </spirit:physicalPort>
48
+ </spirit:portMap>
49
+ </spirit:portMaps>
50
+ </spirit:busInterface>
51
+ <spirit:busInterface>
52
+ <spirit:name>SerialIn</spirit:name>
53
+ <spirit:busType spirit:library="busdef.generic" spirit:name="serial" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
54
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="serial_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
55
+ <spirit:slave/>
56
+ <spirit:connectionRequired>true</spirit:connectionRequired>
57
+ <spirit:portMaps>
58
+ <spirit:portMap>
59
+ <spirit:logicalPort>
60
+ <spirit:name>RW_TRANSACTION</spirit:name>
61
+ </spirit:logicalPort>
62
+ <spirit:physicalPort>
63
+ <spirit:name>pSerialIn</spirit:name>
64
+ </spirit:physicalPort>
65
+ </spirit:portMap>
66
+ </spirit:portMaps>
67
+ </spirit:busInterface>
68
+ </spirit:busInterfaces>
69
+ <spirit:model>
70
+ <spirit:views>
71
+ <spirit:view>
72
+ <spirit:name>PVPVT</spirit:name>
73
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
74
+ <spirit:language>systemc2.1</spirit:language>
75
+ <spirit:modelName>SerialDevice</spirit:modelName>
76
+ <spirit:fileSetRef>
77
+ <spirit:localName>serialDeviceFileSet</spirit:localName>
78
+ </spirit:fileSetRef>
79
+ </spirit:view>
80
+ </spirit:views>
81
+ <spirit:ports>
82
+ <spirit:port>
83
+ <spirit:name>pSerialOut</spirit:name>
84
+ <spirit:transactional>
85
+ <spirit:transTypeDef>
86
+ <spirit:typeName>sc_port</spirit:typeName>
87
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
88
+ </spirit:transTypeDef>
89
+ <spirit:service>
90
+ <spirit:initiative>requires</spirit:initiative>
91
+ <spirit:serviceTypeDefs>
92
+ <spirit:serviceTypeDef>
93
+ <spirit:typeName>tlm::tlm_blocking_put_if</spirit:typeName>
94
+ <spirit:typeDefinition>tlm_interfaces/tlm_core_ifs.h</spirit:typeDefinition>
95
+ <spirit:parameters>
96
+ <spirit:parameter>
97
+ <spirit:name>DATATYPE</spirit:name>
98
+ <spirit:value>SERIAL_DATA_STRUCTURE</spirit:value>
99
+ </spirit:parameter>
100
+ </spirit:parameters>
101
+ </spirit:serviceTypeDef>
102
+ </spirit:serviceTypeDefs>
103
+ </spirit:service>
104
+ </spirit:transactional>
105
+ <spirit:access>
106
+ <spirit:portAccessType>ref</spirit:portAccessType>
107
+ <spirit:portAccessHandle>pSerialOut</spirit:portAccessHandle>
108
+ </spirit:access>
109
+ </spirit:port>
110
+ <spirit:port>
111
+ <spirit:name>pSerialIn</spirit:name>
112
+ <spirit:transactional>
113
+ <spirit:transTypeDef>
114
+ <spirit:typeName>sc_export</spirit:typeName>
115
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
116
+ </spirit:transTypeDef>
117
+ <spirit:service>
118
+ <spirit:initiative>provides</spirit:initiative>
119
+ <spirit:serviceTypeDefs>
120
+ <spirit:serviceTypeDef>
121
+ <spirit:typeName>tlm::tlm_blocking_put_if</spirit:typeName>
122
+ <spirit:typeDefinition>tlm_interfaces/tlm_core_ifs.h</spirit:typeDefinition>
123
+ <spirit:parameters>
124
+ <spirit:parameter>
125
+ <spirit:name>DATATYPE</spirit:name>
126
+ <spirit:value>SERIAL_DATA_STRUCTURE</spirit:value>
127
+ </spirit:parameter>
128
+ </spirit:parameters>
129
+ </spirit:serviceTypeDef>
130
+ </spirit:serviceTypeDefs>
131
+ </spirit:service>
132
+ </spirit:transactional>
133
+ <spirit:access>
134
+ <spirit:portAccessType>ref</spirit:portAccessType>
135
+ <spirit:portAccessHandle>pSerialIn</spirit:portAccessHandle>
136
+ </spirit:access>
137
+ </spirit:port>
138
+ </spirit:ports>
139
+ </spirit:model>
140
+ <spirit:fileSets>
141
+ <spirit:fileSet>
142
+ <spirit:name>serialDeviceFileSet</spirit:name>
143
+ <spirit:file>
144
+ <spirit:name>./tlmsrc/serial_device.h</spirit:name>
145
+ <spirit:fileType>systemCSource-2.1</spirit:fileType>
146
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
147
+ <spirit:logicalName>serialDevice</spirit:logicalName>
148
+ </spirit:file>
149
+ </spirit:fileSet>
150
+ </spirit:fileSets>
151
+ </spirit:component>
@@ -0,0 +1,85 @@
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
+
27
+ // serial_device.h
28
+
29
+ #ifndef H_SERIALDEVICE
30
+ #define H_SERIALDEVICE
31
+
32
+ //***************************
33
+ //* Includes *
34
+ //***************************
35
+ #include "scml.h" // For 'scml_memory' and 'scml_bitfield'
36
+ #include "tlm_interfaces/tlm_core_ifs.h" // For 'tlm_blocking_put_if'
37
+
38
+ #include "uart_types.h"
39
+
40
+ //*******************************************************************************************
41
+ //* Serial Device Module Class *
42
+ //* This module sends all the data it receives on 'pSerialIn' back over 'pSerialOut' *
43
+ //*******************************************************************************************
44
+ class SerialDevice: public sc_module,
45
+ virtual public tlm::tlm_blocking_put_if<SERIAL_DATA_STRUCTURE>
46
+ {
47
+ public:
48
+ //**** Port Declarations ****//
49
+ sc_port<tlm::tlm_blocking_put_if<SERIAL_DATA_STRUCTURE> > pSerialOut; // Serial data output port.
50
+ sc_export<tlm::tlm_blocking_put_if<SERIAL_DATA_STRUCTURE> > pSerialIn; // Serial data input port. export bound to this module.
51
+
52
+
53
+ SC_HAS_PROCESS(SerialDevice);
54
+ //**** Constructor ****//
55
+ SerialDevice(sc_module_name Name) : sc_module(Name),
56
+ pSerialOut("pSerialOut"),
57
+ pSerialIn("pSerialIn") {
58
+
59
+ pSerialIn.bind(*this); // Bind the export to this module
60
+
61
+ SC_METHOD(SendData);
62
+ sensitive << send_event;
63
+ dont_initialize();
64
+ }
65
+ private:
66
+ sc_event send_event; // Event to trigger 'SendData()'
67
+ SERIAL_DATA_STRUCTURE CurrentDataStruct;
68
+
69
+ //**** Interface Method of 'tlm_blocking_put_if' ****//
70
+ void put( const SERIAL_DATA_STRUCTURE &DataStruct ) {
71
+ cout << sc_time_stamp() << ": " << name() << ": Serial Character Frame Received (Data: " << DataStruct.Data <<
72
+ ", Startbit: " << DataStruct.StartBit <<
73
+ ", StopBit: " << DataStruct.StopBit <<
74
+ ", Parity: " << DataStruct.Parity << ")" << endl;
75
+ CurrentDataStruct = DataStruct; // Store the received data structure
76
+ send_event.notify(); // Trigger to send the data back
77
+ };
78
+ // Function for sending the data in 'CurrentDataStruct' to 'pSerialOut'
79
+ void SendData() {
80
+ cout << sc_time_stamp() << ": " << name() << ": Serial Character Transmitted: " << CurrentDataStruct.Data << endl;
81
+ pSerialOut->put(CurrentDataStruct);
82
+ }
83
+ };
84
+
85
+ #endif // H_SERIALDEVICE
@@ -0,0 +1,460 @@
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>timers</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>Int0</spirit:name>
55
+ <spirit:busType spirit:library="busdef.interrupt" spirit:name="interrupt" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
56
+ <spirit:abstractionType spirit:library="busdef.interrupt" spirit:name="interrupt_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
57
+ <spirit:master/>
58
+ <spirit:portMaps>
59
+ <spirit:portMap>
60
+ <spirit:logicalPort>
61
+ <spirit:name>IRQ</spirit:name>
62
+ </spirit:logicalPort>
63
+ <spirit:physicalPort>
64
+ <spirit:name>int0</spirit:name>
65
+ </spirit:physicalPort>
66
+ </spirit:portMap>
67
+ </spirit:portMaps>
68
+ </spirit:busInterface>
69
+ <spirit:busInterface>
70
+ <spirit:name>Int1</spirit:name>
71
+ <spirit:busType spirit:library="busdef.interrupt" spirit:name="interrupt" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
72
+ <spirit:abstractionType spirit:library="busdef.interrupt" spirit:name="interrupt_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
73
+ <spirit:master/>
74
+ <spirit:portMaps>
75
+ <spirit:portMap>
76
+ <spirit:logicalPort>
77
+ <spirit:name>IRQ</spirit:name>
78
+ </spirit:logicalPort>
79
+ <spirit:physicalPort>
80
+ <spirit:name>int1</spirit:name>
81
+ </spirit:physicalPort>
82
+ </spirit:portMap>
83
+ </spirit:portMaps>
84
+ </spirit:busInterface>
85
+ </spirit:busInterfaces>
86
+ <spirit:memoryMaps>
87
+ <spirit:memoryMap>
88
+ <spirit:name>APB_MM</spirit:name>
89
+ <spirit:addressBlock>
90
+ <spirit:name>apbMemoryMap</spirit:name>
91
+ <spirit:baseAddress>0</spirit:baseAddress>
92
+ <spirit:range spirit:format="long">0x28</spirit:range>
93
+ <spirit:width spirit:id="width" spirit:format="long">32</spirit:width>
94
+ <spirit:register>
95
+ <spirit:name>timer1Counter</spirit:name>
96
+ <spirit:description>Timer 1 value</spirit:description>
97
+ <spirit:addressOffset>0x0</spirit:addressOffset>
98
+ <spirit:size>32</spirit:size>
99
+ <spirit:access>read-write</spirit:access>
100
+ <spirit:field>
101
+ <spirit:name>timer1Value</spirit:name>
102
+ <spirit:description>Value of Timer 1</spirit:description>
103
+ <spirit:bitOffset>0</spirit:bitOffset>
104
+ <spirit:bitWidth>24</spirit:bitWidth>
105
+ <spirit:volatile>true</spirit:volatile>
106
+ <spirit:access>read-write</spirit:access>
107
+ <spirit:testable>false</spirit:testable>
108
+ </spirit:field>
109
+ <spirit:field>
110
+ <spirit:name>reserved</spirit:name>
111
+ <spirit:description>Reserved</spirit:description>
112
+ <spirit:bitOffset>24</spirit:bitOffset>
113
+ <spirit:bitWidth>8</spirit:bitWidth>
114
+ <spirit:volatile>true</spirit:volatile>
115
+ <spirit:access>read-write</spirit:access>
116
+ <spirit:testable>false</spirit:testable>
117
+ </spirit:field>
118
+ </spirit:register>
119
+ <spirit:register>
120
+ <spirit:name>timer1Reload</spirit:name>
121
+ <spirit:description>Timer 1 Reload Value</spirit:description>
122
+ <spirit:addressOffset>0x4</spirit:addressOffset>
123
+ <spirit:size>32</spirit:size>
124
+ <spirit:access>read-write</spirit:access>
125
+ <spirit:field>
126
+ <spirit:name>timerReloadValue</spirit:name>
127
+ <spirit:description>Timer 1 Reload Value</spirit:description>
128
+ <spirit:bitOffset>0</spirit:bitOffset>
129
+ <spirit:bitWidth>24</spirit:bitWidth>
130
+ <spirit:volatile>true</spirit:volatile>
131
+ <spirit:access>read-write</spirit:access>
132
+ <spirit:testable>false</spirit:testable>
133
+ </spirit:field>
134
+ <spirit:field>
135
+ <spirit:name>reserved</spirit:name>
136
+ <spirit:description>Reserved</spirit:description>
137
+ <spirit:bitOffset>24</spirit:bitOffset>
138
+ <spirit:bitWidth>8</spirit:bitWidth>
139
+ <spirit:volatile>true</spirit:volatile>
140
+ <spirit:access>read-write</spirit:access>
141
+ <spirit:testable>false</spirit:testable>
142
+ </spirit:field>
143
+ </spirit:register>
144
+ <spirit:register>
145
+ <spirit:name>timer1Control</spirit:name>
146
+ <spirit:description>Timer 1 Control Register</spirit:description>
147
+ <spirit:addressOffset>0x8</spirit:addressOffset>
148
+ <spirit:size>32</spirit:size>
149
+ <spirit:access>read-write</spirit:access>
150
+ <spirit:reset>
151
+ <spirit:value>0x0</spirit:value>
152
+ <spirit:mask>0x0001</spirit:mask>
153
+ </spirit:reset>
154
+ <spirit:field>
155
+ <spirit:name>enable</spirit:name>
156
+ <spirit:description>Enables the timer when set.</spirit:description>
157
+ <spirit:bitOffset>0</spirit:bitOffset>
158
+ <spirit:bitWidth>1</spirit:bitWidth>
159
+ <spirit:volatile>true</spirit:volatile>
160
+ <spirit:access>read-write</spirit:access>
161
+ <spirit:testable>false</spirit:testable>
162
+ </spirit:field>
163
+ <spirit:field>
164
+ <spirit:name>reloadCounter</spirit:name>
165
+ <spirit:description>When set to 1 the counter will automatically be reloaded with the reload value after each underflow.</spirit:description>
166
+ <spirit:bitOffset>1</spirit:bitOffset>
167
+ <spirit:bitWidth>1</spirit:bitWidth>
168
+ <spirit:volatile>true</spirit:volatile>
169
+ <spirit:access>read-write</spirit:access>
170
+ <spirit:testable>false</spirit:testable>
171
+ </spirit:field>
172
+ <spirit:field>
173
+ <spirit:name>loadCounter</spirit:name>
174
+ <spirit:description>When written with 1, will load the timer reload register into the timer counter register. Always reads as a 0.</spirit:description>
175
+ <spirit:bitOffset>2</spirit:bitOffset>
176
+ <spirit:bitWidth>1</spirit:bitWidth>
177
+ <spirit:volatile>true</spirit:volatile>
178
+ <spirit:access>read-write</spirit:access>
179
+ <spirit:testable>false</spirit:testable>
180
+ </spirit:field>
181
+ </spirit:register>
182
+ <spirit:register>
183
+ <spirit:name>watchdogCounter</spirit:name>
184
+ <spirit:description>Watchdog 1 value</spirit:description>
185
+ <spirit:addressOffset>0xc</spirit:addressOffset>
186
+ <spirit:size>32</spirit:size>
187
+ <spirit:access>read-write</spirit:access>
188
+ <spirit:field>
189
+ <spirit:name>watchdogValue</spirit:name>
190
+ <spirit:description>Watchdog 1 value</spirit:description>
191
+ <spirit:bitOffset>0</spirit:bitOffset>
192
+ <spirit:bitWidth>24</spirit:bitWidth>
193
+ <spirit:volatile>true</spirit:volatile>
194
+ <spirit:access>read-write</spirit:access>
195
+ <spirit:testable>false</spirit:testable>
196
+ </spirit:field>
197
+ <spirit:field>
198
+ <spirit:name>reserved</spirit:name>
199
+ <spirit:description>Reserved</spirit:description>
200
+ <spirit:bitOffset>24</spirit:bitOffset>
201
+ <spirit:bitWidth>8</spirit:bitWidth>
202
+ <spirit:volatile>true</spirit:volatile>
203
+ <spirit:access>read-write</spirit:access>
204
+ <spirit:testable>false</spirit:testable>
205
+ </spirit:field>
206
+ </spirit:register>
207
+ <spirit:register>
208
+ <spirit:name>timer2Counter</spirit:name>
209
+ <spirit:description>Timer 2 value</spirit:description>
210
+ <spirit:addressOffset>0x10</spirit:addressOffset>
211
+ <spirit:size>32</spirit:size>
212
+ <spirit:access>read-write</spirit:access>
213
+ <spirit:field>
214
+ <spirit:name>timer2Value</spirit:name>
215
+ <spirit:description>Timer 2 value</spirit:description>
216
+ <spirit:bitOffset>0</spirit:bitOffset>
217
+ <spirit:bitWidth>24</spirit:bitWidth>
218
+ <spirit:volatile>true</spirit:volatile>
219
+ <spirit:access>read-write</spirit:access>
220
+ <spirit:testable>false</spirit:testable>
221
+ </spirit:field>
222
+ <spirit:field>
223
+ <spirit:name>reserved</spirit:name>
224
+ <spirit:description>Reserved</spirit:description>
225
+ <spirit:bitOffset>24</spirit:bitOffset>
226
+ <spirit:bitWidth>8</spirit:bitWidth>
227
+ <spirit:volatile>true</spirit:volatile>
228
+ <spirit:access>read-write</spirit:access>
229
+ <spirit:testable>false</spirit:testable>
230
+ </spirit:field>
231
+ </spirit:register>
232
+ <spirit:register>
233
+ <spirit:name>timer2Reload</spirit:name>
234
+ <spirit:description>Timer 2 Reload Value</spirit:description>
235
+ <spirit:addressOffset>0x14</spirit:addressOffset>
236
+ <spirit:size>32</spirit:size>
237
+ <spirit:access>read-write</spirit:access>
238
+ <spirit:field>
239
+ <spirit:name>timerReloadValue</spirit:name>
240
+ <spirit:description>Timer 2 Reload Value</spirit:description>
241
+ <spirit:bitOffset>0</spirit:bitOffset>
242
+ <spirit:bitWidth>24</spirit:bitWidth>
243
+ <spirit:volatile>true</spirit:volatile>
244
+ <spirit:access>read-write</spirit:access>
245
+ <spirit:testable>false</spirit:testable>
246
+ </spirit:field>
247
+ <spirit:field>
248
+ <spirit:name>reserved</spirit:name>
249
+ <spirit:description>Reserved</spirit:description>
250
+ <spirit:bitOffset>24</spirit:bitOffset>
251
+ <spirit:bitWidth>8</spirit:bitWidth>
252
+ <spirit:volatile>true</spirit:volatile>
253
+ <spirit:access>read-write</spirit:access>
254
+ <spirit:testable>false</spirit:testable>
255
+ </spirit:field>
256
+ </spirit:register>
257
+ <spirit:register>
258
+ <spirit:name>timer2Control</spirit:name>
259
+ <spirit:description>Timer 2 Control Register</spirit:description>
260
+ <spirit:addressOffset>0x18</spirit:addressOffset>
261
+ <spirit:size>32</spirit:size>
262
+ <spirit:access>read-write</spirit:access>
263
+ <spirit:reset>
264
+ <spirit:value>0x0</spirit:value>
265
+ <spirit:mask>0x0001</spirit:mask>
266
+ </spirit:reset>
267
+ <spirit:field>
268
+ <spirit:name>enable</spirit:name>
269
+ <spirit:description>Enables the timer when set.</spirit:description>
270
+ <spirit:bitOffset>0</spirit:bitOffset>
271
+ <spirit:bitWidth>1</spirit:bitWidth>
272
+ <spirit:volatile>true</spirit:volatile>
273
+ <spirit:access>read-write</spirit:access>
274
+ <spirit:testable>false</spirit:testable>
275
+ </spirit:field>
276
+ <spirit:field>
277
+ <spirit:name>reloadCounter</spirit:name>
278
+ <spirit:description>When set to 1 the counter will automatically be reloaded with the reload value after each underflow.</spirit:description>
279
+ <spirit:bitOffset>1</spirit:bitOffset>
280
+ <spirit:bitWidth>1</spirit:bitWidth>
281
+ <spirit:volatile>true</spirit:volatile>
282
+ <spirit:access>read-write</spirit:access>
283
+ <spirit:testable>false</spirit:testable>
284
+ </spirit:field>
285
+ <spirit:field>
286
+ <spirit:name>loadCounter</spirit:name>
287
+ <spirit:description>When written with 1, will load the timer reload register into the timer counter register. Always reads as a 0.</spirit:description>
288
+ <spirit:bitOffset>2</spirit:bitOffset>
289
+ <spirit:bitWidth>1</spirit:bitWidth>
290
+ <spirit:volatile>true</spirit:volatile>
291
+ <spirit:access>read-write</spirit:access>
292
+ <spirit:testable>false</spirit:testable>
293
+ </spirit:field>
294
+ </spirit:register>
295
+ <spirit:register>
296
+ <spirit:name>prescalerCounter</spirit:name>
297
+ <spirit:description>Prescaler Counter</spirit:description>
298
+ <spirit:addressOffset>0x20</spirit:addressOffset>
299
+ <spirit:size>32</spirit:size>
300
+ <spirit:access>read-write</spirit:access>
301
+ <spirit:field>
302
+ <spirit:name>reloadValue</spirit:name>
303
+ <spirit:description>Prescaler Counter Value</spirit:description>
304
+ <spirit:bitOffset>0</spirit:bitOffset>
305
+ <spirit:bitWidth>10</spirit:bitWidth>
306
+ <spirit:volatile>true</spirit:volatile>
307
+ <spirit:access>read-write</spirit:access>
308
+ <spirit:testable>false</spirit:testable>
309
+ </spirit:field>
310
+ <spirit:field>
311
+ <spirit:name>reserved</spirit:name>
312
+ <spirit:description>Reserved</spirit:description>
313
+ <spirit:bitOffset>10</spirit:bitOffset>
314
+ <spirit:bitWidth>22</spirit:bitWidth>
315
+ <spirit:volatile>true</spirit:volatile>
316
+ <spirit:access>read-write</spirit:access>
317
+ <spirit:testable>false</spirit:testable>
318
+ </spirit:field>
319
+ </spirit:register>
320
+ <spirit:register>
321
+ <spirit:name>prescalerReloadValue</spirit:name>
322
+ <spirit:description>Prescaler Reload Value</spirit:description>
323
+ <spirit:addressOffset>0x24</spirit:addressOffset>
324
+ <spirit:size>32</spirit:size>
325
+ <spirit:access>read-write</spirit:access>
326
+ <spirit:field>
327
+ <spirit:name>reloadValue</spirit:name>
328
+ <spirit:description>Prescaler Reload Value</spirit:description>
329
+ <spirit:bitOffset>0</spirit:bitOffset>
330
+ <spirit:bitWidth>10</spirit:bitWidth>
331
+ <spirit:volatile>true</spirit:volatile>
332
+ <spirit:access>read-write</spirit:access>
333
+ <spirit:testable>false</spirit:testable>
334
+ </spirit:field>
335
+ <spirit:field>
336
+ <spirit:name>reserved</spirit:name>
337
+ <spirit:description>Reserved</spirit:description>
338
+ <spirit:bitOffset>10</spirit:bitOffset>
339
+ <spirit:bitWidth>22</spirit:bitWidth>
340
+ <spirit:volatile>true</spirit:volatile>
341
+ <spirit:access>read-write</spirit:access>
342
+ <spirit:testable>false</spirit:testable>
343
+ </spirit:field>
344
+ </spirit:register>
345
+ </spirit:addressBlock>
346
+ </spirit:memoryMap>
347
+ </spirit:memoryMaps>
348
+ <spirit:model>
349
+ <spirit:views>
350
+ <spirit:view>
351
+ <spirit:name>TLM_PV</spirit:name>
352
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
353
+ <spirit:language>systemc</spirit:language>
354
+ <spirit:modelName>timers</spirit:modelName>
355
+ <spirit:fileSetRef>
356
+ <spirit:localName>sourceCode</spirit:localName>
357
+ </spirit:fileSetRef>
358
+ </spirit:view>
359
+ </spirit:views>
360
+ <spirit:ports>
361
+ <spirit:port>
362
+ <spirit:name>apb_slave_port</spirit:name>
363
+ <spirit:transactional>
364
+ <spirit:transTypeDef>
365
+ <spirit:typeName>pv_target_port</spirit:typeName>
366
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
367
+ </spirit:transTypeDef>
368
+ <spirit:service>
369
+ <spirit:initiative>provides</spirit:initiative>
370
+ <spirit:serviceTypeDefs>
371
+ <spirit:serviceTypeDef>
372
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
373
+ <spirit:parameters>
374
+ <spirit:parameter>
375
+ <spirit:name>typedef1</spirit:name>
376
+ <spirit:value>ADDRESS_TYPE</spirit:value>
377
+ </spirit:parameter>
378
+ <spirit:parameter>
379
+ <spirit:name>typedef2</spirit:name>
380
+ <spirit:value>DATA_TYPE</spirit:value>
381
+ </spirit:parameter>
382
+ </spirit:parameters>
383
+ </spirit:serviceTypeDef>
384
+ </spirit:serviceTypeDefs>
385
+ </spirit:service>
386
+ </spirit:transactional>
387
+ </spirit:port>
388
+ <spirit:port>
389
+ <spirit:name>int0</spirit:name>
390
+ <spirit:wire>
391
+ <spirit:direction>out</spirit:direction>
392
+ <spirit:wireTypeDefs>
393
+ <spirit:wireTypeDef>
394
+ <spirit:typeName>int</spirit:typeName>
395
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
396
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
397
+ </spirit:wireTypeDef>
398
+ </spirit:wireTypeDefs>
399
+ </spirit:wire>
400
+ </spirit:port>
401
+ <spirit:port>
402
+ <spirit:name>int1</spirit:name>
403
+ <spirit:wire>
404
+ <spirit:direction>out</spirit:direction>
405
+ <spirit:wireTypeDefs>
406
+ <spirit:wireTypeDef>
407
+ <spirit:typeName>int</spirit:typeName>
408
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
409
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
410
+ </spirit:wireTypeDef>
411
+ </spirit:wireTypeDefs>
412
+ </spirit:wire>
413
+ </spirit:port>
414
+ <spirit:port>
415
+ <spirit:name>clk</spirit:name>
416
+ <spirit:wire>
417
+ <spirit:direction>in</spirit:direction>
418
+ <spirit:wireTypeDefs>
419
+ <spirit:wireTypeDef>
420
+ <spirit:typeName>sc_logic</spirit:typeName>
421
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
422
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
423
+ </spirit:wireTypeDef>
424
+ </spirit:wireTypeDefs>
425
+ </spirit:wire>
426
+ </spirit:port>
427
+ </spirit:ports>
428
+ </spirit:model>
429
+ <spirit:fileSets>
430
+ <spirit:fileSet>
431
+ <spirit:name>sourceCode</spirit:name>
432
+ <spirit:file>
433
+ <spirit:name>tlmsrc/timers.cc</spirit:name>
434
+ <spirit:fileType>systemCSource</spirit:fileType>
435
+ </spirit:file>
436
+ <spirit:file>
437
+ <spirit:name>tlmsrc/timers.h</spirit:name>
438
+ <spirit:fileType>systemCSource</spirit:fileType>
439
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
440
+ <spirit:logicalName>timers</spirit:logicalName>
441
+ <spirit:dependency>../../PV</spirit:dependency>
442
+ </spirit:file>
443
+ <spirit:file>
444
+ <spirit:name>../../PV/pv_slave_base.h</spirit:name>
445
+ <spirit:fileType>unknown</spirit:fileType>
446
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
447
+ </spirit:file>
448
+ <spirit:file>
449
+ <spirit:name>../../PV/pv_target_port.h</spirit:name>
450
+ <spirit:fileType>unknown</spirit:fileType>
451
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
452
+ </spirit:file>
453
+ <spirit:file>
454
+ <spirit:name>../../PV/user_types.h</spirit:name>
455
+ <spirit:fileType>unknown</spirit:fileType>
456
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
457
+ </spirit:file>
458
+ </spirit:fileSet>
459
+ </spirit:fileSets>
460
+ </spirit:component>