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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.5/] [doc/] [w11a_seq_flow.DOT] - Blame information for rev 7

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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