Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------------------------------------------------------------------
- -- SevenSegDecoder.vhd
- --------------------------------------------------------------------------------
- --
- -- Codierung einer Stelle der Siebensegment-Anzeige
- -- Die Zahlen bezeichnen das zugehörige Bit im Ausgabewert segout
- -- ist ein Bit gesetzt (=1), leuchtet das entsprechende Segment
- -- 0
- -- ---
- -- 5 | | 1
- -- --- <- 6
- -- 4 | | 2
- -- ---
- -- 3
- --
- -- Darstellung der Ziffern (Für den Fall: hexval(4) = 0)
- -- Auswahl der Ziffern durch hexval (3 downto 0)
- --
- -- 0 1 2 3 4 5 6 7
- --
- -- --- --- --- --- --- ---
- -- | | | | | | | | | |
- -- --- --- --- --- ---
- -- | | | | | | | | | |
- -- --- --- --- --- ---
- --
- -- 8 9 A b C d E F
- --
- -- --- --- --- --- --- ---
- -- | | | | | | | | | | |
- -- --- --- --- --- --- --- ---
- -- | | | | | | | | | | | |
- -- --- --- --- --- --- ---
- -- Darstellung der Ziffern (Für den Fall: hexval(4) = 1)
- --
- -- hexval="10000"
- -- Auswahl des Buchstabens "r".
- -- So kann durch "Err" auch eine Fehlermeldung dargestellt werden
- --
- --
- --
- -- ---
- -- |
- --
- -- In allen anderen Fällen (hexval = "10001"..."11111") leuchtet kein Segment der Anzeige
- library ieee;
- use ieee.std_logic_1164.all;
- entity SevenSegDecoder is
- port (
- dpin : in std_ulogic; -- Dezimalpunkt (Eingang)
- hexval : in std_ulogic_vector (4 downto 0); -- Hexadzimaler Eingabewert
- segout : out std_ulogic_vector (6 downto 0); -- Siebensegmentanzeige
- dpout : out std_ulogic -- Dezimalpunkt (Ausgang)
- );
- end;
- architecture rtl of SevenSegDecoder is
- -- >>>>>>>>>> Hier: Ihr Code <<<<<<<<<<<<
- segout <= bitToSevenSeg(hexval);
- dpout <= dpin;
- -- Beispiel: hexval = "01001", dann segout = "1101111"
- end rtl;
- function bitToSevenSeg(hexin : std_ulogic_vector (4 downto 0) )
- return std_ulogic (6 downto 0) is
- case hexin is
- when "00000" => return "1111110"; -- 0
- when "00001" => return "0110000"; -- 1
- when "00010" => return "1101101"; -- 2
- when "00011" => return "1111001"; -- 3
- when "00100" => return "0110011"; -- 4
- when "00101" => return "1011011"; -- 5
- when "00110" => return "1011111"; -- 6
- when "00111" => return "1110000"; -- 7
- when "01000" => return "1111111"; -- 8
- when "01001" => return "1111011"; -- 9
- when "01010" => return "1110111"; -- A
- when "01011" => return "0011111"; -- B
- when "01100" => return "1001110"; -- C
- when "01101" => return "0111101"; -- D
- when "01110" => return "1001111"; -- E
- when "01111" => return "1000111"; -- F
- when "10000" => return "0000101"; -- r
- when others => null;
- end case;
- end bitToSevenSeg;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement