Coefficients and Data Update Scheduling - 2022.2 English

Vitis Tutorials: AI Engine Development

Document ID
XD100
Release Date
2022-12-01
Version
2022.2 English

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):

missing image

This image represents the following equation:

missing image

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

missing image

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:

missing image

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: