EasyManua.ls Logo

Analog Devices adsp-2100

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

Table of Contents

Related product manuals