OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.6/] [doc/] [w11a_seq_flow.DOT] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 wfjm
// $Id: w11a_seq_flow.DOT 343 2010-12-05 21:24:38Z mueller $
2 4 wfjm
//
3
// The create pdf use
4
//
5
//  cpp w11a_seq_flow.DOT w11a_seq_flow.dot
6 9 wfjm
//  dot -Tpdf w11a_seq_flow.dot > w11a_seq_flow.pdf
7
//  xpdf w11a_seq_flow.pdf
8
//  -> gives 30.54 x 43.92 in page size
9 4 wfjm
//
10 9 wfjm
//  pdflatex w11a_seq_flow_a4wrap.tex
11
//  xpdf w11a_seq_flow_a4wrap.pdf
12
//  --> gives 8.27 x 11.69 in page size (A4)
13
//
14 4 wfjm
 
15
#define FORKSTATE
16
#define CLUSTER
17
 
18
#define COLssys   cyan
19
#define COLscons  cyan4
20
#define COLssrc   gold
21
#define COLsdst   goldenrod
22
#define COLsoper  greenyellow
23
#define COLsint   limegreen
24
#define COLserr   tomato
25
 
26
#define COLtflow  forestgreen
27
 
28
#define COLterr   red
29
#define COLtfat   deeppink4
30
#define COLtwait  blue
31
 
32
#define FSZnode   12
33
#define FSZbnode  24
34
#define FSZgraph  18
35
#define FSZlabel  64
36
 
