I implement a filter with the following parameters:

taps = 20;
data_wigth = 10;
filter_wigth = 10;
interpolation_factor = 4;

I have found that

output: out std_logic_vector( ( M * data_width + filter_width+ log2(taps)- 1) downto 0) 

Why is log2(taps)?


1 Answer 1


You are summing the outputs of the taps, so to avoid overflow the word length grows as ceil (log2 of the number of taps).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.