5.1    INTRODUCTION

Unfolding is a transformation technique that can be applied to a DSP program to create a new program describing more than one iteration of the original program. More specifically, unfolding a DSP program by the unfolding factor J creates a new program that describes J consecutive iterations of the original program. Unfolding is also referred to as loop unrolling and has been used in compiler theory [1].

For example, consider the DSP program

image

for n = 0 to ∞, which is shown in Fig. 5.1(a). Replacing the index n with 2k results in y(2k) = ay(2k − 9) + x(2k) for k = 0 to ∞. Similarly, replacing the index n with 2k + 1 results in y(2k + 1) = ay(2k − 8) + x(2k + 1) for k = 0 to ∞. Together, the 2 equations

image

describe the same program as (5.1). The program in (5.2) describes 2 consecutive iterations of the program in (5.1). For example, for k = 7, the equations in (5.2) are y(14) = ay(5) + x(14) and y(15) = ay(6) + x(15). These equations are the same as those described in (5.1) for the 2 consecutive iterations n = 14 and n = 15. The program in (5.2) describes a 2-unfolded version of the program in (5.1).

image

Fig. 5.1    (a) The original DSP program describing y(n) = ay(n − 9) ...

Get VLSI Digital Signal Processing Systems: Design and Implementation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.