// $Id: w11a_seq_flow.DOT 315 2010-07-11 22:18:39Z mueller $
|
// $Id: w11a_seq_flow.DOT 315 2010-07-11 22:18:39Z mueller $
|
//
|
//
|
// The create pdf use
|
// The create pdf use
|
//
|
//
|
// cpp w11a_seq_flow.DOT w11a_seq_flow.dot
|
// cpp w11a_seq_flow.DOT w11a_seq_flow.dot
|
// dot -Tps2 w11a_seq_flow.dot > w11a_seq_flow.ps
|
// dot -Tps2 w11a_seq_flow.dot > w11a_seq_flow.ps
|
// ps2pdf w11a_seq_flow.ps
|
// ps2pdf w11a_seq_flow.ps
|
//
|
//
|
|
|
#define FORKSTATE
|
#define FORKSTATE
|
#define CLUSTER
|
#define CLUSTER
|
|
|
#define COLssys cyan
|
#define COLssys cyan
|
#define COLscons cyan4
|
#define COLscons cyan4
|
#define COLssrc gold
|
#define COLssrc gold
|
#define COLsdst goldenrod
|
#define COLsdst goldenrod
|
#define COLsoper greenyellow
|
#define COLsoper greenyellow
|
#define COLsint limegreen
|
#define COLsint limegreen
|
#define COLserr tomato
|
#define COLserr tomato
|
|
|
#define COLtflow forestgreen
|
#define COLtflow forestgreen
|
|
|
#define COLterr red
|
#define COLterr red
|
#define COLtfat deeppink4
|
#define COLtfat deeppink4
|
#define COLtwait blue
|
#define COLtwait blue
|
|
|
#define FSZnode 12
|
#define FSZnode 12
|
#define FSZbnode 24
|
#define FSZbnode 24
|
#define FSZgraph 18
|
#define FSZgraph 18
|
#define FSZlabel 64
|
#define FSZlabel 64
|
|
|
digraph G {
|
digraph G {
|
|
|
node [fontname="helvetica"];
|
node [fontname="helvetica"];
|
|
|
fontsize=FSZlabel;
|
fontsize=FSZlabel;
|
fontcolor=blue;
|
fontcolor=blue;
|
labelloc="t";
|
labelloc="t";
|
label="W11A Sequencer (Rev 230)";
|
label="W11A Sequencer (Rev 230)";
|
|
|
// aspect="0.7,500";
|
// aspect="0.7,500";
|
// ratio="0.7";
|
// ratio="0.7";
|
|
|
// pad="10,10";
|
// pad="10,10";
|
aspect="1.4,500";
|
aspect="1.4,500";
|
ratio="1.4";
|
ratio="1.4";
|
rankdir="LR";
|
rankdir="LR";
|
|
|
|
|
// for ps flow
|
// for ps flow
|
// size="8,12";
|
// size="8,12";
|
// pad="3,3"; // needed, otherwise some stuff cut off
|
// pad="3,3"; // needed, otherwise some stuff cut off
|
|
|
|
|
#ifdef CLUSTER
|
#ifdef CLUSTER
|
ranksep=0.2; // default is 0.5 in
|
ranksep=0.2; // default is 0.5 in
|
nodesep=0.1; // default is 0.25 in
|
nodesep=0.1; // default is 0.25 in
|
#else
|
#else
|
ranksep=0.2; // default is 0.5 in
|
ranksep=0.2; // default is 0.5 in
|
nodesep=0.1; // default is 0.25 in
|
nodesep=0.1; // default is 0.25 in
|
#endif
|
#endif
|
|
|
// to use when CLUSTER on
|
// to use when CLUSTER on
|
|
|
node [fontsize=FSZnode];
|
node [fontsize=FSZnode];
|
node [style=filled];
|
node [style=filled];
|
|
|
#define do_memread_i(s,w) s -> w [color=COLtflow];
|
#define do_memread_i(s,w) s -> w [color=COLtflow];
|
#define do_memread_d(s,w) s -> w [color=COLtflow];
|
#define do_memread_d(s,w) s -> w [color=COLtflow];
|
#define do_memread_srcinc(s,w) s -> w [color=COLtflow];
|
#define do_memread_srcinc(s,w) s -> w [color=COLtflow];
|
#define do_memwrite(s,w) s -> w [color=COLtflow];
|
#define do_memwrite(s,w) s -> w [color=COLtflow];
|
#define do_memcheck(s) s -> s [color=COLtwait, penwidth=2]; \
|
#define do_memcheck(s) s -> s [color=COLtwait, penwidth=2]; \
|
s -> vmerr [color=COLterr];\
|
s -> vmerr [color=COLterr];\
|
s[color=blue];
|
s[color=blue];
|
|
|
#ifdef FORKSTATE
|
#ifdef FORKSTATE
|
#define do_fork_dstr(s) s -> fork_dstr [fillcolor=gray20, penwidth=3];
|
#define do_fork_dstr(s) s -> fork_dstr [fillcolor=gray20, penwidth=3];
|
fork_dstr [fontsize=FSZbnode, style=filled,
|
fork_dstr [fontsize=FSZbnode, style=filled,
|
color=lightgrey, shape=doubleoctagon];
|
color=lightgrey, shape=doubleoctagon];
|
fork_dstr -> dstr_def;
|
fork_dstr -> dstr_def;
|
fork_dstr -> dstr_inc;
|
fork_dstr -> dstr_inc;
|
fork_dstr -> dstr_dec;
|
fork_dstr -> dstr_dec;
|
fork_dstr -> dstr_ind;
|
fork_dstr -> dstr_ind;
|
|
|
#define do_fork_opg(s) s -> fork_opg [fillcolor=gray20, penwidth=3];
|
#define do_fork_opg(s) s -> fork_opg [fillcolor=gray20, penwidth=3];
|
fork_opg [fontsize=FSZbnode, style=filled,
|
fork_opg [fontsize=FSZbnode, style=filled,
|
color=lightgrey, shape=doubleoctagon];
|
color=lightgrey, shape=doubleoctagon];
|
fork_opg -> opg_gen;
|
fork_opg -> opg_gen;
|
fork_opg -> dstw_def;
|
fork_opg -> dstw_def;
|
fork_opg -> dstw_inc;
|
fork_opg -> dstw_inc;
|
fork_opg -> dstw_dec;
|
fork_opg -> dstw_dec;
|
fork_opg -> dstw_ind;
|
fork_opg -> dstw_ind;
|
fork_opg -> opg_mul;
|
fork_opg -> opg_mul;
|
fork_opg -> opg_div;
|
fork_opg -> opg_div;
|
fork_opg -> opg_ash;
|
fork_opg -> opg_ash;
|
fork_opg -> opg_ashc;
|
fork_opg -> opg_ashc;
|
fork_opg -> cpufail [color=COLtfat];
|
fork_opg -> cpufail [color=COLtfat];
|
|
|
#define do_fork_opa(s) s -> fork_opa [fillcolor=gray20, penwidth=3];
|
#define do_fork_opa(s) s -> fork_opa [fillcolor=gray20, penwidth=3];
|
fork_opa [fontsize=FSZbnode, style=filled,
|
fork_opa [fontsize=FSZbnode, style=filled,
|
color=lightgrey, shape=doubleoctagon];
|
color=lightgrey, shape=doubleoctagon];
|
fork_opa -> opa_jmp;
|
fork_opa -> opa_jmp;
|
fork_opa -> opa_jsr;
|
fork_opa -> opa_jsr;
|
fork_opa -> opa_mtp_mem;
|
fork_opa -> opa_mtp_mem;
|
fork_opa -> opa_mfp_reg;
|
fork_opa -> opa_mfp_reg;
|
fork_opa -> opa_mfp_mem;
|
fork_opa -> opa_mfp_mem;
|
fork_opa -> cpufail [color=COLtfat];
|
fork_opa -> cpufail [color=COLtfat];
|
|
|
#else
|
#else
|
|
|
#define do_fork_dstr(s) \
|
#define do_fork_dstr(s) \
|
s -> dstr_def;\
|
s -> dstr_def;\
|
s -> dstr_inc;\
|
s -> dstr_inc;\
|
s -> dstr_dec;\
|
s -> dstr_dec;\
|
s -> dstr_ind;
|
s -> dstr_ind;
|
|
|
#define do_fork_opg(s) \
|
#define do_fork_opg(s) \
|
s -> opg_gen;\
|
s -> opg_gen;\
|
s -> dstw_def;\
|
s -> dstw_def;\
|
s -> dstw_inc;\
|
s -> dstw_inc;\
|
s -> dstw_dec;\
|
s -> dstw_dec;\
|
s -> dstw_ind;\
|
s -> dstw_ind;\
|
s -> opg_mul;\
|
s -> opg_mul;\
|
s -> opg_div;\
|
s -> opg_div;\
|
s -> opg_ash;\
|
s -> opg_ash;\
|
s -> opg_ashc;\
|
s -> opg_ashc;\
|
s -> cpufail [color=COLtfat];
|
s -> cpufail [color=COLtfat];
|
|
|
#define do_fork_opa(s) \
|
#define do_fork_opa(s) \
|
s -> opa_jmp;\
|
s -> opa_jmp;\
|
s -> opa_jsr;\
|
s -> opa_jsr;\
|
s -> opa_mtp_mem;\
|
s -> opa_mtp_mem;\
|
s -> opa_mfp_reg;\
|
s -> opa_mfp_reg;\
|
s -> opa_mfp_mem;\
|
s -> opa_mfp_mem;\
|
s -> cpufail [color=COLtfat];
|
s -> cpufail [color=COLtfat];
|
|
|
#endif
|
#endif
|
|
|
#define do_fork_next(s) \
|
#define do_fork_next(s) \
|
s -> idle;\
|
s -> idle;\
|
s -> trap_disp;\
|
s -> trap_disp;\
|
s -> ifetch [color=COLtflow];
|
s -> ifetch [color=COLtflow];
|
|
|
#define do_fork_next_pref(s) \
|
#define do_fork_next_pref(s) \
|
s -> idle;\
|
s -> idle;\
|
s -> trap_disp;\
|
s -> trap_disp;\
|
s -> ifetch_w [color=COLtflow];
|
s -> ifetch_w [color=COLtflow];
|
|
|
#define do_start_int(s) s-> int_getpc [color=COLtflow];
|
#define do_start_int(s) s-> int_getpc [color=COLtflow];
|
|
|
// state list --------------------------
|
// state list --------------------------
|
|
|
idle [fillcolor=COLssys, fontsize=FSZbnode];
|
idle [fillcolor=COLssys, fontsize=FSZbnode];
|
cp_regread [fillcolor=COLscons];
|
cp_regread [fillcolor=COLscons];
|
cp_rps [fillcolor=COLscons];
|
cp_rps [fillcolor=COLscons];
|
cp_memr_w [fillcolor=COLscons];
|
cp_memr_w [fillcolor=COLscons];
|
cp_memw_w [fillcolor=COLscons];
|
cp_memw_w [fillcolor=COLscons];
|
ifetch [fillcolor=COLssys, fontsize=FSZbnode];
|
ifetch [fillcolor=COLssys, fontsize=FSZbnode];
|
ifetch_w [fillcolor=COLssys, fontsize=FSZbnode];
|
ifetch_w [fillcolor=COLssys, fontsize=FSZbnode];
|
idecode [fillcolor=COLssys, fontsize=FSZbnode];
|
idecode [fillcolor=COLssys, fontsize=FSZbnode];
|
|
|
srcr_def [fillcolor=COLssrc];
|
srcr_def [fillcolor=COLssrc];
|
srcr_def_w [fillcolor=COLssrc];
|
srcr_def_w [fillcolor=COLssrc];
|
srcr_inc [fillcolor=COLssrc];
|
srcr_inc [fillcolor=COLssrc];
|
srcr_inc_w [fillcolor=COLssrc];
|
srcr_inc_w [fillcolor=COLssrc];
|
srcr_dec [fillcolor=COLssrc];
|
srcr_dec [fillcolor=COLssrc];
|
srcr_dec1 [fillcolor=COLssrc];
|
srcr_dec1 [fillcolor=COLssrc];
|
srcr_ind [fillcolor=COLssrc];
|
srcr_ind [fillcolor=COLssrc];
|
srcr_ind1_w [fillcolor=COLssrc];
|
srcr_ind1_w [fillcolor=COLssrc];
|
srcr_ind2 [fillcolor=COLssrc];
|
srcr_ind2 [fillcolor=COLssrc];
|
srcr_ind2_w [fillcolor=COLssrc];
|
srcr_ind2_w [fillcolor=COLssrc];
|
|
|
dstr_def [fillcolor=COLsdst];
|
dstr_def [fillcolor=COLsdst];
|
dstr_def_w [fillcolor=COLsdst];
|
dstr_def_w [fillcolor=COLsdst];
|
dstr_inc [fillcolor=COLsdst];
|
dstr_inc [fillcolor=COLsdst];
|
dstr_inc_w [fillcolor=COLsdst];
|
dstr_inc_w [fillcolor=COLsdst];
|
dstr_dec [fillcolor=COLsdst];
|
dstr_dec [fillcolor=COLsdst];
|
dstr_dec1 [fillcolor=COLsdst];
|
dstr_dec1 [fillcolor=COLsdst];
|
dstr_ind [fillcolor=COLsdst];
|
dstr_ind [fillcolor=COLsdst];
|
dstr_ind1_w [fillcolor=COLsdst];
|
dstr_ind1_w [fillcolor=COLsdst];
|
dstr_ind2 [fillcolor=COLsdst];
|
dstr_ind2 [fillcolor=COLsdst];
|
dstr_ind2_w [fillcolor=COLsdst];
|
dstr_ind2_w [fillcolor=COLsdst];
|
|
|
dstw_def [fillcolor=COLsdst];
|
dstw_def [fillcolor=COLsdst];
|
dstw_def_w [fillcolor=COLsdst];
|
dstw_def_w [fillcolor=COLsdst];
|
dstw_inc [fillcolor=COLsdst];
|
dstw_inc [fillcolor=COLsdst];
|
dstw_inc_w [fillcolor=COLsdst];
|
dstw_inc_w [fillcolor=COLsdst];
|
dstw_incdef_w [fillcolor=COLsdst];
|
dstw_incdef_w [fillcolor=COLsdst];
|
dstw_dec [fillcolor=COLsdst];
|
dstw_dec [fillcolor=COLsdst];
|
dstw_dec1 [fillcolor=COLsdst];
|
dstw_dec1 [fillcolor=COLsdst];
|
dstw_ind [fillcolor=COLsdst];
|
dstw_ind [fillcolor=COLsdst];
|
dstw_ind_w [fillcolor=COLsdst];
|
dstw_ind_w [fillcolor=COLsdst];
|
dstw_def246 [fillcolor=COLsdst];
|
dstw_def246 [fillcolor=COLsdst];
|
|
|
dsta_inc [fillcolor=COLsdst];
|
dsta_inc [fillcolor=COLsdst];
|
dsta_incdef_w [fillcolor=COLsdst];
|
dsta_incdef_w [fillcolor=COLsdst];
|
dsta_dec [fillcolor=COLsdst];
|
dsta_dec [fillcolor=COLsdst];
|
dsta_dec1 [fillcolor=COLsdst];
|
dsta_dec1 [fillcolor=COLsdst];
|
dsta_ind [fillcolor=COLsdst];
|
dsta_ind [fillcolor=COLsdst];
|
dsta_ind_w [fillcolor=COLsdst];
|
dsta_ind_w [fillcolor=COLsdst];
|
|
|
op_halt [fillcolor=COLsoper];
|
op_halt [fillcolor=COLsoper];
|
op_wait [fillcolor=COLsoper];
|
op_wait [fillcolor=COLsoper];
|
op_trap [fillcolor=COLsoper];
|
op_trap [fillcolor=COLsoper];
|
op_reset [fillcolor=COLsoper];
|
op_reset [fillcolor=COLsoper];
|
op_rts [fillcolor=COLsoper];
|
op_rts [fillcolor=COLsoper];
|
op_rtpop [fillcolor=COLsoper];
|
op_rtpop [fillcolor=COLsoper];
|
op_rtpop_w [fillcolor=COLsoper];
|
op_rtpop_w [fillcolor=COLsoper];
|
op_spl [fillcolor=COLsoper];
|
op_spl [fillcolor=COLsoper];
|
op_mcc [fillcolor=COLsoper];
|
op_mcc [fillcolor=COLsoper];
|
op_br [fillcolor=COLsoper];
|
op_br [fillcolor=COLsoper];
|
op_mark [fillcolor=COLsoper];
|
op_mark [fillcolor=COLsoper];
|
op_mark1 [fillcolor=COLsoper];
|
op_mark1 [fillcolor=COLsoper];
|
op_mark_pop [fillcolor=COLsoper];
|
op_mark_pop [fillcolor=COLsoper];
|
op_mark_pop_w [fillcolor=COLsoper];
|
op_mark_pop_w [fillcolor=COLsoper];
|
op_sob [fillcolor=COLsoper];
|
op_sob [fillcolor=COLsoper];
|
op_sob1 [fillcolor=COLsoper];
|
op_sob1 [fillcolor=COLsoper];
|
|
|
opg_gen [fillcolor=COLsoper, fontsize=FSZbnode];
|
opg_gen [fillcolor=COLsoper, fontsize=FSZbnode];
|
opg_gen_rmw_w [fillcolor=COLsoper];
|
opg_gen_rmw_w [fillcolor=COLsoper];
|
opg_mul [fillcolor=COLsoper];
|
opg_mul [fillcolor=COLsoper];
|
opg_mul1 [fillcolor=COLsoper];
|
opg_mul1 [fillcolor=COLsoper];
|
opg_div [fillcolor=COLsoper];
|
opg_div [fillcolor=COLsoper];
|
opg_div_cn [fillcolor=COLsoper];
|
opg_div_cn [fillcolor=COLsoper];
|
opg_div_cr [fillcolor=COLsoper];
|
opg_div_cr [fillcolor=COLsoper];
|
opg_div_sq [fillcolor=COLsoper];
|
opg_div_sq [fillcolor=COLsoper];
|
opg_div_sr [fillcolor=COLsoper];
|
opg_div_sr [fillcolor=COLsoper];
|
opg_div_zero [fillcolor=COLsoper];
|
opg_div_zero [fillcolor=COLsoper];
|
opg_ash [fillcolor=COLsoper];
|
opg_ash [fillcolor=COLsoper];
|
opg_ash_cn [fillcolor=COLsoper];
|
opg_ash_cn [fillcolor=COLsoper];
|
opg_ashc [fillcolor=COLsoper];
|
opg_ashc [fillcolor=COLsoper];
|
opg_ashc_cn [fillcolor=COLsoper];
|
opg_ashc_cn [fillcolor=COLsoper];
|
opg_ashc_wl [fillcolor=COLsoper];
|
opg_ashc_wl [fillcolor=COLsoper];
|
|
|
opa_jsr [fillcolor=COLsoper];
|
opa_jsr [fillcolor=COLsoper];
|
opa_jsr1 [fillcolor=COLsoper];
|
opa_jsr1 [fillcolor=COLsoper];
|
opa_jsr_push [fillcolor=COLsoper];
|
opa_jsr_push [fillcolor=COLsoper];
|
opa_jsr_push_w [fillcolor=COLsoper];
|
opa_jsr_push_w [fillcolor=COLsoper];
|
opa_jsr2 [fillcolor=COLsoper];
|
opa_jsr2 [fillcolor=COLsoper];
|
opa_jmp [fillcolor=COLsoper];
|
opa_jmp [fillcolor=COLsoper];
|
opa_mtp [fillcolor=COLsoper];
|
opa_mtp [fillcolor=COLsoper];
|
opa_mtp_pop_w [fillcolor=COLsoper];
|
opa_mtp_pop_w [fillcolor=COLsoper];
|
opa_mtp_reg [fillcolor=COLsoper];
|
opa_mtp_reg [fillcolor=COLsoper];
|
opa_mtp_mem [fillcolor=COLsoper];
|
opa_mtp_mem [fillcolor=COLsoper];
|
opa_mtp_mem_w [fillcolor=COLsoper];
|
opa_mtp_mem_w [fillcolor=COLsoper];
|
opa_mfp_reg [fillcolor=COLsoper];
|
opa_mfp_reg [fillcolor=COLsoper];
|
opa_mfp_mem [fillcolor=COLsoper];
|
opa_mfp_mem [fillcolor=COLsoper];
|
opa_mfp_mem_w [fillcolor=COLsoper];
|
opa_mfp_mem_w [fillcolor=COLsoper];
|
opa_mfp_dec [fillcolor=COLsoper];
|
opa_mfp_dec [fillcolor=COLsoper];
|
opa_mfp_push [fillcolor=COLsoper];
|
opa_mfp_push [fillcolor=COLsoper];
|
opa_mfp_push_w [fillcolor=COLsoper];
|
opa_mfp_push_w [fillcolor=COLsoper];
|
|
|
trap_4 [fillcolor=COLserr];
|
trap_4 [fillcolor=COLserr];
|
trap_10 [fillcolor=COLserr];
|
trap_10 [fillcolor=COLserr];
|
trap_disp [fillcolor=COLsint];
|
trap_disp [fillcolor=COLsint];
|
|
|
int_ext [fillcolor=COLsint];
|
int_ext [fillcolor=COLsint];
|
int_getpc [fillcolor=COLsint];
|
int_getpc [fillcolor=COLsint];
|
int_getpc_w [fillcolor=COLsint];
|
int_getpc_w [fillcolor=COLsint];
|
int_getps [fillcolor=COLsint];
|
int_getps [fillcolor=COLsint];
|
int_getps_w [fillcolor=COLsint];
|
int_getps_w [fillcolor=COLsint];
|
int_getsp [fillcolor=COLsint];
|
int_getsp [fillcolor=COLsint];
|
int_decsp [fillcolor=COLsint];
|
int_decsp [fillcolor=COLsint];
|
int_pushps [fillcolor=COLsint];
|
int_pushps [fillcolor=COLsint];
|
int_pushps_w [fillcolor=COLsint];
|
int_pushps_w [fillcolor=COLsint];
|
int_pushpc [fillcolor=COLsint];
|
int_pushpc [fillcolor=COLsint];
|
int_pushpc_w [fillcolor=COLsint];
|
int_pushpc_w [fillcolor=COLsint];
|
|
|
rti_getpc [fillcolor=COLsoper];
|
rti_getpc [fillcolor=COLsoper];
|
rti_getpc_w [fillcolor=COLsoper];
|
rti_getpc_w [fillcolor=COLsoper];
|
rti_getps [fillcolor=COLsoper];
|
rti_getps [fillcolor=COLsoper];
|
rti_getps_w [fillcolor=COLsoper];
|
rti_getps_w [fillcolor=COLsoper];
|
rti_newpc [fillcolor=COLsoper];
|
rti_newpc [fillcolor=COLsoper];
|
|
|
vmerr [fillcolor=COLserr];
|
vmerr [fillcolor=COLserr];
|
cpufail [fillcolor=COLserr];
|
cpufail [fillcolor=COLserr];
|
|
|
// transition list ---------------------
|
// transition list ---------------------
|
// idle
|
// idle
|
idle -> idle;
|
idle -> idle;
|
idle -> cp_regread;
|
idle -> cp_regread;
|
idle -> cp_memr_w;
|
idle -> cp_memr_w;
|
idle -> cp_memw_w;
|
idle -> cp_memw_w;
|
idle -> cp_rps;
|
idle -> cp_rps;
|
idle -> int_ext;
|
idle -> int_ext;
|
idle -> ifetch;
|
idle -> ifetch;
|
idle -> op_wait;
|
idle -> op_wait;
|
|
|
// cp_regread
|
// cp_regread
|
cp_regread -> idle;
|
cp_regread -> idle;
|
|
|
// cp_rps
|
// cp_rps
|
cp_rps -> idle;
|
cp_rps -> idle;
|
|
|
// cp_memr_w
|
// cp_memr_w
|
cp_memr_w -> cp_memr_w[color=COLtwait, penwidth=2];
|
cp_memr_w -> cp_memr_w[color=COLtwait, penwidth=2];
|
cp_memr_w -> idle;
|
cp_memr_w -> idle;
|
|
|
// cp_memw_w
|
// cp_memw_w
|
cp_memw_w -> cp_memw_w[color=COLtwait, penwidth=2];
|
cp_memw_w -> cp_memw_w[color=COLtwait, penwidth=2];
|
cp_memw_w -> idle;
|
cp_memw_w -> idle;
|
|
|
// ifetch
|
// ifetch
|
do_memread_i(ifetch, ifetch_w)
|
do_memread_i(ifetch, ifetch_w)
|
|
|
// ifetch_w
|
// ifetch_w
|
do_memcheck(ifetch_w)
|
do_memcheck(ifetch_w)
|
ifetch_w -> idecode;
|
ifetch_w -> idecode;
|
|
|
// idecode
|
// idecode
|
idecode -> op_halt;
|
idecode -> op_halt;
|
idecode -> op_wait;
|
idecode -> op_wait;
|
idecode -> rti_getpc;
|
idecode -> rti_getpc;
|
idecode -> op_trap;
|
idecode -> op_trap;
|
idecode -> op_reset;
|
idecode -> op_reset;
|
idecode -> op_rts;
|
idecode -> op_rts;
|
idecode -> op_spl;
|
idecode -> op_spl;
|
idecode -> op_mcc;
|
idecode -> op_mcc;
|
idecode -> op_br;
|
idecode -> op_br;
|
idecode -> op_mark;
|
idecode -> op_mark;
|
idecode -> op_sob;
|
idecode -> op_sob;
|
idecode -> opa_mtp;
|
idecode -> opa_mtp;
|
idecode -> cpufail [color=COLtfat];
|
idecode -> cpufail [color=COLtfat];
|
idecode -> srcr_def;
|
idecode -> srcr_def;
|
idecode -> srcr_inc;
|
idecode -> srcr_inc;
|
idecode -> srcr_dec;
|
idecode -> srcr_dec;
|
idecode -> srcr_ind;
|
idecode -> srcr_ind;
|
do_fork_dstr(idecode)
|
do_fork_dstr(idecode)
|
do_fork_opa(idecode)
|
do_fork_opa(idecode)
|
idecode -> dsta_inc;
|
idecode -> dsta_inc;
|
idecode -> dsta_dec;
|
idecode -> dsta_dec;
|
idecode -> dsta_ind;
|
idecode -> dsta_ind;
|
do_fork_opg(idecode)
|
do_fork_opg(idecode)
|
idecode -> trap_10 [color=COLterr];
|
idecode -> trap_10 [color=COLterr];
|
|
|
// srcr_def
|
// srcr_def
|
do_memread_d(srcr_def, srcr_def_w)
|
do_memread_d(srcr_def, srcr_def_w)
|
|
|
// srcr_def_w
|
// srcr_def_w
|
do_memcheck(srcr_def_w)
|
do_memcheck(srcr_def_w)
|
do_fork_dstr(srcr_def_w)
|
do_fork_dstr(srcr_def_w)
|
do_fork_opg(srcr_def_w)
|
do_fork_opg(srcr_def_w)
|
|
|
// srcr_inc
|
// srcr_inc
|
do_memread_d(srcr_inc, srcr_inc_w)
|
do_memread_d(srcr_inc, srcr_inc_w)
|
|
|
// srcr_inc_w
|
// srcr_inc_w
|
do_memcheck(srcr_inc_w)
|
do_memcheck(srcr_inc_w)
|
do_fork_dstr(srcr_inc_w)
|
do_fork_dstr(srcr_inc_w)
|
do_fork_opg(srcr_inc_w)
|
do_fork_opg(srcr_inc_w)
|
|
|
// srcr_dec
|
// srcr_dec
|
srcr_dec -> srcr_dec1 [color=COLtflow];
|
srcr_dec -> srcr_dec1 [color=COLtflow];
|
|
|
// srcr_dec1
|
// srcr_dec1
|
do_memread_d(srcr_dec1, srcr_ind1_w)
|
do_memread_d(srcr_dec1, srcr_ind1_w)
|
|
|
// srcr_ind
|
// srcr_ind
|
do_memread_i(srcr_ind, srcr_ind1_w)
|
do_memread_i(srcr_ind, srcr_ind1_w)
|
|
|
// srcr_ind1_w
|
// srcr_ind1_w
|
do_memcheck(srcr_ind1_w)
|
do_memcheck(srcr_ind1_w)
|
srcr_ind1_w -> srcr_ind2 [color=COLtflow];
|
srcr_ind1_w -> srcr_ind2 [color=COLtflow];
|
|
|
// srcr_ind2
|
// srcr_ind2
|
do_memread_d(srcr_ind2, srcr_ind2_w)
|
do_memread_d(srcr_ind2, srcr_ind2_w)
|
|
|
// srcr_ind2_w
|
// srcr_ind2_w
|
do_memcheck(srcr_ind2_w)
|
do_memcheck(srcr_ind2_w)
|
do_fork_dstr(srcr_ind2_w)
|
do_fork_dstr(srcr_ind2_w)
|
do_fork_opg(srcr_ind2_w)
|
do_fork_opg(srcr_ind2_w)
|
|
|
// dstr_def
|
// dstr_def
|
do_memread_d(dstr_def, dstr_def_w)
|
do_memread_d(dstr_def, dstr_def_w)
|
|
|
// dstr_def_w
|
// dstr_def_w
|
do_memcheck(dstr_def_w)
|
do_memcheck(dstr_def_w)
|
do_fork_opg(dstr_def_w)
|
do_fork_opg(dstr_def_w)
|
|
|
// dstr_inc
|
// dstr_inc
|
do_memread_d(dstr_inc, dstr_inc_w)
|
do_memread_d(dstr_inc, dstr_inc_w)
|
|
|
// dstr_inc_w
|
// dstr_inc_w
|
do_memcheck(dstr_inc_w)
|
do_memcheck(dstr_inc_w)
|
dstr_inc_w -> dstr_def [color=COLtflow];
|
dstr_inc_w -> dstr_def [color=COLtflow];
|
do_fork_opg(dstr_inc_w)
|
do_fork_opg(dstr_inc_w)
|
|
|
// dstr_dec
|
// dstr_dec
|
dstr_dec -> dstr_dec1 [color=COLtflow];
|
dstr_dec -> dstr_dec1 [color=COLtflow];
|
|
|
// dstr_dec1
|
// dstr_dec1
|
do_memread_d(dstr_dec1,dstr_inc_w)
|
do_memread_d(dstr_dec1,dstr_inc_w)
|
|
|
// dstr_ind
|
// dstr_ind
|
do_memread_i(dstr_ind, dstr_ind1_w)
|
do_memread_i(dstr_ind, dstr_ind1_w)
|
|
|
// dstr_ind1_w
|
// dstr_ind1_w
|
do_memcheck(dstr_ind1_w)
|
do_memcheck(dstr_ind1_w)
|
dstr_ind1_w -> dstr_ind2 [color=COLtflow];
|
dstr_ind1_w -> dstr_ind2 [color=COLtflow];
|
|
|
// dstr_ind2
|
// dstr_ind2
|
do_memread_d(dstr_ind2, dstr_ind2_w)
|
do_memread_d(dstr_ind2, dstr_ind2_w)
|
|
|
// dstr_ind2_w
|
// dstr_ind2_w
|
do_memcheck(dstr_ind2_w)
|
do_memcheck(dstr_ind2_w)
|
dstr_ind2_w -> dstr_def [color=COLtflow];
|
dstr_ind2_w -> dstr_def [color=COLtflow];
|
do_fork_opg(dstr_ind2_w)
|
do_fork_opg(dstr_ind2_w)
|
|
|
// dstw_def
|
// dstw_def
|
do_memwrite(dstw_def, dstw_def_w)
|
do_memwrite(dstw_def, dstw_def_w)
|
|
|
// dstw_def_w
|
// dstw_def_w
|
do_memcheck(dstw_def_w)
|
do_memcheck(dstw_def_w)
|
do_fork_next(dstw_def_w)
|
do_fork_next(dstw_def_w)
|
|
|
// dstw_inc
|
// dstw_inc
|
do_memwrite(dstw_inc, dstw_inc_w)
|
do_memwrite(dstw_inc, dstw_inc_w)
|
do_memread_d(dstw_inc, dstw_incdef_w)
|
do_memread_d(dstw_inc, dstw_incdef_w)
|
|
|
// dstw_inc_w
|
// dstw_inc_w
|
do_memcheck(dstw_inc_w)
|
do_memcheck(dstw_inc_w)
|
do_fork_next(dstw_inc_w)
|
do_fork_next(dstw_inc_w)
|
|
|
// dstw_incdef_w
|
// dstw_incdef_w
|
do_memcheck(dstw_incdef_w)
|
do_memcheck(dstw_incdef_w)
|
dstw_incdef_w -> dstw_def246 [color=COLtflow];
|
dstw_incdef_w -> dstw_def246 [color=COLtflow];
|
|
|
// dstw_dec
|
// dstw_dec
|
dstw_dec -> dstw_dec1 [color=COLtflow];
|
dstw_dec -> dstw_dec1 [color=COLtflow];
|
|
|
// dstw_dec1
|
// dstw_dec1
|
do_memwrite(dstw_dec1, dstw_def_w)
|
do_memwrite(dstw_dec1, dstw_def_w)
|
do_memread_d(dstw_dec1, dstw_incdef_w)
|
do_memread_d(dstw_dec1, dstw_incdef_w)
|
|
|
// dstw_ind
|
// dstw_ind
|
do_memread_i(dstw_ind, dstw_ind_w)
|
do_memread_i(dstw_ind, dstw_ind_w)
|
|
|
// dstw_ind_w
|
// dstw_ind_w
|
do_memcheck(dstw_ind_w)
|
do_memcheck(dstw_ind_w)
|
dstw_ind_w -> dstw_dec1 [color=COLtflow];
|
dstw_ind_w -> dstw_dec1 [color=COLtflow];
|
|
|
// dstw_def246
|
// dstw_def246
|
do_memwrite(dstw_def246, dstw_def_w)
|
do_memwrite(dstw_def246, dstw_def_w)
|
|
|
// dsta_inc
|
// dsta_inc
|
do_fork_opa(dsta_inc)
|
do_fork_opa(dsta_inc)
|
do_memread_d(dsta_inc, dsta_incdef_w)
|
do_memread_d(dsta_inc, dsta_incdef_w)
|
|
|
// dsta_incdef_w
|
// dsta_incdef_w
|
do_memcheck(dsta_incdef_w)
|
do_memcheck(dsta_incdef_w)
|
do_fork_opa(dsta_incdef_w)
|
do_fork_opa(dsta_incdef_w)
|
|
|
// dsta_dec
|
// dsta_dec
|
dsta_dec -> dsta_dec1 [color=COLtflow];
|
dsta_dec -> dsta_dec1 [color=COLtflow];
|
|
|
// dsta_dec1
|
// dsta_dec1
|
do_fork_opa(dsta_dec1)
|
do_fork_opa(dsta_dec1)
|
do_memread_d(dsta_dec1, dsta_incdef_w)
|
do_memread_d(dsta_dec1, dsta_incdef_w)
|
|
|
// dsta_ind
|
// dsta_ind
|
do_memread_i(dsta_ind, dsta_ind_w)
|
do_memread_i(dsta_ind, dsta_ind_w)
|
|
|
// dsta_ind_w
|
// dsta_ind_w
|
do_memcheck(dsta_ind_w)
|
do_memcheck(dsta_ind_w)
|
dsta_ind_w -> dsta_dec1 [color=COLtflow];
|
dsta_ind_w -> dsta_dec1 [color=COLtflow];
|
|
|
// op_halt
|
// op_halt
|
op_halt -> idle [color=COLtflow];
|
op_halt -> idle [color=COLtflow];
|
op_halt -> trap_4 [color=COLterr];
|
op_halt -> trap_4 [color=COLterr];
|
|
|
// op_wait
|
// op_wait
|
op_wait -> idle;
|
op_wait -> idle;
|
op_wait -> op_wait [color=COLtflow];
|
op_wait -> op_wait [color=COLtflow];
|
|
|
// op_trap
|
// op_trap
|
do_start_int(op_trap)
|
do_start_int(op_trap)
|
|
|
// op_reset
|
// op_reset
|
op_reset -> idle [color=COLtflow];
|
op_reset -> idle [color=COLtflow];
|
|
|
// op_rts
|
// op_rts
|
op_rts -> op_rtpop [color=COLtflow];
|
op_rts -> op_rtpop [color=COLtflow];
|
|
|
// op_rtpop
|
// op_rtpop
|
do_memread_srcinc(op_rtpop, op_rtpop_w)
|
do_memread_srcinc(op_rtpop, op_rtpop_w)
|
|
|
// op_rtpop_w
|
// op_rtpop_w
|
do_memcheck(op_rtpop_w)
|
do_memcheck(op_rtpop_w)
|
do_fork_next(op_rtpop_w)
|
do_fork_next(op_rtpop_w)
|
|
|
// op_spl
|
// op_spl
|
op_spl -> ifetch;
|
op_spl -> ifetch;
|
do_fork_next(op_spl)
|
do_fork_next(op_spl)
|
|
|
// op_mcc
|
// op_mcc
|
do_fork_next(op_mcc)
|
do_fork_next(op_mcc)
|
|
|
// op_br
|
// op_br
|
do_fork_next(op_br)
|
do_fork_next(op_br)
|
//do_fork_next_pref(op_br)
|
//do_fork_next_pref(op_br)
|
op_br -> ifetch_w; // explicit to avoid doubling...
|
op_br -> ifetch_w; // explicit to avoid doubling...
|
|
|
// op_mark
|
// op_mark
|
op_mark -> op_mark1 [color=COLtflow];
|
op_mark -> op_mark1 [color=COLtflow];
|
|
|
// op_mark1
|
// op_mark1
|
op_mark1 -> op_mark_pop [color=COLtflow];
|
op_mark1 -> op_mark_pop [color=COLtflow];
|
|
|
// op_mark_pop
|
// op_mark_pop
|
do_memread_srcinc(op_mark_pop, op_mark_pop_w)
|
do_memread_srcinc(op_mark_pop, op_mark_pop_w)
|
|
|
// op_mark_pop_w
|
// op_mark_pop_w
|
do_memcheck(op_mark_pop_w)
|
do_memcheck(op_mark_pop_w)
|
do_fork_next(op_mark_pop_w)
|
do_fork_next(op_mark_pop_w)
|
|
|
// op_sob
|
// op_sob
|
op_sob -> op_sob1 [color=COLtflow];
|
op_sob -> op_sob1 [color=COLtflow];
|
do_fork_next(op_sob)
|
do_fork_next(op_sob)
|
|
|
// op_sob1
|
// op_sob1
|
do_fork_next(op_sob1)
|
do_fork_next(op_sob1)
|
|
|
// opg_gen
|
// opg_gen
|
do_memwrite(opg_gen, opg_gen_rmw_w)
|
do_memwrite(opg_gen, opg_gen_rmw_w)
|
do_memcheck(opg_gen)
|
do_memcheck(opg_gen)
|
opg_gen -> idecode;
|
opg_gen -> idecode;
|
// opg_gen -> idle; (already in do_fork!!)
|
// opg_gen -> idle; (already in do_fork!!)
|
do_fork_next_pref(opg_gen)
|
do_fork_next_pref(opg_gen)
|
|
|
// opg_gen_rmw_w
|
// opg_gen_rmw_w
|
do_memcheck(opg_gen_rmw_w)
|
do_memcheck(opg_gen_rmw_w)
|
do_fork_next(opg_gen_rmw_w)
|
do_fork_next(opg_gen_rmw_w)
|
|
|
// opg_mul
|
// opg_mul
|
opg_mul -> opg_mul1 [color=COLtflow];
|
opg_mul -> opg_mul1 [color=COLtflow];
|
|
|
// opg_mul1
|
// opg_mul1
|
do_fork_next(opg_mul1)
|
do_fork_next(opg_mul1)
|
|
|
// opg_div
|
// opg_div
|
opg_div -> opg_div_cn;
|
opg_div -> opg_div_cn;
|
|
|
// opg_div_cn
|
// opg_div_cn
|
opg_div_cn -> opg_div_zero;
|
opg_div_cn -> opg_div_zero;
|
opg_div_cn -> opg_div_cr [color=COLtflow];
|
opg_div_cn -> opg_div_cr [color=COLtflow];
|
opg_div_cn -> opg_div_cn;
|
opg_div_cn -> opg_div_cn;
|
|
|
// opg_div_cr
|
// opg_div_cr
|
opg_div_cr -> opg_div_sq [color=COLtflow];
|
opg_div_cr -> opg_div_sq [color=COLtflow];
|
|
|
// opg_div_sq
|
// opg_div_sq
|
opg_div_sq -> opg_div_sr [color=COLtflow];
|
opg_div_sq -> opg_div_sr [color=COLtflow];
|
|
|
// opg_div_sr
|
// opg_div_sr
|
do_fork_next(opg_div_sr)
|
do_fork_next(opg_div_sr)
|
|
|
// opg_div_zero
|
// opg_div_zero
|
do_fork_next(opg_div_zero)
|
do_fork_next(opg_div_zero)
|
|
|
// opg_ash
|
// opg_ash
|
opg_ash -> opg_ash_cn [color=COLtflow];
|
opg_ash -> opg_ash_cn [color=COLtflow];
|
|
|
// opg_ash_cn
|
// opg_ash_cn
|
opg_ash_cn -> opg_ash_cn;
|
opg_ash_cn -> opg_ash_cn;
|
do_fork_next_pref(opg_ash_cn)
|
do_fork_next_pref(opg_ash_cn)
|
|
|
// opg_ashc
|
// opg_ashc
|
opg_ashc -> opg_ashc_cn [color=COLtflow];
|
opg_ashc -> opg_ashc_cn [color=COLtflow];
|
|
|
// opg_ashc_cn
|
// opg_ashc_cn
|
opg_ashc_cn -> opg_ashc_cn;
|
opg_ashc_cn -> opg_ashc_cn;
|
opg_ashc_cn -> opg_ashc_wl [color=COLtflow];
|
opg_ashc_cn -> opg_ashc_wl [color=COLtflow];
|
|
|
// opg_ashc_wl
|
// opg_ashc_wl
|
do_fork_next(opg_ashc_wl)
|
do_fork_next(opg_ashc_wl)
|
|
|
// opa_jsr
|
// opa_jsr
|
opa_jsr -> trap_10 [color=COLterr];
|
opa_jsr -> trap_10 [color=COLterr];
|
opa_jsr -> opa_jsr1 [color=COLtflow];
|
opa_jsr -> opa_jsr1 [color=COLtflow];
|
|
|
// opa_jsr1
|
// opa_jsr1
|
opa_jsr1 -> opa_jsr_push [color=COLtflow];
|
opa_jsr1 -> opa_jsr_push [color=COLtflow];
|
|
|
// opa_jsr_push
|
// opa_jsr_push
|
opa_jsr_push -> opa_jsr_push_w [color=COLtflow];
|
opa_jsr_push -> opa_jsr_push_w [color=COLtflow];
|
|
|
// opa_jsr_push_w
|
// opa_jsr_push_w
|
do_memcheck(opa_jsr_push_w)
|
do_memcheck(opa_jsr_push_w)
|
opa_jsr_push_w -> opa_jsr2 [color=COLtflow];
|
opa_jsr_push_w -> opa_jsr2 [color=COLtflow];
|
|
|
// opa_jsr2
|
// opa_jsr2
|
do_fork_next(opa_jsr2)
|
do_fork_next(opa_jsr2)
|
|
|
// opa_jmp
|
// opa_jmp
|
opa_jmp -> trap_10 [color=COLterr];
|
opa_jmp -> trap_10 [color=COLterr];
|
do_fork_next(opa_jmp)
|
do_fork_next(opa_jmp)
|
|
|
// opa_mtp
|
// opa_mtp
|
do_memread_srcinc(opa_mtp, opa_mtp_pop_w)
|
do_memread_srcinc(opa_mtp, opa_mtp_pop_w)
|
|
|
// opa_mtp_pop_w
|
// opa_mtp_pop_w
|
do_memcheck(opa_mtp_pop_w)
|
do_memcheck(opa_mtp_pop_w)
|
opa_mtp_pop_w -> opa_mtp_reg;
|
opa_mtp_pop_w -> opa_mtp_reg;
|
opa_mtp_pop_w -> opa_mtp_mem;
|
opa_mtp_pop_w -> opa_mtp_mem;
|
opa_mtp_pop_w -> dsta_inc;
|
opa_mtp_pop_w -> dsta_inc;
|
opa_mtp_pop_w -> dsta_dec;
|
opa_mtp_pop_w -> dsta_dec;
|
opa_mtp_pop_w -> dsta_ind;
|
opa_mtp_pop_w -> dsta_ind;
|
opa_mtp_pop_w -> cpufail [color=COLtfat];
|
opa_mtp_pop_w -> cpufail [color=COLtfat];
|
|
|
// opa_mtp_reg
|
// opa_mtp_reg
|
do_fork_next(opa_mtp_reg)
|
do_fork_next(opa_mtp_reg)
|
|
|
// opa_mtp_mem
|
// opa_mtp_mem
|
opa_mtp_mem -> opa_mtp_mem_w [color=COLtflow];
|
opa_mtp_mem -> opa_mtp_mem_w [color=COLtflow];
|
|
|
// opa_mtp_mem_w
|
// opa_mtp_mem_w
|
do_memcheck(opa_mtp_mem_w)
|
do_memcheck(opa_mtp_mem_w)
|
do_fork_next(opa_mtp_mem_w)
|
do_fork_next(opa_mtp_mem_w)
|
|
|
// opa_mfp_reg
|
// opa_mfp_reg
|
opa_mfp_reg -> opa_mfp_dec [color=COLtflow];
|
opa_mfp_reg -> opa_mfp_dec [color=COLtflow];
|
|
|
// opa_mfp_mem
|
// opa_mfp_mem
|
opa_mfp_mem -> opa_mfp_mem_w [color=COLtflow];
|
opa_mfp_mem -> opa_mfp_mem_w [color=COLtflow];
|
|
|
// opa_mfp_mem_w
|
// opa_mfp_mem_w
|
do_memcheck(opa_mfp_mem_w)
|
do_memcheck(opa_mfp_mem_w)
|
opa_mfp_mem_w -> opa_mfp_dec [color=COLtflow];
|
opa_mfp_mem_w -> opa_mfp_dec [color=COLtflow];
|
|
|
// opa_mfp_dec
|
// opa_mfp_dec
|
opa_mfp_dec -> opa_mfp_push [color=COLtflow];
|
opa_mfp_dec -> opa_mfp_push [color=COLtflow];
|
|
|
// opa_mfp_push
|
// opa_mfp_push
|
opa_mfp_push -> opa_mfp_push_w [color=COLtflow];
|
opa_mfp_push -> opa_mfp_push_w [color=COLtflow];
|
|
|
// opa_mfp_push_w
|
// opa_mfp_push_w
|
do_memcheck(opa_mfp_push_w)
|
do_memcheck(opa_mfp_push_w)
|
do_fork_next(opa_mfp_push_w)
|
do_fork_next(opa_mfp_push_w)
|
|
|
// trap_4
|
// trap_4
|
do_start_int(trap_4)
|
do_start_int(trap_4)
|
|
|
// trap_10
|
// trap_10
|
do_start_int(trap_10)
|
do_start_int(trap_10)
|
|
|
// trap_disp
|
// trap_disp
|
do_start_int(trap_disp)
|
do_start_int(trap_disp)
|
|
|
// int_ext
|
// int_ext
|
do_start_int(int_ext)
|
do_start_int(int_ext)
|
|
|
// int_getpc
|
// int_getpc
|
do_memread_srcinc(int_getpc, int_getpc_w)
|
do_memread_srcinc(int_getpc, int_getpc_w)
|
|
|
// int_getpc_w
|
// int_getpc_w
|
do_memcheck(int_getpc_w)
|
do_memcheck(int_getpc_w)
|
int_getpc_w -> idle;
|
int_getpc_w -> idle;
|
int_getpc_w -> int_getps [color=COLtflow];
|
int_getpc_w -> int_getps [color=COLtflow];
|
|
|
// int_getps
|
// int_getps
|
do_memread_srcinc(int_getps, int_getps_w)
|
do_memread_srcinc(int_getps, int_getps_w)
|
|
|
// int_getps_w
|
// int_getps_w
|
do_memcheck(int_getps_w)
|
do_memcheck(int_getps_w)
|
int_getps_w -> idle;
|
int_getps_w -> idle;
|
int_getps_w -> int_getsp [color=COLtflow];
|
int_getps_w -> int_getsp [color=COLtflow];
|
|
|
// int_getsp
|
// int_getsp
|
int_getsp -> int_decsp [color=COLtflow];
|
int_getsp -> int_decsp [color=COLtflow];
|
|
|
// int_decsp
|
// int_decsp
|
int_decsp -> int_pushps [color=COLtflow];
|
int_decsp -> int_pushps [color=COLtflow];
|
|
|
// int_pushps
|
// int_pushps
|
int_pushps -> int_pushps_w [color=COLtflow];
|
int_pushps -> int_pushps_w [color=COLtflow];
|
|
|
// int_pushps_w
|
// int_pushps_w
|
do_memcheck(int_pushps_w)
|
do_memcheck(int_pushps_w)
|
int_pushps_w -> int_pushpc [color=COLtflow];
|
int_pushps_w -> int_pushpc [color=COLtflow];
|
|
|
// int_pushpc
|
// int_pushpc
|
int_pushpc -> int_pushpc_w [color=COLtflow];
|
int_pushpc -> int_pushpc_w [color=COLtflow];
|
|
|
// int_pushpc_w
|
// int_pushpc_w
|
do_memcheck(int_pushpc_w)
|
do_memcheck(int_pushpc_w)
|
do_fork_next(int_pushpc_w)
|
do_fork_next(int_pushpc_w)
|
|
|
// rti_getpc
|
// rti_getpc
|
do_memread_srcinc(rti_getpc, rti_getpc_w)
|
do_memread_srcinc(rti_getpc, rti_getpc_w)
|
|
|
// rti_getpc_w
|
// rti_getpc_w
|
do_memcheck(rti_getpc_w)
|
do_memcheck(rti_getpc_w)
|
rti_getpc_w -> rti_getps [color=COLtflow];
|
rti_getpc_w -> rti_getps [color=COLtflow];
|
|
|
// rti_getps
|
// rti_getps
|
do_memread_srcinc(rti_getps, rti_getps_w)
|
do_memread_srcinc(rti_getps, rti_getps_w)
|
|
|
// rti_getps_w
|
// rti_getps_w
|
do_memcheck(rti_getps_w)
|
do_memcheck(rti_getps_w)
|
rti_getps_w -> rti_newpc [color=COLtflow];
|
rti_getps_w -> rti_newpc [color=COLtflow];
|
|
|
// rti_newpc
|
// rti_newpc
|
rti_newpc -> ifetch;
|
rti_newpc -> ifetch;
|
do_fork_next(rti_newpc)
|
do_fork_next(rti_newpc)
|
|
|
// vmerr
|
// vmerr
|
vmerr -> cpufail [color=COLtfat];
|
vmerr -> cpufail [color=COLtfat];
|
vmerr -> trap_4 [color=COLtflow];
|
vmerr -> trap_4 [color=COLtflow];
|
do_start_int(vmerr)
|
do_start_int(vmerr)
|
|
|
// cpufail
|
// cpufail
|
cpufail -> idle [color=COLtflow];
|
cpufail -> idle [color=COLtflow];
|
|
|
// subgraph definitions ----------------
|
// subgraph definitions ----------------
|
#ifdef CLUSTER
|
#ifdef CLUSTER
|
|
|
subgraph cluster_srcr {
|
subgraph cluster_srcr {
|
srcr_def;
|
srcr_def;
|
srcr_def_w;
|
srcr_def_w;
|
srcr_inc;
|
srcr_inc;
|
srcr_inc_w;
|
srcr_inc_w;
|
srcr_dec;
|
srcr_dec;
|
srcr_dec1;
|
srcr_dec1;
|
srcr_ind;
|
srcr_ind;
|
srcr_ind1_w;
|
srcr_ind1_w;
|
srcr_ind2;
|
srcr_ind2;
|
srcr_ind2_w;
|
srcr_ind2_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "SRCR flow";
|
label = "SRCR flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_dstr {
|
subgraph cluster_dstr {
|
dstr_def;
|
dstr_def;
|
dstr_def_w;
|
dstr_def_w;
|
dstr_inc;
|
dstr_inc;
|
dstr_inc_w;
|
dstr_inc_w;
|
dstr_dec;
|
dstr_dec;
|
dstr_dec1;
|
dstr_dec1;
|
dstr_ind;
|
dstr_ind;
|
dstr_ind1_w;
|
dstr_ind1_w;
|
dstr_ind2;
|
dstr_ind2;
|
dstr_ind2_w;
|
dstr_ind2_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "DSTR flow";
|
label = "DSTR flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_dstw {
|
subgraph cluster_dstw {
|
dstw_def;
|
dstw_def;
|
dstw_def_w;
|
dstw_def_w;
|
dstw_inc;
|
dstw_inc;
|
dstw_inc_w;
|
dstw_inc_w;
|
dstw_incdef_w;
|
dstw_incdef_w;
|
dstw_dec;
|
dstw_dec;
|
dstw_dec1;
|
dstw_dec1;
|
dstw_ind;
|
dstw_ind;
|
dstw_ind_w;
|
dstw_ind_w;
|
dstw_def246;
|
dstw_def246;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "DSTW flow";
|
label = "DSTW flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_dsta {
|
subgraph cluster_dsta {
|
dsta_inc;
|
dsta_inc;
|
dsta_incdef_w;
|
dsta_incdef_w;
|
dsta_dec;
|
dsta_dec;
|
dsta_dec1;
|
dsta_dec1;
|
dsta_ind;
|
dsta_ind;
|
dsta_ind_w;
|
dsta_ind_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "DSTA flow";
|
label = "DSTA flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_rts {
|
subgraph cluster_rts {
|
op_rts;
|
op_rts;
|
op_rtpop;
|
op_rtpop;
|
op_rtpop_w;
|
op_rtpop_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "RTS flow";
|
label = "RTS flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_mark {
|
subgraph cluster_mark {
|
op_mark;
|
op_mark;
|
op_mark1;
|
op_mark1;
|
op_mark_pop;
|
op_mark_pop;
|
op_mark_pop_w;
|
op_mark_pop_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "MARK flow";
|
label = "MARK flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
//#ifdef never
|
//#ifdef never
|
subgraph cluster_sob {
|
subgraph cluster_sob {
|
op_sob;
|
op_sob;
|
op_sob1;
|
op_sob1;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "SOB flow";
|
label = "SOB flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_mul {
|
subgraph cluster_mul {
|
opg_mul;
|
opg_mul;
|
opg_mul1;
|
opg_mul1;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "MUL flow";
|
label = "MUL flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
//#endif
|
//#endif
|
|
|
subgraph cluster_div {
|
subgraph cluster_div {
|
opg_div;
|
opg_div;
|
opg_div_cn;
|
opg_div_cn;
|
opg_div_cr;
|
opg_div_cr;
|
opg_div_sq;
|
opg_div_sq;
|
opg_div_sr;
|
opg_div_sr;
|
opg_div_zero;
|
opg_div_zero;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "DIV flow";
|
label = "DIV flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
//#ifdef never
|
//#ifdef never
|
subgraph cluster_ash {
|
subgraph cluster_ash {
|
opg_ash;
|
opg_ash;
|
opg_ash_cn;
|
opg_ash_cn;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "ASH flow";
|
label = "ASH flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
//#endif
|
//#endif
|
|
|
subgraph cluster_ashc{
|
subgraph cluster_ashc{
|
opg_ashc;
|
opg_ashc;
|
opg_ashc_cn;
|
opg_ashc_cn;
|
opg_ashc_wl;
|
opg_ashc_wl;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "ASHC flow";
|
label = "ASHC flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_jsr {
|
subgraph cluster_jsr {
|
opa_jsr;
|
opa_jsr;
|
opa_jsr1;
|
opa_jsr1;
|
opa_jsr_push;
|
opa_jsr_push;
|
opa_jsr_push_w;
|
opa_jsr_push_w;
|
opa_jsr2;
|
opa_jsr2;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "JSR flow";
|
label = "JSR flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_mtp {
|
subgraph cluster_mtp {
|
opa_mtp;
|
opa_mtp;
|
opa_mtp_pop_w;
|
opa_mtp_pop_w;
|
opa_mtp_reg;
|
opa_mtp_reg;
|
opa_mtp_mem;
|
opa_mtp_mem;
|
opa_mtp_mem_w;
|
opa_mtp_mem_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "MTP flow";
|
label = "MTP flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_mfp {
|
subgraph cluster_mfp {
|
opa_mfp_reg;
|
opa_mfp_reg;
|
opa_mfp_mem;
|
opa_mfp_mem;
|
opa_mfp_mem_w;
|
opa_mfp_mem_w;
|
opa_mfp_dec;
|
opa_mfp_dec;
|
opa_mfp_push;
|
opa_mfp_push;
|
opa_mfp_push_w;
|
opa_mfp_push_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "MFP flow";
|
label = "MFP flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_int {
|
subgraph cluster_int {
|
int_ext;
|
int_ext;
|
int_getpc;
|
int_getpc;
|
int_getpc_w;
|
int_getpc_w;
|
int_getps;
|
int_getps;
|
int_getps_w;
|
int_getps_w;
|
int_getsp;
|
int_getsp;
|
int_decsp;
|
int_decsp;
|
int_pushps;
|
int_pushps;
|
int_pushps_w;
|
int_pushps_w;
|
int_pushpc;
|
int_pushpc;
|
int_pushpc_w;
|
int_pushpc_w;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "INT flow";
|
label = "INT flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
|
|
subgraph cluster_rti {
|
subgraph cluster_rti {
|
rti_getpc;
|
rti_getpc;
|
rti_getpc_w;
|
rti_getpc_w;
|
rti_getps;
|
rti_getps;
|
rti_getps_w;
|
rti_getps_w;
|
rti_newpc;
|
rti_newpc;
|
fontsize=FSZgraph;
|
fontsize=FSZgraph;
|
fontcolor=blue;
|
fontcolor=blue;
|
label = "RTI flow";
|
label = "RTI flow";
|
style=dashed;
|
style=dashed;
|
color=blue;
|
color=blue;
|
}
|
}
|
#endif
|
#endif
|
}
|
}
|
|
|