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.
- data/.autotest +15 -0
- data/.gitignore +2 -0
- data/README.html +89 -0
- data/README.mdown +91 -0
- data/Rakefile +31 -0
- data/VERSION +1 -0
- data/autotest/discover.rb +17 -0
- data/lib/ipxact.rb +263 -0
- data/lib/ipxact/component.rb +235 -0
- data/lib/ipxact/parser.rb +27 -0
- data/lib/ipxact/parser/bus_data_parser.rb +229 -0
- data/lib/ipxact/parser/component_data_parser.rb +309 -0
- data/lib/ipxact/parser/platform_data_parser.rb +63 -0
- data/lib/ipxact/pathfinder/graph_pathfinder.rb +191 -0
- data/lib/ipxact/platform.rb +43 -0
- data/schemas/abstractionDefinition.xsd +332 -0
- data/schemas/abstractor.xsd +156 -0
- data/schemas/autoConfigure.xsd +226 -0
- data/schemas/busDefinition.xsd +99 -0
- data/schemas/busInterface.xsd +640 -0
- data/schemas/commonStructures.xsd +189 -0
- data/schemas/component.xsd +253 -0
- data/schemas/configurable.xsd +82 -0
- data/schemas/constraints.xsd +283 -0
- data/schemas/design.xsd +105 -0
- data/schemas/designConfig.xsd +144 -0
- data/schemas/file.xsd +560 -0
- data/schemas/fileType.xsd +86 -0
- data/schemas/generator.xsd +240 -0
- data/schemas/identifier.xsd +93 -0
- data/schemas/index.xsd +67 -0
- data/schemas/memoryMap.xsd +1007 -0
- data/schemas/model.xsd +291 -0
- data/schemas/port.xsd +441 -0
- data/schemas/signalDrivers.xsd +220 -0
- data/schemas/simpleTypes.xsd +90 -0
- data/schemas/subInstances.xsd +256 -0
- data/spec/integration/bus_data_extraction_spec.rb +105 -0
- data/spec/integration/data_calculation_spec.rb +133 -0
- data/spec/integration/data_construction_spec.rb +52 -0
- data/spec/integration/general_spec.rb +121 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.h +135 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.tpp +247 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port_base.h +189 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.h +205 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.tpp +278 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.h +115 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.tpp +126 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port.h +168 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port_base.h +133 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_tlm_if.h +280 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/user_types.h +38 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/Leon2Platform.xml +77 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/design_Leon2Platform.xml +156 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/tlmsrc/Leon2Platform.h +149 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/apbSubSystem.xml +406 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/design_apbSubSystem.xml +135 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/tlmsrc/apbSubSystem.h +133 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/Leon2Platform.xml +77 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/design_Leon2Platform.xml +157 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/tlmsrc/Leon2Platform.h +150 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/apbSubSystem.xml +422 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/designConfig_apbSubSystem.xml +79 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/design_apbSubSystem.xml +184 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/tlmsrc/apbSubSystem.h +164 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/Leon2Platform.xml +105 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/design_Leon2Platform.xml +157 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/tlmsrc/Leon2Platform.h +152 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/apbSubSystem.xml +429 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/designConfig_apbSubSystem.xml +64 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/design_apbSubSystem.xml +150 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/tlmsrc/apbSubSystem.h +167 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/ahbbus22.xml +236 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/tlmsrc/ahbbus.h +52 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/ahbram.xml +184 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.cc +93 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.h +77 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/apbbus8.xml +544 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/tlmsrc/apbbus.h +55 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/apbmst.xml +209 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/tlmsrc/apbmst.h +53 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/apbram.xml +395 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.cc +89 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.h +69 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.v +82 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.vhd +132 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/cgu.xml +686 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.cc +121 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.h +81 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/cgu.xml +707 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.cc +121 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.h +81 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/dma.xml +272 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.cc +230 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.h +116 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/irqctrl.xml +530 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.cc +211 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.h +108 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/processor.xml +423 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.cc +331 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.h +121 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/pv2apb.xml +240 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.cc +153 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.h +77 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/pv2tac.xml +154 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.cc +114 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.h +67 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/rgu.xml +766 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.cc +126 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.h +105 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/scmlAdaptor.xml +154 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.cc +100 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.h +62 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/serial_device.xml +151 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/tlmsrc/serial_device.h +85 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/timers.xml +460 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.cc +201 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.h +102 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart.h +152 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_fifo.h +113 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_memory_map.h +96 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_types.h +60 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart.cc +125 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_interrupt_handler.cc +136 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_register_bank.cc +129 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_serial_tx_rx.cc +145 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/uart_scml.xml +372 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/Leon2_uart.h +216 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h +34 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_field.h +72 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_register.h +129 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlmreg_Leon2_uart.h +133 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/Leon2_uart.cc +316 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/tlmreg_Leon2_uart.cc +197 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/user_specific_Leon2_uart.cc +146 -0
- data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/uart_tac.xml +222 -0
- data/spec/unit/component_spec.rb +98 -0
- data/spec/unit/graph_pathfinder_spec.rb +128 -0
- data/spec/unit/interconnect_spec.rb +177 -0
- data/spec/unit/ipxact_spec.rb +69 -0
- data/spec/unit/platform_spec.rb +34 -0
- 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>
|