Advertisement
Guest User

prescaler

a guest
May 19th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 3.54 KB | None | 0 0
  1. ----------------------------------------------------------------------------------
  2. -- Company:
  3. -- Engineer:
  4. --
  5. -- Create Date:    12:50:07 05/18/2016
  6. -- Design Name:
  7. -- Module Name:    prescaler - Behavioral
  8. -- Project Name:
  9. -- Target Devices:
  10. -- Tool versions:
  11. -- Description:
  12. --
  13. -- Dependencies:
  14. --
  15. -- Revision:
  16. -- Revision 0.01 - File Created
  17. -- Additional Comments:
  18. --
  19. ----------------------------------------------------------------------------------
  20. library IEEE;
  21. use IEEE.STD_LOGIC_1164.ALL;
  22. use IEEE.numeric_std.ALL;
  23. use IEEE.STD_LOGIC_unsigned.ALL;
  24.  
  25. -- Uncomment the following library declaration if using
  26. -- arithmetic functions with Signed or Unsigned values
  27. --use IEEE.NUMERIC_STD.ALL;
  28.  
  29. -- Uncomment the following library declaration if instantiating
  30. -- any Xilinx primitives in this code.
  31. --library UNISIM;
  32. --use UNISIM.VComponents.all;
  33.  
  34. entity prescaler is
  35.     Port ( refresh : inout  STD_LOGIC;
  36.                 line : inout STD_LOGIC_VECTOR(1 downto 0);
  37.                 minuty_J : inout STD_LOGIC_VECTOR(3 downto 0);
  38.                 minuty_D : inout STD_LOGIC_VECTOR(3 downto 0);
  39.                 godziny_J : inout STD_LOGIC_VECTOR(3 downto 0);
  40.                 godziny_D : inout STD_LOGIC_VECTOR(3 downto 0);
  41.                 minuty_UP : inout STD_LOGIC;
  42.               CLK, LOAD : in STD_LOGIC);
  43. end prescaler;
  44.  
  45. architecture Behavioral of prescaler is
  46. begin
  47. PROCESS (CLK) IS
  48.         VARIABLE TICKS1 : NATURAL;
  49.         VARIABLE TICKS2 : NATURAL;
  50.         VARIABLE TICKS3 : NATURAL;
  51.         VARIABLE M1 : NATURAL;
  52.         VARIABLE M2 : NATURAL;
  53.         VARIABLE H1 : NATURAL;
  54.         VARIABLE H2 : NATURAL;
  55.         VARIABLE H3 : NATURAL;
  56.         VARIABLE GODZ_MOD : NATURAL;
  57.        
  58.        
  59.     BEGIN
  60.     IF (CLK'event and CLK = '0') then
  61.             IF LOAD = '1' THEN
  62.                 minuty_J <= "0000";
  63.                 minuty_D <= "0000";
  64.                 godziny_J <= "0000";
  65.                 godziny_D <= "0000";
  66.                 TICKS1 := 0;
  67.                 TICKS2 := 0;
  68.                 TICKS3 := 0;
  69.                 M1 := 0;
  70.                 M2 := 0;
  71.                 H1 := 0;
  72.                 H2 := 0;
  73.                 H3 := 0;
  74.                 GODZ_MOD := 0;
  75.                 refresh <= '0';
  76.             END IF;
  77.         TICKS1 := TICKS1 + 1;
  78.         TICKS2 := TICKS2 + 1;
  79.         TICKS3 := TICKS3 + 1;
  80.        
  81.    
  82.        
  83.  
  84.         IF (TICKS1 = 500000) THEN
  85.             line <= line +1;
  86.             TICKS1 := 0;
  87.         END IF;
  88.        
  89.         IF (TICKS3 = 50000000) THEN
  90.             refresh <= NOT refresh;
  91.             TICKS3 := 0;
  92.            
  93.             IF (minuty_UP = '1') THEN
  94.                 godziny_J <= godziny_J + 1;
  95.                 minuty_J <= "0000";
  96.                 minuty_D <= "0000";
  97.                 TICKS1 := 0;
  98.                 TICKS2 := 0;
  99.                 TICKS3 := 0;
  100.                 M1 := 0;
  101.                 M2 := 0;
  102.                 H1 := 0;
  103.                 H2 := H2 + 1;
  104.             END IF;
  105.            
  106.             IF (H2 = 10) THEN
  107.                 godziny_D <= godziny_D + 1;
  108.                 godziny_J <= "0000";
  109.                 H2 := 0;
  110.                 H3 := H3 + 1;
  111.             END IF;
  112.        
  113.             IF (H3 = 10) THEN
  114.                 H3 := 0;
  115.                 godziny_D <= "0000";
  116.             END IF;
  117.            
  118.             IF (H2 = 4) AND (H3 = 2) THEN
  119.                 H3 := 0;
  120.                 H2 := 0;
  121.                 godziny_D <= "0000";
  122.                 godziny_J <= "0000";
  123.             END IF;
  124.            
  125.         END IF;
  126.        
  127.        
  128.         IF (TICKS2 = 5000000) THEN
  129.             TICKS2 := 0;
  130.             M1 := M1 + 1;
  131.         END IF;
  132.        
  133.         IF (M1 = 1) THEN
  134.             minuty_J <= minuty_J + 1;
  135.            
  136.             M1 := 0;
  137.             M2 := M2 + 1;
  138.         END IF;
  139.        
  140.         IF (M2 = 10) THEN
  141.             minuty_D <= minuty_D + 1;
  142.             minuty_J <= "0000";
  143.             M2 := 0;
  144.             H1 := H1 + 1;
  145.         END IF;
  146.        
  147.         IF (H1 = 6) THEN
  148.             godziny_J <= godziny_J + 1;
  149.             minuty_D <= "0000";
  150.             H1 := 0;
  151.             H2 := H2 + 1;
  152.         END IF;
  153.        
  154.         IF (H2 = 10) THEN
  155.             godziny_D <= godziny_D + 1;
  156.             godziny_J <= "0000";
  157.             H2 := 0;
  158.             H3 := H3 + 1;
  159.         END IF;
  160.        
  161.         IF (H3 = 10) THEN
  162.             H3 := 0;
  163.             godziny_D <= "0000";
  164.         END IF;
  165.        
  166.         IF (H2 = 4) AND (H3 = 2) THEN
  167.             H3 := 0;
  168.             H2 := 0;
  169.             godziny_D <= "0000";
  170.             godziny_J <= "0000";
  171.         END IF;
  172.        
  173.     END IF;
  174.        
  175. END PROCESS;
  176.  
  177. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement