ipxact-ruby 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. data/.autotest +15 -0
  2. data/.gitignore +2 -0
  3. data/README.html +89 -0
  4. data/README.mdown +91 -0
  5. data/Rakefile +31 -0
  6. data/VERSION +1 -0
  7. data/autotest/discover.rb +17 -0
  8. data/lib/ipxact.rb +263 -0
  9. data/lib/ipxact/component.rb +235 -0
  10. data/lib/ipxact/parser.rb +27 -0
  11. data/lib/ipxact/parser/bus_data_parser.rb +229 -0
  12. data/lib/ipxact/parser/component_data_parser.rb +309 -0
  13. data/lib/ipxact/parser/platform_data_parser.rb +63 -0
  14. data/lib/ipxact/pathfinder/graph_pathfinder.rb +191 -0
  15. data/lib/ipxact/platform.rb +43 -0
  16. data/schemas/abstractionDefinition.xsd +332 -0
  17. data/schemas/abstractor.xsd +156 -0
  18. data/schemas/autoConfigure.xsd +226 -0
  19. data/schemas/busDefinition.xsd +99 -0
  20. data/schemas/busInterface.xsd +640 -0
  21. data/schemas/commonStructures.xsd +189 -0
  22. data/schemas/component.xsd +253 -0
  23. data/schemas/configurable.xsd +82 -0
  24. data/schemas/constraints.xsd +283 -0
  25. data/schemas/design.xsd +105 -0
  26. data/schemas/designConfig.xsd +144 -0
  27. data/schemas/file.xsd +560 -0
  28. data/schemas/fileType.xsd +86 -0
  29. data/schemas/generator.xsd +240 -0
  30. data/schemas/identifier.xsd +93 -0
  31. data/schemas/index.xsd +67 -0
  32. data/schemas/memoryMap.xsd +1007 -0
  33. data/schemas/model.xsd +291 -0
  34. data/schemas/port.xsd +441 -0
  35. data/schemas/signalDrivers.xsd +220 -0
  36. data/schemas/simpleTypes.xsd +90 -0
  37. data/schemas/subInstances.xsd +256 -0
  38. data/spec/integration/bus_data_extraction_spec.rb +105 -0
  39. data/spec/integration/data_calculation_spec.rb +133 -0
  40. data/spec/integration/data_construction_spec.rb +52 -0
  41. data/spec/integration/general_spec.rb +121 -0
  42. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.h +135 -0
  43. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.tpp +247 -0
  44. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port_base.h +189 -0
  45. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.h +205 -0
  46. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.tpp +278 -0
  47. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.h +115 -0
  48. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.tpp +126 -0
  49. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port.h +168 -0
  50. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port_base.h +133 -0
  51. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_tlm_if.h +280 -0
  52. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/user_types.h +38 -0
  53. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/Leon2Platform.xml +77 -0
  54. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/design_Leon2Platform.xml +156 -0
  55. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/tlmsrc/Leon2Platform.h +149 -0
  56. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/apbSubSystem.xml +406 -0
  57. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/design_apbSubSystem.xml +135 -0
  58. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/tlmsrc/apbSubSystem.h +133 -0
  59. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/Leon2Platform.xml +77 -0
  60. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/design_Leon2Platform.xml +157 -0
  61. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/tlmsrc/Leon2Platform.h +150 -0
  62. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/apbSubSystem.xml +422 -0
  63. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/designConfig_apbSubSystem.xml +79 -0
  64. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/design_apbSubSystem.xml +184 -0
  65. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/tlmsrc/apbSubSystem.h +164 -0
  66. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/Leon2Platform.xml +105 -0
  67. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/design_Leon2Platform.xml +157 -0
  68. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/tlmsrc/Leon2Platform.h +152 -0
  69. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/apbSubSystem.xml +429 -0
  70. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/designConfig_apbSubSystem.xml +64 -0
  71. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/design_apbSubSystem.xml +150 -0
  72. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/tlmsrc/apbSubSystem.h +167 -0
  73. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/ahbbus22.xml +236 -0
  74. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/tlmsrc/ahbbus.h +52 -0
  75. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/ahbram.xml +184 -0
  76. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.cc +93 -0
  77. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.h +77 -0
  78. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/apbbus8.xml +544 -0
  79. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/tlmsrc/apbbus.h +55 -0
  80. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/apbmst.xml +209 -0
  81. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/tlmsrc/apbmst.h +53 -0
  82. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/apbram.xml +395 -0
  83. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.cc +89 -0
  84. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.h +69 -0
  85. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.v +82 -0
  86. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.vhd +132 -0
  87. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/cgu.xml +686 -0
  88. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.cc +121 -0
  89. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.h +81 -0
  90. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/cgu.xml +707 -0
  91. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.cc +121 -0
  92. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.h +81 -0
  93. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/dma.xml +272 -0
  94. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.cc +230 -0
  95. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.h +116 -0
  96. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/irqctrl.xml +530 -0
  97. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.cc +211 -0
  98. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.h +108 -0
  99. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/processor.xml +423 -0
  100. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.cc +331 -0
  101. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.h +121 -0
  102. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/pv2apb.xml +240 -0
  103. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.cc +153 -0
  104. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.h +77 -0
  105. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/pv2tac.xml +154 -0
  106. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.cc +114 -0
  107. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.h +67 -0
  108. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/rgu.xml +766 -0
  109. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.cc +126 -0
  110. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.h +105 -0
  111. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/scmlAdaptor.xml +154 -0
  112. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.cc +100 -0
  113. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.h +62 -0
  114. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/serial_device.xml +151 -0
  115. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/tlmsrc/serial_device.h +85 -0
  116. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/timers.xml +460 -0
  117. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.cc +201 -0
  118. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.h +102 -0
  119. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart.h +152 -0
  120. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_fifo.h +113 -0
  121. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_memory_map.h +96 -0
  122. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_types.h +60 -0
  123. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart.cc +125 -0
  124. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_interrupt_handler.cc +136 -0
  125. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_register_bank.cc +129 -0
  126. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_serial_tx_rx.cc +145 -0
  127. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/uart_scml.xml +372 -0
  128. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/Leon2_uart.h +216 -0
  129. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h +34 -0
  130. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_field.h +72 -0
  131. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_register.h +129 -0
  132. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlmreg_Leon2_uart.h +133 -0
  133. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/Leon2_uart.cc +316 -0
  134. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/tlmreg_Leon2_uart.cc +197 -0
  135. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/user_specific_Leon2_uart.cc +146 -0
  136. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/uart_tac.xml +222 -0
  137. data/spec/unit/component_spec.rb +98 -0
  138. data/spec/unit/graph_pathfinder_spec.rb +128 -0
  139. data/spec/unit/interconnect_spec.rb +177 -0
  140. data/spec/unit/ipxact_spec.rb +69 -0
  141. data/spec/unit/platform_spec.rb +34 -0
  142. metadata +225 -0
@@ -0,0 +1,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>