ipxact-ruby 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. data/.autotest +15 -0
  2. data/.gitignore +2 -0
  3. data/README.html +89 -0
  4. data/README.mdown +91 -0
  5. data/Rakefile +31 -0
  6. data/VERSION +1 -0
  7. data/autotest/discover.rb +17 -0
  8. data/lib/ipxact.rb +263 -0
  9. data/lib/ipxact/component.rb +235 -0
  10. data/lib/ipxact/parser.rb +27 -0
  11. data/lib/ipxact/parser/bus_data_parser.rb +229 -0
  12. data/lib/ipxact/parser/component_data_parser.rb +309 -0
  13. data/lib/ipxact/parser/platform_data_parser.rb +63 -0
  14. data/lib/ipxact/pathfinder/graph_pathfinder.rb +191 -0
  15. data/lib/ipxact/platform.rb +43 -0
  16. data/schemas/abstractionDefinition.xsd +332 -0
  17. data/schemas/abstractor.xsd +156 -0
  18. data/schemas/autoConfigure.xsd +226 -0
  19. data/schemas/busDefinition.xsd +99 -0
  20. data/schemas/busInterface.xsd +640 -0
  21. data/schemas/commonStructures.xsd +189 -0
  22. data/schemas/component.xsd +253 -0
  23. data/schemas/configurable.xsd +82 -0
  24. data/schemas/constraints.xsd +283 -0
  25. data/schemas/design.xsd +105 -0
  26. data/schemas/designConfig.xsd +144 -0
  27. data/schemas/file.xsd +560 -0
  28. data/schemas/fileType.xsd +86 -0
  29. data/schemas/generator.xsd +240 -0
  30. data/schemas/identifier.xsd +93 -0
  31. data/schemas/index.xsd +67 -0
  32. data/schemas/memoryMap.xsd +1007 -0
  33. data/schemas/model.xsd +291 -0
  34. data/schemas/port.xsd +441 -0
  35. data/schemas/signalDrivers.xsd +220 -0
  36. data/schemas/simpleTypes.xsd +90 -0
  37. data/schemas/subInstances.xsd +256 -0
  38. data/spec/integration/bus_data_extraction_spec.rb +105 -0
  39. data/spec/integration/data_calculation_spec.rb +133 -0
  40. data/spec/integration/data_construction_spec.rb +52 -0
  41. data/spec/integration/general_spec.rb +121 -0
  42. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.h +135 -0
  43. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port.tpp +247 -0
  44. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_initiator_port_base.h +189 -0
  45. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.h +205 -0
  46. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_router.tpp +278 -0
  47. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.h +115 -0
  48. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_slave_base.tpp +126 -0
  49. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port.h +168 -0
  50. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_target_port_base.h +133 -0
  51. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/pv_tlm_if.h +280 -0
  52. data/spec/test_data/spiritconsortium.org/Leon2TLM/PV/user_types.h +38 -0
  53. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/Leon2Platform.xml +77 -0
  54. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/design_Leon2Platform.xml +156 -0
  55. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/Leon2Platform/tlmsrc/Leon2Platform.h +149 -0
  56. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/apbSubSystem.xml +406 -0
  57. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/design_apbSubSystem.xml +135 -0
  58. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM1/apbSubSystem/tlmsrc/apbSubSystem.h +133 -0
  59. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/Leon2Platform.xml +77 -0
  60. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/design_Leon2Platform.xml +157 -0
  61. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/Leon2Platform/tlmsrc/Leon2Platform.h +150 -0
  62. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/apbSubSystem.xml +422 -0
  63. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/designConfig_apbSubSystem.xml +79 -0
  64. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/design_apbSubSystem.xml +184 -0
  65. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM2/apbSubSystem/tlmsrc/apbSubSystem.h +164 -0
  66. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/Leon2Platform.xml +105 -0
  67. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/design_Leon2Platform.xml +157 -0
  68. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/Leon2Platform/tlmsrc/Leon2Platform.h +152 -0
  69. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/apbSubSystem.xml +429 -0
  70. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/designConfig_apbSubSystem.xml +64 -0
  71. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/design_apbSubSystem.xml +150 -0
  72. data/spec/test_data/spiritconsortium.org/Leon2TLM/SystemTLM3/apbSubSystem/tlmsrc/apbSubSystem.h +167 -0
  73. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/ahbbus22.xml +236 -0
  74. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbbus/1.4/tlmsrc/ahbbus.h +52 -0
  75. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/ahbram.xml +184 -0
  76. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.cc +93 -0
  77. data/spec/test_data/spiritconsortium.org/Leon2TLM/ahbram/1.4/tlmsrc/ahbram.h +77 -0
  78. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/apbbus8.xml +544 -0
  79. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbbus/1.4/tlmsrc/apbbus.h +55 -0
  80. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/apbmst.xml +209 -0
  81. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbmst/1.4/tlmsrc/apbmst.h +53 -0
  82. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/apbram.xml +395 -0
  83. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.cc +89 -0
  84. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.h +69 -0
  85. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.v +82 -0
  86. data/spec/test_data/spiritconsortium.org/Leon2TLM/apbram/1.0/hdlsrc/apbram.vhd +132 -0
  87. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/cgu.xml +686 -0
  88. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.cc +121 -0
  89. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.4/tlmsrc/cgu.h +81 -0
  90. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/cgu.xml +707 -0
  91. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.cc +121 -0
  92. data/spec/test_data/spiritconsortium.org/Leon2TLM/cgu/1.5/tlmsrc/cgu.h +81 -0
  93. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/dma.xml +272 -0
  94. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.cc +230 -0
  95. data/spec/test_data/spiritconsortium.org/Leon2TLM/dma/1.4/tlmsrc/dma.h +116 -0
  96. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/irqctrl.xml +530 -0
  97. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.cc +211 -0
  98. data/spec/test_data/spiritconsortium.org/Leon2TLM/irqctrl/1.4/tlmsrc/irqctrl.h +108 -0
  99. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/processor.xml +423 -0
  100. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.cc +331 -0
  101. data/spec/test_data/spiritconsortium.org/Leon2TLM/processor/1.4/tlmsrc/processor.h +121 -0
  102. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/pv2apb.xml +240 -0
  103. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.cc +153 -0
  104. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2apb/1.0/tlmsrc/pv2apb.h +77 -0
  105. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/pv2tac.xml +154 -0
  106. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.cc +114 -0
  107. data/spec/test_data/spiritconsortium.org/Leon2TLM/pv2tac/1.0/tlmsrc/pv2tac.h +67 -0
  108. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/rgu.xml +766 -0
  109. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.cc +126 -0
  110. data/spec/test_data/spiritconsortium.org/Leon2TLM/rgu/1.4/tlmsrc/rgu.h +105 -0
  111. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/scmlAdaptor.xml +154 -0
  112. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.cc +100 -0
  113. data/spec/test_data/spiritconsortium.org/Leon2TLM/scmlAdaptor/1.0/tlmsrc/scmladaptor.h +62 -0
  114. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/serial_device.xml +151 -0
  115. data/spec/test_data/spiritconsortium.org/Leon2TLM/serial_device/1.0/tlmsrc/serial_device.h +85 -0
  116. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/timers.xml +460 -0
  117. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.cc +201 -0
  118. data/spec/test_data/spiritconsortium.org/Leon2TLM/timers/1.4/tlmsrc/timers.h +102 -0
  119. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart.h +152 -0
  120. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_fifo.h +113 -0
  121. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_memory_map.h +96 -0
  122. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/inc/uart_types.h +60 -0
  123. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart.cc +125 -0
  124. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_interrupt_handler.cc +136 -0
  125. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_register_bank.cc +129 -0
  126. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/tlmsrc/src/uart_serial_tx_rx.cc +145 -0
  127. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_scml/1.0/uart_scml.xml +372 -0
  128. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/Leon2_uart.h +216 -0
  129. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/def_Leon2_uart.h +34 -0
  130. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_field.h +72 -0
  131. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlm_register.h +129 -0
  132. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/include/tlmreg_Leon2_uart.h +133 -0
  133. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/Leon2_uart.cc +316 -0
  134. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/tlmreg_Leon2_uart.cc +197 -0
  135. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/tlmsrc/src/user_specific_Leon2_uart.cc +146 -0
  136. data/spec/test_data/spiritconsortium.org/Leon2TLM/uart_tac/1.0/uart_tac.xml +222 -0
  137. data/spec/unit/component_spec.rb +98 -0
  138. data/spec/unit/graph_pathfinder_spec.rb +128 -0
  139. data/spec/unit/interconnect_spec.rb +177 -0
  140. data/spec/unit/ipxact_spec.rb +69 -0
  141. data/spec/unit/platform_spec.rb +34 -0
  142. metadata +225 -0
@@ -0,0 +1,121 @@
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 TLM CGU
28
+ * Clock diviser PV example. Produces a clock vector of 8 bits.
29
+ * Each Clock output line has an 8 bit divide register.
30
+ * If register[i]=0 => No divide (reset state)
31
+ * If register[i]=1 => divide by 2
32
+ * If register[i]=2 => divide by 4
33
+ * If register[i]=3 => divide by 8 ...
34
+ *------------------------------------------------------------------------------*/
35
+
36
+ /*------------------------------------------------------------------------------
37
+ * Includes
38
+ *----------------------------------------------------------------------------*/
39
+ #include "cgu.h"
40
+
41
+ /*------------------------------------------------------------------------------
42
+ * Methods
43
+ *----------------------------------------------------------------------------*/
44
+ cgu::cgu( sc_module_name module_name) :
45
+ sc_module(module_name),
46
+ pv_slave_base<ADDRESS_TYPE,DATA_TYPE>(name()),
47
+ apb_slave_port ("apb_slave_port"),
48
+ clk("clk",20,SC_NS)
49
+ {
50
+ apb_slave_port( *this );
51
+ SC_METHOD( gen_clocks );
52
+ sensitive << clk;
53
+ init_registers();
54
+ init_counters();
55
+ }
56
+
57
+ tlm::tlm_status cgu::write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
58
+ const unsigned int byte_enable,
59
+ const tlm::tlm_mode mode,
60
+ const unsigned int export_id )
61
+ {
62
+ tlm::tlm_status status;
63
+ if ((addr / 4) < NUMCLOCKS) {
64
+ registers[addr/4] = data & 0xFF;
65
+ }
66
+ status.set_ok();
67
+ return status;
68
+ }
69
+
70
+ tlm::tlm_status cgu::read ( const ADDRESS_TYPE &addr , DATA_TYPE &data,
71
+ const unsigned int byte_enable,
72
+ const tlm::tlm_mode mode,
73
+ const unsigned int export_id)
74
+ {
75
+ tlm::tlm_status status;
76
+ if ((addr/4) < NUMCLOCKS) { // read the registers
77
+ data = registers[addr/4];
78
+ } else if ( addr == 0xFFC) { // read the ID register
79
+ data = 0xD00;
80
+ } else {
81
+ data = 0x0;
82
+ }
83
+ status.set_ok();
84
+ return status;
85
+ }
86
+
87
+
88
+ void cgu::gen_clocks()
89
+ {
90
+ for (int i=0; i<NUMCLOCKS; i++) {
91
+ if (registers[i] == 0) {
92
+ clkout[i].write(static_cast<sc_logic>(clk.read()));
93
+ }
94
+ else {
95
+ if (clk.read()) {
96
+ if (counters[i] == 0) {
97
+ clkout[i].write(static_cast<sc_logic>(0));
98
+ // cout << "clock[" << i << "]=0 " << sc_time_stamp() << endl;
99
+ }
100
+ else if (counters[i] == registers[i]) {
101
+ clkout[i].write(static_cast<sc_logic>(1));
102
+ // cout << "clock[" << i << "]=1 " << sc_time_stamp() << endl;
103
+ }
104
+ counters[i]++;
105
+ if (counters[i] == 2*registers[i]) // counter actually counts to 2x the register value.
106
+ counters[i] = 0;
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ void cgu::init_registers()
113
+ {
114
+ for (int i=0;i<NUMCLOCKS;i++) registers[i]=0;
115
+ }
116
+
117
+ void cgu::init_counters()
118
+ {
119
+ for (int i=0;i<NUMCLOCKS;i++) counters[i]=0;
120
+ }
121
+
@@ -0,0 +1,81 @@
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 TLM CGU
28
+ * Clock diviser PV example. Produces a clock vector of 8 bits.
29
+ * Each Clock output line has a 8 bits devide register.
30
+ * If register[i]=0 => No divide (reset state)
31
+ * If register[i]=1 => divide by 2 (reset state)
32
+ * If register[i]=2 => divide by 4
33
+ * If register[i]=3 => divide by 8 ...
34
+ *------------------------------------------------------------------------------*/
35
+
36
+ #ifndef _CGU_H_
37
+ #define _CGU_H_
38
+
39
+ /*------------------------------------------------------------------------------
40
+ * Includes
41
+ *----------------------------------------------------------------------------*/
42
+ #include "systemc.h"
43
+ #include "pv_slave_base.h"
44
+ #include "pv_target_port.h"
45
+ #include "user_types.h"
46
+
47
+ /*------------------------------------------------------------------------------
48
+ * CGU
49
+ *----------------------------------------------------------------------------*/
50
+ class cgu :
51
+ public sc_module,
52
+ public pv_slave_base < ADDRESS_TYPE , DATA_TYPE >
53
+ {
54
+ public :
55
+ cgu( sc_module_name module_name);
56
+ SC_HAS_PROCESS( cgu );
57
+
58
+ static const unsigned int NUMCLOCKS = 8;
59
+ pv_target_port <ADDRESS_TYPE , DATA_TYPE> apb_slave_port;
60
+ sc_out<sc_logic> clkout[8];
61
+
62
+ tlm::tlm_status write( const ADDRESS_TYPE &addr , const DATA_TYPE &data,
63
+ const unsigned int byte_enable = tlm::NO_BE,
64
+ const tlm::tlm_mode mode = tlm::REGULAR,
65
+ const unsigned int export_id = 0 );
66
+ tlm::tlm_status read( const ADDRESS_TYPE &addr , DATA_TYPE &data,
67
+ const unsigned int byte_enable = tlm::NO_BE,
68
+ const tlm::tlm_mode mode = tlm::REGULAR,
69
+ const unsigned int export_id = 0 );
70
+
71
+ private:
72
+ sc_clock clk;
73
+ sc_pvector<int> registers;
74
+ sc_pvector<int> counters;
75
+ void init_registers();
76
+ void init_counters();
77
+ void gen_clocks();
78
+ };
79
+
80
+
81
+ #endif /* _CGU_H_ */
@@ -0,0 +1,707 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ // Description: cgu.xml
4
+ // Author: The SPIRIT Consortium
5
+ // Revision: $Revision: 1506 $
6
+ // Date: $Date: 2009-04-26 01:51:56 -0500 (Sun, 26 Apr 2009) $
7
+ //
8
+ // Copyright (c) 2008, 2009 The SPIRIT Consortium.
9
+ //
10
+ // This work forms part of a deliverable of The SPIRIT Consortium.
11
+ //
12
+ // Use of these materials are governed by the legal terms and conditions
13
+ // outlined in the disclaimer available from www.spiritconsortium.org.
14
+ //
15
+ // This source file is provided on an AS IS basis. The SPIRIT
16
+ // Consortium disclaims any warranty express or implied including
17
+ // any warranty of merchantability and fitness for use for a
18
+ // particular purpose.
19
+ //
20
+ // The user of the source file shall indemnify and hold The SPIRIT
21
+ // Consortium and its members harmless from any damages or liability.
22
+ // Users are requested to provide feedback to The SPIRIT Consortium
23
+ // using either mailto:feedback@lists.spiritconsortium.org or the forms at
24
+ // http://www.spiritconsortium.org/about/contact_us/
25
+ //
26
+ // This file may be copied, and distributed, with or without
27
+ // modifications; this notice must be included on any copy.
28
+ -->
29
+ <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">
30
+ <spirit:vendor>spiritconsortium.org</spirit:vendor>
31
+ <spirit:library>Leon2TLM</spirit:library>
32
+ <spirit:name>cgu</spirit:name>
33
+ <spirit:version>1.5</spirit:version>
34
+ <spirit:busInterfaces>
35
+ <spirit:busInterface>
36
+ <spirit:name>APB_Slave</spirit:name>
37
+ <spirit:busType spirit:library="AMBA2" spirit:name="APB" spirit:vendor="amba.com" spirit:version="r2p0_4"/>
38
+ <spirit:abstractionType spirit:library="abstractiondef.tlm" spirit:name="apb_pv" spirit:vendor="spiritconsortium.org" spirit:version="1.4"/>
39
+ <spirit:slave>
40
+ <spirit:memoryMapRef spirit:memoryMapRef="APB_MM"/>
41
+ </spirit:slave>
42
+ <spirit:connectionRequired>true</spirit:connectionRequired>
43
+ <spirit:portMaps>
44
+ <spirit:portMap>
45
+ <spirit:logicalPort>
46
+ <spirit:name>PV_TRANS</spirit:name>
47
+ </spirit:logicalPort>
48
+ <spirit:physicalPort>
49
+ <spirit:name>apb_slave_port</spirit:name>
50
+ </spirit:physicalPort>
51
+ </spirit:portMap>
52
+ </spirit:portMaps>
53
+ </spirit:busInterface>
54
+ <spirit:busInterface>
55
+ <spirit:name>clock0_apb0</spirit:name>
56
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
57
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
58
+ <spirit:master/>
59
+ <spirit:portMaps>
60
+ <spirit:portMap>
61
+ <spirit:logicalPort>
62
+ <spirit:name>CLK</spirit:name>
63
+ </spirit:logicalPort>
64
+ <spirit:physicalPort>
65
+ <spirit:name>clkout</spirit:name>
66
+ <spirit:vector>
67
+ <spirit:left>0</spirit:left>
68
+ <spirit:right>0</spirit:right>
69
+ </spirit:vector>
70
+ </spirit:physicalPort>
71
+ </spirit:portMap>
72
+ </spirit:portMaps>
73
+ </spirit:busInterface>
74
+ <spirit:busInterface>
75
+ <spirit:name>clock1_apb0</spirit:name>
76
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
77
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
78
+ <spirit:master/>
79
+ <spirit:portMaps>
80
+ <spirit:portMap>
81
+ <spirit:logicalPort>
82
+ <spirit:name>CLK</spirit:name>
83
+ </spirit:logicalPort>
84
+ <spirit:physicalPort>
85
+ <spirit:name>clkout</spirit:name>
86
+ <spirit:vector>
87
+ <spirit:left>1</spirit:left>
88
+ <spirit:right>1</spirit:right>
89
+ </spirit:vector>
90
+ </spirit:physicalPort>
91
+ </spirit:portMap>
92
+ </spirit:portMaps>
93
+ </spirit:busInterface>
94
+ <spirit:busInterface>
95
+ <spirit:name>clock2_apb0</spirit:name>
96
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
97
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
98
+ <spirit:master/>
99
+ <spirit:portMaps>
100
+ <spirit:portMap>
101
+ <spirit:logicalPort>
102
+ <spirit:name>CLK</spirit:name>
103
+ </spirit:logicalPort>
104
+ <spirit:physicalPort>
105
+ <spirit:name>clkout</spirit:name>
106
+ <spirit:vector>
107
+ <spirit:left>2</spirit:left>
108
+ <spirit:right>2</spirit:right>
109
+ </spirit:vector>
110
+ </spirit:physicalPort>
111
+ </spirit:portMap>
112
+ </spirit:portMaps>
113
+ </spirit:busInterface>
114
+ <spirit:busInterface>
115
+ <spirit:name>clock3_apb0</spirit:name>
116
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
117
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
118
+ <spirit:master/>
119
+ <spirit:portMaps>
120
+ <spirit:portMap>
121
+ <spirit:logicalPort>
122
+ <spirit:name>CLK</spirit:name>
123
+ </spirit:logicalPort>
124
+ <spirit:physicalPort>
125
+ <spirit:name>clkout</spirit:name>
126
+ <spirit:vector>
127
+ <spirit:left>3</spirit:left>
128
+ <spirit:right>3</spirit:right>
129
+ </spirit:vector>
130
+ </spirit:physicalPort>
131
+ </spirit:portMap>
132
+ </spirit:portMaps>
133
+ </spirit:busInterface>
134
+ <spirit:busInterface>
135
+ <spirit:name>clock4_apb0</spirit:name>
136
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
137
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
138
+ <spirit:master/>
139
+ <spirit:portMaps>
140
+ <spirit:portMap>
141
+ <spirit:logicalPort>
142
+ <spirit:name>CLK</spirit:name>
143
+ </spirit:logicalPort>
144
+ <spirit:physicalPort>
145
+ <spirit:name>clkout</spirit:name>
146
+ <spirit:vector>
147
+ <spirit:left>4</spirit:left>
148
+ <spirit:right>4</spirit:right>
149
+ </spirit:vector>
150
+ </spirit:physicalPort>
151
+ </spirit:portMap>
152
+ </spirit:portMaps>
153
+ </spirit:busInterface>
154
+ <spirit:busInterface>
155
+ <spirit:name>clock5_apb0</spirit:name>
156
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
157
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
158
+ <spirit:master/>
159
+ <spirit:portMaps>
160
+ <spirit:portMap>
161
+ <spirit:logicalPort>
162
+ <spirit:name>CLK</spirit:name>
163
+ </spirit:logicalPort>
164
+ <spirit:physicalPort>
165
+ <spirit:name>clkout</spirit:name>
166
+ <spirit:vector>
167
+ <spirit:left>5</spirit:left>
168
+ <spirit:right>5</spirit:right>
169
+ </spirit:vector>
170
+ </spirit:physicalPort>
171
+ </spirit:portMap>
172
+ </spirit:portMaps>
173
+ </spirit:busInterface>
174
+ <spirit:busInterface>
175
+ <spirit:name>clock6_apb0</spirit:name>
176
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
177
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
178
+ <spirit:master/>
179
+ <spirit:portMaps>
180
+ <spirit:portMap>
181
+ <spirit:logicalPort>
182
+ <spirit:name>CLK</spirit:name>
183
+ </spirit:logicalPort>
184
+ <spirit:physicalPort>
185
+ <spirit:name>clkout</spirit:name>
186
+ <spirit:vector>
187
+ <spirit:left>6</spirit:left>
188
+ <spirit:right>6</spirit:right>
189
+ </spirit:vector>
190
+ </spirit:physicalPort>
191
+ </spirit:portMap>
192
+ </spirit:portMaps>
193
+ </spirit:busInterface>
194
+ <spirit:busInterface>
195
+ <spirit:name>clock7_apb0</spirit:name>
196
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
197
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
198
+ <spirit:master/>
199
+ <spirit:portMaps>
200
+ <spirit:portMap>
201
+ <spirit:logicalPort>
202
+ <spirit:name>CLK</spirit:name>
203
+ </spirit:logicalPort>
204
+ <spirit:physicalPort>
205
+ <spirit:name>clkout</spirit:name>
206
+ <spirit:vector>
207
+ <spirit:left>7</spirit:left>
208
+ <spirit:right>7</spirit:right>
209
+ </spirit:vector>
210
+ </spirit:physicalPort>
211
+ </spirit:portMap>
212
+ </spirit:portMaps>
213
+ </spirit:busInterface>
214
+ <spirit:busInterface>
215
+ <spirit:name>clock0_ahb0</spirit:name>
216
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
217
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
218
+ <spirit:master/>
219
+ <spirit:portMaps>
220
+ <spirit:portMap>
221
+ <spirit:logicalPort>
222
+ <spirit:name>CLK</spirit:name>
223
+ </spirit:logicalPort>
224
+ <spirit:physicalPort>
225
+ <spirit:name>clkout</spirit:name>
226
+ <spirit:vector>
227
+ <spirit:left>0</spirit:left>
228
+ <spirit:right>0</spirit:right>
229
+ </spirit:vector>
230
+ </spirit:physicalPort>
231
+ </spirit:portMap>
232
+ </spirit:portMaps>
233
+ </spirit:busInterface>
234
+ <spirit:busInterface>
235
+ <spirit:name>clock1_ahb0</spirit:name>
236
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
237
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
238
+ <spirit:master/>
239
+ <spirit:portMaps>
240
+ <spirit:portMap>
241
+ <spirit:logicalPort>
242
+ <spirit:name>CLK</spirit:name>
243
+ </spirit:logicalPort>
244
+ <spirit:physicalPort>
245
+ <spirit:name>clkout</spirit:name>
246
+ <spirit:vector>
247
+ <spirit:left>1</spirit:left>
248
+ <spirit:right>1</spirit:right>
249
+ </spirit:vector>
250
+ </spirit:physicalPort>
251
+ </spirit:portMap>
252
+ </spirit:portMaps>
253
+ </spirit:busInterface>
254
+ <spirit:busInterface>
255
+ <spirit:name>clock2_ahb0</spirit:name>
256
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
257
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
258
+ <spirit:master/>
259
+ <spirit:portMaps>
260
+ <spirit:portMap>
261
+ <spirit:logicalPort>
262
+ <spirit:name>CLK</spirit:name>
263
+ </spirit:logicalPort>
264
+ <spirit:physicalPort>
265
+ <spirit:name>clkout</spirit:name>
266
+ <spirit:vector>
267
+ <spirit:left>2</spirit:left>
268
+ <spirit:right>2</spirit:right>
269
+ </spirit:vector>
270
+ </spirit:physicalPort>
271
+ </spirit:portMap>
272
+ </spirit:portMaps>
273
+ </spirit:busInterface>
274
+ <spirit:busInterface>
275
+ <spirit:name>clock3_ahb0</spirit:name>
276
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
277
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
278
+ <spirit:master/>
279
+ <spirit:portMaps>
280
+ <spirit:portMap>
281
+ <spirit:logicalPort>
282
+ <spirit:name>CLK</spirit:name>
283
+ </spirit:logicalPort>
284
+ <spirit:physicalPort>
285
+ <spirit:name>clkout</spirit:name>
286
+ <spirit:vector>
287
+ <spirit:left>3</spirit:left>
288
+ <spirit:right>3</spirit:right>
289
+ </spirit:vector>
290
+ </spirit:physicalPort>
291
+ </spirit:portMap>
292
+ </spirit:portMaps>
293
+ </spirit:busInterface>
294
+ <spirit:busInterface>
295
+ <spirit:name>clock4_ahb0</spirit:name>
296
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
297
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
298
+ <spirit:master/>
299
+ <spirit:portMaps>
300
+ <spirit:portMap>
301
+ <spirit:logicalPort>
302
+ <spirit:name>CLK</spirit:name>
303
+ </spirit:logicalPort>
304
+ <spirit:physicalPort>
305
+ <spirit:name>clkout</spirit:name>
306
+ <spirit:vector>
307
+ <spirit:left>4</spirit:left>
308
+ <spirit:right>4</spirit:right>
309
+ </spirit:vector>
310
+ </spirit:physicalPort>
311
+ </spirit:portMap>
312
+ </spirit:portMaps>
313
+ </spirit:busInterface>
314
+ <spirit:busInterface>
315
+ <spirit:name>clock5_ahb0</spirit:name>
316
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
317
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
318
+ <spirit:master/>
319
+ <spirit:portMaps>
320
+ <spirit:portMap>
321
+ <spirit:logicalPort>
322
+ <spirit:name>CLK</spirit:name>
323
+ </spirit:logicalPort>
324
+ <spirit:physicalPort>
325
+ <spirit:name>clkout</spirit:name>
326
+ <spirit:vector>
327
+ <spirit:left>5</spirit:left>
328
+ <spirit:right>5</spirit:right>
329
+ </spirit:vector>
330
+ </spirit:physicalPort>
331
+ </spirit:portMap>
332
+ </spirit:portMaps>
333
+ </spirit:busInterface>
334
+ <spirit:busInterface>
335
+ <spirit:name>clock6_ahb0</spirit:name>
336
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
337
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
338
+ <spirit:master/>
339
+ <spirit:portMaps>
340
+ <spirit:portMap>
341
+ <spirit:logicalPort>
342
+ <spirit:name>CLK</spirit:name>
343
+ </spirit:logicalPort>
344
+ <spirit:physicalPort>
345
+ <spirit:name>clkout</spirit:name>
346
+ <spirit:vector>
347
+ <spirit:left>6</spirit:left>
348
+ <spirit:right>6</spirit:right>
349
+ </spirit:vector>
350
+ </spirit:physicalPort>
351
+ </spirit:portMap>
352
+ </spirit:portMaps>
353
+ </spirit:busInterface>
354
+ <spirit:busInterface>
355
+ <spirit:name>clock7_ahb0</spirit:name>
356
+ <spirit:busType spirit:library="busdef.clock" spirit:name="clock" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
357
+ <spirit:abstractionType spirit:library="busdef.clock" spirit:name="clock_rtl" spirit:vendor="spiritconsortium.org" spirit:version="1.0"/>
358
+ <spirit:master/>
359
+ <spirit:portMaps>
360
+ <spirit:portMap>
361
+ <spirit:logicalPort>
362
+ <spirit:name>CLK</spirit:name>
363
+ </spirit:logicalPort>
364
+ <spirit:physicalPort>
365
+ <spirit:name>clkout</spirit:name>
366
+ <spirit:vector>
367
+ <spirit:left>7</spirit:left>
368
+ <spirit:right>7</spirit:right>
369
+ </spirit:vector>
370
+ </spirit:physicalPort>
371
+ </spirit:portMap>
372
+ </spirit:portMaps>
373
+ </spirit:busInterface>
374
+ </spirit:busInterfaces>
375
+ <spirit:memoryMaps>
376
+ <spirit:memoryMap>
377
+ <spirit:name>APB_MM</spirit:name>
378
+ <spirit:addressBlock>
379
+ <spirit:name>defaultid4490597</spirit:name>
380
+ <spirit:baseAddress>0</spirit:baseAddress>
381
+ <spirit:range spirit:format="long">4k</spirit:range>
382
+ <spirit:width spirit:id="width" spirit:format="long">32</spirit:width>
383
+ <spirit:usage>register</spirit:usage>
384
+ <spirit:register>
385
+ <spirit:name>clock0Divide</spirit:name>
386
+ <spirit:addressOffset>0x0</spirit:addressOffset>
387
+ <spirit:size>32</spirit:size>
388
+ <spirit:volatile>false</spirit:volatile>
389
+ <spirit:access>read-write</spirit:access>
390
+ <spirit:reset>
391
+ <spirit:value>0x0</spirit:value>
392
+ </spirit:reset>
393
+ <spirit:field>
394
+ <spirit:name>Reserved</spirit:name>
395
+ <spirit:description>Reserved</spirit:description>
396
+ <spirit:bitOffset>8</spirit:bitOffset>
397
+ <spirit:bitWidth>24</spirit:bitWidth>
398
+ <spirit:access>read-only</spirit:access>
399
+ </spirit:field>
400
+ <spirit:field>
401
+ <spirit:name>divide</spirit:name>
402
+ <spirit:description>Divide value for clock 0, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
403
+ <spirit:bitOffset>0</spirit:bitOffset>
404
+ <spirit:bitWidth>8</spirit:bitWidth>
405
+ <spirit:access>read-write</spirit:access>
406
+ </spirit:field>
407
+ </spirit:register>
408
+ <spirit:register>
409
+ <spirit:name>clock1Divide</spirit:name>
410
+ <spirit:addressOffset>0x4</spirit:addressOffset>
411
+ <spirit:size>32</spirit:size>
412
+ <spirit:volatile>false</spirit:volatile>
413
+ <spirit:access>read-write</spirit:access>
414
+ <spirit:reset>
415
+ <spirit:value>0x0</spirit:value>
416
+ </spirit:reset>
417
+ <spirit:field>
418
+ <spirit:name>Reserved</spirit:name>
419
+ <spirit:description>Reserved</spirit:description>
420
+ <spirit:bitOffset>8</spirit:bitOffset>
421
+ <spirit:bitWidth>24</spirit:bitWidth>
422
+ <spirit:access>read-only</spirit:access>
423
+ </spirit:field>
424
+ <spirit:field>
425
+ <spirit:name>divide</spirit:name>
426
+ <spirit:description>Divide value for clock 1, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
427
+ <spirit:bitOffset>0</spirit:bitOffset>
428
+ <spirit:bitWidth>8</spirit:bitWidth>
429
+ <spirit:access>read-write</spirit:access>
430
+ </spirit:field>
431
+ </spirit:register>
432
+ <spirit:register>
433
+ <spirit:name>clock2Divide</spirit:name>
434
+ <spirit:addressOffset>0x8</spirit:addressOffset>
435
+ <spirit:size>32</spirit:size>
436
+ <spirit:volatile>false</spirit:volatile>
437
+ <spirit:access>read-write</spirit:access>
438
+ <spirit:reset>
439
+ <spirit:value>0x0</spirit:value>
440
+ </spirit:reset>
441
+ <spirit:field>
442
+ <spirit:name>Reserved</spirit:name>
443
+ <spirit:description>Reserved</spirit:description>
444
+ <spirit:bitOffset>8</spirit:bitOffset>
445
+ <spirit:bitWidth>24</spirit:bitWidth>
446
+ <spirit:access>read-only</spirit:access>
447
+ </spirit:field>
448
+ <spirit:field>
449
+ <spirit:name>divide</spirit:name>
450
+ <spirit:description>Divide value for clock 2, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
451
+ <spirit:bitOffset>0</spirit:bitOffset>
452
+ <spirit:bitWidth>8</spirit:bitWidth>
453
+ <spirit:access>read-write</spirit:access>
454
+ </spirit:field>
455
+ </spirit:register>
456
+ <spirit:register>
457
+ <spirit:name>clock3Divide</spirit:name>
458
+ <spirit:addressOffset>0xC</spirit:addressOffset>
459
+ <spirit:size>32</spirit:size>
460
+ <spirit:volatile>false</spirit:volatile>
461
+ <spirit:access>read-write</spirit:access>
462
+ <spirit:reset>
463
+ <spirit:value>0x0</spirit:value>
464
+ </spirit:reset>
465
+ <spirit:field>
466
+ <spirit:name>Reserved</spirit:name>
467
+ <spirit:description>Reserved</spirit:description>
468
+ <spirit:bitOffset>8</spirit:bitOffset>
469
+ <spirit:bitWidth>24</spirit:bitWidth>
470
+ <spirit:access>read-only</spirit:access>
471
+ </spirit:field>
472
+ <spirit:field>
473
+ <spirit:name>divide</spirit:name>
474
+ <spirit:description>Divide value for clock 3, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
475
+ <spirit:bitOffset>0</spirit:bitOffset>
476
+ <spirit:bitWidth>8</spirit:bitWidth>
477
+ <spirit:access>read-write</spirit:access>
478
+ </spirit:field>
479
+ </spirit:register>
480
+ <spirit:register>
481
+ <spirit:name>clock4Divide</spirit:name>
482
+ <spirit:addressOffset>0x10</spirit:addressOffset>
483
+ <spirit:size>32</spirit:size>
484
+ <spirit:volatile>false</spirit:volatile>
485
+ <spirit:access>read-write</spirit:access>
486
+ <spirit:reset>
487
+ <spirit:value>0x0</spirit:value>
488
+ </spirit:reset>
489
+ <spirit:field>
490
+ <spirit:name>Reserved</spirit:name>
491
+ <spirit:description>Reserved</spirit:description>
492
+ <spirit:bitOffset>8</spirit:bitOffset>
493
+ <spirit:bitWidth>24</spirit:bitWidth>
494
+ <spirit:access>read-only</spirit:access>
495
+ </spirit:field>
496
+ <spirit:field>
497
+ <spirit:name>divide</spirit:name>
498
+ <spirit:description>Divide value for clock 4, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
499
+ <spirit:bitOffset>0</spirit:bitOffset>
500
+ <spirit:bitWidth>8</spirit:bitWidth>
501
+ <spirit:access>read-write</spirit:access>
502
+ </spirit:field>
503
+ </spirit:register>
504
+ <spirit:register>
505
+ <spirit:name>clock5Divide</spirit:name>
506
+ <spirit:addressOffset>0x14</spirit:addressOffset>
507
+ <spirit:size>32</spirit:size>
508
+ <spirit:volatile>false</spirit:volatile>
509
+ <spirit:access>read-write</spirit:access>
510
+ <spirit:reset>
511
+ <spirit:value>0x0</spirit:value>
512
+ </spirit:reset>
513
+ <spirit:field>
514
+ <spirit:name>Reserved</spirit:name>
515
+ <spirit:description>Reserved</spirit:description>
516
+ <spirit:bitOffset>8</spirit:bitOffset>
517
+ <spirit:bitWidth>24</spirit:bitWidth>
518
+ <spirit:access>read-only</spirit:access>
519
+ </spirit:field>
520
+ <spirit:field>
521
+ <spirit:name>divide</spirit:name>
522
+ <spirit:description>Divide value for clock 5, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
523
+ <spirit:bitOffset>0</spirit:bitOffset>
524
+ <spirit:bitWidth>8</spirit:bitWidth>
525
+ <spirit:access>read-write</spirit:access>
526
+ </spirit:field>
527
+ </spirit:register>
528
+ <spirit:register>
529
+ <spirit:name>clock6Divide</spirit:name>
530
+ <spirit:addressOffset>0x18</spirit:addressOffset>
531
+ <spirit:size>32</spirit:size>
532
+ <spirit:volatile>false</spirit:volatile>
533
+ <spirit:access>read-write</spirit:access>
534
+ <spirit:reset>
535
+ <spirit:value>0x0</spirit:value>
536
+ </spirit:reset>
537
+ <spirit:field>
538
+ <spirit:name>Reserved</spirit:name>
539
+ <spirit:description>Reserved</spirit:description>
540
+ <spirit:bitOffset>8</spirit:bitOffset>
541
+ <spirit:bitWidth>24</spirit:bitWidth>
542
+ <spirit:access>read-only</spirit:access>
543
+ </spirit:field>
544
+ <spirit:field>
545
+ <spirit:name>divide</spirit:name>
546
+ <spirit:description>Divide value for clock 6, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
547
+ <spirit:bitOffset>0</spirit:bitOffset>
548
+ <spirit:bitWidth>8</spirit:bitWidth>
549
+ <spirit:access>read-write</spirit:access>
550
+ </spirit:field>
551
+ </spirit:register>
552
+ <spirit:register>
553
+ <spirit:name>clock7Divide</spirit:name>
554
+ <spirit:addressOffset>0x1C</spirit:addressOffset>
555
+ <spirit:size>32</spirit:size>
556
+ <spirit:volatile>false</spirit:volatile>
557
+ <spirit:access>read-write</spirit:access>
558
+ <spirit:reset>
559
+ <spirit:value>0x0</spirit:value>
560
+ </spirit:reset>
561
+ <spirit:field>
562
+ <spirit:name>Reserved</spirit:name>
563
+ <spirit:description>Reserved</spirit:description>
564
+ <spirit:bitOffset>8</spirit:bitOffset>
565
+ <spirit:bitWidth>24</spirit:bitWidth>
566
+ <spirit:access>read-only</spirit:access>
567
+ </spirit:field>
568
+ <spirit:field>
569
+ <spirit:name>divide</spirit:name>
570
+ <spirit:description>Divide value for clock 7, 0=no divide, 1=divide by 2, 2=divide by 4, 3=divide by 6, ...</spirit:description>
571
+ <spirit:bitOffset>0</spirit:bitOffset>
572
+ <spirit:bitWidth>8</spirit:bitWidth>
573
+ <spirit:access>read-write</spirit:access>
574
+ </spirit:field>
575
+ </spirit:register>
576
+ <spirit:register>
577
+ <spirit:name>IDReg</spirit:name>
578
+ <spirit:description>ID register</spirit:description>
579
+ <spirit:addressOffset>0xFFC</spirit:addressOffset>
580
+ <spirit:size>32</spirit:size>
581
+ <spirit:access>read-only</spirit:access>
582
+ <spirit:reset>
583
+ <spirit:value>0x00000D00</spirit:value>
584
+ </spirit:reset>
585
+ <spirit:field>
586
+ <spirit:name>ID</spirit:name>
587
+ <spirit:description>ID Field</spirit:description>
588
+ <spirit:bitOffset>0</spirit:bitOffset>
589
+ <spirit:bitWidth>32</spirit:bitWidth>
590
+ <spirit:access>read-only</spirit:access>
591
+ </spirit:field>
592
+ </spirit:register>
593
+ </spirit:addressBlock>
594
+ </spirit:memoryMap>
595
+ </spirit:memoryMaps>
596
+ <spirit:model>
597
+ <spirit:views>
598
+ <spirit:view>
599
+ <spirit:name>TLM_PV</spirit:name>
600
+ <spirit:envIdentifier>:*Simulation:</spirit:envIdentifier>
601
+ <spirit:language>systemc</spirit:language>
602
+ <spirit:modelName>cgu</spirit:modelName>
603
+ <spirit:fileSetRef>
604
+ <spirit:localName>sourceCode</spirit:localName>
605
+ </spirit:fileSetRef>
606
+ </spirit:view>
607
+ </spirit:views>
608
+ <spirit:ports>
609
+ <spirit:port>
610
+ <spirit:name>apb_slave_port</spirit:name>
611
+ <spirit:transactional>
612
+ <spirit:transTypeDef>
613
+ <spirit:typeName>pv_target_port</spirit:typeName>
614
+ <spirit:typeDefinition>pv_target_port.h</spirit:typeDefinition>
615
+ </spirit:transTypeDef>
616
+ <spirit:service>
617
+ <spirit:initiative>provides</spirit:initiative>
618
+ <spirit:serviceTypeDefs>
619
+ <spirit:serviceTypeDef>
620
+ <spirit:typeName spirit:implicit="true">OSCI_TLM_PV</spirit:typeName>
621
+ <spirit:parameters>
622
+ <spirit:parameter>
623
+ <spirit:name>typedef1</spirit:name>
624
+ <spirit:value>ADDRESS_TYPE</spirit:value>
625
+ </spirit:parameter>
626
+ <spirit:parameter>
627
+ <spirit:name>typedef2</spirit:name>
628
+ <spirit:value>DATA_TYPE</spirit:value>
629
+ </spirit:parameter>
630
+ </spirit:parameters>
631
+ </spirit:serviceTypeDef>
632
+ </spirit:serviceTypeDefs>
633
+ </spirit:service>
634
+ </spirit:transactional>
635
+ </spirit:port>
636
+ <spirit:port>
637
+ <spirit:name>clkin</spirit:name>
638
+ <spirit:wire>
639
+ <spirit:direction>in</spirit:direction>
640
+ <spirit:wireTypeDefs>
641
+ <spirit:wireTypeDef>
642
+ <spirit:typeName>bool</spirit:typeName>
643
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
644
+ </spirit:wireTypeDef>
645
+ </spirit:wireTypeDefs>
646
+ <spirit:driver>
647
+ <spirit:clockDriver spirit:clockName="clk">
648
+ <spirit:clockPeriod spirit:id="ClockPeriod" spirit:resolve="user" spirit:prompt="Clock Pulse Period:">100.0</spirit:clockPeriod>
649
+ <spirit:clockPulseOffset spirit:id="ClockPulseOffset" spirit:resolve="user" spirit:prompt="Clock Pulse Offset:">50.0</spirit:clockPulseOffset>
650
+ <spirit:clockPulseValue spirit:id="ClockPulseValue" spirit:resolve="user" spirit:prompt="Clock Pulse Value:">1</spirit:clockPulseValue>
651
+ <spirit:clockPulseDuration spirit:id="ClockPulseDuration" spirit:resolve="user" spirit:prompt="Clock Pulse Duration:">50.0</spirit:clockPulseDuration>
652
+ </spirit:clockDriver>
653
+ </spirit:driver>
654
+ </spirit:wire>
655
+ </spirit:port>
656
+ <spirit:port>
657
+ <spirit:name>clkout</spirit:name>
658
+ <spirit:wire>
659
+ <spirit:direction>out</spirit:direction>
660
+ <spirit:vector>
661
+ <spirit:left>7</spirit:left>
662
+ <spirit:right>0</spirit:right>
663
+ </spirit:vector>
664
+ <spirit:wireTypeDefs>
665
+ <spirit:wireTypeDef>
666
+ <spirit:typeName>sc_logic</spirit:typeName>
667
+ <spirit:typeDefinition>systemc.h</spirit:typeDefinition>
668
+ <spirit:viewNameRef>TLM_PV</spirit:viewNameRef>
669
+ </spirit:wireTypeDef>
670
+ </spirit:wireTypeDefs>
671
+ </spirit:wire>
672
+ </spirit:port>
673
+ </spirit:ports>
674
+ </spirit:model>
675
+ <spirit:fileSets>
676
+ <spirit:fileSet>
677
+ <spirit:name>sourceCode</spirit:name>
678
+ <spirit:file>
679
+ <spirit:name>tlmsrc/cgu.cc</spirit:name>
680
+ <spirit:fileType>systemCSource</spirit:fileType>
681
+ <spirit:dependency>tlmsrc</spirit:dependency>
682
+ </spirit:file>
683
+ <spirit:file>
684
+ <spirit:name>tlmsrc/cgu.h</spirit:name>
685
+ <spirit:fileType>systemCSource</spirit:fileType>
686
+ <spirit:isIncludeFile spirit:externalDeclarations="true">true</spirit:isIncludeFile>
687
+ <spirit:logicalName>cgu</spirit:logicalName>
688
+ <spirit:dependency>../../PV</spirit:dependency>
689
+ </spirit:file>
690
+ <spirit:file>
691
+ <spirit:name>../../PV/pv_slave_base.h</spirit:name>
692
+ <spirit:fileType>unknown</spirit:fileType>
693
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
694
+ </spirit:file>
695
+ <spirit:file>
696
+ <spirit:name>../../PV/pv_target_port.h</spirit:name>
697
+ <spirit:fileType>unknown</spirit:fileType>
698
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
699
+ </spirit:file>
700
+ <spirit:file>
701
+ <spirit:name>../../PV/user_types.h</spirit:name>
702
+ <spirit:fileType>unknown</spirit:fileType>
703
+ <spirit:isIncludeFile>true</spirit:isIncludeFile>
704
+ </spirit:file>
705
+ </spirit:fileSet>
706
+ </spirit:fileSets>
707
+ </spirit:component>