Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 3.34 KB | None | 0 0
  1. --------------------------------------------------------------------------------
  2. -- SevenSegDecoder.vhd
  3. --------------------------------------------------------------------------------
  4. --
  5. -- Codierung einer Stelle der Siebensegment-Anzeige
  6. --      Die Zahlen bezeichnen das zugehörige Bit im Ausgabewert segout
  7. --      ist ein Bit gesetzt (=1), leuchtet das entsprechende Segment
  8. --      0
  9. --     ---  
  10. --  5 |   | 1
  11. --     ---   <- 6
  12. --  4 |   | 2
  13. --     ---
  14. --      3
  15. --
  16. -- Darstellung der Ziffern (Für den Fall: hexval(4) = 0)
  17. -- Auswahl der Ziffern durch hexval (3 downto 0)
  18. --
  19. --      0      1      2       3       4       5       6       7
  20. --
  21. --     ---            ---     ---             ---     ---     ---  
  22. --    |   |      |       |       |   |   |   |       |           |
  23. --                    ---     ---     ---     ---     ---          
  24. --    |   |      |   |           |       |       |   |   |       |
  25. --     ---            ---     ---             ---     ---          
  26. --
  27. --      8      9       A       b       C       d       E       F
  28. --
  29. --     ---    ---     ---             ---             ---     ---
  30. --    |   |  |   |   |   |   |       |            |   |       |
  31. --     ---    ---     ---     ---             ---     ---     ---
  32. --    |   |      |   |   |   |   |   |       |   |   |       |
  33. --     ---    ---             ---     ---     ---     ---    
  34.  
  35. -- Darstellung der Ziffern (Für den Fall: hexval(4) = 1)
  36. --
  37. --   hexval="10000"
  38. --   Auswahl des Buchstabens "r".
  39. --   So kann durch "Err" auch eine Fehlermeldung dargestellt werden
  40. --
  41. --    
  42. --    
  43. --     ---
  44. --    |    
  45. --
  46. -- In allen anderen Fällen (hexval = "10001"..."11111") leuchtet kein Segment der Anzeige
  47.  
  48.  
  49. library ieee;  
  50. use ieee.std_logic_1164.all;
  51.  
  52. entity SevenSegDecoder is
  53.   port (
  54.         dpin        : in  std_ulogic;                       -- Dezimalpunkt (Eingang)
  55.         hexval      : in  std_ulogic_vector (4 downto 0);   -- Hexadzimaler Eingabewert
  56.         segout      : out std_ulogic_vector (6 downto 0);   -- Siebensegmentanzeige
  57.         dpout       : out std_ulogic                        -- Dezimalpunkt (Ausgang)
  58.     );
  59. end;
  60.  
  61.  
  62. architecture rtl of SevenSegDecoder is
  63.  
  64. -- >>>>>>>>>>  Hier: Ihr Code   <<<<<<<<<<<<
  65.    
  66.    segout <= bitToSevenSeg(hexval);
  67.    dpout <= dpin;
  68.  
  69. -- Beispiel: hexval = "01001", dann segout = "1101111"
  70.  
  71. end rtl;
  72.  
  73. function bitToSevenSeg(hexin : std_ulogic_vector (4 downto 0) )
  74.                       return std_ulogic (6 downto 0) is
  75.  
  76.    case hexin is
  77.       when "00000" => return "1111110"; -- 0
  78.       when "00001" => return "0110000"; -- 1
  79.       when "00010" => return "1101101"; -- 2
  80.       when "00011" => return "1111001"; -- 3
  81.       when "00100" => return "0110011"; -- 4
  82.       when "00101" => return "1011011"; -- 5
  83.       when "00110" => return "1011111"; -- 6
  84.       when "00111" => return "1110000"; -- 7
  85.       when "01000" => return "1111111"; -- 8
  86.       when "01001" => return "1111011"; -- 9
  87.       when "01010" => return "1110111"; -- A
  88.       when "01011" => return "0011111"; -- B
  89.       when "01100" => return "1001110"; -- C
  90.       when "01101" => return "0111101"; -- D
  91.       when "01110" => return "1001111"; -- E
  92.       when "01111" => return "1000111"; -- F
  93.       when "10000" => return "0000101"; -- r
  94.       when others => null;
  95.    end case;
  96. end bitToSevenSeg;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement