repo2/atari_chips/tb_gtiamax/pll.vhd
817 | markw | 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;
|