Project

General

Profile

-- -----------------------------------------------------------------------
--
-- 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;
(13-13/40)