Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17254 Discussions

CIC with variable decimation rate

Altera_Forum
Honored Contributor II
1,444 Views

Hi all 

 

I'm trying to make use of the CIC 9.0 megacore, with the variable decimation rate feature switched on. The problem I have is understanding what happens with the output data bit width when a rate lower than the maximum selected rate is chosen. For example, I am using a 12 stage CIC with decimation range 2 - 495. As such the maximum output data bit width is 124 bits. What happens when a decimation rate of, say, 14 is selected. This rate only requires a maximum of 62 bits for the data output. Of the 124 bits on the output port, which 62 represent the output at this decimation rate. Is the output scaled such that all 124 bits are used or, are only the lowest 62 bits used (with the MSB a sign bit)? Or, something else completely. 

 

Anybody suucessfully used CIC 9.0 with variable decimation rate? There is next to no information about this mode in the megacore documentation. 

 

Many thanks, Kurt
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
654 Views

 

--- Quote Start ---  

There is next to no information about this mode in the megacore documentation. 

--- Quote End ---  

In my opinion, the question can be answered by the general CIC gain expression, also given in CIC handbook. As far as I understand, the CIC core doesn't provide additional means to compensate for the gain change with variable decimation rate. So it has to be considered in your application. 

 

When using arbitrary decimation rates, you also get arbitrary gain factors. Typically a LUT with compensation factors and a multiplier would be needed to achieve a rate independent scale factor. A simple method to avoid this additional effort is to use only power of 2 decimation factors.
0 Kudos
Altera_Forum
Honored Contributor II
654 Views

Many thanks FvM, 

 

I tried assuming that the full resolution (given when you select a single rate) for each rate I was interested in was the number of LSBs that I should focus on... that seemed to work out fine.... so pretty much following your lead. 

 

Do you know how the pruning algorithm might work with a variable rate. If I set the input width to 16 and then the output width to 32, with pruning on (and a variable rate from 2 to 495) I get nothing out. Is the pruning algorithm only for single rate modes? 

 

Kind regards, Kurt
0 Kudos
Altera_Forum
Honored Contributor II
654 Views

 

--- Quote Start ---  

Do you know how the pruning algorithm might work with a variable rate. 

--- Quote End ---  

I didn't use the Altera CIC core up to now, I have my own basic CIC design. It's different from the Altera core in so far, that it's restricted to power of 2 decimation factors, but it has an automatic scaling for variable decimations factors. In this case, the pruning can be calculated for the highest R value and is valid for lower factors as well. 

 

Without automatic scaling, you may loose significant bits in the intermediate stages (due to pruning) and in the final truncation/rounding step, I fear.
0 Kudos
Reply