pluto_hdl_adi/library/axi_adc_decimate
Lars-Peter Clausen 3e7325b29a axi_adc_decimate: Re-implemented FIR filter
The minimum decimation rate of the CIC block is five, this means data
arrives at the FIR filter at most every five clock cycles. The decimation
rate of the filter is two so the filter produces an output at most every
ten clock cycles. This allows for ten clock cycles to compute the result.

The current implementation of the filter uses a fully pipelined
architecture with one multiplier for each coefficient. Which then do work
for one clock cycle and sit idle for the next nine clock cycles.

Rework the filter to be sequential reducing the number of required
multipliers to one. In addition exploit the symmetric structure of the
filter to make use of the preadder reducing the required multiply
operations by two.

This significantly reduces the logic utilization of the filter as well as
moderately reduces power consumption.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2017-04-18 12:17:40 +02:00
..
Makefile axi_adc_decimate: Re-implement CIC filter 2017-04-18 12:17:40 +02:00
axi_adc_decimate.v axi_adc_decimate: Reduce filter_mask register size 2017-04-18 12:17:40 +02:00
axi_adc_decimate_constr.xdc axi_adc_decimate: Make adc_reset external 2017-04-18 12:17:39 +02:00
axi_adc_decimate_filter.v axi_adc_decimate: Register output mux control signal 2017-04-18 12:17:40 +02:00
axi_adc_decimate_ip.tcl axi_adc_decimate: Re-implement CIC filter 2017-04-18 12:17:40 +02:00
axi_adc_decimate_reg.v axi_adc_decimate: Reduce filter_mask register size 2017-04-18 12:17:40 +02:00
cic_decim.v axi_adc_decimate: Use sequential processing for CIC comb stage 2017-04-18 12:17:40 +02:00
fir_decim.v axi_adc_decimate: Re-implemented FIR filter 2017-04-18 12:17:40 +02:00