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,216 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Revision: $Revision: 1506 $
|
|
3
|
+
// Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
|
|
6
|
+
//
|
|
7
|
+
// This work forms part of a deliverable of The SPIRIT Consortium.
|
|
8
|
+
//
|
|
9
|
+
// Use of these materials are governed by the legal terms and conditions
|
|
10
|
+
// outlined in the disclaimer available from www.spiritconsortium.org.
|
|
11
|
+
//
|
|
12
|
+
// This source file is provided on an AS IS basis. The SPIRIT
|
|
13
|
+
// Consortium disclaims any warranty express or implied including
|
|
14
|
+
// any warranty of merchantability and fitness for use for a
|
|
15
|
+
// particular purpose.
|
|
16
|
+
//
|
|
17
|
+
// The user of the source file shall indemnify and hold The SPIRIT
|
|
18
|
+
// Consortium and its members harmless from any damages or liability.
|
|
19
|
+
// Users are requested to provide feedback to The SPIRIT Consortium
|
|
20
|
+
// using either mailto:feedback@lists.spiritconsortium.org or the forms at
|
|
21
|
+
// http://www.spiritconsortium.org/about/contact_us/
|
|
22
|
+
//
|
|
23
|
+
// This file may be copied, and distributed, with or without
|
|
24
|
+
// modifications; this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
#ifndef _LEON2_UART_H_
|
|
27
|
+
#define _LEON2_UART_H_
|
|
28
|
+
|
|
29
|
+
/* -----------------------------------------------------------------------
|
|
30
|
+
* Includes
|
|
31
|
+
* ----------------------------------------------------------------------- */
|
|
32
|
+
|
|
33
|
+
#include <vector>
|
|
34
|
+
#include <exception>
|
|
35
|
+
#include <iostream>
|
|
36
|
+
#include <iomanip>
|
|
37
|
+
#include <string>
|
|
38
|
+
|
|
39
|
+
#include "systemc.h" /* SystemC include file */
|
|
40
|
+
#include "tlmreg_Leon2_uart.h" /* Register Class declaration */
|
|
41
|
+
|
|
42
|
+
#include "tlm_event.h" /* tlm randomize timing file */
|
|
43
|
+
#include "tlm_host_def.h"
|
|
44
|
+
/* tlm datatype and address typedef */
|
|
45
|
+
|
|
46
|
+
#include "tlm_module.h"
|
|
47
|
+
#include "tlm_transaction_counter.h"
|
|
48
|
+
|
|
49
|
+
#include "tac_slave_base.h" /* the tac files */
|
|
50
|
+
|
|
51
|
+
#include "tac_target_port.h"
|
|
52
|
+
|
|
53
|
+
/* -----------------------------------------------------------------------
|
|
54
|
+
* Defines
|
|
55
|
+
* ----------------------------------------------------------------------- */
|
|
56
|
+
using prt_tlm_tac::BYTE_LANE_0;
|
|
57
|
+
using prt_tlm_tac::BYTE_LANE_1;
|
|
58
|
+
using prt_tlm_tac::BYTE_LANE_2;
|
|
59
|
+
using prt_tlm_tac::BYTE_LANE_3;
|
|
60
|
+
using prt_tlm_tac::BYTE_LANE_4;
|
|
61
|
+
using prt_tlm_tac::BYTE_LANE_5;
|
|
62
|
+
using prt_tlm_tac::BYTE_LANE_6;
|
|
63
|
+
using prt_tlm_tac::BYTE_LANE_7;
|
|
64
|
+
|
|
65
|
+
using namespace std;
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
namespace Leon2 {
|
|
69
|
+
|
|
70
|
+
class uart :
|
|
71
|
+
public sc_module,
|
|
72
|
+
// derivation of the protocol IF
|
|
73
|
+
public prt_tlm_tac::tac_slave_base<tlm_uint32_t,tlm_uint32_t>
|
|
74
|
+
{
|
|
75
|
+
|
|
76
|
+
bool m_mau_byte; // memory minimum allocation unit mode (0 = word, 1 = byte)
|
|
77
|
+
|
|
78
|
+
/* -----------------------------------------------------------------------
|
|
79
|
+
* Internal variables private, public and internal events
|
|
80
|
+
* ----------------------------------------------------------------------- */
|
|
81
|
+
|
|
82
|
+
private:
|
|
83
|
+
|
|
84
|
+
/* -----------------------------------------------------------------------
|
|
85
|
+
* Register Map
|
|
86
|
+
* ----------------------------------------------------------------------- */
|
|
87
|
+
uart_data_tlm_register data; // Data read/write register
|
|
88
|
+
uart_status_tlm_register status; // Status register
|
|
89
|
+
uart_control_tlm_register control; // Control register
|
|
90
|
+
uart_scalarReload_tlm_register scalarReload; // Scalar reload register
|
|
91
|
+
|
|
92
|
+
public:
|
|
93
|
+
|
|
94
|
+
/* -----------------------------------------------------------------------
|
|
95
|
+
* BusInterFace/port Definitions
|
|
96
|
+
* ----------------------------------------------------------------------- */
|
|
97
|
+
|
|
98
|
+
// target Interface - Leon2_uart
|
|
99
|
+
prt_tlm_tac::tac_target_port<tlm_uint32_t,tlm_uint32_t> ambaAPB;
|
|
100
|
+
|
|
101
|
+
// Initiator Interface - Leon2_uart
|
|
102
|
+
|
|
103
|
+
/* -----------------------------------------------------------------------
|
|
104
|
+
* Variables taking the values of the constructor parameters
|
|
105
|
+
* ----------------------------------------------------------------------- */
|
|
106
|
+
bool resetOnInitialize_c;
|
|
107
|
+
unsigned int debugLevel_c;
|
|
108
|
+
|
|
109
|
+
// Model endianness
|
|
110
|
+
tlm_endianness endianness_c;
|
|
111
|
+
|
|
112
|
+
// internal usage for array of registers
|
|
113
|
+
int index;
|
|
114
|
+
tlm_uint32_t data_ambaAPB_tske;
|
|
115
|
+
|
|
116
|
+
/* -----------------------------------------------------------------------
|
|
117
|
+
* OverLoaded Virtual Functions
|
|
118
|
+
* ----------------------------------------------------------------------- */
|
|
119
|
+
// Generic register Reset
|
|
120
|
+
void reset(void);
|
|
121
|
+
|
|
122
|
+
void printstatus();
|
|
123
|
+
|
|
124
|
+
// Read access
|
|
125
|
+
virtual prt_tlm_tac::tac_status read(const tlm_uint32_t& address, tlm_uint32_t& data,
|
|
126
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
127
|
+
const unsigned int byte_enable = prt_tlm_tac::NO_BE,
|
|
128
|
+
const prt_tlm_tac::tac_mode mode = prt_tlm_tac::DEFAULT,
|
|
129
|
+
const unsigned int target_port_id = 0
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
//----------------------------
|
|
133
|
+
// Write access
|
|
134
|
+
virtual prt_tlm_tac::tac_status write(const tlm_uint32_t& address, const tlm_uint32_t& data,
|
|
135
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
136
|
+
const unsigned int byte_enable = prt_tlm_tac::NO_BE,
|
|
137
|
+
const prt_tlm_tac::tac_mode mode = prt_tlm_tac::DEFAULT,
|
|
138
|
+
const unsigned int target_port_id = 0
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
//----------------------------
|
|
142
|
+
// Read access block
|
|
143
|
+
virtual prt_tlm_tac::tac_status read_block(const tlm_uint32_t& address, tlm_uint32_t * block_data,
|
|
144
|
+
const unsigned int number,
|
|
145
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
146
|
+
unsigned int * block_byte_enable = NULL,
|
|
147
|
+
const unsigned int block_byte_enable_period = 1,
|
|
148
|
+
const prt_tlm_tac::tac_mode mode = prt_tlm_tac::DEFAULT,
|
|
149
|
+
const unsigned int target_port_id = 0
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
//----------------------------
|
|
153
|
+
// Write access block
|
|
154
|
+
virtual prt_tlm_tac::tac_status write_block(const tlm_uint32_t& address, const tlm_uint32_t * block_data,
|
|
155
|
+
const unsigned int number,
|
|
156
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
157
|
+
unsigned int * block_byte_enable = NULL,
|
|
158
|
+
const unsigned int block_byte_enable_period = 1,
|
|
159
|
+
const prt_tlm_tac::tac_mode mode = prt_tlm_tac::DEFAULT,
|
|
160
|
+
const unsigned int target_port_id = 0
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
//---------------------------------------
|
|
164
|
+
// Get info about target
|
|
165
|
+
virtual prt_tlm_tac::tac_status get_target_info(const tlm_uint32_t& address,
|
|
166
|
+
prt_tlm_tac::tac_metadata& metadata,
|
|
167
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
168
|
+
const unsigned int target_port_id = 0
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
//---------------------------------------
|
|
172
|
+
// Set info about target
|
|
173
|
+
virtual prt_tlm_tac::tac_status set_target_info(const tlm_uint32_t& address,
|
|
174
|
+
const prt_tlm_tac::tac_metadata& metadata,
|
|
175
|
+
prt_tlm_tac::tac_error_reason& error_reason,
|
|
176
|
+
const unsigned int target_port_id = 0
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
/* -----------------------------------------------------------------------
|
|
181
|
+
* sc_object kind infos
|
|
182
|
+
* ----------------------------------------------------------------------- */
|
|
183
|
+
|
|
184
|
+
static const char* const kind_string;
|
|
185
|
+
|
|
186
|
+
virtual const char* kind() const
|
|
187
|
+
{
|
|
188
|
+
return kind_string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* -----------------------------------------------------------------------
|
|
192
|
+
* Leon2_uart Internal SC_METHODS and SC_THREADS ( Functions )
|
|
193
|
+
* ----------------------------------------------------------------------- */
|
|
194
|
+
|
|
195
|
+
void method_and_thread_sensitivity();
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
/* -----------------------------------------------------------------------
|
|
199
|
+
* Constructor for Leon2_uart.
|
|
200
|
+
* ----------------------------------------------------------------------- */
|
|
201
|
+
|
|
202
|
+
SC_HAS_PROCESS(uart);
|
|
203
|
+
uart(sc_module_name module_name,
|
|
204
|
+
bool resetOnInitialize = true, // whether reset() should be invoked at startup time
|
|
205
|
+
unsigned int debugLevel = 0, // level of debugging
|
|
206
|
+
tlm_endianness endianness = TLM_BIG_ENDIAN // endianness of the IP
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
/* -----------------------------------------------------------------------
|
|
210
|
+
* Destructor for Leon2_uart
|
|
211
|
+
* ----------------------------------------------------------------------- */
|
|
212
|
+
|
|
213
|
+
~uart();
|
|
214
|
+
};
|
|
215
|
+
} // end namespace Leon2
|
|
216
|
+
#endif /* _LEON2_UART_H_ */
|
data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Revision: $Revision: 1506 $
|
|
3
|
+
// Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
|
|
6
|
+
//
|
|
7
|
+
// This work forms part of a deliverable of The SPIRIT Consortium.
|
|
8
|
+
//
|
|
9
|
+
// Use of these materials are governed by the legal terms and conditions
|
|
10
|
+
// outlined in the disclaimer available from www.spiritconsortium.org.
|
|
11
|
+
//
|
|
12
|
+
// This source file is provided on an AS IS basis. The SPIRIT
|
|
13
|
+
// Consortium disclaims any warranty express or implied including
|
|
14
|
+
// any warranty of merchantability and fitness for use for a
|
|
15
|
+
// particular purpose.
|
|
16
|
+
//
|
|
17
|
+
// The user of the source file shall indemnify and hold The SPIRIT
|
|
18
|
+
// Consortium and its members harmless from any damages or liability.
|
|
19
|
+
// Users are requested to provide feedback to The SPIRIT Consortium
|
|
20
|
+
// using either mailto:feedback@lists.spiritconsortium.org or the forms at
|
|
21
|
+
// http://www.spiritconsortium.org/about/contact_us/
|
|
22
|
+
//
|
|
23
|
+
// This file may be copied, and distributed, with or without
|
|
24
|
+
// modifications; this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
// define of the Businterface ID
|
|
27
|
+
#define Leon2_uart_ambaAPB_ID 0
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// define of the registers ID (offset for the register + baseaddress of the addressblock)
|
|
31
|
+
#define data_offset 0x0 + 0x0 // Data read/write register
|
|
32
|
+
#define status_offset 0x4 + 0x0 // Status register
|
|
33
|
+
#define control_offset 0x8 + 0x0 // Control register
|
|
34
|
+
#define scalarReload_offset 0xC + 0x0 // Scalar reload register
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Revision: $Revision: 1506 $
|
|
3
|
+
// Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
|
|
6
|
+
//
|
|
7
|
+
// This work forms part of a deliverable of The SPIRIT Consortium.
|
|
8
|
+
//
|
|
9
|
+
// Use of these materials are governed by the legal terms and conditions
|
|
10
|
+
// outlined in the disclaimer available from www.spiritconsortium.org.
|
|
11
|
+
//
|
|
12
|
+
// This source file is provided on an AS IS basis. The SPIRIT
|
|
13
|
+
// Consortium disclaims any warranty express or implied including
|
|
14
|
+
// any warranty of merchantability and fitness for use for a
|
|
15
|
+
// particular purpose.
|
|
16
|
+
//
|
|
17
|
+
// The user of the source file shall indemnify and hold The SPIRIT
|
|
18
|
+
// Consortium and its members harmless from any damages or liability.
|
|
19
|
+
// Users are requested to provide feedback to The SPIRIT Consortium
|
|
20
|
+
// using either mailto:feedback@lists.spiritconsortium.org or the forms at
|
|
21
|
+
// http://www.spiritconsortium.org/about/contact_us/
|
|
22
|
+
//
|
|
23
|
+
// This file may be copied, and distributed, with or without
|
|
24
|
+
// modifications; this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
#ifndef _tlm_field_H_
|
|
27
|
+
#define _tlm_field_H_
|
|
28
|
+
|
|
29
|
+
//----------------------------------------------------------------------------
|
|
30
|
+
/// CLASS : tlm_field
|
|
31
|
+
//----------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
template<typename DATATYPE, int width>
|
|
34
|
+
class tlm_field
|
|
35
|
+
{
|
|
36
|
+
private:
|
|
37
|
+
DATATYPE m_value;
|
|
38
|
+
DATATYPE m_mask;
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
|
|
42
|
+
/* Build a new tlm_field item.*/
|
|
43
|
+
tlm_field() {
|
|
44
|
+
m_mask = 0;
|
|
45
|
+
for(int bit = 0; bit < width; bit++)
|
|
46
|
+
{
|
|
47
|
+
m_mask |= (1U << bit);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/* Destructor */
|
|
51
|
+
~tlm_field(){};
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
void write(DATATYPE value) {
|
|
55
|
+
m_value = m_mask & value;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const tlm_field& operator=(DATATYPE value) {
|
|
59
|
+
write(value);
|
|
60
|
+
return( *this );
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
DATATYPE read() {
|
|
64
|
+
return(m_value);
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
#endif //_tlm_field_H_
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Revision: $Revision: 1506 $
|
|
3
|
+
// Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2005, 2006, 2007, 2008, 2009 The SPIRIT Consortium.
|
|
6
|
+
//
|
|
7
|
+
// This work forms part of a deliverable of The SPIRIT Consortium.
|
|
8
|
+
//
|
|
9
|
+
// Use of these materials are governed by the legal terms and conditions
|
|
10
|
+
// outlined in the disclaimer available from www.spiritconsortium.org.
|
|
11
|
+
//
|
|
12
|
+
// This source file is provided on an AS IS basis. The SPIRIT
|
|
13
|
+
// Consortium disclaims any warranty express or implied including
|
|
14
|
+
// any warranty of merchantability and fitness for use for a
|
|
15
|
+
// particular purpose.
|
|
16
|
+
//
|
|
17
|
+
// The user of the source file shall indemnify and hold The SPIRIT
|
|
18
|
+
// Consortium and its members harmless from any damages or liability.
|
|
19
|
+
// Users are requested to provide feedback to The SPIRIT Consortium
|
|
20
|
+
// using either mailto:feedback@lists.spiritconsortium.org or the forms at
|
|
21
|
+
// http://www.spiritconsortium.org/about/contact_us/
|
|
22
|
+
//
|
|
23
|
+
// This file may be copied, and distributed, with or without
|
|
24
|
+
// modifications; this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
#ifndef _TLM_REGISTER_H_
|
|
27
|
+
#define _TLM_REGISTER_H_
|
|
28
|
+
|
|
29
|
+
/*------------------------------------------------------------------------------
|
|
30
|
+
* Includes
|
|
31
|
+
*----------------------------------------------------------------------------*/
|
|
32
|
+
|
|
33
|
+
#include "tlm_field.h"
|
|
34
|
+
#include "tlm_host_def.h"
|
|
35
|
+
#include "systemc.h" /* SystemC include file */
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
//----------------------------------------------------------------------------
|
|
39
|
+
/// CLASS : tlm_register_<size>
|
|
40
|
+
//----------------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/* tlm_uint8_t */
|
|
44
|
+
class tlm_register_8 {
|
|
45
|
+
public:
|
|
46
|
+
|
|
47
|
+
tlm_register_8(){};
|
|
48
|
+
|
|
49
|
+
/* Destructor */
|
|
50
|
+
virtual ~tlm_register_8(){};
|
|
51
|
+
|
|
52
|
+
virtual void write(tlm_uint8_t value){};
|
|
53
|
+
|
|
54
|
+
const tlm_register_8& operator=(const tlm_uint8_t value) {
|
|
55
|
+
write(value);
|
|
56
|
+
return( *this );
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
virtual tlm_uint8_t read(){ return 0; };
|
|
60
|
+
|
|
61
|
+
virtual void reset(){};
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/* tlm_uint16_t */
|
|
65
|
+
class tlm_register_16 {
|
|
66
|
+
public:
|
|
67
|
+
|
|
68
|
+
tlm_register_16(){};
|
|
69
|
+
|
|
70
|
+
/* Destructor */
|
|
71
|
+
virtual ~tlm_register_16(){};
|
|
72
|
+
|
|
73
|
+
virtual void write(tlm_uint16_t value){};
|
|
74
|
+
|
|
75
|
+
const tlm_register_16& operator=(const tlm_uint16_t value) {
|
|
76
|
+
write(value);
|
|
77
|
+
return( *this );
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
virtual tlm_uint16_t read(){ return 0; };
|
|
81
|
+
|
|
82
|
+
virtual void reset(){};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
/* tlm_uint32_t */
|
|
87
|
+
class tlm_register_32 {
|
|
88
|
+
public:
|
|
89
|
+
|
|
90
|
+
tlm_register_32(){};
|
|
91
|
+
|
|
92
|
+
/* Destructor */
|
|
93
|
+
virtual ~tlm_register_32(){};
|
|
94
|
+
|
|
95
|
+
virtual void write(tlm_uint32_t value){};
|
|
96
|
+
|
|
97
|
+
const tlm_register_32& operator=(const tlm_uint32_t value) {
|
|
98
|
+
write(value);
|
|
99
|
+
return( *this );
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
virtual tlm_uint32_t read(){ return 0; };
|
|
103
|
+
|
|
104
|
+
virtual void reset(){};
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
/* tlm_uint64_t */
|
|
109
|
+
class tlm_register_64 {
|
|
110
|
+
public:
|
|
111
|
+
|
|
112
|
+
tlm_register_64(){};
|
|
113
|
+
|
|
114
|
+
/* Destructor */
|
|
115
|
+
virtual ~tlm_register_64(){};
|
|
116
|
+
|
|
117
|
+
virtual void write(tlm_uint64_t value){};
|
|
118
|
+
|
|
119
|
+
const tlm_register_64& operator=(const tlm_uint64_t value) {
|
|
120
|
+
write(value);
|
|
121
|
+
return( *this );
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
virtual tlm_uint64_t read(){ return 0; };
|
|
125
|
+
|
|
126
|
+
virtual void reset(){};
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
#endif /* _TLM_REGISTER_H_ */
|