aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue1843/counter.vhdl
blob: 1effc4b6866cb893c5c1c487d995a0cd8b7017f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;

ENTITY counter IS
  GENERIC(
    WIDTH : positive := 32
  );
  PORT( 
    clk        : IN     std_logic
  );
END ENTITY counter;

ARCHITECTURE rtl OF counter IS
  CONSTANT UPPER_LIMIT : unsigned((WIDTH-1) DOWNTO 0) := (OTHERS => '1');
  SIGNAL count : unsigned((WIDTH-1) DOWNTO 0);
BEGIN

  p_counter : PROCESS (clk)
  BEGIN
    IF (rising_edge(clk)) THEN
      IF ((('0', count) + 1) < UPPER_LIMIT) THEN
        count <= count + 1;
      END IF;
    END IF;
  END PROCESS;

END ARCHITECTURE rtl;