Analog Devices adsp-2100 Manual page 319

Adsp-2100 family programmable single-chip microprocessors
Table of Contents

Advertisement

14 Software Examples
bfly_loop:
group_loop:
stage_loop: DM(bflys_per_group)=SR0;
14 – 16
MODIFY(I3,M2);
DO group_loop UNTIL CE;
I4=^twid_real;
I5=^twid_imag;
CNTR=DM(bflys_per_group);
MY0=PM(I4,M4),MX0=DM(I1,M0);
MY1=PM(I5,M4),MX1=DM(I3,M0);
DO bfly_loop UNTIL CE;
MR=MX0*MY1(SS),AX0=DM(I0,M0);
MR=MR+MX1*MY0(RND),AX1=DM(I2,M0);
AY1=MR1,MR=MX0*MY0(SS);
MR=MR-MX1*MY1(RND);
AY0=MR1,AR=AX1-AY1;
{AY0=x1(C)-y1(-S),AR=y0-[y1(C)+x1(-S)]}
SB=EXPADJ AR,DM(I3,M1)=AR;
{Check for bit growth, y1=y0-[y1(C)+x1(-S)]}
AR=AX0-AY0,MX1=DM(I3,M0),MY1=PM(I5,M4);
{AR=x0-[x1(C)-y1(-S)], MX1=next y1,MY1=next (-S)}
SB=EXPADJ AR,DM(I1,M1)=AR;
{Check for bit growth, x1=x0-[x1(C)-y1(-S)]}
AR=AX0+AY0,MX0=DM(I1,M0),MY0=PM(I4,M4);
{AR=x0+[x1(C)-y1(-S)], MX0=next x1,MY0=next C}
SB=EXPADJ AR,DM(I0,M1)=AR;
{Check for bit growth, x0=x0+[x1(C)-y1(-S)]}
AR=AX1+AY1;
SB=EXPADJ AR,DM(I2,M1)=AR;
{Check for bit growth, y0=y0+[y1(C)+x1(-S)]}
MODIFY(I0,M2);
MODIFY(I1,M2);
MODIFY(I2,M2);
MODIFY(I3,M2);
CALL bfp_adj;
SI=DM(bflys_per_group);
SR=ASHIFT SI BY 1(LO);
DM(node_space)=SR0;
{I3 ->y1 of 1st grp in stage}
{I4 -> C of W0}
{I5 -> (-S) of W0}
{CNTR=bfly count}
{MY0=C,MX0=x1 }
{MY1=-S,MX1=y1}
{MR=x1(-S),AX0=x0}
{MR=(y1(C)+x1(-S)),AX1=y0}
{AY1=y1(C)+x1(-S),MR=x1(C)}
{MR=x1(C)-y1(-S)}
{AR=y0+[y1(C)+x1(-S)]}
{I0 ->1st x0 in next group}
{I1 ->1st x1 in next group}
{I2 ->1st y0 in next group}
{I3 ->1st y1 in next group}
{Compensate for bit growth}
{node_space=node_space / 2}

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents