ΣSigmaStudio Ask AI Русский Log in

Loop ADAU1451

SigmaDSP & SigmaStudio Cmo Sep 6, 2019 00:00 3 replies Original on forum ↗
Subscribe
Cmo Question
Sep 6, 2019 00:00

Hello,

Is it possible to create a loop in Sigma studio to execute low level bloc (multiply, add, and so on) ?

DaveThib Reply
Sep 6, 2019 00:00

Hello Cmo,

By using a feedback cell you can take the sample that was the result from the previous frame and do what you like with it. I just threw this together to show you that you can do this. This schematic is taking the current sample and adding it to the result from the last multiply. Then it is multiplying it by a constant that is stored in the DC cell. Then the result is "Y"d and sent out of the DSP and also stored for use in the next sample period.

I Think this is what you are asking about.

Dave T

Multiply-Add.JPG
Multiply-Add.JPG
Cmo Reply
Sep 6, 2019 00:00

Thank you for this answer, so I have to make N feedback to realize my algorithm (X(k-(N-1)) ?

In fact, I would like to create a loop as for example that here below, is it possible ? :

DO bfly_loop UNTIL CE;
MR = MR-MX1*MY1(RND), AY0 = DM(I2,M0); /* MR=x1*C-y1*-S, AY0=x0 */
AR = MR1+AY0, AX1 = PM(I5,M5); /* AR=x0'=x0+(x1*C-y1*-S) */
DM(I2,M1) = AR, AR = AY0-MR1; /* DM=x0', AR=x1'=x0-(x1*C-y1*(-S)) */
MR = MX0*MY1(SS), DM(I1,M1) = AR; /* MR=x1*(-S), DM=x1' */
MR = MR+MX1*MY0(RND), AY1 = PM(I6,M4), MX0 = DM(I1,M0); /*MR=x1*(-S)+y1*C, AY1=y0, MX0=next x1*/
AR = MR1+AY1, MX1 = PM(I5,M6); /* AR=y0'=y0+(y1*C+x1*(-S)), MX1= next y1 */
PM(I6,M5) = AR, AR = AY1-MR1; /* PM=y0', AR=y1'=y0-(y1*C+x1*(-S)) */
bfly_loop:

Thank you in advance.

Kwanja

Cmo Reply
Sep 7, 2019 00:00

An other example, as if I would to do a custom FIR.

Thank you in advance for your answer.