- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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, KurtLink Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page