37
digraph G {
38
 
39
        node [fontname="helvetica"];
40
 
41
        fontsize=FSZlabel;
42
        fontcolor=blue;
43
        labelloc="t";
44
        label="W11A Sequencer (Rev 230)";
45
 
46
//      aspect="0.7,500";
47
//      ratio="0.7";
48
 
49
//      pad="10,10";
50
        aspect="1.4,500";
51
        ratio="1.4";
52
        rankdir="LR";
53
 
54
 
55
// for ps flow
56
//      size="8,12";
57
//      pad="3,3";              // needed, otherwise some stuff cut off
58
 
59
 
60
#ifdef CLUSTER
61
        ranksep=0.2;            // default is 0.5  in
62
        nodesep=0.1;            // default is 0.25 in
63
#else
64
        ranksep=0.2;            // default is 0.5  in
65
        nodesep=0.1;            // default is 0.25 in
66
#endif
67
 
68
// to use when CLUSTER on
69
 
70
        node [fontsize=FSZnode];
71
        node [style=filled];
72
 
73
#define do_memread_i(s,w)       s -> w [color=COLtflow];
74
#define do_memread_d(s,w)       s -> w [color=COLtflow];
75
#define do_memread_srcinc(s,w)  s -> w [color=COLtflow];
76
#define do_memwrite(s,w)        s -> w [color=COLtflow];
77
#define do_memcheck(s)          s -> s [color=COLtwait, penwidth=2]; \
78
                                s -> vmerr [color=COLterr];\
79
                                s[color=blue];
80
 
81
#ifdef FORKSTATE
82
#define do_fork_dstr(s) s -> fork_dstr [fillcolor=gray20, penwidth=3];
83
        fork_dstr [fontsize=FSZbnode, style=filled,
84
                   color=lightgrey, shape=doubleoctagon];
85
        fork_dstr -> dstr_def;
86
        fork_dstr -> dstr_inc;
87
        fork_dstr -> dstr_dec;
88
        fork_dstr -> dstr_ind;
89
 
90
#define do_fork_opg(s) s -> fork_opg [fillcolor=gray20, penwidth=3];
91
        fork_opg [fontsize=FSZbnode, style=filled,
92
                  color=lightgrey, shape=doubleoctagon];
93
        fork_opg -> opg_gen;
94
        fork_opg -> dstw_def;
95
        fork_opg -> dstw_inc;
96
        fork_opg -> dstw_dec;
97
        fork_opg -> dstw_ind;
98
        fork_opg -> opg_mul;
99
        fork_opg -> opg_div;
100
        fork_opg -> opg_ash;
101
        fork_opg -> opg_ashc;
102
        fork_opg -> cpufail [color=COLtfat];
103
 
104
#define do_fork_opa(s) s -> fork_opa [fillcolor=gray20, penwidth=3];
105
        fork_opa [fontsize=FSZbnode, style=filled,
106
                  color=lightgrey, shape=doubleoctagon];
107
        fork_opa -> opa_jmp;
108
        fork_opa -> opa_jsr;
109
        fork_opa -> opa_mtp_mem;
110
        fork_opa -> opa_mfp_reg;
111
        fork_opa -> opa_mfp_mem;
112
        fork_opa -> cpufail [color=COLtfat];
113
 
114
#else
115
 
116
#define do_fork_dstr(s) \
117
        s -> dstr_def;\
118
        s -> dstr_inc;\
119
        s -> dstr_dec;\
120
        s -> dstr_ind;
121
 
122
#define do_fork_opg(s) \
123
        s -> opg_gen;\
124
        s -> dstw_def;\
125
        s -> dstw_inc;\
126
        s -> dstw_dec;\
127
        s -> dstw_ind;\
128
        s -> opg_mul;\
129
        s -> opg_div;\
130
        s -> opg_ash;\
131
        s -> opg_ashc;\
132
        s -> cpufail [color=COLtfat];
133
 
134
#define do_fork_opa(s) \
135
        s -> opa_jmp;\
136
        s -> opa_jsr;\
137
        s -> opa_mtp_mem;\
138
        s -> opa_mfp_reg;\
139
        s -> opa_mfp_mem;\
140
        s -> cpufail [color=COLtfat];
141
 
142
#endif
143
 
144
#define do_fork_next(s) \
145
        s -> idle;\
146
        s -> trap_disp;\
147
        s -> ifetch [color=COLtflow];
148
 
149
#define do_fork_next_pref(s) \
150
        s -> idle;\
151
        s -> trap_disp;\
152
        s -> ifetch_w [color=COLtflow];
153
 
154
#define do_start_int(s)         s-> int_getpc [color=COLtflow];
155
 
156
// state list --------------------------
157
 
158
        idle          [fillcolor=COLssys, fontsize=FSZbnode];
159
        cp_regread    [fillcolor=COLscons];
160
        cp_rps        [fillcolor=COLscons];
161
        cp_memr_w     [fillcolor=COLscons];
162
        cp_memw_w     [fillcolor=COLscons];
163
        ifetch        [fillcolor=COLssys, fontsize=FSZbnode];
164
        ifetch_w      [fillcolor=COLssys, fontsize=FSZbnode];
165
        idecode       [fillcolor=COLssys, fontsize=FSZbnode];
166
 
167
        srcr_def      [fillcolor=COLssrc];
168
        srcr_def_w    [fillcolor=COLssrc];
169
        srcr_inc      [fillcolor=COLssrc];
170
        srcr_inc_w    [fillcolor=COLssrc];
171
        srcr_dec      [fillcolor=COLssrc];
172
        srcr_dec1     [fillcolor=COLssrc];
173
        srcr_ind      [fillcolor=COLssrc];
174
        srcr_ind1_w   [fillcolor=COLssrc];
175
        srcr_ind2     [fillcolor=COLssrc];
176
        srcr_ind2_w   [fillcolor=COLssrc];
177
 
178
        dstr_def      [fillcolor=COLsdst];
179
        dstr_def_w    [fillcolor=COLsdst];
180
        dstr_inc      [fillcolor=COLsdst];
181
        dstr_inc_w    [fillcolor=COLsdst];
182
        dstr_dec      [fillcolor=COLsdst];
183
        dstr_dec1     [fillcolor=COLsdst];
184
        dstr_ind      [fillcolor=COLsdst];
185
        dstr_ind1_w   [fillcolor=COLsdst];
186
        dstr_ind2     [fillcolor=COLsdst];
187
        dstr_ind2_w   [fillcolor=COLsdst];
188
 
189
        dstw_def      [fillcolor=COLsdst];
190
        dstw_def_w    [fillcolor=COLsdst];
191
        dstw_inc      [fillcolor=COLsdst];
192
        dstw_inc_w    [fillcolor=COLsdst];
193
        dstw_incdef_w [fillcolor=COLsdst];
194
        dstw_dec      [fillcolor=COLsdst];
195
        dstw_dec1     [fillcolor=COLsdst];
196
        dstw_ind      [fillcolor=COLsdst];
197
        dstw_ind_w    [fillcolor=COLsdst];
198
        dstw_def246   [fillcolor=COLsdst];
199
 
200
        dsta_inc      [fillcolor=COLsdst];
201
        dsta_incdef_w [fillcolor=COLsdst];
202
        dsta_dec      [fillcolor=COLsdst];
203
        dsta_dec1     [fillcolor=COLsdst];
204
        dsta_ind      [fillcolor=COLsdst];
205
        dsta_ind_w    [fillcolor=COLsdst];
206
 
207
        op_halt       [fillcolor=COLsoper];
208
        op_wait       [fillcolor=COLsoper];
209
        op_trap       [fillcolor=COLsoper];
210
        op_reset      [fillcolor=COLsoper];
211
        op_rts        [fillcolor=COLsoper];
212
        op_rtpop      [fillcolor=COLsoper];
213
        op_rtpop_w    [fillcolor=COLsoper];
214
        op_spl        [fillcolor=COLsoper];
215
        op_mcc        [fillcolor=COLsoper];
216
        op_br         [fillcolor=COLsoper];
217
        op_mark       [fillcolor=COLsoper];
218
        op_mark1      [fillcolor=COLsoper];
219
        op_mark_pop   [fillcolor=COLsoper];
220
        op_mark_pop_w [fillcolor=COLsoper];
221
        op_sob        [fillcolor=COLsoper];
222
        op_sob1       [fillcolor=COLsoper];
223
 
224
        opg_gen       [fillcolor=COLsoper, fontsize=FSZbnode];
225
        opg_gen_rmw_w [fillcolor=COLsoper];
226
        opg_mul       [fillcolor=COLsoper];
227
        opg_mul1      [fillcolor=COLsoper];
228
        opg_div       [fillcolor=COLsoper];
229
        opg_div_cn    [fillcolor=COLsoper];
230
        opg_div_cr    [fillcolor=COLsoper];
231
        opg_div_sq    [fillcolor=COLsoper];
232
        opg_div_sr    [fillcolor=COLsoper];
233
        opg_div_zero  [fillcolor=COLsoper];
234
        opg_ash       [fillcolor=COLsoper];
235
        opg_ash_cn    [fillcolor=COLsoper];
236
        opg_ashc      [fillcolor=COLsoper];
237
        opg_ashc_cn   [fillcolor=COLsoper];
238
        opg_ashc_wl   [fillcolor=COLsoper];
239
 
240
        opa_jsr       [fillcolor=COLsoper];
241
        opa_jsr1      [fillcolor=COLsoper];
242
        opa_jsr_push  [fillcolor=COLsoper];
243
        opa_jsr_push_w [fillcolor=COLsoper];
244
        opa_jsr2      [fillcolor=COLsoper];
245
        opa_jmp       [fillcolor=COLsoper];
246
        opa_mtp       [fillcolor=COLsoper];
247
        opa_mtp_pop_w [fillcolor=COLsoper];
248
        opa_mtp_reg   [fillcolor=COLsoper];
249
        opa_mtp_mem   [fillcolor=COLsoper];
250
        opa_mtp_mem_w [fillcolor=COLsoper];
251
        opa_mfp_reg   [fillcolor=COLsoper];
252
        opa_mfp_mem   [fillcolor=COLsoper];
253
        opa_mfp_mem_w [fillcolor=COLsoper];
254
        opa_mfp_dec   [fillcolor=COLsoper];
255
        opa_mfp_push  [fillcolor=COLsoper];
256
        opa_mfp_push_w [fillcolor=COLsoper];
257
 
258
        trap_4        [fillcolor=COLserr];
259
        trap_10       [fillcolor=COLserr];
260
        trap_disp     [fillcolor=COLsint];
261
 
262
        int_ext       [fillcolor=COLsint];
263
        int_getpc     [fillcolor=COLsint];
264
        int_getpc_w   [fillcolor=COLsint];
265
        int_getps     [fillcolor=COLsint];
266
        int_getps_w   [fillcolor=COLsint];
267
        int_getsp     [fillcolor=COLsint];
268
        int_decsp     [fillcolor=COLsint];
269
        int_pushps    [fillcolor=COLsint];
270
        int_pushps_w  [fillcolor=COLsint];
271
        int_pushpc    [fillcolor=COLsint];
272
        int_pushpc_w  [fillcolor=COLsint];
273
 
274
        rti_getpc     [fillcolor=COLsoper];
275
        rti_getpc_w   [fillcolor=COLsoper];
276
        rti_getps     [fillcolor=COLsoper];
277
        rti_getps_w   [fillcolor=COLsoper];
278
        rti_newpc     [fillcolor=COLsoper];
279
 
280
        vmerr         [fillcolor=COLserr];
281
        cpufail       [fillcolor=COLserr];
282
 
283
// transition list ---------------------
284
// idle
285
        idle -> idle;
286
        idle -> cp_regread;
287
        idle -> cp_memr_w;
288
        idle -> cp_memw_w;
289
        idle -> cp_rps;
290
        idle -> int_ext;
291
        idle -> ifetch;
292
        idle -> op_wait;
293
 
294
// cp_regread
295
        cp_regread -> idle;
296
 
297
// cp_rps
298
        cp_rps -> idle;
299
 
300
// cp_memr_w
301
        cp_memr_w -> cp_memr_w[color=COLtwait, penwidth=2];
302
        cp_memr_w -> idle;
303
 
304
// cp_memw_w
305
        cp_memw_w -> cp_memw_w[color=COLtwait, penwidth=2];
306
        cp_memw_w -> idle;
307
 
308
// ifetch
309
        do_memread_i(ifetch, ifetch_w)
310
 
311
// ifetch_w
312
        do_memcheck(ifetch_w)
313
        ifetch_w -> idecode;
314
 
315
// idecode
316
        idecode -> op_halt;
317
        idecode -> op_wait;
318
        idecode -> rti_getpc;
319
        idecode -> op_trap;
320
        idecode -> op_reset;
321
        idecode -> op_rts;
322
        idecode -> op_spl;
323
        idecode -> op_mcc;
324
        idecode -> op_br;
325
        idecode -> op_mark;
326
        idecode -> op_sob;
327
        idecode -> opa_mtp;
328
        idecode -> cpufail [color=COLtfat];
329
        idecode -> srcr_def;
330
        idecode -> srcr_inc;
331
        idecode -> srcr_dec;
332
        idecode -> srcr_ind;
333
        do_fork_dstr(idecode)
334
        do_fork_opa(idecode)
335
        idecode -> dsta_inc;
336
        idecode -> dsta_dec;
337
        idecode -> dsta_ind;
338
        do_fork_opg(idecode)
339
        idecode -> trap_10 [color=COLterr];
340
 
341
// srcr_def
342
        do_memread_d(srcr_def, srcr_def_w)
343
 
344
// srcr_def_w
345
        do_memcheck(srcr_def_w)
346
        do_fork_dstr(srcr_def_w)
347
        do_fork_opg(srcr_def_w)
348
 
349
// srcr_inc
350
        do_memread_d(srcr_inc, srcr_inc_w)
351
 
352
// srcr_inc_w
353
        do_memcheck(srcr_inc_w)
354
        do_fork_dstr(srcr_inc_w)
355
        do_fork_opg(srcr_inc_w)
356
 
357
// srcr_dec
358
        srcr_dec -> srcr_dec1 [color=COLtflow];
359
 
360
// srcr_dec1
361
        do_memread_d(srcr_dec1, srcr_ind1_w)
362
 
363
// srcr_ind
364
        do_memread_i(srcr_ind, srcr_ind1_w)
365
 
366
// srcr_ind1_w
367
        do_memcheck(srcr_ind1_w)
368
        srcr_ind1_w -> srcr_ind2 [color=COLtflow];
369
 
370
// srcr_ind2
371
        do_memread_d(srcr_ind2, srcr_ind2_w)
372
 
373
// srcr_ind2_w
374
        do_memcheck(srcr_ind2_w)
375
        do_fork_dstr(srcr_ind2_w)
376
        do_fork_opg(srcr_ind2_w)
377
 
378
// dstr_def
379
        do_memread_d(dstr_def, dstr_def_w)
380
 
381
// dstr_def_w
382
        do_memcheck(dstr_def_w)
383
        do_fork_opg(dstr_def_w)
384
 
385
// dstr_inc
386
        do_memread_d(dstr_inc, dstr_inc_w)
387
 
388
// dstr_inc_w
389
        do_memcheck(dstr_inc_w)
390
        dstr_inc_w -> dstr_def [color=COLtflow];
391
        do_fork_opg(dstr_inc_w)
392
 
393
// dstr_dec
394
        dstr_dec -> dstr_dec1 [color=COLtflow];
395
 
396
// dstr_dec1
397
        do_memread_d(dstr_dec1,dstr_inc_w)
398
 
399
// dstr_ind
400
        do_memread_i(dstr_ind, dstr_ind1_w)
401
 
402
// dstr_ind1_w
403
        do_memcheck(dstr_ind1_w)
404
        dstr_ind1_w -> dstr_ind2 [color=COLtflow];
405
 
406
// dstr_ind2
407
        do_memread_d(dstr_ind2, dstr_ind2_w)
408
 
409
// dstr_ind2_w
410
        do_memcheck(dstr_ind2_w)
411
        dstr_ind2_w -> dstr_def [color=COLtflow];
412
        do_fork_opg(dstr_ind2_w)
413
 
414
// dstw_def
415
        do_memwrite(dstw_def, dstw_def_w)
416
 
417
// dstw_def_w
418
        do_memcheck(dstw_def_w)
419
        do_fork_next(dstw_def_w)
420
 
421
// dstw_inc
422
        do_memwrite(dstw_inc, dstw_inc_w)
423
        do_memread_d(dstw_inc, dstw_incdef_w)
424
 
425
// dstw_inc_w
426
        do_memcheck(dstw_inc_w)
427
        do_fork_next(dstw_inc_w)
428
 
429
// dstw_incdef_w
430
        do_memcheck(dstw_incdef_w)
431
        dstw_incdef_w -> dstw_def246 [color=COLtflow];
432
 
433
// dstw_dec
434
        dstw_dec -> dstw_dec1 [color=COLtflow];
435
 
436
// dstw_dec1
437
        do_memwrite(dstw_dec1, dstw_def_w)
438
        do_memread_d(dstw_dec1, dstw_incdef_w)
439
 
440
// dstw_ind
441
        do_memread_i(dstw_ind, dstw_ind_w)
442
 
443
// dstw_ind_w
444
        do_memcheck(dstw_ind_w)
445
        dstw_ind_w -> dstw_dec1 [color=COLtflow];
446
 
447
// dstw_def246
448
        do_memwrite(dstw_def246, dstw_def_w)
449
 
450
// dsta_inc
451
        do_fork_opa(dsta_inc)
452
        do_memread_d(dsta_inc, dsta_incdef_w)
453
 
454
// dsta_incdef_w
455
        do_memcheck(dsta_incdef_w)
456
        do_fork_opa(dsta_incdef_w)
457
 
458
// dsta_dec
459
        dsta_dec -> dsta_dec1 [color=COLtflow];
460
 
461
// dsta_dec1
462
        do_fork_opa(dsta_dec1)
463
        do_memread_d(dsta_dec1, dsta_incdef_w)
464
 
465
// dsta_ind
466
        do_memread_i(dsta_ind, dsta_ind_w)
467
 
468
// dsta_ind_w
469
        do_memcheck(dsta_ind_w)
470
        dsta_ind_w -> dsta_dec1 [color=COLtflow];
471
 
472
// op_halt
473
        op_halt -> idle [color=COLtflow];
474
        op_halt -> trap_4 [color=COLterr];
475
 
476
// op_wait
477
        op_wait -> idle;
478
        op_wait -> op_wait [color=COLtflow];
479
 
480
// op_trap
481
        do_start_int(op_trap)
482
 
483
// op_reset
484
        op_reset -> idle [color=COLtflow];
485
 
486
// op_rts
487
        op_rts -> op_rtpop [color=COLtflow];
488
 
489
// op_rtpop
490
        do_memread_srcinc(op_rtpop, op_rtpop_w)
491
 
492
// op_rtpop_w
493
        do_memcheck(op_rtpop_w)
494
        do_fork_next(op_rtpop_w)
495
 
496
// op_spl
497
        op_spl -> ifetch;
498
        do_fork_next(op_spl)
499
 
500
// op_mcc
501
        do_fork_next(op_mcc)
502
 
503
// op_br
504
        do_fork_next(op_br)
505
        //do_fork_next_pref(op_br)
506
        op_br -> ifetch_w;              // explicit to avoid doubling...
507
 
508
// op_mark
509
        op_mark -> op_mark1 [color=COLtflow];
510
 
511
// op_mark1
512
        op_mark1 -> op_mark_pop [color=COLtflow];
513
 
514
// op_mark_pop
515
        do_memread_srcinc(op_mark_pop, op_mark_pop_w)
516
 
517
// op_mark_pop_w
518
        do_memcheck(op_mark_pop_w)
519
        do_fork_next(op_mark_pop_w)
520
 
521
// op_sob
522
        op_sob -> op_sob1 [color=COLtflow];
523
        do_fork_next(op_sob)
524
 
525
// op_sob1
526
        do_fork_next(op_sob1)
527
 
528
// opg_gen
529
        do_memwrite(opg_gen, opg_gen_rmw_w)
530
        do_memcheck(opg_gen)
531
        opg_gen -> idecode;
532
//      opg_gen -> idle;  (already in do_fork!!)
533
        do_fork_next_pref(opg_gen)
534
 
535
// opg_gen_rmw_w
536
        do_memcheck(opg_gen_rmw_w)
537
        do_fork_next(opg_gen_rmw_w)
538
 
539
// opg_mul
540
        opg_mul -> opg_mul1 [color=COLtflow];
541
 
542
// opg_mul1
543
        do_fork_next(opg_mul1)
544
 
545
// opg_div
546
        opg_div -> opg_div_cn;
547
 
548
// opg_div_cn
549
        opg_div_cn -> opg_div_zero;
550
        opg_div_cn -> opg_div_cr [color=COLtflow];
551
        opg_div_cn -> opg_div_cn;
552
 
553
// opg_div_cr
554
        opg_div_cr -> opg_div_sq [color=COLtflow];
555
 
556
// opg_div_sq
557
        opg_div_sq -> opg_div_sr [color=COLtflow];
558
 
559
// opg_div_sr
560
        do_fork_next(opg_div_sr)
561
 
562
// opg_div_zero
563
        do_fork_next(opg_div_zero)
564
 
565
// opg_ash
566
        opg_ash -> opg_ash_cn [color=COLtflow];
567
 
568
// opg_ash_cn
569
        opg_ash_cn -> opg_ash_cn;
570
        do_fork_next_pref(opg_ash_cn)
571
 
572
// opg_ashc
573
        opg_ashc -> opg_ashc_cn [color=COLtflow];
574
 
575
// opg_ashc_cn
576
        opg_ashc_cn -> opg_ashc_cn;
577
        opg_ashc_cn -> opg_ashc_wl [color=COLtflow];
578
 
579
// opg_ashc_wl
580
        do_fork_next(opg_ashc_wl)
581
 
582
// opa_jsr
583
        opa_jsr -> trap_10  [color=COLterr];
584
        opa_jsr -> opa_jsr1 [color=COLtflow];
585
 
586
// opa_jsr1
587
        opa_jsr1 -> opa_jsr_push [color=COLtflow];
588
 
589
// opa_jsr_push
590
        opa_jsr_push -> opa_jsr_push_w [color=COLtflow];
591
 
592
// opa_jsr_push_w
593
        do_memcheck(opa_jsr_push_w)
594
        opa_jsr_push_w -> opa_jsr2 [color=COLtflow];
595
 
596
// opa_jsr2
597
        do_fork_next(opa_jsr2)
598
 
599
// opa_jmp
600
        opa_jmp -> trap_10 [color=COLterr];
601
        do_fork_next(opa_jmp)
602
 
603
// opa_mtp
604
        do_memread_srcinc(opa_mtp, opa_mtp_pop_w)
605
 
606
// opa_mtp_pop_w
607
        do_memcheck(opa_mtp_pop_w)
608
        opa_mtp_pop_w -> opa_mtp_reg;
609
        opa_mtp_pop_w -> opa_mtp_mem;
610
        opa_mtp_pop_w -> dsta_inc;
611
        opa_mtp_pop_w -> dsta_dec;
612
        opa_mtp_pop_w -> dsta_ind;
613
        opa_mtp_pop_w -> cpufail [color=COLtfat];
614
 
615
// opa_mtp_reg
616
        do_fork_next(opa_mtp_reg)
617
 
618
// opa_mtp_mem
619
        opa_mtp_mem -> opa_mtp_mem_w [color=COLtflow];
620
 
621
// opa_mtp_mem_w
622
        do_memcheck(opa_mtp_mem_w)
623
        do_fork_next(opa_mtp_mem_w)
624
 
625
// opa_mfp_reg
626
        opa_mfp_reg -> opa_mfp_dec [color=COLtflow];
627
 
628
// opa_mfp_mem
629
        opa_mfp_mem -> opa_mfp_mem_w [color=COLtflow];
630
 
631
// opa_mfp_mem_w
632
        do_memcheck(opa_mfp_mem_w)
633
        opa_mfp_mem_w -> opa_mfp_dec [color=COLtflow];
634
 
635
// opa_mfp_dec
636
        opa_mfp_dec -> opa_mfp_push [color=COLtflow];
637
 
638
// opa_mfp_push
639
        opa_mfp_push -> opa_mfp_push_w [color=COLtflow];
640
 
641
// opa_mfp_push_w
642
        do_memcheck(opa_mfp_push_w)
643
        do_fork_next(opa_mfp_push_w)
644
 
645
// trap_4
646
        do_start_int(trap_4)
647
 
648
// trap_10
649
        do_start_int(trap_10)
650
 
651
// trap_disp
652
        do_start_int(trap_disp)
653
 
654
// int_ext
655
        do_start_int(int_ext)
656
 
657
// int_getpc
658
        do_memread_srcinc(int_getpc, int_getpc_w)
659
 
660
// int_getpc_w
661
        do_memcheck(int_getpc_w)
662
        int_getpc_w -> idle;
663
        int_getpc_w -> int_getps [color=COLtflow];
664
 
665
// int_getps
666
        do_memread_srcinc(int_getps, int_getps_w)
667
 
668
// int_getps_w
669
        do_memcheck(int_getps_w)
670
        int_getps_w -> idle;
671
        int_getps_w -> int_getsp [color=COLtflow];
672
 
673
// int_getsp
674
        int_getsp -> int_decsp [color=COLtflow];
675
 
676
// int_decsp
677
        int_decsp -> int_pushps [color=COLtflow];
678
 
679
// int_pushps
680
        int_pushps -> int_pushps_w [color=COLtflow];
681
 
682
// int_pushps_w
683
        do_memcheck(int_pushps_w)
684
        int_pushps_w -> int_pushpc [color=COLtflow];
685
 
686
// int_pushpc
687
        int_pushpc -> int_pushpc_w [color=COLtflow];
688
 
689
// int_pushpc_w
690
        do_memcheck(int_pushpc_w)
691
        do_fork_next(int_pushpc_w)
692
 
693
// rti_getpc
694
        do_memread_srcinc(rti_getpc, rti_getpc_w)
695
 
696
// rti_getpc_w
697
        do_memcheck(rti_getpc_w)
698
        rti_getpc_w -> rti_getps [color=COLtflow];
699
 
700
// rti_getps
701
        do_memread_srcinc(rti_getps, rti_getps_w)
702
 
703
// rti_getps_w
704
        do_memcheck(rti_getps_w)
705
        rti_getps_w -> rti_newpc [color=COLtflow];
706
 
707
// rti_newpc
708
        rti_newpc -> ifetch;
709
        do_fork_next(rti_newpc)
710
 
711
// vmerr
712
        vmerr -> cpufail [color=COLtfat];
713
        vmerr -> trap_4  [color=COLtflow];
714
        do_start_int(vmerr)
715
 
716
// cpufail
717
        cpufail -> idle [color=COLtflow];
718
 
719
// subgraph definitions ----------------
720
#ifdef CLUSTER
721
 
722
        subgraph cluster_srcr {
723
                srcr_def;
724
                srcr_def_w;
725
                srcr_inc;
726
                srcr_inc_w;
727
                srcr_dec;
728
                srcr_dec1;
729
                srcr_ind;
730
                srcr_ind1_w;
731
                srcr_ind2;
732
                srcr_ind2_w;
733
                fontsize=FSZgraph;
734
                fontcolor=blue;
735
                label = "SRCR flow";
736
                style=dashed;
737
                color=blue;
738
        }
739
 
740
        subgraph cluster_dstr {
741
                dstr_def;
742
                dstr_def_w;
743
                dstr_inc;
744
                dstr_inc_w;
745
                dstr_dec;
746
                dstr_dec1;
747
                dstr_ind;
748
                dstr_ind1_w;
749
                dstr_ind2;
750
                dstr_ind2_w;
751
                fontsize=FSZgraph;
752
                fontcolor=blue;
753
                label = "DSTR flow";
754
                style=dashed;
755
                color=blue;
756
        }
757
 
758
        subgraph cluster_dstw {
759
                dstw_def;
760
                dstw_def_w;
761
                dstw_inc;
762
                dstw_inc_w;
763
                dstw_incdef_w;
764
                dstw_dec;
765
                dstw_dec1;
766
                dstw_ind;
767
                dstw_ind_w;
768
                dstw_def246;
769
                fontsize=FSZgraph;
770
                fontcolor=blue;
771
                label = "DSTW flow";
772
                style=dashed;
773
                color=blue;
774
        }
775
 
776
        subgraph cluster_dsta {
777
                dsta_inc;
778
                dsta_incdef_w;
779
                dsta_dec;
780
                dsta_dec1;
781
                dsta_ind;
782
                dsta_ind_w;
783
                fontsize=FSZgraph;
784
                fontcolor=blue;
785
                label = "DSTA flow";
786
                style=dashed;
787
                color=blue;
788
        }
789
 
790
        subgraph cluster_rts {
791
                op_rts;
792
                op_rtpop;
793
                op_rtpop_w;
794
                fontsize=FSZgraph;
795
                fontcolor=blue;
796
                label = "RTS flow";
797
                style=dashed;
798
                color=blue;
799
        }
800
 
801
        subgraph cluster_mark {
802
                op_mark;
803
                op_mark1;
804
                op_mark_pop;
805
                op_mark_pop_w;
806
                fontsize=FSZgraph;
807
                fontcolor=blue;
808
                label = "MARK flow";
809
                style=dashed;
810
                color=blue;
811
        }
812
 
813
//#ifdef never
814
        subgraph cluster_sob {
815
                op_sob;
816
                op_sob1;
817
                fontsize=FSZgraph;
818
                fontcolor=blue;
819
                label = "SOB flow";
820
                style=dashed;
821
                color=blue;
822
        }
823
 
824
        subgraph cluster_mul {
825
                opg_mul;
826
                opg_mul1;
827
                fontsize=FSZgraph;
828
                fontcolor=blue;
829
                label = "MUL flow";
830
                style=dashed;
831
                color=blue;
832
        }
833
//#endif
834
 
835
        subgraph cluster_div {
836
                opg_div;
837
                opg_div_cn;
838
                opg_div_cr;
839
                opg_div_sq;
840
                opg_div_sr;
841
                opg_div_zero;
842
                fontsize=FSZgraph;
843
                fontcolor=blue;
844
                label = "DIV flow";
845
                style=dashed;
846
                color=blue;
847
        }
848
 
849
//#ifdef never
850
        subgraph cluster_ash {
851
                opg_ash;
852
                opg_ash_cn;
853
                fontsize=FSZgraph;
854
                fontcolor=blue;
855
                label = "ASH flow";
856
                style=dashed;
857
                color=blue;
858
        }
859
//#endif
860
 
861
        subgraph cluster_ashc{
862
                opg_ashc;
863
                opg_ashc_cn;
864
                opg_ashc_wl;
865
                fontsize=FSZgraph;
866
                fontcolor=blue;
867
                label = "ASHC flow";
868
                style=dashed;
869
                color=blue;
870
        }
871
 
872
        subgraph cluster_jsr {
873
                opa_jsr;
874
                opa_jsr1;
875
                opa_jsr_push;
876
                opa_jsr_push_w;
877
                opa_jsr2;
878
                fontsize=FSZgraph;
879
                fontcolor=blue;
880
                label = "JSR flow";
881
                style=dashed;
882
                color=blue;
883
        }
884
 
885
        subgraph cluster_mtp {
886
                opa_mtp;
887
                opa_mtp_pop_w;
888
                opa_mtp_reg;
889
                opa_mtp_mem;
890
                opa_mtp_mem_w;
891
                fontsize=FSZgraph;
892
                fontcolor=blue;
893
                label = "MTP flow";
894
                style=dashed;
895
                color=blue;
896
        }
897
 
898
        subgraph cluster_mfp {
899
                opa_mfp_reg;
900
                opa_mfp_mem;
901
                opa_mfp_mem_w;
902
                opa_mfp_dec;
903
                opa_mfp_push;
904
                opa_mfp_push_w;
905
                fontsize=FSZgraph;
906
                fontcolor=blue;
907
                label = "MFP flow";
908
                style=dashed;
909
                color=blue;
910
        }
911
 
912
        subgraph cluster_int {
913
                int_ext;
914
                int_getpc;
915
                int_getpc_w;
916
                int_getps;
917
                int_getps_w;
918
                int_getsp;
919
                int_decsp;
920
                int_pushps;
921
                int_pushps_w;
922
                int_pushpc;
923
                int_pushpc_w;
924
                fontsize=FSZgraph;
925
                fontcolor=blue;
926
                label = "INT flow";
927
                style=dashed;
928
                color=blue;
929
        }
930
 
931
        subgraph cluster_rti {
932
                rti_getpc;
933
                rti_getpc_w;
934
                rti_getps;
935
                rti_getps_w;
936
                rti_newpc;
937
                fontsize=FSZgraph;
938
                fontcolor=blue;
939
                label = "RTI flow";
940
                style=dashed;
941
                color=blue;
942
        }
943
#endif
944
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.