MEMS microphone controler
This module controls the MEMS microphone embedded on the Nexys4 board and outputs its data
( figure source)
Using this module
Just configure the generic values and enjoy the sample on data_out when data_en = '1'. data_en is set at the SAMPL_FREQ frequency on average. If SAMPL_FREQ is not a divider of CLK_FREQ_HZ, the exact period between two samples is subject to 1 clock cycle variation from time to time.
No asumptions should be made on the value of data_out when data_en is not set.
CLK_FREQ_HZ : The system clock frequency expressed in Hz. It is used to provide an accurante sampling frequency.
OUT_BITS : The number of bits to express the sample value. The higher this number, the lower the maximum frequency. This value can range from 6 to allow high sampling rate, to 10 to improve sample precision
SAMPL_FREQ : The desired audio sampling frequency. This value is limited by the precision of the samples.