Hi
3 decimal places gives 0....999 it is about equal to 10 bits resolution. (2^10 = 1024)
Therfore a input data width of 8 bit (like input[7:0]) can´t give an output with 10 bits precision.
***
For sure you can use low pass filters or averaging filters to gain some sub-LSBs of resolution.
* But not with a 4 stage FIR filter.
* and while you may gain some bits of resolution you can not improve precision.
To improve resolution i think an IIR filter is the better solution, because you are more flexible to shift cutoff frequency down.
****
From your text above it seems all your filter coefficients are set to 1, so it effectively gives a moving average filter of 4 samples.
That´s a simple form of FIR filter.
****
In your schematic it seems you work with 32 bits of resolution.
but you have to take care about the values in the data bus (how many integer bits / and fractional bits). This is necessary not to loose precision while cutting off frationals nor to get an overflow.
****
Maybe you could tell more about your application and what you wanted to achieve.
Klaus