Digital Signal Processing Reference
In-Depth Information
// 3:2 compressor at level 0 for coefficient 2
{c20[i+1],s20[i]} = pp_6[i]+pp_7[i]+pp_8[i];
{c200[i+1],s200[i]} = pp_9[i]+sn_1[i]+cn_1[i];
// 3:2 compressor at level 0 for coefficient 3
{c30[i+1],s30[i]} = pp_10[i]+pp_11[i]+sn_2[i];
// 3:2 compressor at level 0 for coefficient 4
c40[i+1],s40[i]} = pp_12[i]+pp_13[i]+pp_14[i];
{c400[i+1],s400[i]} = pp_15[i]+sn_3[i]+cn_3[i];
end
c01[0]=0; c11[0]=0; c21[0]=0; c31[0]=0; c41[0]=0;
// Second level of 3:2 compressors
for (i=0; i<32; i=i+1)
begin
// For coefficient 0
{c01[i+1],s01[i]} = c00[i]+s00[i]+pp_3[i];
// For coefficient 1: complete
{c11[i+1],s11[i]} = c10[i]+s10[i]+cn_0[i];
// For coefficient 2
{c21[i+1],s21[i]} = c20[i]+s20[i]+c200[i];
// For coefficient 3: complete
{c31[i+1],s31[i]} = c30[i]+s30[i]+cn_2[i];
// For coefficient 4
{c41[i+1],s41[i]} = c40[i]+s40[i]+c400[i];
end
// Third level of 3:2 compressors
c02[0]=0; c22[0]=0; c42[0]=0;
for (i=0; i<32; i=i+1)
begin
// Add global correction vector
{c02[i+1],s02[i]} = c01[i]+s01[i]+gcv[i];
// For coefficient 2: complete
{c22[i+1],s22[i]} = c21[i]+s21[i]+s200[i];
// For coefficient 4: complete
{c42[i+1],s42[i]}= c41[i]+s41[i]+s400[i];
end
end
always @(*)
begin
// Generating PPs for 5 coefficients
// PPs for coefficient h0 with sign extension elimination
pp_0 = {5b0, xn[15], xn[14:0], 11b0};
pp_1 = {7b0, xn[15], xn[14:0], 9b0};
pp_2 = {10b0, xn[15], xn[14:0],6b0};
pp_3 = {13b0, xn[15], xn[14:0],3b0};
// PPs for coefficient h1 with sign extension elimination
pp_4 = {2b0, xn[15], xn[14:0], 14b0};
pp_5 = {6b0, xn[15], xn[14:0], 10b0};
// PPs for coefficient h2 with sign extension elimination
pp_6 = {1b0, xn[15], xn[14:0], 15b0};
pp_7 = {6b0, xn[15], xn[14:0], 10b0};
pp_8 = {9b0, xn[15], xn[14:0], 7b0};
pp_9 = {12b0, xn[15], xn[14:0], 4b0};
Search WWH ::




Custom Search