PoC.io.7SegmentMux_BCD

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 BCD encoded. A dot per digit is optional. A minus sign for negative numbers is supported.

Entity Declaration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
entity io_7SegmentMux_BCD is
  generic (
    CLOCK_FREQ      : FREQ        := 100 MHz;
    REFRESH_RATE    : FREQ        := 1 kHz;
    DIGITS          : positive    := 4
  );
  port (
    Clock           : in  std_logic;
    
    BCDDigits       : in  T_BCD_VECTOR(DIGITS - 1 downto 0);
    BCDDots         : 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;