ARCHITECTURE studentVersion OF lowpass IS signal accumulator: unsigned((signalBitNb-1)+shiftBitNb downto 0); BEGIN process(clock) begin if reset = '1' then accumulator <= (others => '0'); elsif rising_edge(clock) then accumulator <= accumulator + resize(lowpassIn,signalBitNb+shiftBitNb) - shift_right(accumulator, shiftBitNb); end if; end process; lowpassOut <= resize(shift_right(accumulator, shiftBitNb), signalBitNb); END ARCHITECTURE studentVersion;