LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.numeric_std.all;


ENTITY pll IS
PORT 
( 
	inclk0 : IN STD_LOGIC;
	c0 : OUT STD_LOGIC;
	locked : OUT STD_LOGIC
);
END pll;

ARCHITECTURE vhdl OF pll IS
  constant CLK0_PERIOD : time := 1 us / (1.79*32);
begin
	p_clk_gen_a : process
	begin
	if inclk0/= '1' then
     	   wait until (inclk0='1');
	end if;
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for clk0_period - (clk0_period/2 );
	c0 <= '1';
	wait for CLK0_PERIOD/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	wait for CLK0_PERIOD - (CLK0_PERIOD/2 );
	c0 <= '1';
	wait for clk0_period/2;
	c0 <= '0';
	end process;

	locked <= '0', '1' after 2000ns;
end vhdl;

