The best way to implement a Moving Average (MA) filter in terms of digital logic is to implement it as a Cascaded Integrator-Comb (CIC) filter. At least this is the case for standard cell-based designs and probably FPGAs. The first time I read about MA filters described as “CIC filters” was in Oppenheim & Schafer ’s textbook “Discrete-Time Signal Processing” –page 35, though, it does not mention CICs–. Nonetheless, the first reference is Hogenauer’s article “An economical class of digital filters for decimation and interpolation”, IEEE Trans. on Acoustics, Speech and Signal Processing, Vol.29,No.2, April 1981. Anyway, just have a look at Richard Lyon’s article in Embedded.com to get a feeling.