[USRP-users] Purpose of 24-bit CORDIC in DDC chain?

Florian Schlembach florian.schlembach at tu-ilmenau.de
Wed Apr 3 07:48:53 EDT 2013

On 04/03/2013 09:29 AM, Ian Buckley wrote:
> Florian, Your understanding at this point is very good: The CIC provides
> arbitrary programable decimation at very little FPGA resource usage but
> has very significant pass band roll off. The two half bands have fixed
> decimation of 2 each but have very linear passband response. Having the
> Halfbands cascaded after the CIC allows us to keep the total system
> passband within the largely linear portion of the CIC frequency
> response…thus the reason it is highly desirable in practical
> applications using USRPs to have a total system decimation within the
> USRP that factors by 4 so that both Halfbands can be enabled…..

Ian, thanks for your explanations. It's not yet clear to me whether the 
CIC is activated for the decim_rate being multiples of four.
Let's assume a decimation rate of 8, then both HB1 and HB2 are 
activated, decimating by the input sample rate by a factor of 8. I am 
little bit puzzled because I do not see the point how the CIC could 
possibly be switched off if the decim_rate is a multiple of 4, according 
to the following verilog instantiations

cic_decim #(.bw(WIDTH)) decim_i 


// Second (large) halfband  24 bit I/O
wire [8:0]  cpi_hb = enable_hb1 ? {cic_decim_rate,1'b0} : 

hb_dec #(.WIDTH(WIDTH)) hb_i 

It seems both HB filters are activated by the UHD interface 
(enable_hb1/2), how is the actual decimation rate fed to both decim_i 
and hb_i if both are fed through a common wire cic_decim_rate?

Is the CIC then actually be activated using decim_rate with multiples of 4?

More information about the USRP-users mailing list