Before the first iteration the delay-line, the status is read to update the Y register. It will contain all the necessary previous data: { d(-32), d(-31), ... , d(-2), d(-1)}
. The first output will be the result of the following operation:
y(0) = d(-31).c(0) + d(-30).c(1) + ... + d(-1).c(30) + d(0).c(31)
where the array c
is the array of coefficients. Use a table to organize operations scheduling (excel for example):
This image represents the following equation:
Following this first mul4
operation 15 mac4
operations should be used to finih the computation of {y(0), y(1), y(2), y(3)}
.
Use darker and darker green to represent the next three mac4
operations
With these operations performed, the eight coefficients that were in the the v8cint16
have been used, and it is time to update them. These operations should be followed by eight mac4
operations:
The next block of four mac4
operations will wrap around and reuse the begining of the data register. It is time to load four new samples from the stream and finish the operations: