Loop ADAU1451


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

  • 0
    •  Analog Employees 
    on Sep 6, 2019 6:59 PM over 1 year ago

    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

  • 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)) */

    Thank you in advance.


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

    Thank you in advance for your answer.