Loop Carry Paths
6-80
6.7.4
Determining the Minimum Iteration Interval
To determine the minimum iteration interval, you must consider both resources
and data dependency constraints. Based on resources in Table 6–16, the
minimum iteration interval is 2.
Note:
There are six non-.M units available: three on the A side (.S1, .D1, .L1) and
three on the B side (.S2, .D2, .L2). Therefore, to determine resource
constraints, divide the total number of non-.M units used on each side by 3
(3 is the total number of non-.M units available on each side).
Based on non-.M unit resources in Table 6–16, the minimum iteration inter-
val for the IIR filter is 2 because the total non-.M units on the A side is 5 (5
3
is greater than 1 so you round up to the next whole number). The B side uses
only three non-.M units, so this does not affect the minimum iteration interval,
and no other unit is used more than twice.
Table 6–16. Resource Table for IIR Filter
(a) A side
(b) B side
Unit(s)
Instructions
Total/Unit
Unit(s)
Instructions
Total/Unit
.M1
2 MPYs
2
.M2
MPY
1
.S1
B
1
.S2
SHR
1
.D1
2 LDHs
2
.D2
STH
1
.L1,.S1, or .D1
ADD & SUB
2
.L2 or .S2, .D2
ADD
1
Total non-.M units
5
Total non-.M units
3
However, the IIR has a data dependency constraint defined by its loop carry
path. Figure 6–15 shows that if you schedule LDH yi on cycle 0:
-
The earliest you can schedule MPY p2 is on cycle 5.
-
The earliest you can schedule ADD s1 is on cycle 7.
-
SHR yi+1 must be on cycle 8 and STH on cycle 9.
-
Because the LDH must wait for the STH to be issued, the earliest the the
second iteration can begin is cycle 10.
To determine the minimum loop carry path, add all of the numbers along the
loop paths in the dependency graph. This means that this loop carry path is
10 (5 + 2 + 1 + 1 + 1).