|
-- -----------------------------------------------------------------------
|
|
--
|
|
-- Turbo Chameleon
|
|
--
|
|
-- Multi purpose FPGA expansion for the Commodore 64 computer
|
|
--
|
|
-- -----------------------------------------------------------------------
|
|
-- Copyright 2005-2011 by Peter Wendrich (pwsoft@syntiac.com)
|
|
-- All Rights Reserved.
|
|
--
|
|
-- Your allowed to re-use this file for non-commercial applications
|
|
-- developed for the Turbo Chameleon 64 cartridge. Either open or closed
|
|
-- source whatever might be required by other licenses.
|
|
--
|
|
-- http://www.syntiac.com/chameleon.html
|
|
-- -----------------------------------------------------------------------
|
|
--
|
|
-- LED blinker. Blink frequency 2 Hz
|
|
--
|
|
-- -----------------------------------------------------------------------
|
|
-- clk - system clock input
|
|
-- clk_1khz - 1 Khz clock input
|
|
-- led_on - if high the LED is on
|
|
-- led_blink - if high the LED is blinking
|
|
-- led - led output (high is on) 2hz
|
|
-- led_1hz - led output 1 hz
|
|
-- -----------------------------------------------------------------------
|
|
|
|
library IEEE;
|
|
use IEEE.STD_LOGIC_1164.ALL;
|
|
use IEEE.numeric_std.all;
|
|
|
|
-- -----------------------------------------------------------------------
|
|
|
|
entity chameleon_led is
|
|
port (
|
|
clk : in std_logic;
|
|
clk_1khz : in std_logic;
|
|
|
|
led_on : in std_logic;
|
|
led_blink : in std_logic;
|
|
led : out std_logic;
|
|
led_1hz : out std_logic
|
|
);
|
|
end entity;
|
|
|
|
-- -----------------------------------------------------------------------
|
|
|
|
architecture rtl of chameleon_led is
|
|
signal count : unsigned(9 downto 0);
|
|
begin
|
|
led <= count(8);
|
|
led_1hz <= count(9);
|
|
|
|
process(clk)
|
|
begin
|
|
if rising_edge(clk) then
|
|
if clk_1khz = '1' then
|
|
count <= count + 1;
|
|
end if;
|
|
if led_blink = '0' then
|
|
count(8) <= led_on;
|
|
count(9) <= led_on;
|
|
end if;
|
|
end if;
|
|
end process;
|
|
end architecture;
|