스탑워치VHDL소스파일.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

스탑워치VHDL소스파일.에 대한 보고서 자료입니다.

본문내용

library ieee;
use ieee.std_logic_1164.all;

entity control is port(
clk : in std_logic;
st_op: in std_logic;
sw1 : in bit;
sw2 : in bit;
segcontrol : out std_logic_vector(3 downto 0);
segment : out std_logic_vector(6 downto 0));

end control;

architecture source of control is
signal bcd : integer range 9 downto 0;
signal tremble : integer range 0 to 25;
signal clk_secsec: integer range 0 to 1843200;
signal clk_sec: integer range 0 to 18432000;
signal clk_min1: integer range 0 to 110592000;
signal clk_min10: integer range 0 to 1105920000;
signal cnt_secsec : integer range 0 to 1;
signal cnt_sec : integer range 0 to 1;
signal cnt_min1 : integer range 0 to 1;
signal cnt_min10 : integer range 0 to 1;
signal see_secsec : integer range 0 to 9;
signal see_sec : integer range 0 to 5;
signal see_min1 : integer range 0 to 9;
signal see_min10 : integer range 0 to 5;
signal com_tmpo : integer range 0 to 25;
signal com_count : integer range 1 to 4;

begin

process (bcd)
begin
if bcd = 0 then segment <= "1000000";
elsif bcd = 1 then segment <= "1111001";
elsif bcd = 2 then segment <= "0100100";
elsif bcd = 3 then segment <= "0110000";
elsif bcd = 4 then segment <= "0011001";
elsif bcd = 5 then segment <= "0010010";
elsif bcd = 6 then segment <= "0000010";
elsif bcd = 7 then segment <= "1111000";
elsif bcd = 8 then segment <= "0000000";
elsif bcd = 9 then segment <= "0011000";
else segment <= "1111111";
end if;
end process;


process(clk_secsec)begin
if (clk'event and clk='1')then
if clk_secsec = 1843200 then
clk_secsec <= 0;
cnt_secsec <= 1;
else clk_secsec <= clk_secsec+1;
cnt_secsec <= 0;
end if;
end if;

end process;

process(cnt_secsec)begin
if(cnt_secsec'event and cnt_secsec=1)then
see_secsec <= see_secsec+1;
if(see_secsec=9) then
see_secsec <= 0;
end if;
end if;
end process;

process(clk_sec)begin
if (clk'event and clk='1')then
if clk_sec = 18432000 then
clk_sec <= 0;
cnt_sec <= 1;
else clk_sec <= clk_sec+1;
cnt_sec <= 0;
end if;
end if;
end process;


process(cnt_sec)begin
if(cnt_sec'event and cnt_sec=1)then
see_sec <= see_sec+1;
if(see_sec=5) then
see_sec <= 0;
end if;
end if;
end process;

process(clk_min1)begin
if (clk'event and clk='1')then
if clk_min1 = 110592000 then
clk_min1 <= 0;
cnt_min1 <= 1;
else clk_min1 <= clk_min1+1;
cnt_min1 <= 0;
end if;
end if;
end process;

process(cnt_min1)begin
if(cnt_min1'event and cnt_min1=1)then
see_min1 <= see_min1+1;
if(see_min1=9) then
see_min1 <= 0;
end if;
end if;
end process;

process(clk_min10)begin
if (clk'event and clk='1')then
if clk_min10 = 1105920000 then
clk_min10 <= 0;
cnt_min10 <= 1;
else clk_min10 <= clk_min10+1;
cnt_min10 <= 0;
end if;
end if;
end process;

키워드

clk,   integer,   segment,   sec,   min,   start,   stop
  • 가격2,000
  • 페이지수18페이지
  • 등록일2007.03.28
  • 저작시기2006.12
  • 파일형식압축파일(zip)
  • 자료번호#401149
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니