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,89 @@
|
|
|
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; but this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
/*------------------------------------------------------------------------------
|
|
27
|
+
* Simple APB wire abstraction memory
|
|
28
|
+
*------------------------------------------------------------------------------*/
|
|
29
|
+
|
|
30
|
+
/*------------------------------------------------------------------------------
|
|
31
|
+
* Includes
|
|
32
|
+
*----------------------------------------------------------------------------*/
|
|
33
|
+
#include "apbram.h"
|
|
34
|
+
|
|
35
|
+
/*------------------------------------------------------------------------------
|
|
36
|
+
* Methods
|
|
37
|
+
*----------------------------------------------------------------------------*/
|
|
38
|
+
apbram::apbram( sc_module_name module_name) :
|
|
39
|
+
sc_module( module_name ) ,
|
|
40
|
+
pclk ("pclk"),
|
|
41
|
+
presetn ("presetn"),
|
|
42
|
+
psel ("psel"),
|
|
43
|
+
penable ("penable"),
|
|
44
|
+
pwrite ("pwrite"),
|
|
45
|
+
paddr ("paddr"),
|
|
46
|
+
pwdata ("pwdata"),
|
|
47
|
+
prdata ("prdata")
|
|
48
|
+
{
|
|
49
|
+
SC_METHOD( memory_process );
|
|
50
|
+
sensitive << pclk;
|
|
51
|
+
sensitive << presetn;
|
|
52
|
+
prdata.initialize(0xdeadbeef);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void apbram::end_of_elaboration() {
|
|
56
|
+
cout << name() << " constructed." << endl;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
apbram::~apbram()
|
|
60
|
+
{
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
void apbram::memory_process()
|
|
64
|
+
{
|
|
65
|
+
if (presetn.read() == '0') {
|
|
66
|
+
// cout << name() << " reset" << endl;
|
|
67
|
+
for (int i=0; i<MEMORYDEPTH; i++) {
|
|
68
|
+
memory[i] = "00000000000000000000000000000000";
|
|
69
|
+
}
|
|
70
|
+
memory[MEMORYDEPTH] = "00000000000000000000110100001000";
|
|
71
|
+
} else {
|
|
72
|
+
if (pclk.posedge()) {
|
|
73
|
+
|
|
74
|
+
sc_uint<12> addruint = paddr.read();
|
|
75
|
+
int addr = addruint >> 2;
|
|
76
|
+
if (pwrite.read() == '1' && psel.read() == '1' && penable.read() == '1' && addr < MEMORYDEPTH) {
|
|
77
|
+
// cout << name() << " write addr=" << addr << endl;
|
|
78
|
+
memory[addr] = pwdata.read();
|
|
79
|
+
}
|
|
80
|
+
if (pwrite.read() == '0' && psel.read() == '1' && penable.read() == '1' && addr <= MEMORYDEPTH) {
|
|
81
|
+
sc_uint<32> datauint = memory[addr];
|
|
82
|
+
int data = datauint;
|
|
83
|
+
prdata.write(memory[addr]);
|
|
84
|
+
// cout << name() << " read addr=" << addr << " data=" << data << endl;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
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; but this notice must be included on any copy.
|
|
25
|
+
|
|
26
|
+
/*------------------------------------------------------------------------------
|
|
27
|
+
* Simple APB wire abstraction systemC memory
|
|
28
|
+
* 4K byte addressSpace. address FC = ID = 0xD08
|
|
29
|
+
*------------------------------------------------------------------------------*/
|
|
30
|
+
|
|
31
|
+
#ifndef _APBRAM_H_
|
|
32
|
+
#define _APBRAM_H_
|
|
33
|
+
|
|
34
|
+
/*------------------------------------------------------------------------------
|
|
35
|
+
* Includes
|
|
36
|
+
*----------------------------------------------------------------------------*/
|
|
37
|
+
#include "systemc.h"
|
|
38
|
+
|
|
39
|
+
#define MEMORYDEPTH 1023
|
|
40
|
+
#define MEMORYDEPTHLV "001111111110"
|
|
41
|
+
|
|
42
|
+
/*------------------------------------------------------------------------------
|
|
43
|
+
* APBRAM
|
|
44
|
+
*----------------------------------------------------------------------------*/
|
|
45
|
+
class apbram :
|
|
46
|
+
public sc_module
|
|
47
|
+
{
|
|
48
|
+
public:
|
|
49
|
+
apbram( sc_module_name module_name);
|
|
50
|
+
~apbram();
|
|
51
|
+
SC_HAS_PROCESS( apbram );
|
|
52
|
+
|
|
53
|
+
sc_in<sc_logic> pclk;
|
|
54
|
+
sc_in<sc_logic> presetn;
|
|
55
|
+
sc_in<sc_logic> psel;
|
|
56
|
+
sc_in<sc_logic> penable;
|
|
57
|
+
sc_in<sc_logic> pwrite;
|
|
58
|
+
sc_in<sc_lv<12> > paddr;
|
|
59
|
+
sc_in<sc_lv<32> > pwdata;
|
|
60
|
+
sc_out<sc_lv<32> > prdata;
|
|
61
|
+
|
|
62
|
+
private:
|
|
63
|
+
sc_pvector<sc_lv<32> > memory;
|
|
64
|
+
void end_of_elaboration();
|
|
65
|
+
void memory_process();
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
#endif /* _APBRAM_H_ */
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
+
|
|
27
|
+
// SIMPLE APB MEMORY EXAMPLE. Size = 4K - 4 bytes
|
|
28
|
+
//
|
|
29
|
+
// read only ID register at 0xFFC = 0x00000D08
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
`timescale 1ns/100ps
|
|
33
|
+
`define tQ 1ns
|
|
34
|
+
|
|
35
|
+
module rgu (
|
|
36
|
+
pclk,
|
|
37
|
+
presetn,
|
|
38
|
+
paddr,
|
|
39
|
+
pwrite,
|
|
40
|
+
penable,
|
|
41
|
+
psel,
|
|
42
|
+
pwdata,
|
|
43
|
+
prdata
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
parameter MEMORYDEPTH = 1023; // memory depth
|
|
47
|
+
|
|
48
|
+
input pclk;
|
|
49
|
+
input presetn;
|
|
50
|
+
input [11:0] paddr;
|
|
51
|
+
input psel;
|
|
52
|
+
input penable;
|
|
53
|
+
input pwrite;
|
|
54
|
+
input [31:0] pwdata;
|
|
55
|
+
output [31:0] prdata;
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
reg [31:0] memory [MEMORYDEPTH-1:0]; // memory
|
|
59
|
+
reg [9:0] addr;
|
|
60
|
+
reg [31:0] prdata;
|
|
61
|
+
|
|
62
|
+
integer i;
|
|
63
|
+
|
|
64
|
+
always @ (presetn or posedge clk) begin
|
|
65
|
+
if (!presetn) begin
|
|
66
|
+
for (i=0; i < MEMORYDEPTH; i=i+1)
|
|
67
|
+
memory[i] = 0;
|
|
68
|
+
end
|
|
69
|
+
else begin
|
|
70
|
+
addr = paddr >> 2;
|
|
71
|
+
if (pwrite && penable && psel && addr < MEMORYDEPTH) // Memory Write
|
|
72
|
+
memory[addr] = pwdata;
|
|
73
|
+
if (!pwrite && penable && psel && addr < MEMORYDEPTH) // Memory Read
|
|
74
|
+
prdata <= #(`tQ) memory[addr];
|
|
75
|
+
if (!pwrite && penable && psel && addr == MEMORYDEPTH) // ID register
|
|
76
|
+
prdata <= #(`tQ) 8'hD08;
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
endmodule
|
|
82
|
+
|
|
@@ -0,0 +1,132 @@
|
|
|
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
|
+
|
|
27
|
+
-- SIMPLE APB MEMORY EXAMPLE. Size = 4K - 4 bytes
|
|
28
|
+
--
|
|
29
|
+
-- read only ID register at 0xFFC = 0x00000D08
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
library IEEE;
|
|
33
|
+
use IEEE.STD_LOGIC_1164.ALL;
|
|
34
|
+
use IEEE.Std_Logic_TEXTIO.all;
|
|
35
|
+
use IEEE.STD_LOGIC_ARITH.ALL;
|
|
36
|
+
|
|
37
|
+
entity rgu is
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
port (
|
|
41
|
+
pclk: in std_logic;
|
|
42
|
+
presetn: in std_logic;
|
|
43
|
+
paddr: in std_logic_vector(11 downto 0);
|
|
44
|
+
pwrite: in std_logic;
|
|
45
|
+
penable: in std_logic;
|
|
46
|
+
psel: in std_logic;
|
|
47
|
+
pwdata: in std_logic_vector(31 downto 0);
|
|
48
|
+
prdata: out std_logic_vector(31 downto 0)
|
|
49
|
+
);
|
|
50
|
+
end rgu;
|
|
51
|
+
|
|
52
|
+
-- -----------------------------------------------------------------------------
|
|
53
|
+
architecture rtl of rgu is
|
|
54
|
+
-- -----------------------------------------------------------------------------
|
|
55
|
+
|
|
56
|
+
-- Depth of the APB registers in words
|
|
57
|
+
constant MEMORYDEPTH: natural := 4092;
|
|
58
|
+
|
|
59
|
+
type mem_type is record
|
|
60
|
+
data : std_logic_vector(31 downto 0);
|
|
61
|
+
end record;
|
|
62
|
+
|
|
63
|
+
type mem_vec_type is array (natural range <>) of mem_type;
|
|
64
|
+
|
|
65
|
+
signal memory: mem_vec_type (MEMORYDEPTH-1 downto 0);
|
|
66
|
+
|
|
67
|
+
begin
|
|
68
|
+
|
|
69
|
+
-- ---------------------------------------------------------------------------
|
|
70
|
+
-- assign outputs
|
|
71
|
+
-- ---------------------------------------------------------------------------
|
|
72
|
+
|
|
73
|
+
-- ---------------------------------------------------------------------------
|
|
74
|
+
-- processes
|
|
75
|
+
-- ---------------------------------------------------------------------------
|
|
76
|
+
|
|
77
|
+
ReadMem: process(paddr, psel, pwrite, penable)
|
|
78
|
+
variable addr: natural;
|
|
79
|
+
begin
|
|
80
|
+
|
|
81
|
+
-- pragma translate_off
|
|
82
|
+
addr := 0;
|
|
83
|
+
if not is_x(paddr) then
|
|
84
|
+
-- pragma translate_on
|
|
85
|
+
addr := conv_integer(unsigned(paddr(11 downto 2)));
|
|
86
|
+
-- pragma translate_off
|
|
87
|
+
end if;
|
|
88
|
+
-- pragma translate_on
|
|
89
|
+
|
|
90
|
+
if (pwrite = '0' and psel = '1' and penable = '1') then
|
|
91
|
+
if addr < MEMORYDEPTH then
|
|
92
|
+
prdata <= memory(addr).data; -- read the memory registers
|
|
93
|
+
elsif addr = 1023 then
|
|
94
|
+
prdata <= "00000000000000000000110100001000"; -- read the ID register = 0x00000D08
|
|
95
|
+
else
|
|
96
|
+
prdata <= "00000000000000000000000000000000"; -- else read 0
|
|
97
|
+
end if;
|
|
98
|
+
end if;
|
|
99
|
+
end process;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
WriteMem: process(pclk, presetn)
|
|
103
|
+
variable addr: natural;
|
|
104
|
+
begin
|
|
105
|
+
|
|
106
|
+
if presetn = '0' then
|
|
107
|
+
for addr in 0 to MEMORYDEPTH-1 loop
|
|
108
|
+
memory(addr).data <= "00000000000000000000000000000000";
|
|
109
|
+
end loop;
|
|
110
|
+
|
|
111
|
+
elsif rising_edge(pclk) then
|
|
112
|
+
-- pragma translate_off
|
|
113
|
+
addr := 0;
|
|
114
|
+
if not is_x(paddr) then
|
|
115
|
+
-- pragma translate_on
|
|
116
|
+
addr := conv_integer(unsigned(paddr(11 downto 2)));
|
|
117
|
+
-- pragma translate_off
|
|
118
|
+
end if;
|
|
119
|
+
-- pragma translate_on
|
|
120
|
+
|
|
121
|
+
-- the values are writeable but they get reset again before they are used
|
|
122
|
+
if (pwrite = '1' and psel = '1' and penable = '1') then
|
|
123
|
+
if addr < MEMORYDEPTH then
|
|
124
|
+
memory(addr).data <= pwdata;
|
|
125
|
+
end if;
|
|
126
|
+
end if;
|
|
127
|
+
|
|
128
|
+
end if;
|
|
129
|
+
end process;
|
|
130
|
+
|
|
131
|
+
end rtl;
|
|
132
|
+
|
|
@@ -0,0 +1,686 @@
|
|
|
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>cgu</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>clock0_apb0</spirit:name>
|
|
55
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
56
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
57
|
+
<spirit:master/>
|
|
58
|
+
<spirit:portMaps>
|
|
59
|
+
<spirit:portMap>
|
|
60
|
+
<spirit:logicalPort>
|
|
61
|
+
<spirit:name>CLK</spirit:name>
|
|
62
|
+
</spirit:logicalPort>
|
|
63
|
+
<spirit:physicalPort>
|
|
64
|
+
<spirit:name>clkout</spirit:name>
|
|
65
|
+
<spirit:vector>
|
|
66
|
+
<spirit:left>0</spirit:left>
|
|
67
|
+
<spirit:right>0</spirit:right>
|
|
68
|
+
</spirit:vector>
|
|
69
|
+
</spirit:physicalPort>
|
|
70
|
+
</spirit:portMap>
|
|
71
|
+
</spirit:portMaps>
|
|
72
|
+
</spirit:busInterface>
|
|
73
|
+
<spirit:busInterface>
|
|
74
|
+
<spirit:name>clock1_apb0</spirit:name>
|
|
75
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
76
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
77
|
+
<spirit:master/>
|
|
78
|
+
<spirit:portMaps>
|
|
79
|
+
<spirit:portMap>
|
|
80
|
+
<spirit:logicalPort>
|
|
81
|
+
<spirit:name>CLK</spirit:name>
|
|
82
|
+
</spirit:logicalPort>
|
|
83
|
+
<spirit:physicalPort>
|
|
84
|
+
<spirit:name>clkout</spirit:name>
|
|
85
|
+
<spirit:vector>
|
|
86
|
+
<spirit:left>1</spirit:left>
|
|
87
|
+
<spirit:right>1</spirit:right>
|
|
88
|
+
</spirit:vector>
|
|
89
|
+
</spirit:physicalPort>
|
|
90
|
+
</spirit:portMap>
|
|
91
|
+
</spirit:portMaps>
|
|
92
|
+
</spirit:busInterface>
|
|
93
|
+
<spirit:busInterface>
|
|
94
|
+
<spirit:name>clock2_apb0</spirit:name>
|
|
95
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
96
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
97
|
+
<spirit:master/>
|
|
98
|
+
<spirit:portMaps>
|
|
99
|
+
<spirit:portMap>
|
|
100
|
+
<spirit:logicalPort>
|
|
101
|
+
<spirit:name>CLK</spirit:name>
|
|
102
|
+
</spirit:logicalPort>
|
|
103
|
+
<spirit:physicalPort>
|
|
104
|
+
<spirit:name>clkout</spirit:name>
|
|
105
|
+
<spirit:vector>
|
|
106
|
+
<spirit:left>2</spirit:left>
|
|
107
|
+
<spirit:right>2</spirit:right>
|
|
108
|
+
</spirit:vector>
|
|
109
|
+
</spirit:physicalPort>
|
|
110
|
+
</spirit:portMap>
|
|
111
|
+
</spirit:portMaps>
|
|
112
|
+
</spirit:busInterface>
|
|
113
|
+
<spirit:busInterface>
|
|
114
|
+
<spirit:name>clock3_apb0</spirit:name>
|
|
115
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
116
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
117
|
+
<spirit:master/>
|
|
118
|
+
<spirit:portMaps>
|
|
119
|
+
<spirit:portMap>
|
|
120
|
+
<spirit:logicalPort>
|
|
121
|
+
<spirit:name>CLK</spirit:name>
|
|
122
|
+
</spirit:logicalPort>
|
|
123
|
+
<spirit:physicalPort>
|
|
124
|
+
<spirit:name>clkout</spirit:name>
|
|
125
|
+
<spirit:vector>
|
|
126
|
+
<spirit:left>3</spirit:left>
|
|
127
|
+
<spirit:right>3</spirit:right>
|
|
128
|
+
</spirit:vector>
|
|
129
|
+
</spirit:physicalPort>
|
|
130
|
+
</spirit:portMap>
|
|
131
|
+
</spirit:portMaps>
|
|
132
|
+
</spirit:busInterface>
|
|
133
|
+
<spirit:busInterface>
|
|
134
|
+
<spirit:name>clock4_apb0</spirit:name>
|
|
135
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
136
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
137
|
+
<spirit:master/>
|
|
138
|
+
<spirit:portMaps>
|
|
139
|
+
<spirit:portMap>
|
|
140
|
+
<spirit:logicalPort>
|
|
141
|
+
<spirit:name>CLK</spirit:name>
|
|
142
|
+
</spirit:logicalPort>
|
|
143
|
+
<spirit:physicalPort>
|
|
144
|
+
<spirit:name>clkout</spirit:name>
|
|
145
|
+
<spirit:vector>
|
|
146
|
+
<spirit:left>4</spirit:left>
|
|
147
|
+
<spirit:right>4</spirit:right>
|
|
148
|
+
</spirit:vector>
|
|
149
|
+
</spirit:physicalPort>
|
|
150
|
+
</spirit:portMap>
|
|
151
|
+
</spirit:portMaps>
|
|
152
|
+
</spirit:busInterface>
|
|
153
|
+
<spirit:busInterface>
|
|
154
|
+
<spirit:name>clock5_apb0</spirit:name>
|
|
155
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
156
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
157
|
+
<spirit:master/>
|
|
158
|
+
<spirit:portMaps>
|
|
159
|
+
<spirit:portMap>
|
|
160
|
+
<spirit:logicalPort>
|
|
161
|
+
<spirit:name>CLK</spirit:name>
|
|
162
|
+
</spirit:logicalPort>
|
|
163
|
+
<spirit:physicalPort>
|
|
164
|
+
<spirit:name>clkout</spirit:name>
|
|
165
|
+
<spirit:vector>
|
|
166
|
+
<spirit:left>5</spirit:left>
|
|
167
|
+
<spirit:right>5</spirit:right>
|
|
168
|
+
</spirit:vector>
|
|
169
|
+
</spirit:physicalPort>
|
|
170
|
+
</spirit:portMap>
|
|
171
|
+
</spirit:portMaps>
|
|
172
|
+
</spirit:busInterface>
|
|
173
|
+
<spirit:busInterface>
|
|
174
|
+
<spirit:name>clock6_apb0</spirit:name>
|
|
175
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
176
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
177
|
+
<spirit:master/>
|
|
178
|
+
<spirit:portMaps>
|
|
179
|
+
<spirit:portMap>
|
|
180
|
+
<spirit:logicalPort>
|
|
181
|
+
<spirit:name>CLK</spirit:name>
|
|
182
|
+
</spirit:logicalPort>
|
|
183
|
+
<spirit:physicalPort>
|
|
184
|
+
<spirit:name>clkout</spirit:name>
|
|
185
|
+
<spirit:vector>
|
|
186
|
+
<spirit:left>6</spirit:left>
|
|
187
|
+
<spirit:right>6</spirit:right>
|
|
188
|
+
</spirit:vector>
|
|
189
|
+
</spirit:physicalPort>
|
|
190
|
+
</spirit:portMap>
|
|
191
|
+
</spirit:portMaps>
|
|
192
|
+
</spirit:busInterface>
|
|
193
|
+
<spirit:busInterface>
|
|
194
|
+
<spirit:name>clock7_apb0</spirit:name>
|
|
195
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
196
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
197
|
+
<spirit:master/>
|
|
198
|
+
<spirit:portMaps>
|
|
199
|
+
<spirit:portMap>
|
|
200
|
+
<spirit:logicalPort>
|
|
201
|
+
<spirit:name>CLK</spirit:name>
|
|
202
|
+
</spirit:logicalPort>
|
|
203
|
+
<spirit:physicalPort>
|
|
204
|
+
<spirit:name>clkout</spirit:name>
|
|
205
|
+
<spirit:vector>
|
|
206
|
+
<spirit:left>7</spirit:left>
|
|
207
|
+
<spirit:right>7</spirit:right>
|
|
208
|
+
</spirit:vector>
|
|
209
|
+
</spirit:physicalPort>
|
|
210
|
+
</spirit:portMap>
|
|
211
|
+
</spirit:portMaps>
|
|
212
|
+
</spirit:busInterface>
|
|
213
|
+
<spirit:busInterface>
|
|
214
|
+
<spirit:name>clock0_ahb0</spirit:name>
|
|
215
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
216
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
217
|
+
<spirit:master/>
|
|
218
|
+
<spirit:portMaps>
|
|
219
|
+
<spirit:portMap>
|
|
220
|
+
<spirit:logicalPort>
|
|
221
|
+
<spirit:name>CLK</spirit:name>
|
|
222
|
+
</spirit:logicalPort>
|
|
223
|
+
<spirit:physicalPort>
|
|
224
|
+
<spirit:name>clkout</spirit:name>
|
|
225
|
+
<spirit:vector>
|
|
226
|
+
<spirit:left>0</spirit:left>
|
|
227
|
+
<spirit:right>0</spirit:right>
|
|
228
|
+
</spirit:vector>
|
|
229
|
+
</spirit:physicalPort>
|
|
230
|
+
</spirit:portMap>
|
|
231
|
+
</spirit:portMaps>
|
|
232
|
+
</spirit:busInterface>
|
|
233
|
+
<spirit:busInterface>
|
|
234
|
+
<spirit:name>clock1_ahb0</spirit:name>
|
|
235
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
236
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
237
|
+
<spirit:master/>
|
|
238
|
+
<spirit:portMaps>
|
|
239
|
+
<spirit:portMap>
|
|
240
|
+
<spirit:logicalPort>
|
|
241
|
+
<spirit:name>CLK</spirit:name>
|
|
242
|
+
</spirit:logicalPort>
|
|
243
|
+
<spirit:physicalPort>
|
|
244
|
+
<spirit:name>clkout</spirit:name>
|
|
245
|
+
<spirit:vector>
|
|
246
|
+
<spirit:left>1</spirit:left>
|
|
247
|
+
<spirit:right>1</spirit:right>
|
|
248
|
+
</spirit:vector>
|
|
249
|
+
</spirit:physicalPort>
|
|
250
|
+
</spirit:portMap>
|
|
251
|
+
</spirit:portMaps>
|
|
252
|
+
</spirit:busInterface>
|
|
253
|
+
<spirit:busInterface>
|
|
254
|
+
<spirit:name>clock2_ahb0</spirit:name>
|
|
255
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
256
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
257
|
+
<spirit:master/>
|
|
258
|
+
<spirit:portMaps>
|
|
259
|
+
<spirit:portMap>
|
|
260
|
+
<spirit:logicalPort>
|
|
261
|
+
<spirit:name>CLK</spirit:name>
|
|
262
|
+
</spirit:logicalPort>
|
|
263
|
+
<spirit:physicalPort>
|
|
264
|
+
<spirit:name>clkout</spirit:name>
|
|
265
|
+
<spirit:vector>
|
|
266
|
+
<spirit:left>2</spirit:left>
|
|
267
|
+
<spirit:right>2</spirit:right>
|
|
268
|
+
</spirit:vector>
|
|
269
|
+
</spirit:physicalPort>
|
|
270
|
+
</spirit:portMap>
|
|
271
|
+
</spirit:portMaps>
|
|
272
|
+
</spirit:busInterface>
|
|
273
|
+
<spirit:busInterface>
|
|
274
|
+
<spirit:name>clock3_ahb0</spirit:name>
|
|
275
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
276
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
277
|
+
<spirit:master/>
|
|
278
|
+
<spirit:portMaps>
|
|
279
|
+
<spirit:portMap>
|
|
280
|
+
<spirit:logicalPort>
|
|
281
|
+
<spirit:name>CLK</spirit:name>
|
|
282
|
+
</spirit:logicalPort>
|
|
283
|
+
<spirit:physicalPort>
|
|
284
|
+
<spirit:name>clkout</spirit:name>
|
|
285
|
+
<spirit:vector>
|
|
286
|
+
<spirit:left>3</spirit:left>
|
|
287
|
+
<spirit:right>3</spirit:right>
|
|
288
|
+
</spirit:vector>
|
|
289
|
+
</spirit:physicalPort>
|
|
290
|
+
</spirit:portMap>
|
|
291
|
+
</spirit:portMaps>
|
|
292
|
+
</spirit:busInterface>
|
|
293
|
+
<spirit:busInterface>
|
|
294
|
+
<spirit:name>clock4_ahb0</spirit:name>
|
|
295
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
296
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
297
|
+
<spirit:master/>
|
|
298
|
+
<spirit:portMaps>
|
|
299
|
+
<spirit:portMap>
|
|
300
|
+
<spirit:logicalPort>
|
|
301
|
+
<spirit:name>CLK</spirit:name>
|
|
302
|
+
</spirit:logicalPort>
|
|
303
|
+
<spirit:physicalPort>
|
|
304
|
+
<spirit:name>clkout</spirit:name>
|
|
305
|
+
<spirit:vector>
|
|
306
|
+
<spirit:left>4</spirit:left>
|
|
307
|
+
<spirit:right>4</spirit:right>
|
|
308
|
+
</spirit:vector>
|
|
309
|
+
</spirit:physicalPort>
|
|
310
|
+
</spirit:portMap>
|
|
311
|
+
</spirit:portMaps>
|
|
312
|
+
</spirit:busInterface>
|
|
313
|
+
<spirit:busInterface>
|
|
314
|
+
<spirit:name>clock5_ahb0</spirit:name>
|
|
315
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
316
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
317
|
+
<spirit:master/>
|
|
318
|
+
<spirit:portMaps>
|
|
319
|
+
<spirit:portMap>
|
|
320
|
+
<spirit:logicalPort>
|
|
321
|
+
<spirit:name>CLK</spirit:name>
|
|
322
|
+
</spirit:logicalPort>
|
|
323
|
+
<spirit:physicalPort>
|
|
324
|
+
<spirit:name>clkout</spirit:name>
|
|
325
|
+
<spirit:vector>
|
|
326
|
+
<spirit:left>5</spirit:left>
|
|
327
|
+
<spirit:right>5</spirit:right>
|
|
328
|
+
</spirit:vector>
|
|
329
|
+
</spirit:physicalPort>
|
|
330
|
+
</spirit:portMap>
|
|
331
|
+
</spirit:portMaps>
|
|
332
|
+
</spirit:busInterface>
|
|
333
|
+
<spirit:busInterface>
|
|
334
|
+
<spirit:name>clock6_ahb0</spirit:name>
|
|
335
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
336
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
337
|
+
<spirit:master/>
|
|
338
|
+
<spirit:portMaps>
|
|
339
|
+
<spirit:portMap>
|
|
340
|
+
<spirit:logicalPort>
|
|
341
|
+
<spirit:name>CLK</spirit:name>
|
|
342
|
+
</spirit:logicalPort>
|
|
343
|
+
<spirit:physicalPort>
|
|
344
|
+
<spirit:name>clkout</spirit:name>
|
|
345
|
+
<spirit:vector>
|
|
346
|
+
<spirit:left>6</spirit:left>
|
|
347
|
+
<spirit:right>6</spirit:right>
|
|
348
|
+
</spirit:vector>
|
|
349
|
+
</spirit:physicalPort>
|
|
350
|
+
</spirit:portMap>
|
|
351
|
+
</spirit:portMaps>
|
|
352
|
+
</spirit:busInterface>
|
|
353
|
+
<spirit:busInterface>
|
|
354
|
+
<spirit:name>clock7_ahb0</spirit:name>
|
|
355
|
+
<spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
356
|
+
<spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
|
|
357
|
+
<spirit:master/>
|
|
358
|
+
<spirit:portMaps>
|
|
359
|
+
<spirit:portMap>
|
|
360
|
+
<spirit:logicalPort>
|
|
361
|
+
<spirit:name>CLK</spirit:name>
|
|
362
|
+
</spirit:logicalPort>
|
|
363
|
+
<spirit:physicalPort>
|
|
364
|
+
<spirit:name>clkout</spirit:name>
|
|
365
|
+
<spirit:vector>
|
|
366
|
+
<spirit:left>7</spirit:left>
|
|
367
|
+
<spirit:right>7</spirit:right>
|
|
368
|
+
</spirit:vector>
|
|
369
|
+
</spirit:physicalPort>
|
|
370
|
+
</spirit:portMap>
|
|
371
|
+
</spirit:portMaps>
|
|
372
|
+
</spirit:busInterface>
|
|
373
|
+
</spirit:busInterfaces>
|
|
374
|
+
<spirit:memoryMaps>
|
|
375
|
+
<spirit:memoryMap>
|
|
376
|
+
<spirit:name>APB_MM</spirit:name>
|
|
377
|
+
<spirit:addressBlock>
|
|
378
|
+
<spirit:name>defaultid4490597</spirit:name>
|
|
379
|
+
<spirit:baseAddress>0</spirit:baseAddress>
|
|
380
|
+
<spirit:range spirit:format="long">4k</spirit:range>
|
|
381
|
+
<spirit:width spirit:id="width" spirit:format="long">32</spirit:width>
|
|
382
|
+
<spirit:usage>register</spirit:usage>
|
|
383
|
+
<spirit:register>
|
|
384
|
+
<spirit:name>clock0Divide</spirit:name>
|
|
385
|
+
<spirit:addressOffset>0x0</spirit:addressOffset>
|
|
386
|
+
<spirit:size>32</spirit:size>
|
|
387
|
+
<spirit:volatile>false</spirit:volatile>
|
|
388
|
+
<spirit:access>read-write</spirit:access>
|
|
389
|
+
<spirit:reset>
|
|
390
|
+
<spirit:value>0x0</spirit:value>
|
|
391
|
+
</spirit:reset>
|
|
392
|
+
<spirit:field>
|
|
393
|
+
<spirit:name>Reserved</spirit:name>
|
|
394
|
+
<spirit:description>Reserved</spirit:description>
|
|
395
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
396
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
397
|
+
<spirit:access>read-only</spirit:access>
|
|
398
|
+
</spirit:field>
|
|
399
|
+
<spirit:field>
|
|
400
|
+
<spirit:name>divide</spirit:name>
|
|
401
|
+
<spirit:description>Divide value for clock 0, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
402
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
403
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
404
|
+
<spirit:access>read-write</spirit:access>
|
|
405
|
+
</spirit:field>
|
|
406
|
+
</spirit:register>
|
|
407
|
+
<spirit:register>
|
|
408
|
+
<spirit:name>clock1Divide</spirit:name>
|
|
409
|
+
<spirit:addressOffset>0x4</spirit:addressOffset>
|
|
410
|
+
<spirit:size>32</spirit:size>
|
|
411
|
+
<spirit:volatile>false</spirit:volatile>
|
|
412
|
+
<spirit:access>read-write</spirit:access>
|
|
413
|
+
<spirit:reset>
|
|
414
|
+
<spirit:value>0x0</spirit:value>
|
|
415
|
+
</spirit:reset>
|
|
416
|
+
<spirit:field>
|
|
417
|
+
<spirit:name>Reserved</spirit:name>
|
|
418
|
+
<spirit:description>Reserved</spirit:description>
|
|
419
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
420
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
421
|
+
<spirit:access>read-only</spirit:access>
|
|
422
|
+
</spirit:field>
|
|
423
|
+
<spirit:field>
|
|
424
|
+
<spirit:name>divide</spirit:name>
|
|
425
|
+
<spirit:description>Divide value for clock 1, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
426
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
427
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
428
|
+
<spirit:access>read-write</spirit:access>
|
|
429
|
+
</spirit:field>
|
|
430
|
+
</spirit:register>
|
|
431
|
+
<spirit:register>
|
|
432
|
+
<spirit:name>clock2Divide</spirit:name>
|
|
433
|
+
<spirit:addressOffset>0x8</spirit:addressOffset>
|
|
434
|
+
<spirit:size>32</spirit:size>
|
|
435
|
+
<spirit:volatile>false</spirit:volatile>
|
|
436
|
+
<spirit:access>read-write</spirit:access>
|
|
437
|
+
<spirit:reset>
|
|
438
|
+
<spirit:value>0x0</spirit:value>
|
|
439
|
+
</spirit:reset>
|
|
440
|
+
<spirit:field>
|
|
441
|
+
<spirit:name>Reserved</spirit:name>
|
|
442
|
+
<spirit:description>Reserved</spirit:description>
|
|
443
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
444
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
445
|
+
<spirit:access>read-only</spirit:access>
|
|
446
|
+
</spirit:field>
|
|
447
|
+
<spirit:field>
|
|
448
|
+
<spirit:name>divide</spirit:name>
|
|
449
|
+
<spirit:description>Divide value for clock 2, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
450
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
451
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
452
|
+
<spirit:access>read-write</spirit:access>
|
|
453
|
+
</spirit:field>
|
|
454
|
+
</spirit:register>
|
|
455
|
+
<spirit:register>
|
|
456
|
+
<spirit:name>clock3Divide</spirit:name>
|
|
457
|
+
<spirit:addressOffset>0xC</spirit:addressOffset>
|
|
458
|
+
<spirit:size>32</spirit:size>
|
|
459
|
+
<spirit:volatile>false</spirit:volatile>
|
|
460
|
+
<spirit:access>read-write</spirit:access>
|
|
461
|
+
<spirit:reset>
|
|
462
|
+
<spirit:value>0x0</spirit:value>
|
|
463
|
+
</spirit:reset>
|
|
464
|
+
<spirit:field>
|
|
465
|
+
<spirit:name>Reserved</spirit:name>
|
|
466
|
+
<spirit:description>Reserved</spirit:description>
|
|
467
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
468
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
469
|
+
<spirit:access>read-only</spirit:access>
|
|
470
|
+
</spirit:field>
|
|
471
|
+
<spirit:field>
|
|
472
|
+
<spirit:name>divide</spirit:name>
|
|
473
|
+
<spirit:description>Divide value for clock 3, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
474
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
475
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
476
|
+
<spirit:access>read-write</spirit:access>
|
|
477
|
+
</spirit:field>
|
|
478
|
+
</spirit:register>
|
|
479
|
+
<spirit:register>
|
|
480
|
+
<spirit:name>clock4Divide</spirit:name>
|
|
481
|
+
<spirit:addressOffset>0x10</spirit:addressOffset>
|
|
482
|
+
<spirit:size>32</spirit:size>
|
|
483
|
+
<spirit:volatile>false</spirit:volatile>
|
|
484
|
+
<spirit:access>read-write</spirit:access>
|
|
485
|
+
<spirit:reset>
|
|
486
|
+
<spirit:value>0x0</spirit:value>
|
|
487
|
+
</spirit:reset>
|
|
488
|
+
<spirit:field>
|
|
489
|
+
<spirit:name>Reserved</spirit:name>
|
|
490
|
+
<spirit:description>Reserved</spirit:description>
|
|
491
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
492
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
493
|
+
<spirit:access>read-only</spirit:access>
|
|
494
|
+
</spirit:field>
|
|
495
|
+
<spirit:field>
|
|
496
|
+
<spirit:name>divide</spirit:name>
|
|
497
|
+
<spirit:description>Divide value for clock 4, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
498
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
499
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
500
|
+
<spirit:access>read-write</spirit:access>
|
|
501
|
+
</spirit:field>
|
|
502
|
+
</spirit:register>
|
|
503
|
+
<spirit:register>
|
|
504
|
+
<spirit:name>clock5Divide</spirit:name>
|
|
505
|
+
<spirit:addressOffset>0x14</spirit:addressOffset>
|
|
506
|
+
<spirit:size>32</spirit:size>
|
|
507
|
+
<spirit:volatile>false</spirit:volatile>
|
|
508
|
+
<spirit:access>read-write</spirit:access>
|
|
509
|
+
<spirit:reset>
|
|
510
|
+
<spirit:value>0x0</spirit:value>
|
|
511
|
+
</spirit:reset>
|
|
512
|
+
<spirit:field>
|
|
513
|
+
<spirit:name>Reserved</spirit:name>
|
|
514
|
+
<spirit:description>Reserved</spirit:description>
|
|
515
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
516
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
517
|
+
<spirit:access>read-only</spirit:access>
|
|
518
|
+
</spirit:field>
|
|
519
|
+
<spirit:field>
|
|
520
|
+
<spirit:name>divide</spirit:name>
|
|
521
|
+
<spirit:description>Divide value for clock 5, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
522
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
523
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
524
|
+
<spirit:access>read-write</spirit:access>
|
|
525
|
+
</spirit:field>
|
|
526
|
+
</spirit:register>
|
|
527
|
+
<spirit:register>
|
|
528
|
+
<spirit:name>clock6Divide</spirit:name>
|
|
529
|
+
<spirit:addressOffset>0x18</spirit:addressOffset>
|
|
530
|
+
<spirit:size>32</spirit:size>
|
|
531
|
+
<spirit:volatile>false</spirit:volatile>
|
|
532
|
+
<spirit:access>read-write</spirit:access>
|
|
533
|
+
<spirit:reset>
|
|
534
|
+
<spirit:value>0x0</spirit:value>
|
|
535
|
+
</spirit:reset>
|
|
536
|
+
<spirit:field>
|
|
537
|
+
<spirit:name>Reserved</spirit:name>
|
|
538
|
+
<spirit:description>Reserved</spirit:description>
|
|
539
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
540
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
541
|
+
<spirit:access>read-only</spirit:access>
|
|
542
|
+
</spirit:field>
|
|
543
|
+
<spirit:field>
|
|
544
|
+
<spirit:name>divide</spirit:name>
|
|
545
|
+
<spirit:description>Divide value for clock 6, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
546
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
547
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
548
|
+
<spirit:access>read-write</spirit:access>
|
|
549
|
+
</spirit:field>
|
|
550
|
+
</spirit:register>
|
|
551
|
+
<spirit:register>
|
|
552
|
+
<spirit:name>clock7Divide</spirit:name>
|
|
553
|
+
<spirit:addressOffset>0x1C</spirit:addressOffset>
|
|
554
|
+
<spirit:size>32</spirit:size>
|
|
555
|
+
<spirit:volatile>false</spirit:volatile>
|
|
556
|
+
<spirit:access>read-write</spirit:access>
|
|
557
|
+
<spirit:reset>
|
|
558
|
+
<spirit:value>0x0</spirit:value>
|
|
559
|
+
</spirit:reset>
|
|
560
|
+
<spirit:field>
|
|
561
|
+
<spirit:name>Reserved</spirit:name>
|
|
562
|
+
<spirit:description>Reserved</spirit:description>
|
|
563
|
+
<spirit:bitOffset>8</spirit:bitOffset>
|
|
564
|
+
<spirit:bitWidth>24</spirit:bitWidth>
|
|
565
|
+
<spirit:access>read-only</spirit:access>
|
|
566
|
+
</spirit:field>
|
|
567
|
+
<spirit:field>
|
|
568
|
+
<spirit:name>divide</spirit:name>
|
|
569
|
+
<spirit:description>Divide value for clock 7, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
|
|
570
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
571
|
+
<spirit:bitWidth>8</spirit:bitWidth>
|
|
572
|
+
<spirit:access>read-write</spirit:access>
|
|
573
|
+
</spirit:field>
|
|
574
|
+
</spirit:register>
|
|
575
|
+
<spirit:register>
|
|
576
|
+
<spirit:name>IDReg</spirit:name>
|
|
577
|
+
<spirit:description>ID register</spirit:description>
|
|
578
|
+
<spirit:addressOffset>0xFFC</spirit:addressOffset>
|
|
579
|
+
<spirit:size>32</spirit:size>
|
|
580
|
+
<spirit:access>read-only</spirit:access>
|
|
581
|
+
<spirit:reset>
|
|
582
|
+
<spirit:value>0x00000D00</spirit:value>
|
|
583
|
+
</spirit:reset>
|
|
584
|
+
<spirit:field>
|
|
585
|
+
<spirit:name>ID</spirit:name>
|
|
586
|
+
<spirit:description>ID Field</spirit:description>
|
|
587
|
+
<spirit:bitOffset>0</spirit:bitOffset>
|
|
588
|
+
<spirit:bitWidth>32</spirit:bitWidth>
|
|
589
|
+
<spirit:access>read-only</spirit:access>
|
|
590
|
+
</spirit:field>
|
|
591
|
+
</spirit:register>
|
|
592
|
+
</spirit:addressBlock>
|
|
593
|
+
</spirit:memoryMap>
|
|
594
|
+
</spirit:memoryMaps>
|
|
595
|
+
<spirit:model>
|
|
596
|
+
<spirit:views>
|
|
597
|
+
<spirit:view>
|
|
598
|
+
<spirit:name>TLM_PV</spirit:name>
|
|
599
|
+
<spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
|
|
600
|
+
<spirit:language>systemc</spirit:language>
|
|
601
|
+
<spirit:modelName>cgu</spirit:modelName>
|
|
602
|
+
<spirit:fileSetRef>
|
|
603
|
+
<spirit:localName>sourceCode</spirit:localName>
|
|
604
|
+
</spirit:fileSetRef>
|
|
605
|
+
</spirit:view>
|
|
606
|
+
</spirit:views>
|
|
607
|
+
<spirit:ports>
|
|
608
|
+
<spirit:port>
|
|
609
|
+
<spirit:name>apb_slave_port</spirit:name>
|
|
610
|
+
<spirit:transactional>
|
|
611
|
+
<spirit:transTypeDef>
|
|
612
|
+
<spirit:typeName>pv_target_port</spirit:typeName>
|
|
613
|
+
<spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
|
|
614
|
+
</spirit:transTypeDef>
|
|
615
|
+
<spirit:service>
|
|
616
|
+
<spirit:initiative>provides</spirit:initiative>
|
|
617
|
+
<spirit:serviceTypeDefs>
|
|
618
|
+
<spirit:serviceTypeDef>
|
|
619
|
+
<spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
|
|
620
|
+
<spirit:parameters>
|
|
621
|
+
<spirit:parameter>
|
|
622
|
+
<spirit:name>typedef1</spirit:name>
|
|
623
|
+
<spirit:value>ADDRESS_TYPE</spirit:value>
|
|
624
|
+
</spirit:parameter>
|
|
625
|
+
<spirit:parameter>
|
|
626
|
+
<spirit:name>typedef2</spirit:name>
|
|
627
|
+
<spirit:value>DATA_TYPE</spirit:value>
|
|
628
|
+
</spirit:parameter>
|
|
629
|
+
</spirit:parameters>
|
|
630
|
+
</spirit:serviceTypeDef>
|
|
631
|
+
</spirit:serviceTypeDefs>
|
|
632
|
+
</spirit:service>
|
|
633
|
+
</spirit:transactional>
|
|
634
|
+
</spirit:port>
|
|
635
|
+
<spirit:port>
|
|
636
|
+
<spirit:name>clkout</spirit:name>
|
|
637
|
+
<spirit:wire>
|
|
638
|
+
<spirit:direction>out</spirit:direction>
|
|
639
|
+
<spirit:vector>
|
|
640
|
+
<spirit:left>7</spirit:left>
|
|
641
|
+
<spirit:right>0</spirit:right>
|
|
642
|
+
</spirit:vector>
|
|
643
|
+
<spirit:wireTypeDefs>
|
|
644
|
+
<spirit:wireTypeDef>
|
|
645
|
+
<spirit:typeName>sc_logic</spirit:typeName>
|
|
646
|
+
<spirit:typeDefinition>systemc.h</spirit:typeDefinition>
|
|
647
|
+
<spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
|
|
648
|
+
</spirit:wireTypeDef>
|
|
649
|
+
</spirit:wireTypeDefs>
|
|
650
|
+
</spirit:wire>
|
|
651
|
+
</spirit:port>
|
|
652
|
+
</spirit:ports>
|
|
653
|
+
</spirit:model>
|
|
654
|
+
<spirit:fileSets>
|
|
655
|
+
<spirit:fileSet>
|
|
656
|
+
<spirit:name>sourceCode</spirit:name>
|
|
657
|
+
<spirit:file>
|
|
658
|
+
<spirit:name>tlmsrc/cgu.cc</spirit:name>
|
|
659
|
+
<spirit:fileType>systemCSource</spirit:fileType>
|
|
660
|
+
<spirit:dependency>tlmsrc</spirit:dependency>
|
|
661
|
+
</spirit:file>
|
|
662
|
+
<spirit:file>
|
|
663
|
+
<spirit:name>tlmsrc/cgu.h</spirit:name>
|
|
664
|
+
<spirit:fileType>systemCSource</spirit:fileType>
|
|
665
|
+
<spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
|
|
666
|
+
<spirit:logicalName>cgu</spirit:logicalName>
|
|
667
|
+
<spirit:dependency>../../PV</spirit:dependency>
|
|
668
|
+
</spirit:file>
|
|
669
|
+
<spirit:file>
|
|
670
|
+
<spirit:name>../../PV/pv_slave_base.h</spirit:name>
|
|
671
|
+
<spirit:fileType>unknown</spirit:fileType>
|
|
672
|
+
<spirit:isIncludeFile>true</spirit:isIncludeFile>
|
|
673
|
+
</spirit:file>
|
|
674
|
+
<spirit:file>
|
|
675
|
+
<spirit:name>../../PV/pv_target_port.h</spirit:name>
|
|
676
|
+
<spirit:fileType>unknown</spirit:fileType>
|
|
677
|
+
<spirit:isIncludeFile>true</spirit:isIncludeFile>
|
|
678
|
+
</spirit:file>
|
|
679
|
+
<spirit:file>
|
|
680
|
+
<spirit:name>../../PV/user_types.h</spirit:name>
|
|
681
|
+
<spirit:fileType>unknown</spirit:fileType>
|
|
682
|
+
<spirit:isIncludeFile>true</spirit:isIncludeFile>
|
|
683
|
+
</spirit:file>
|
|
684
|
+
</spirit:fileSet>
|
|
685
|
+
</spirit:fileSets>
|
|
686
|
+
</spirit:component>
|