Modulo Scheduling of Multicycle Loops
6-72
Table 6–15. Modulo Iteration Interval Table for Weighted Vector Sum (2-Cycle Loop)
Unit/Cycle
0
2
4
6
8
10, 12, 14, ...
.D1
LDW ai_i+1
*
LDW ai_i+1
**
LDW ai_i+1
***
LDW ai_i+1
****
LDW ai_i+1
*****
LDW ai_i+1
.D2
LDW bi_i+1
*
LDW bi_i+1
**
LDW bi_i+1
***
LDW bi_i+1
****
LDW bi_i+1
.M1
.M2
MPYHL pi+1
*
MPYHL pi+1
**
MPYHL pi+1
.L1
ADD ci
*
ADD ci
.L2
ADD ci+1
.S1
B LOOP
*
B LOOP
**
B LOOP
.S2
SHR bi+1
*
SHR bi+1
1X
ADD ci
*
ADD ci
2X
MPYHL pi+1
*
MPYHL pi+1
**
MPYHL pi+1
Unit/Cycle
1
3
5
7
9
11, 13, 15, ...
.D1
STH ci
*
STH ci
.D2
STH ci+1
.M1
MPY pi
*
MPY pi
**
MPY pi
***
MPY pi
.M2
.L1
SUB cntr
*
SUB cntr
**
SUB cntr
***
SUB cntr
.L2
AND bi
*
AND bi
**
AND bi
.S1
SHR pi_s
*
SHR pi_s
**
SHR pi_s
.S2
SHR pi+1_s
*
SHR pi+1_s
1X
MPY pi
*
MPY pi
**
MPY pi
***
MPY pi
2X
Note:
The asterisks indicate the iteration of the loop; shading indicates changes in scheduling from Table 6–14.