------------------------------------------------------------------------
-- File: clockchip.vhd
--
-- Group: Korrey Scott 237118
-- Milton Mah 341428
-- Mike Holden 346386
--
-- Course: EE 552
-- Project: ASM
-- Instructor: Dr. Duncan Elliott
-- Completed: Mar. 27, 1998
------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
------------------------------------------------------------------------
-- Entity: clockchip
--
-- Inputs: reset: connected to the master reset.
--
-- clkpulse: externally generated pulse of 1kHz.
--
-- hour_button: external push button to increment the hours
--
-- minute_button: external push button to increment the minutes
--
-- Outputs hour: the value of the hours of the sytem clock
--
-- minutes: the value of the minutes of the system clock
--
-- seconds_pulse: a 1 Hertz pulse generated by clock.vhd
------------------------------------------------------------------------
entity clockchip is
port (
reset, clkpulse, hour_button, minute_button: in std_logic;
hour : out integer range 0 to 12;
minute : out integer range 0 to 59;
seconds_pulse : out std_logic
);
end clockchip;
------------------------------------------------------------------------
-- Architecture: behaviour of clockchip
--
-- Description: The purpose of this module is to bring together the
-- push_to_set and clock modules
------------------------------------------------------------------------
architecture behaviour of clockchip is
signal set_hour_A : std_logic;
signal set_minute_A : std_logic;
component push_to_set
port (
hour_button : in std_logic;
minute_button : in std_logic;
clkpulse : in std_logic;
reset : in std_logic;
set_hour : buffer std_logic;
set_minute : buffer std_logic
);
end component;
component clock
generic (puls_per_sec : Natural := 10);
port (
reset : in std_logic;
clkpulse : in std_logic;
set_hour : in std_logic;
set_minute : in std_logic;
hour : out integer range 0 to 12;
minute : out integer range 0 to 59;
seconds_pulse : out std_logic
);
end component;
begin
chipclockmatch: clock port map(
reset => reset,
clkpulse => clkpulse,
set_hour => set_hour_A,
set_minute => set_minute_A,
hour => hour,
minute => minute,
seconds_pulse => seconds_pulse
);
chipclockset: push_to_set port map(
hour_button => hour_button,
minute_button => minute_button,
clkpulse => clkpulse,
reset => reset,
set_hour => set_hour_A,
set_minute => set_minute_A
);
end behaviour;