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;
