13 | | |
14 | | It implements the X-First algorithm for broadcast, and X-First or Y-First for broadcast, depending on the sender's coordinates' parity. |
15 | | |
16 | | During broadcast, order of outputs is determined by their priority : in case of X-First routing, EAST and WEST Output are chosen first (NORTH and SOUTH for Y-routing). |
17 | | |
18 | | === Input INFSM States === |
19 | | |
20 | | || FSM_REQ || Waiting for paquet or sending first flit || |
21 | | || FSM_DTN || Allocated to correct output for multicast || |
22 | | || FSM_DT_11 || Sending second flit to first output in multicast || |
23 | | || FSM_REQ_12 || Sending first flit to second output in multicast || |
24 | | || FSM_DT_12 || Sending second flit to second output in multicast || |
25 | | || FSM_REQ_21 || Sending first flit to third output in multicast || |
26 | | || FSM_DT_21 || Sending second flit to third output in multicast || |
27 | | || FSM_REQ_22 || Sending first flit to fourth output in multicast || |
28 | | || FSM_DT_22 || Sending second flit to fourth output in multicast || |
29 | | || FSM_REQ_LOCAL || Sending first flit to fifth (LOCAL) output in multicast || |
30 | | || FSM_DT_LOCAL || Sending second flit to fifth (LOCAL) output in multicast || |
31 | | |
32 | | === Output INFSM States === |
33 | | |
34 | | || LOCAL || Allocated to LOCAL input || |
35 | | || NORTH || Allocated to NORTH input || |
36 | | || SOUTH || Allocated to SOUTH input || |
37 | | || EAST || Allocated to EAST input || |
38 | | || WEST || Allocated to WEST input || |
39 | | || NOP_LOCAL || Not allocated, and last allocated was LOCAL || |
40 | | || NOP_NORTH || Not allocated, and last allocated was NORTH || |
41 | | || NOP_SOUTH || Not allocated, and last allocated was SOUTH || |
42 | | || NOP_EAST || Not allocated, and last allocated was EAST || |
43 | | || NOP_WEST || Not allocated, and last allocated was WEST || |
44 | | || NOP_WEST || Not allocated, and last allocated is unkwnow (equivalent of NOP_LOCAL)|| |