Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------------------------------
- -- Company:
- -- Engineer:
- --
- -- Create Date: 12:50:07 05/18/2016
- -- Design Name:
- -- Module Name: prescaler - Behavioral
- -- Project Name:
- -- Target Devices:
- -- Tool versions:
- -- Description:
- --
- -- Dependencies:
- --
- -- Revision:
- -- Revision 0.01 - File Created
- -- Additional Comments:
- --
- ----------------------------------------------------------------------------------
- library IEEE;
- use IEEE.STD_LOGIC_1164.ALL;
- use IEEE.numeric_std.ALL;
- use IEEE.STD_LOGIC_unsigned.ALL;
- -- Uncomment the following library declaration if using
- -- arithmetic functions with Signed or Unsigned values
- --use IEEE.NUMERIC_STD.ALL;
- -- Uncomment the following library declaration if instantiating
- -- any Xilinx primitives in this code.
- --library UNISIM;
- --use UNISIM.VComponents.all;
- entity prescaler is
- Port ( refresh : inout STD_LOGIC;
- line : inout STD_LOGIC_VECTOR(1 downto 0);
- minuty_J : inout STD_LOGIC_VECTOR(3 downto 0);
- minuty_D : inout STD_LOGIC_VECTOR(3 downto 0);
- godziny_J : inout STD_LOGIC_VECTOR(3 downto 0);
- godziny_D : inout STD_LOGIC_VECTOR(3 downto 0);
- minuty_UP : inout STD_LOGIC;
- CLK, LOAD : in STD_LOGIC);
- end prescaler;
- architecture Behavioral of prescaler is
- begin
- PROCESS (CLK) IS
- VARIABLE TICKS1 : NATURAL;
- VARIABLE TICKS2 : NATURAL;
- VARIABLE TICKS3 : NATURAL;
- VARIABLE M1 : NATURAL;
- VARIABLE M2 : NATURAL;
- VARIABLE H1 : NATURAL;
- VARIABLE H2 : NATURAL;
- VARIABLE H3 : NATURAL;
- VARIABLE GODZ_MOD : NATURAL;
- BEGIN
- IF (CLK'event and CLK = '0') then
- IF LOAD = '1' THEN
- minuty_J <= "0000";
- minuty_D <= "0000";
- godziny_J <= "0000";
- godziny_D <= "0000";
- TICKS1 := 0;
- TICKS2 := 0;
- TICKS3 := 0;
- M1 := 0;
- M2 := 0;
- H1 := 0;
- H2 := 0;
- H3 := 0;
- GODZ_MOD := 0;
- refresh <= '0';
- END IF;
- TICKS1 := TICKS1 + 1;
- TICKS2 := TICKS2 + 1;
- TICKS3 := TICKS3 + 1;
- IF (TICKS1 = 500000) THEN
- line <= line +1;
- TICKS1 := 0;
- END IF;
- IF (TICKS3 = 50000000) THEN
- refresh <= NOT refresh;
- TICKS3 := 0;
- IF (minuty_UP = '1') THEN
- godziny_J <= godziny_J + 1;
- minuty_J <= "0000";
- minuty_D <= "0000";
- TICKS1 := 0;
- TICKS2 := 0;
- TICKS3 := 0;
- M1 := 0;
- M2 := 0;
- H1 := 0;
- H2 := H2 + 1;
- END IF;
- IF (H2 = 10) THEN
- godziny_D <= godziny_D + 1;
- godziny_J <= "0000";
- H2 := 0;
- H3 := H3 + 1;
- END IF;
- IF (H3 = 10) THEN
- H3 := 0;
- godziny_D <= "0000";
- END IF;
- IF (H2 = 4) AND (H3 = 2) THEN
- H3 := 0;
- H2 := 0;
- godziny_D <= "0000";
- godziny_J <= "0000";
- END IF;
- END IF;
- IF (TICKS2 = 5000000) THEN
- TICKS2 := 0;
- M1 := M1 + 1;
- END IF;
- IF (M1 = 1) THEN
- minuty_J <= minuty_J + 1;
- M1 := 0;
- M2 := M2 + 1;
- END IF;
- IF (M2 = 10) THEN
- minuty_D <= minuty_D + 1;
- minuty_J <= "0000";
- M2 := 0;
- H1 := H1 + 1;
- END IF;
- IF (H1 = 6) THEN
- godziny_J <= godziny_J + 1;
- minuty_D <= "0000";
- H1 := 0;
- H2 := H2 + 1;
- END IF;
- IF (H2 = 10) THEN
- godziny_D <= godziny_D + 1;
- godziny_J <= "0000";
- H2 := 0;
- H3 := H3 + 1;
- END IF;
- IF (H3 = 10) THEN
- H3 := 0;
- godziny_D <= "0000";
- END IF;
- IF (H2 = 4) AND (H3 = 2) THEN
- H3 := 0;
- H2 := 0;
- godziny_D <= "0000";
- godziny_J <= "0000";
- END IF;
- END IF;
- END PROCESS;
- end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement