source: trunk/platforms/caba-tsar-v0/top.cpp @ 273

Last change on this file since 273 was 3, checked in by nipo, 15 years ago

Import platforms

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to "Author Date Id Rev URL Revision"
  • Property svn:mime-type set to text/plain
File size: 33.1 KB
Line 
1#include <systemc>
2#include <sys/time.h>
3#include <iostream>
4#include <cstdlib>
5#include <cstdarg>
6
7#include "mapping_table.h"
8#include "mips.h"
9#include "ississ2.h"
10#include "iss_simhelper.h"
11#include "vci_simple_ram.h"
12#include "vci_multi_tty.h"
13#include "vci_vgmn.h"
14#include "vci_mem_cache.h"
15#include "vci_local_crossbar.h"
16#include "vci_dspinplus_network.h"
17#include "vci_cc_xcache_wrapper.h"
18
19#ifdef USE_GDB_SERVER
20#include "iss/gdbserver.h"
21#endif
22
23#include "segmentation.h"
24
25int _main(int argc, char *argv[])
26{
27        using namespace sc_core;
28        // Avoid repeating these everywhere
29        using soclib::common::IntTab;
30        using soclib::common::Segment;
31
32        // Define VCI parameters
33        typedef soclib::caba::VciParams<4,8,32,1,1,1,8,4,4,1> vci_param;
34        typedef soclib::common::IssIss2<soclib::common::IssSimhelper<soclib::common::MipsElIss> > proc_iss;
35
36        // Mapping table
37
38        soclib::common::MappingTable maptabp(32, IntTab(2,10), IntTab(2,3), 0x00C00000);
39
40        maptabp.add(Segment("reset", RESET_BASE, RESET_SIZE, IntTab(2,1), true));
41        maptabp.add(Segment("excep", EXCEP_BASE, EXCEP_SIZE, IntTab(2,1), true));
42        maptabp.add(Segment("tty"  , TTY_BASE  , TTY_SIZE  , IntTab(3,1), false));
43
44        maptabp.add(Segment("mc_r0" , MC0_R_BASE , MC0_R_SIZE , IntTab(0,0), false, true, IntTab(0,0)));
45        maptabp.add(Segment("mc_m0" , MC0_M_BASE , MC0_M_SIZE , IntTab(0,0), true ));
46        maptabp.add(Segment("mc_r1" , MC1_R_BASE , MC1_R_SIZE , IntTab(1,0), false, true, IntTab(1,0)));
47        maptabp.add(Segment("mc_m1" , MC1_M_BASE , MC1_M_SIZE , IntTab(1,0), true ));
48        maptabp.add(Segment("mc_r2" , MC2_R_BASE , MC2_R_SIZE , IntTab(2,0), false, true, IntTab(2,0)));
49        maptabp.add(Segment("mc_m2" , MC2_M_BASE , MC2_M_SIZE , IntTab(2,0), true ));
50        maptabp.add(Segment("mc_r3" , MC3_R_BASE , MC3_R_SIZE , IntTab(3,0), false, true, IntTab(3,0)));
51        maptabp.add(Segment("mc_m3" , MC3_M_BASE , MC3_M_SIZE , IntTab(3,0), true ));
52
53        std::cout << maptabp << std::endl;
54
55        soclib::common::MappingTable maptabc(32, IntTab(2,10), IntTab(2,3), 0x00C00000);
56
57        maptabc.add(Segment("proc0" , PROC0_BASE , PROC0_SIZE , IntTab(0,0), false, true, IntTab(0,0)));
58        maptabc.add(Segment("proc1" , PROC1_BASE , PROC1_SIZE , IntTab(0,1), false, true, IntTab(0,1)));
59        maptabc.add(Segment("proc2" , PROC2_BASE , PROC2_SIZE , IntTab(0,2), false, true, IntTab(0,2)));
60        maptabc.add(Segment("proc3" , PROC3_BASE , PROC3_SIZE , IntTab(0,3), false, true, IntTab(0,3)));
61        maptabc.add(Segment("proc4" , PROC4_BASE , PROC4_SIZE , IntTab(1,0), false, true, IntTab(1,0)));
62        maptabc.add(Segment("proc5" , PROC5_BASE , PROC5_SIZE , IntTab(1,1), false, true, IntTab(1,1)));
63        maptabc.add(Segment("proc6" , PROC6_BASE , PROC6_SIZE , IntTab(1,2), false, true, IntTab(1,2)));
64        maptabc.add(Segment("proc7" , PROC7_BASE , PROC7_SIZE , IntTab(1,3), false, true, IntTab(1,3)));
65        maptabc.add(Segment("proc8" , PROC8_BASE , PROC8_SIZE , IntTab(2,0), false, true, IntTab(2,0)));
66        maptabc.add(Segment("proc9" , PROC9_BASE , PROC9_SIZE , IntTab(2,1), false, true, IntTab(2,1)));
67        maptabc.add(Segment("proc10" , PROC10_BASE , PROC10_SIZE , IntTab(2,2), false, true, IntTab(2,2)));
68        maptabc.add(Segment("proc11" , PROC11_BASE , PROC11_SIZE , IntTab(2,3), false, true, IntTab(2,3)));
69        maptabc.add(Segment("proc12" , PROC12_BASE , PROC12_SIZE , IntTab(3,0), false, true, IntTab(3,0)));
70        maptabc.add(Segment("proc13" , PROC13_BASE , PROC13_SIZE , IntTab(3,1), false, true, IntTab(3,1)));
71        maptabc.add(Segment("proc14" , PROC14_BASE , PROC14_SIZE , IntTab(3,2), false, true, IntTab(3,2)));
72        maptabc.add(Segment("proc15" , PROC15_BASE , PROC15_SIZE , IntTab(3,3), false, true, IntTab(3,3)));
73
74        std::cout << maptabc << std::endl;
75
76        soclib::common::MappingTable maptabx(32, IntTab(8,4), IntTab(4,4), 0x00C00000);
77        maptabx.add(Segment("xram0" , MC0_M_BASE , MC0_M_SIZE , IntTab(0,0), false));
78        maptabx.add(Segment("xram1" , MC1_M_BASE , MC1_M_SIZE , IntTab(0,0), false));
79        maptabx.add(Segment("xram2" , MC2_M_BASE , MC2_M_SIZE , IntTab(0,0), false));
80        maptabx.add(Segment("xram3" , MC3_M_BASE , MC3_M_SIZE , IntTab(0,0), false));
81        std::cout << maptabx << std::endl;
82
83
84        // Signals
85
86        sc_clock        signal_clk("clk");
87        sc_signal<bool> signal_resetn("resetn");
88   
89        sc_signal<bool> signal_proc0_it0("proc0_it0");
90        sc_signal<bool> signal_proc0_it1("proc0_it1");
91        sc_signal<bool> signal_proc0_it2("proc0_it2");
92        sc_signal<bool> signal_proc0_it3("proc0_it3");
93        sc_signal<bool> signal_proc0_it4("proc0_it4");
94        sc_signal<bool> signal_proc0_it5("proc0_it5");
95
96        sc_signal<bool> signal_proc1_it0("proc1_it0");
97        sc_signal<bool> signal_proc1_it1("proc1_it1");
98        sc_signal<bool> signal_proc1_it2("proc1_it2");
99        sc_signal<bool> signal_proc1_it3("proc1_it3");
100        sc_signal<bool> signal_proc1_it4("proc1_it4");
101        sc_signal<bool> signal_proc1_it5("proc1_it5");
102
103        sc_signal<bool> signal_proc2_it0("proc2_it0");
104        sc_signal<bool> signal_proc2_it1("proc2_it1");
105        sc_signal<bool> signal_proc2_it2("proc2_it2");
106        sc_signal<bool> signal_proc2_it3("proc2_it3");
107        sc_signal<bool> signal_proc2_it4("proc2_it4");
108        sc_signal<bool> signal_proc2_it5("proc2_it5");
109
110        sc_signal<bool> signal_proc3_it0("proc3_it0");
111        sc_signal<bool> signal_proc3_it1("proc3_it1");
112        sc_signal<bool> signal_proc3_it2("proc3_it2");
113        sc_signal<bool> signal_proc3_it3("proc3_it3");
114        sc_signal<bool> signal_proc3_it4("proc3_it4");
115        sc_signal<bool> signal_proc3_it5("proc3_it5");
116
117        sc_signal<bool> signal_proc4_it0("proc4_it0");
118        sc_signal<bool> signal_proc4_it1("proc4_it1");
119        sc_signal<bool> signal_proc4_it2("proc4_it2");
120        sc_signal<bool> signal_proc4_it3("proc4_it3");
121        sc_signal<bool> signal_proc4_it4("proc4_it4");
122        sc_signal<bool> signal_proc4_it5("proc4_it5");
123
124        sc_signal<bool> signal_proc5_it0("proc5_it0");
125        sc_signal<bool> signal_proc5_it1("proc5_it1");
126        sc_signal<bool> signal_proc5_it2("proc5_it2");
127        sc_signal<bool> signal_proc5_it3("proc5_it3");
128        sc_signal<bool> signal_proc5_it4("proc5_it4");
129        sc_signal<bool> signal_proc5_it5("proc5_it5");
130
131        sc_signal<bool> signal_proc6_it0("proc6_it0");
132        sc_signal<bool> signal_proc6_it1("proc6_it1");
133        sc_signal<bool> signal_proc6_it2("proc6_it2");
134        sc_signal<bool> signal_proc6_it3("proc6_it3");
135        sc_signal<bool> signal_proc6_it4("proc6_it4");
136        sc_signal<bool> signal_proc6_it5("proc6_it5");
137
138        sc_signal<bool> signal_proc7_it0("proc7_it0");
139        sc_signal<bool> signal_proc7_it1("proc7_it1");
140        sc_signal<bool> signal_proc7_it2("proc7_it2");
141        sc_signal<bool> signal_proc7_it3("proc7_it3");
142        sc_signal<bool> signal_proc7_it4("proc7_it4");
143        sc_signal<bool> signal_proc7_it5("proc7_it5");
144
145        sc_signal<bool> signal_proc8_it0("proc8_it0");
146        sc_signal<bool> signal_proc8_it1("proc8_it1");
147        sc_signal<bool> signal_proc8_it2("proc8_it2");
148        sc_signal<bool> signal_proc8_it3("proc8_it3");
149        sc_signal<bool> signal_proc8_it4("proc8_it4");
150        sc_signal<bool> signal_proc8_it5("proc8_it5");
151
152        sc_signal<bool> signal_proc9_it0("proc9_it0");
153        sc_signal<bool> signal_proc9_it1("proc9_it1");
154        sc_signal<bool> signal_proc9_it2("proc9_it2");
155        sc_signal<bool> signal_proc9_it3("proc9_it3");
156        sc_signal<bool> signal_proc9_it4("proc9_it4");
157        sc_signal<bool> signal_proc9_it5("proc9_it5");
158
159        sc_signal<bool> signal_proc10_it0("proc10_it0");
160        sc_signal<bool> signal_proc10_it1("proc10_it1");
161        sc_signal<bool> signal_proc10_it2("proc10_it2");
162        sc_signal<bool> signal_proc10_it3("proc10_it3");
163        sc_signal<bool> signal_proc10_it4("proc10_it4");
164        sc_signal<bool> signal_proc10_it5("proc10_it5");
165
166        sc_signal<bool> signal_proc11_it0("proc11_it0");
167        sc_signal<bool> signal_proc11_it1("proc11_it1");
168        sc_signal<bool> signal_proc11_it2("proc11_it2");
169        sc_signal<bool> signal_proc11_it3("proc11_it3");
170        sc_signal<bool> signal_proc11_it4("proc11_it4");
171        sc_signal<bool> signal_proc11_it5("proc11_it5");
172
173        sc_signal<bool> signal_proc12_it0("proc12_it0");
174        sc_signal<bool> signal_proc12_it1("proc12_it1");
175        sc_signal<bool> signal_proc12_it2("proc12_it2");
176        sc_signal<bool> signal_proc12_it3("proc12_it3");
177        sc_signal<bool> signal_proc12_it4("proc12_it4");
178        sc_signal<bool> signal_proc12_it5("proc12_it5");
179
180        sc_signal<bool> signal_proc13_it0("proc13_it0");
181        sc_signal<bool> signal_proc13_it1("proc13_it1");
182        sc_signal<bool> signal_proc13_it2("proc13_it2");
183        sc_signal<bool> signal_proc13_it3("proc13_it3");
184        sc_signal<bool> signal_proc13_it4("proc13_it4");
185        sc_signal<bool> signal_proc13_it5("proc13_it5");
186
187        sc_signal<bool> signal_proc14_it0("proc14_it0");
188        sc_signal<bool> signal_proc14_it1("proc14_it1");
189        sc_signal<bool> signal_proc14_it2("proc14_it2");
190        sc_signal<bool> signal_proc14_it3("proc14_it3");
191        sc_signal<bool> signal_proc14_it4("proc14_it4");
192        sc_signal<bool> signal_proc14_it5("proc14_it5");
193
194        sc_signal<bool> signal_proc15_it0("proc15_it0");
195        sc_signal<bool> signal_proc15_it1("proc15_it1");
196        sc_signal<bool> signal_proc15_it2("proc15_it2");
197        sc_signal<bool> signal_proc15_it3("proc15_it3");
198        sc_signal<bool> signal_proc15_it4("proc15_it4");
199        sc_signal<bool> signal_proc15_it5("proc15_it5");
200
201
202        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc0("vci_ini_proc0");
203        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc0("vci_tgt_proc0");
204
205        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc1("vci_ini_proc1");
206        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc1("vci_tgt_proc1");
207
208        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc2("vci_ini_proc2");
209        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc2("vci_tgt_proc2");
210
211        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc3("vci_ini_proc3");
212        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc3("vci_tgt_proc3");
213
214        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc4("vci_ini_proc4");
215        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc4("vci_tgt_proc4");
216
217        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc5("vci_ini_proc5");
218        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc5("vci_tgt_proc5");
219
220        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc6("vci_ini_proc6");
221        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc6("vci_tgt_proc6");
222
223        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc7("vci_ini_proc7");
224        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc7("vci_tgt_proc7");
225
226        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc8("vci_ini_proc8");
227        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc8("vci_tgt_proc8");
228
229        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc9("vci_ini_proc9");
230        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc9("vci_tgt_proc9");
231
232        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc10("vci_ini_proc10");
233        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc10("vci_tgt_proc10");
234
235        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc11("vci_ini_proc11");
236        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc11("vci_tgt_proc11");
237
238        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc12("vci_ini_proc12");
239        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc12("vci_tgt_proc12");
240
241        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc13("vci_ini_proc13");
242        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc13("vci_tgt_proc13");
243
244        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc14("vci_ini_proc14");
245        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc14("vci_tgt_proc14");
246
247        soclib::caba::VciSignals<vci_param> signal_vci_ini_proc15("vci_ini_proc15");
248        soclib::caba::VciSignals<vci_param> signal_vci_tgt_proc15("vci_tgt_proc15");
249
250        soclib::caba::VciSignals<vci_param> signal_vci_tgt_tty("vci_tgt_tty");
251
252        soclib::caba::VciSignals<vci_param> signal_vci_tgt_rom("vci_tgt_rom");
253
254        soclib::caba::VciSignals<vci_param> signal_vci_tgt_xram("vci_tgt_xram");
255
256        soclib::caba::VciSignals<vci_param> signal_vci_ixr_memc0("vci_ixr_memc0");
257        soclib::caba::VciSignals<vci_param> signal_vci_ini_memc0("vci_ini_memc0");
258        soclib::caba::VciSignals<vci_param> signal_vci_tgt_memc0("vci_tgt_memc0");
259
260        soclib::caba::VciSignals<vci_param> signal_vci_ixr_memc1("vci_ixr_memc1");
261        soclib::caba::VciSignals<vci_param> signal_vci_ini_memc1("vci_ini_memc1");
262        soclib::caba::VciSignals<vci_param> signal_vci_tgt_memc1("vci_tgt_memc1");
263
264        soclib::caba::VciSignals<vci_param> signal_vci_ixr_memc2("vci_ixr_memc2");
265        soclib::caba::VciSignals<vci_param> signal_vci_ini_memc2("vci_ini_memc2");
266        soclib::caba::VciSignals<vci_param> signal_vci_tgt_memc2("vci_tgt_memc2");
267
268        soclib::caba::VciSignals<vci_param> signal_vci_ixr_memc3("vci_ixr_memc3");
269        soclib::caba::VciSignals<vci_param> signal_vci_ini_memc3("vci_ini_memc3");
270        soclib::caba::VciSignals<vci_param> signal_vci_tgt_memc3("vci_tgt_memc3");
271
272        soclib::caba::VciSignals<vci_param> signal_vci_ini_pdspin0("vci_ini_pdspin0");
273        soclib::caba::VciSignals<vci_param> signal_vci_tgt_pdspin0("vci_tgt_pdspin0");
274
275        soclib::caba::VciSignals<vci_param> signal_vci_ini_pdspin1("vci_ini_pdspin1");
276        soclib::caba::VciSignals<vci_param> signal_vci_tgt_pdspin1("vci_tgt_pdspin1");
277
278        soclib::caba::VciSignals<vci_param> signal_vci_ini_pdspin2("vci_ini_pdspin2");
279        soclib::caba::VciSignals<vci_param> signal_vci_tgt_pdspin2("vci_tgt_pdspin2");
280
281        soclib::caba::VciSignals<vci_param> signal_vci_ini_pdspin3("vci_ini_pdspin3");
282        soclib::caba::VciSignals<vci_param> signal_vci_tgt_pdspin3("vci_tgt_pdspin3");
283
284        soclib::caba::VciSignals<vci_param> signal_vci_ini_cdspin0("vci_ini_cdspin0");
285        soclib::caba::VciSignals<vci_param> signal_vci_tgt_cdspin0("vci_tgt_cdspin0");
286
287        soclib::caba::VciSignals<vci_param> signal_vci_ini_cdspin1("vci_ini_cdspin1");
288        soclib::caba::VciSignals<vci_param> signal_vci_tgt_cdspin1("vci_tgt_cdspin1");
289
290        soclib::caba::VciSignals<vci_param> signal_vci_ini_cdspin2("vci_ini_cdspin2");
291        soclib::caba::VciSignals<vci_param> signal_vci_tgt_cdspin2("vci_tgt_cdspin2");
292
293        soclib::caba::VciSignals<vci_param> signal_vci_ini_cdspin3("vci_ini_cdspin3");
294        soclib::caba::VciSignals<vci_param> signal_vci_tgt_cdspin3("vci_tgt_cdspin3");
295
296
297
298        sc_signal<bool> signal_tty_irq0("signal_tty_irq0");
299        sc_signal<bool> signal_tty_irq1("signal_tty_irq1");
300        sc_signal<bool> signal_tty_irq2("signal_tty_irq2");
301        sc_signal<bool> signal_tty_irq3("signal_tty_irq3");
302        sc_signal<bool> signal_tty_irq4("signal_tty_irq4");
303        sc_signal<bool> signal_tty_irq5("signal_tty_irq5");
304        sc_signal<bool> signal_tty_irq6("signal_tty_irq6");
305        sc_signal<bool> signal_tty_irq7("signal_tty_irq7");
306        sc_signal<bool> signal_tty_irq8("signal_tty_irq8");
307        sc_signal<bool> signal_tty_irq9("signal_tty_irq9");
308        sc_signal<bool> signal_tty_irq10("signal_tty_irq10");
309        sc_signal<bool> signal_tty_irq11("signal_tty_irq11");
310        sc_signal<bool> signal_tty_irq12("signal_tty_irq12");
311        sc_signal<bool> signal_tty_irq13("signal_tty_irq13");
312        sc_signal<bool> signal_tty_irq14("signal_tty_irq14");
313        sc_signal<bool> signal_tty_irq15("signal_tty_irq15");
314
315        // Components
316        // VCI ports indexation : 3 initiateurs et 5 cibles
317
318        // INIT0 : proc0_ini
319        // INIT1 : memc_ini
320        // INIT2 : memc_ixr
321
322        // TGT 0 : rom_tgt
323        // TGT 1 : tty_tgt
324        // TGT 2 : xram_tgt
325        // TGT 3 : memc_tgt
326        // TGT 4 : proc0_tgt
327
328        soclib::common::Loader loader("soft/bin.soft");
329
330        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
331        proc0("proc0", 0, maptabp,maptabc,IntTab(0,0),IntTab(0,0),4,64,16,4,64,16,CLEANUP_OFFSET);
332
333        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
334        proc1("proc1", 1, maptabp,maptabc,IntTab(0,1),IntTab(0,1),4,64,16,4,64,16,CLEANUP_OFFSET);
335
336        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
337        proc2("proc2", 2, maptabp,maptabc,IntTab(0,2),IntTab(0,2),4,64,16,4,64,16,CLEANUP_OFFSET);
338
339        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
340        proc3("proc3", 3, maptabp,maptabc,IntTab(0,3),IntTab(0,3),4,64,16,4,64,16,CLEANUP_OFFSET);
341
342        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
343        proc4("proc4", 4, maptabp,maptabc,IntTab(1,0),IntTab(1,0),4,64,16,4,64,16,CLEANUP_OFFSET);
344
345        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
346        proc5("proc5", 5, maptabp,maptabc,IntTab(1,1),IntTab(1,1),4,64,16,4,64,16,CLEANUP_OFFSET);
347
348        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
349        proc6("proc6", 6, maptabp,maptabc,IntTab(1,2),IntTab(1,2),4,64,16,4,64,16,CLEANUP_OFFSET);
350
351        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
352        proc7("proc7", 7, maptabp,maptabc,IntTab(1,3),IntTab(1,3),4,64,16,4,64,16,CLEANUP_OFFSET);
353
354        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
355        proc8("proc8", 8, maptabp,maptabc,IntTab(2,0),IntTab(2,0),4,64,16,4,64,16,CLEANUP_OFFSET);
356
357        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
358        proc9("proc9", 9, maptabp,maptabc,IntTab(2,1),IntTab(2,1),4,64,16,4,64,16,CLEANUP_OFFSET);
359
360        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
361        proc10("proc10", 10, maptabp,maptabc,IntTab(2,2),IntTab(2,2),4,64,16,4,64,16,CLEANUP_OFFSET);
362
363        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
364        proc11("proc11", 11, maptabp,maptabc,IntTab(2,3),IntTab(2,3),4,64,16,4,64,16,CLEANUP_OFFSET);
365
366        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
367        proc12("proc12", 12, maptabp,maptabc,IntTab(3,0),IntTab(3,0),4,64,16,4,64,16,CLEANUP_OFFSET);
368
369        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
370        proc13("proc13", 13, maptabp,maptabc,IntTab(3,1),IntTab(3,1),4,64,16,4,64,16,CLEANUP_OFFSET);
371
372        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
373        proc14("proc14", 14, maptabp,maptabc,IntTab(3,2),IntTab(3,2),4,64,16,4,64,16,CLEANUP_OFFSET);
374
375        soclib::caba::VciCcXcacheWrapper<vci_param, proc_iss >
376        proc15("proc15", 15, maptabp,maptabc,IntTab(3,3),IntTab(3,3),4,64,16,4,64,16,CLEANUP_OFFSET);
377
378        soclib::caba::VciSimpleRam<vci_param>
379        rom("rom", IntTab(2,1), maptabp, loader);
380
381        soclib::caba::VciSimpleRam<vci_param>
382        xram("xram",IntTab(0,0),maptabx, loader);
383
384        soclib::caba::VciMemCache<vci_param>
385        memc0("memc0",maptabp,maptabc,maptabx,IntTab(0,0),IntTab(0,0),IntTab(0,0),16,256,16);
386
387        soclib::caba::VciMemCache<vci_param>
388        memc1("memc1",maptabp,maptabc,maptabx,IntTab(1,0),IntTab(1,0),IntTab(1,0),16,256,16);
389
390        soclib::caba::VciMemCache<vci_param>
391        memc2("memc2",maptabp,maptabc,maptabx,IntTab(2,0),IntTab(2,0),IntTab(2,0),16,256,16);
392
393        soclib::caba::VciMemCache<vci_param>
394        memc3("memc3",maptabp,maptabc,maptabx,IntTab(3,0),IntTab(3,0),IntTab(3,0),16,256,16);
395       
396        soclib::caba::VciMultiTty<vci_param>
397        tty("tty",IntTab(3,1),maptabp,"tty0","tty1","tty2","tty3","tty4","tty5","tty6","tty7","tty8","tty9","tty10","tty11","tty12","tty13","tty14","tty15",NULL);
398
399        soclib::caba::VciLocalCrossbar<vci_param>
400        clusterPN0("clusterPN0",maptabp, IntTab(0), IntTab(0), 4, 1 );
401
402        soclib::caba::VciLocalCrossbar<vci_param>
403        clusterPN1("clusterPN1",maptabp, IntTab(1), IntTab(1), 4, 1 );
404
405        soclib::caba::VciLocalCrossbar<vci_param>
406        clusterPN2("clusterPN2",maptabp, IntTab(2), IntTab(2), 4, 2 );
407
408        soclib::caba::VciLocalCrossbar<vci_param>
409        clusterPN3("clusterPN3",maptabp, IntTab(3), IntTab(3), 4, 2 );
410
411        soclib::caba::VciLocalCrossbar<vci_param>
412        clusterCN0("clusterCN0",maptabc, IntTab(0), IntTab(0), 1, 4 );
413
414        soclib::caba::VciLocalCrossbar<vci_param>
415        clusterCN1("clusterCN1",maptabc, IntTab(1), IntTab(1), 1, 4 );
416
417        soclib::caba::VciLocalCrossbar<vci_param>
418        clusterCN2("clusterCN2",maptabc, IntTab(2), IntTab(2), 1, 4 );
419
420        soclib::caba::VciLocalCrossbar<vci_param>
421        clusterCN3("clusterCN3",maptabc, IntTab(3), IntTab(3), 1, 4 );
422
423        soclib::caba::VciDspinPlusNetwork<vci_param, 4, 1> vciDspinCNetwork("vciDspinCNetwork", maptabc, 2, 2);
424
425        soclib::caba::VciDspinPlusNetwork<vci_param, 4, 1> vciDspinPNetwork("vciDspinPNetwork", maptabp, 2, 2);
426
427        soclib::caba::VciVgmn<vci_param>
428        vgmn("vgmn",maptabx, 4, 1, 1, 4);
429
430        // Net-List
431 
432        proc0.p_clk(signal_clk); 
433        proc0.p_resetn(signal_resetn); 
434        proc0.p_irq[0](signal_proc0_it0);
435        proc0.p_irq[1](signal_proc0_it1);
436        proc0.p_irq[2](signal_proc0_it2);
437        proc0.p_irq[3](signal_proc0_it3);
438        proc0.p_irq[4](signal_proc0_it4);
439        proc0.p_irq[5](signal_proc0_it5);
440        proc0.p_vci_ini(signal_vci_ini_proc0);
441        proc0.p_vci_tgt(signal_vci_tgt_proc0);
442
443        proc1.p_clk(signal_clk); 
444        proc1.p_resetn(signal_resetn); 
445        proc1.p_irq[0](signal_proc1_it0);
446        proc1.p_irq[1](signal_proc1_it1);
447        proc1.p_irq[2](signal_proc1_it2);
448        proc1.p_irq[3](signal_proc1_it3);
449        proc1.p_irq[4](signal_proc1_it4);
450        proc1.p_irq[5](signal_proc1_it5);
451        proc1.p_vci_ini(signal_vci_ini_proc1);
452        proc1.p_vci_tgt(signal_vci_tgt_proc1);
453
454        proc2.p_clk(signal_clk); 
455        proc2.p_resetn(signal_resetn); 
456        proc2.p_irq[0](signal_proc2_it0);
457        proc2.p_irq[1](signal_proc2_it1);
458        proc2.p_irq[2](signal_proc2_it2);
459        proc2.p_irq[3](signal_proc2_it3);
460        proc2.p_irq[4](signal_proc2_it4);
461        proc2.p_irq[5](signal_proc2_it5);
462        proc2.p_vci_ini(signal_vci_ini_proc2);
463        proc2.p_vci_tgt(signal_vci_tgt_proc2);
464
465        proc3.p_clk(signal_clk); 
466        proc3.p_resetn(signal_resetn); 
467        proc3.p_irq[0](signal_proc3_it0);
468        proc3.p_irq[1](signal_proc3_it1);
469        proc3.p_irq[2](signal_proc3_it2);
470        proc3.p_irq[3](signal_proc3_it3);
471        proc3.p_irq[4](signal_proc3_it4);
472        proc3.p_irq[5](signal_proc3_it5);
473        proc3.p_vci_ini(signal_vci_ini_proc3);
474        proc3.p_vci_tgt(signal_vci_tgt_proc3);
475
476        proc4.p_clk(signal_clk); 
477        proc4.p_resetn(signal_resetn); 
478        proc4.p_irq[0](signal_proc4_it0);
479        proc4.p_irq[1](signal_proc4_it1);
480        proc4.p_irq[2](signal_proc4_it2);
481        proc4.p_irq[3](signal_proc4_it3);
482        proc4.p_irq[4](signal_proc4_it4);
483        proc4.p_irq[5](signal_proc4_it5);
484        proc4.p_vci_ini(signal_vci_ini_proc4);
485        proc4.p_vci_tgt(signal_vci_tgt_proc4);
486
487        proc5.p_clk(signal_clk); 
488        proc5.p_resetn(signal_resetn); 
489        proc5.p_irq[0](signal_proc5_it0);
490        proc5.p_irq[1](signal_proc5_it1);
491        proc5.p_irq[2](signal_proc5_it2);
492        proc5.p_irq[3](signal_proc5_it3);
493        proc5.p_irq[4](signal_proc5_it4);
494        proc5.p_irq[5](signal_proc5_it5);
495        proc5.p_vci_ini(signal_vci_ini_proc5);
496        proc5.p_vci_tgt(signal_vci_tgt_proc5);
497
498        proc6.p_clk(signal_clk); 
499        proc6.p_resetn(signal_resetn); 
500        proc6.p_irq[0](signal_proc6_it0);
501        proc6.p_irq[1](signal_proc6_it1);
502        proc6.p_irq[2](signal_proc6_it2);
503        proc6.p_irq[3](signal_proc6_it3);
504        proc6.p_irq[4](signal_proc6_it4);
505        proc6.p_irq[5](signal_proc6_it5);
506        proc6.p_vci_ini(signal_vci_ini_proc6);
507        proc6.p_vci_tgt(signal_vci_tgt_proc6);
508
509        proc7.p_clk(signal_clk); 
510        proc7.p_resetn(signal_resetn); 
511        proc7.p_irq[0](signal_proc7_it0);
512        proc7.p_irq[1](signal_proc7_it1);
513        proc7.p_irq[2](signal_proc7_it2);
514        proc7.p_irq[3](signal_proc7_it3);
515        proc7.p_irq[4](signal_proc7_it4);
516        proc7.p_irq[5](signal_proc7_it5);
517        proc7.p_vci_ini(signal_vci_ini_proc7);
518        proc7.p_vci_tgt(signal_vci_tgt_proc7);
519
520        proc8.p_clk(signal_clk); 
521        proc8.p_resetn(signal_resetn); 
522        proc8.p_irq[0](signal_proc8_it0);
523        proc8.p_irq[1](signal_proc8_it1);
524        proc8.p_irq[2](signal_proc8_it2);
525        proc8.p_irq[3](signal_proc8_it3);
526        proc8.p_irq[4](signal_proc8_it4);
527        proc8.p_irq[5](signal_proc8_it5);
528        proc8.p_vci_ini(signal_vci_ini_proc8);
529        proc8.p_vci_tgt(signal_vci_tgt_proc8);
530
531        proc9.p_clk(signal_clk); 
532        proc9.p_resetn(signal_resetn); 
533        proc9.p_irq[0](signal_proc9_it0);
534        proc9.p_irq[1](signal_proc9_it1);
535        proc9.p_irq[2](signal_proc9_it2);
536        proc9.p_irq[3](signal_proc9_it3);
537        proc9.p_irq[4](signal_proc9_it4);
538        proc9.p_irq[5](signal_proc9_it5);
539        proc9.p_vci_ini(signal_vci_ini_proc9);
540        proc9.p_vci_tgt(signal_vci_tgt_proc9);
541
542        proc10.p_clk(signal_clk); 
543        proc10.p_resetn(signal_resetn); 
544        proc10.p_irq[0](signal_proc10_it0);
545        proc10.p_irq[1](signal_proc10_it1);
546        proc10.p_irq[2](signal_proc10_it2);
547        proc10.p_irq[3](signal_proc10_it3);
548        proc10.p_irq[4](signal_proc10_it4);
549        proc10.p_irq[5](signal_proc10_it5);
550        proc10.p_vci_ini(signal_vci_ini_proc10);
551        proc10.p_vci_tgt(signal_vci_tgt_proc10);
552
553        proc11.p_clk(signal_clk); 
554        proc11.p_resetn(signal_resetn); 
555        proc11.p_irq[0](signal_proc11_it0);
556        proc11.p_irq[1](signal_proc11_it1);
557        proc11.p_irq[2](signal_proc11_it2);
558        proc11.p_irq[3](signal_proc11_it3);
559        proc11.p_irq[4](signal_proc11_it4);
560        proc11.p_irq[5](signal_proc11_it5);
561        proc11.p_vci_ini(signal_vci_ini_proc11);
562        proc11.p_vci_tgt(signal_vci_tgt_proc11);
563
564        proc12.p_clk(signal_clk); 
565        proc12.p_resetn(signal_resetn); 
566        proc12.p_irq[0](signal_proc12_it0);
567        proc12.p_irq[1](signal_proc12_it1);
568        proc12.p_irq[2](signal_proc12_it2);
569        proc12.p_irq[3](signal_proc12_it3);
570        proc12.p_irq[4](signal_proc12_it4);
571        proc12.p_irq[5](signal_proc12_it5);
572        proc12.p_vci_ini(signal_vci_ini_proc12);
573        proc12.p_vci_tgt(signal_vci_tgt_proc12);
574
575        proc13.p_clk(signal_clk); 
576        proc13.p_resetn(signal_resetn); 
577        proc13.p_irq[0](signal_proc13_it0);
578        proc13.p_irq[1](signal_proc13_it1);
579        proc13.p_irq[2](signal_proc13_it2);
580        proc13.p_irq[3](signal_proc13_it3);
581        proc13.p_irq[4](signal_proc13_it4);
582        proc13.p_irq[5](signal_proc13_it5);
583        proc13.p_vci_ini(signal_vci_ini_proc13);
584        proc13.p_vci_tgt(signal_vci_tgt_proc13);
585
586        proc14.p_clk(signal_clk); 
587        proc14.p_resetn(signal_resetn); 
588        proc14.p_irq[0](signal_proc14_it0);
589        proc14.p_irq[1](signal_proc14_it1);
590        proc14.p_irq[2](signal_proc14_it2);
591        proc14.p_irq[3](signal_proc14_it3);
592        proc14.p_irq[4](signal_proc14_it4);
593        proc14.p_irq[5](signal_proc14_it5);
594        proc14.p_vci_ini(signal_vci_ini_proc14);
595        proc14.p_vci_tgt(signal_vci_tgt_proc14);
596
597        proc15.p_clk(signal_clk); 
598        proc15.p_resetn(signal_resetn); 
599        proc15.p_irq[0](signal_proc15_it0);
600        proc15.p_irq[1](signal_proc15_it1);
601        proc15.p_irq[2](signal_proc15_it2);
602        proc15.p_irq[3](signal_proc15_it3);
603        proc15.p_irq[4](signal_proc15_it4);
604        proc15.p_irq[5](signal_proc15_it5);
605        proc15.p_vci_ini(signal_vci_ini_proc15);
606        proc15.p_vci_tgt(signal_vci_tgt_proc15);
607
608
609
610        rom.p_clk(signal_clk);
611        rom.p_resetn(signal_resetn);
612        rom.p_vci(signal_vci_tgt_rom);
613
614        tty.p_clk(signal_clk);
615        tty.p_resetn(signal_resetn);
616        tty.p_vci(signal_vci_tgt_tty);
617        tty.p_irq[0](signal_tty_irq0);
618        tty.p_irq[1](signal_tty_irq1);
619        tty.p_irq[2](signal_tty_irq2);
620        tty.p_irq[3](signal_tty_irq3);
621        tty.p_irq[4](signal_tty_irq4);
622        tty.p_irq[5](signal_tty_irq5);
623        tty.p_irq[6](signal_tty_irq6);
624        tty.p_irq[7](signal_tty_irq7);
625        tty.p_irq[8](signal_tty_irq8);
626        tty.p_irq[9](signal_tty_irq9);
627        tty.p_irq[10](signal_tty_irq10);
628        tty.p_irq[11](signal_tty_irq11);
629        tty.p_irq[12](signal_tty_irq12);
630        tty.p_irq[13](signal_tty_irq13);
631        tty.p_irq[14](signal_tty_irq14);
632        tty.p_irq[15](signal_tty_irq15); 
633
634        memc0.p_clk(signal_clk);
635        memc0.p_resetn(signal_resetn);
636        memc0.p_vci_tgt(signal_vci_tgt_memc0); 
637        memc0.p_vci_ini(signal_vci_ini_memc0);
638        memc0.p_vci_ixr(signal_vci_ixr_memc0);
639
640        memc1.p_clk(signal_clk);
641        memc1.p_resetn(signal_resetn);
642        memc1.p_vci_tgt(signal_vci_tgt_memc1); 
643        memc1.p_vci_ini(signal_vci_ini_memc1);
644        memc1.p_vci_ixr(signal_vci_ixr_memc1);
645
646        memc2.p_clk(signal_clk);
647        memc2.p_resetn(signal_resetn);
648        memc2.p_vci_tgt(signal_vci_tgt_memc2); 
649        memc2.p_vci_ini(signal_vci_ini_memc2);
650        memc2.p_vci_ixr(signal_vci_ixr_memc2);
651
652        memc3.p_clk(signal_clk);
653        memc3.p_resetn(signal_resetn);
654        memc3.p_vci_tgt(signal_vci_tgt_memc3); 
655        memc3.p_vci_ini(signal_vci_ini_memc3);
656        memc3.p_vci_ixr(signal_vci_ixr_memc3);
657
658        xram.p_clk(signal_clk);
659        xram.p_resetn(signal_resetn);
660        xram.p_vci(signal_vci_tgt_xram);       
661
662        ///////////////////////////////////////////////////////
663        // Rï¿œseau vers la XRAM
664        ///////////////////////////////////////////////////////
665
666        vgmn.p_clk(signal_clk);
667        vgmn.p_resetn(signal_resetn);
668
669        vgmn.p_to_initiator[0](signal_vci_ixr_memc0);
670        vgmn.p_to_initiator[1](signal_vci_ixr_memc1);
671        vgmn.p_to_initiator[2](signal_vci_ixr_memc2);
672        vgmn.p_to_initiator[3](signal_vci_ixr_memc3);
673
674        vgmn.p_to_target[0](signal_vci_tgt_xram);
675
676        ///////////////////////////////////////////////////////
677        // Rï¿œseau des commandes primaires
678        ///////////////////////////////////////////////////////
679
680        clusterPN0.p_clk(signal_clk);
681        clusterPN0.p_resetn(signal_resetn);
682
683        clusterPN0.p_to_initiator[0](signal_vci_ini_proc0);
684        clusterPN0.p_to_initiator[1](signal_vci_ini_proc1);
685        clusterPN0.p_to_initiator[2](signal_vci_ini_proc2);
686        clusterPN0.p_to_initiator[3](signal_vci_ini_proc3);
687
688        clusterPN0.p_to_target[0](signal_vci_tgt_memc0);
689
690        clusterPN0.p_initiator_to_up(signal_vci_ini_pdspin0);
691        clusterPN0.p_target_to_up(signal_vci_tgt_pdspin0);
692
693        clusterPN1.p_clk(signal_clk);
694        clusterPN1.p_resetn(signal_resetn);
695
696        clusterPN1.p_to_initiator[0](signal_vci_ini_proc4);
697        clusterPN1.p_to_initiator[1](signal_vci_ini_proc5);
698        clusterPN1.p_to_initiator[2](signal_vci_ini_proc6);
699        clusterPN1.p_to_initiator[3](signal_vci_ini_proc7);
700
701        clusterPN1.p_to_target[0](signal_vci_tgt_memc1);
702
703        clusterPN1.p_initiator_to_up(signal_vci_ini_pdspin1);
704        clusterPN1.p_target_to_up(signal_vci_tgt_pdspin1);
705
706        clusterPN2.p_clk(signal_clk);
707        clusterPN2.p_resetn(signal_resetn);
708
709        clusterPN2.p_to_initiator[0](signal_vci_ini_proc8);
710        clusterPN2.p_to_initiator[1](signal_vci_ini_proc9);
711        clusterPN2.p_to_initiator[2](signal_vci_ini_proc10);
712        clusterPN2.p_to_initiator[3](signal_vci_ini_proc11);
713       
714
715        clusterPN2.p_to_target[0](signal_vci_tgt_memc2);
716        clusterPN2.p_to_target[1](signal_vci_tgt_rom);
717
718        clusterPN2.p_initiator_to_up(signal_vci_ini_pdspin2);
719        clusterPN2.p_target_to_up(signal_vci_tgt_pdspin2);
720
721        clusterPN3.p_clk(signal_clk);
722        clusterPN3.p_resetn(signal_resetn);
723
724        clusterPN3.p_to_initiator[0](signal_vci_ini_proc12);
725        clusterPN3.p_to_initiator[1](signal_vci_ini_proc13);
726        clusterPN3.p_to_initiator[2](signal_vci_ini_proc14);
727        clusterPN3.p_to_initiator[3](signal_vci_ini_proc15);
728
729        clusterPN3.p_to_target[0](signal_vci_tgt_memc3);
730        clusterPN3.p_to_target[1](signal_vci_tgt_tty);
731
732        clusterPN3.p_initiator_to_up(signal_vci_ini_pdspin3);
733        clusterPN3.p_target_to_up(signal_vci_tgt_pdspin3);
734
735
736        vciDspinPNetwork.p_clk(signal_clk);
737        vciDspinPNetwork.p_resetn(signal_resetn);
738
739        vciDspinPNetwork.p_to_initiator[0][0](signal_vci_ini_pdspin0);
740        vciDspinPNetwork.p_to_initiator[0][1](signal_vci_ini_pdspin1);
741        vciDspinPNetwork.p_to_initiator[1][0](signal_vci_ini_pdspin2);
742        vciDspinPNetwork.p_to_initiator[1][1](signal_vci_ini_pdspin3);
743
744        vciDspinPNetwork.p_to_target[0][0](signal_vci_tgt_pdspin0);
745        vciDspinPNetwork.p_to_target[0][1](signal_vci_tgt_pdspin1);
746        vciDspinPNetwork.p_to_target[1][0](signal_vci_tgt_pdspin2);
747        vciDspinPNetwork.p_to_target[1][1](signal_vci_tgt_pdspin3);
748
749        ///////////////////////////////////////////////////////
750        // Rï¿œseau des commandes de cohï¿œrence
751        ///////////////////////////////////////////////////////
752        clusterCN0.p_clk(signal_clk);
753        clusterCN0.p_resetn(signal_resetn);
754
755        clusterCN0.p_to_initiator[0](signal_vci_ini_memc0);
756
757        clusterCN0.p_to_target[0](signal_vci_tgt_proc0);
758        clusterCN0.p_to_target[1](signal_vci_tgt_proc1);
759        clusterCN0.p_to_target[2](signal_vci_tgt_proc2);
760        clusterCN0.p_to_target[3](signal_vci_tgt_proc3);
761
762        clusterCN0.p_initiator_to_up(signal_vci_ini_cdspin0);
763        clusterCN0.p_target_to_up(signal_vci_tgt_cdspin0);
764
765        clusterCN1.p_clk(signal_clk);
766        clusterCN1.p_resetn(signal_resetn);
767
768        clusterCN1.p_to_initiator[0](signal_vci_ini_memc1);
769
770        clusterCN1.p_to_target[0](signal_vci_tgt_proc4);
771        clusterCN1.p_to_target[1](signal_vci_tgt_proc5);
772        clusterCN1.p_to_target[2](signal_vci_tgt_proc6);
773        clusterCN1.p_to_target[3](signal_vci_tgt_proc7);
774
775
776        clusterCN1.p_initiator_to_up(signal_vci_ini_cdspin1);
777        clusterCN1.p_target_to_up(signal_vci_tgt_cdspin1);
778
779        clusterCN2.p_clk(signal_clk);
780        clusterCN2.p_resetn(signal_resetn);
781
782        clusterCN2.p_to_initiator[0](signal_vci_ini_memc2);
783
784        clusterCN2.p_to_target[0](signal_vci_tgt_proc8);
785        clusterCN2.p_to_target[1](signal_vci_tgt_proc9);
786        clusterCN2.p_to_target[2](signal_vci_tgt_proc10);
787        clusterCN2.p_to_target[3](signal_vci_tgt_proc11);
788
789        clusterCN2.p_initiator_to_up(signal_vci_ini_cdspin2);
790        clusterCN2.p_target_to_up(signal_vci_tgt_cdspin2);
791
792        clusterCN3.p_clk(signal_clk);
793        clusterCN3.p_resetn(signal_resetn);
794
795        clusterCN3.p_to_initiator[0](signal_vci_ini_memc3);
796
797        clusterCN3.p_to_target[0](signal_vci_tgt_proc12);
798        clusterCN3.p_to_target[1](signal_vci_tgt_proc13);
799        clusterCN3.p_to_target[2](signal_vci_tgt_proc14);
800        clusterCN3.p_to_target[3](signal_vci_tgt_proc15);
801
802        clusterCN3.p_initiator_to_up(signal_vci_ini_cdspin3);
803        clusterCN3.p_target_to_up(signal_vci_tgt_cdspin3);
804
805        vciDspinCNetwork.p_clk(signal_clk);
806        vciDspinCNetwork.p_resetn(signal_resetn);
807
808        vciDspinCNetwork.p_to_initiator[0][0](signal_vci_ini_cdspin0);
809        vciDspinCNetwork.p_to_initiator[0][1](signal_vci_ini_cdspin1);
810        vciDspinCNetwork.p_to_initiator[1][0](signal_vci_ini_cdspin2);
811        vciDspinCNetwork.p_to_initiator[1][1](signal_vci_ini_cdspin3);
812
813        vciDspinCNetwork.p_to_target[0][0](signal_vci_tgt_cdspin0);
814        vciDspinCNetwork.p_to_target[0][1](signal_vci_tgt_cdspin1);
815        vciDspinCNetwork.p_to_target[1][0](signal_vci_tgt_cdspin2);
816        vciDspinCNetwork.p_to_target[1][1](signal_vci_tgt_cdspin3);
817
818
819        ////////////////////////////////////////////////////////
820        ////////////////////////////////////////////////////////
821
822        int ncycles;
823
824#ifndef SOCVIEW
825        if (argc == 2) {
826                ncycles = std::atoi(argv[1]);
827        } else {
828                std::cerr
829                        << std::endl
830                        << "The number of simulation cycles must "
831                           "be defined in the command line"
832                        << std::endl;
833                exit(1);
834        }
835
836        sc_start(sc_core::sc_time(0, SC_NS));
837        signal_resetn = false;
838
839        sc_start(sc_core::sc_time(1, SC_NS));
840        signal_resetn = true;
841
842        for (int i = 0; i < ncycles ; i+=100000) {
843                sc_start(sc_core::sc_time(100000, SC_NS));
844                memc0.print_stats();
845                proc0.print_stats();
846                proc1.print_stats();
847                proc2.print_stats();
848                proc3.print_stats();
849                memc1.print_stats();
850                proc4.print_stats();
851                proc5.print_stats();
852                proc6.print_stats();
853                proc7.print_stats();
854                memc2.print_stats();
855                proc8.print_stats();
856                proc9.print_stats();
857                proc10.print_stats();
858                proc11.print_stats();
859                memc3.print_stats();
860                proc12.print_stats();
861                proc13.print_stats();
862                proc14.print_stats();
863                proc15.print_stats();
864        }
865        return EXIT_SUCCESS;
866#else
867        ncycles = 1;
868        sc_start(sc_core::sc_time(0, SC_NS));
869        signal_resetn = false;
870        sc_start(sc_core::sc_time(1, SC_NS));
871        signal_resetn = true;
872
873        debug();
874        return EXIT_SUCCESS;
875#endif
876}
877
878int sc_main (int argc, char *argv[])
879{
880        try {
881                return _main(argc, argv);
882        } catch (std::exception &e) {
883                std::cout << e.what() << std::endl;
884        } catch (...) {
885                std::cout << "Unknown exception occured" << std::endl;
886                throw;
887        }
888        return 1;
889}
Note: See TracBrowser for help on using the repository browser.