Facebook
From Crimson Sheep, 9 Years ago, written in VHDL.
Embed
Download Paste or View Raw
Hits: 731
  1. library ieee ;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_unsigned.all;
  4. use ieee.numeric_std.all;
  5.  
  6. entity wyswietlacz is
  7. port(i: in bit_vector(3 downto 0);
  8. p: in bit;
  9. clk: in bit;
  10. o: out std_logic_vector(6 downto 0);
  11. o2: out std_logic_vector(6 downto 0));
  12. end wyswietlacz;
  13. architecture beh of wyswietlacz is
  14. signal liczba: unsigned(9 downto 0);
  15. signal liczba2: std_logic_vector(9 downto 0);
  16. signal liczba02: unsigned(9 downto 0);
  17. signal liczba22: std_logic_vector(9 downto 0);
  18. SIGNAL liczsek : STD_LOGIC_VECTOR(24 DOWNTO 0);
  19. begin
  20. process(clk) is
  21.     begin
  22.     IF (clk'EVENT AND clk = '1') THEN
  23.     liczsek <= liczsek + '1';
  24.     END IF;
  25. end process;
  26.  
  27.  
  28. PROCESS (clk)
  29. BEGIN
  30. IF (clk'EVENT AND clk = '1') THEN
  31.     IF (liczsek = 0) THEN
  32.         liczba <= liczba + 1;
  33.         liczba2 <= std_logic_vector(liczba);
  34.         if liczba >= 9 then
  35.             liczba <= to_unsigned(0000000000,10);
  36.         end if;
  37.         if liczba = 0 then
  38.             liczba02 <= liczba02 + 1;
  39.            
  40.             if liczba02 >= 9 then
  41.                 liczba02 <= to_unsigned(0000000000,10);
  42.             end if;
  43.             liczba22 <= std_logic_vector(liczba02);
  44.         end if;
  45.        
  46.     END IF;
  47.    
  48.    
  49. END IF;
  50. END PROCESS;
  51.  
  52.  
  53. with liczba2 select
  54. o <= "1000000" when "0000000000",
  55. "1111001" when "0000000001",
  56. "0100100" when "0000000010",
  57. "0110000" when "0000000011",
  58. "0011001" when "0000000100",
  59. "0010010" when "0000000101",
  60. "0000010" when "0000000110",
  61. "1111000" when "0000000111",
  62. "0000000" when "0000001000",
  63. "0010000" when "0000001001",
  64. "XXXXXXX" when others;
  65.  
  66. with liczba22 select
  67. o2 <= "1000000" when "0000000000",
  68. "1111001" when "0000000001",
  69. "0100100" when "0000000010",
  70. "0110000" when "0000000011",
  71. "0011001" when "0000000100",
  72. "0010010" when "0000000101",
  73. "0000010" when "0000000110",
  74. "1111000" when "0000000111",
  75. "0000000" when "0000001000",
  76. "0010000" when "0000001001",
  77. "XXXXXXX" when others;    
  78.  
  79. end beh;