martaczaska

Untitled

Apr 14th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. --wyswietlacz
  2.  
  3. library IEEE;
  4. use IEEE.STD_LOGIC_1164.ALL;
  5.  
  6. entity wyswietlacz is
  7. port(
  8. CLK_i : in STD_LOGIC;
  9. RST_i : in STD_LOGIC;
  10. DGT_i : in STD_LOGIC_vector (31 downto 0);
  11. AN : out STD_LOGIC_vector (3 downto 0);
  12. SEG : out STD_LOGIC_vector (7 downto 0)
  13. );
  14. end wyswietlacz;
  15.  
  16.  
  17.  
  18. architecture Behavioral of wyswietlacz is
  19. signal aktywny_AN: STD_LOGIC_VECTOR (3 downto 0); --:= "0000"; -- to przypisanie wartości początkowej powoduje 2 ostrzeżenia
  20. -- może nie są one jakoś szczególnie istotne albo groźne, ale pewnie lepiej
  21. begin -- jak ich nie ma, a przypisanie chyba nie jest konieczne
  22. process(CLK_i, RST_i, DGT_i, aktywny_AN)
  23.  
  24. begin
  25. if(RST_i = '1') then
  26. AN <= "0000";
  27. SEG <= "00000000";
  28. elsif(rising_edge(CLK_i)) then
  29. case aktywny_AN is
  30. when "0000" => aktywny_AN <= "0111";
  31. when "0111" => aktywny_AN <= "1011";
  32. when "1011" => aktywny_AN <= "1101";
  33. when "1101" => aktywny_AN <= "1110";
  34. when "1110" => aktywny_AN <= "0111";
  35. when others => aktywny_AN <= "0111";
  36. end case;
  37.  
  38. case aktywny_AN is
  39. when "0111" => SEG <= DGT_i(31 downto 24);
  40. when "1011" => SEG <= DGT_i(23 downto 16);
  41. when "1101" => SEG <= DGT_i(15 downto 8);
  42. when "1110" => SEG <= DGT_i(7 downto 0);
  43. when others => SEG <= "00000000";
  44. end case;
  45.  
  46. end if;
  47. AN <= aktywny_AN;
  48. end process;
  49.  
  50. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment