PoC.io.7SegmentMux_HEX

This module is a 7 segment display controller that uses time multiplexing to control a common anode for each digit in the display. The shown characters are HEX encoded. A dot per digit is optional.

Entity Declaration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
entity io_7SegmentMux_HEX is
  generic (
    CLOCK_FREQ      : FREQ        := 100 MHz;
    REFRESH_RATE    : FREQ        := 1 kHz;
    DIGITS          : positive    := 4
  );
  port (
    Clock           : in  std_logic;
    
    HexDigits       : in  T_SLVV_4(DIGITS - 1 downto 0);
    HexDots         : in  std_logic_vector(DIGITS - 1 downto 0);
    
    SegmentControl  : out std_logic_vector(7 downto 0);
    DigitControl    : out std_logic_vector(DIGITS - 1 downto 0)
  );
end entity;