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;
|