[VHDL] 시계회로,BCD_TO_FDATA, 멀티플렉서6X1, FND_SCAN, WATCH, 1초 생성기
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

시계회로
BCD_TO_FDATA
멀티플렉서6X1
FND_SCAN
WATCH
1초 생성기

본문내용

LAG <='1'; --카운터가 5가되면 FLAG가 1로 선언된다.
ELSE
FLAG <='0';
END IF;
END PROCESS;
END BEHA;
①COUNT 6
②COUNT10ENTITY COUNT10 IS --COUNT10 의 입출력을 정의해준다.
PORT (
CLK,RST: IN STD_LOGIC;
FLAG:OUT STD_LOGIC;
CNT:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
END COUNT10;
ARCHITECTURE BEHA OF COUNT10 IS
BEGIN
PROCESS (CLK,RST)
BEGIN
IF RST='1' THEN --RST가 1이면 CNT는 0으로
CNT<="0000";
ELSE
IF CLK'EVENT AND CLK='0'THEN
IF CNT=9 THEN --CNT가 9일 경우 CNT는 다시 0으로 초기화
CNT <="0000";
ELSE
CNT <= CNT+1;
END IF;
END IF;
END IF;
END PROCESS;
PROCESS(CNT)
BEGIN
IF CNT=9 THEN
FLAG <='1';
ELSE
FLAG <='0';
END IF;
END PROCESS;
END BEHA;
③WATCH
●FND_SCANentity FND_SCAN is --FND_SCAN 의 입출력을 지정해준다.
port ( ck , rst :in std_logic ;
Scan_Line :out std_logic_vector( 5 downto 0));
end FND_SCAN;
architecture beha of FND_SCAN is
signal q : std_logic_vector(2 downto 0);
begin
count: process(ck,rst)
begin
if rst = '1' then
q <= "000";
else if ck'event and ck = '0' then
if q = 5 then
q <="000";
else
q <=q+1;
end if;
end if;
end if;
if q = 0 then -- q 가 0이면
Scan_Line <= "011111"; --011111 출력
elsif q = 1 then -- q 가 1이면
Scan_Line <= "101111"; --101111 출력
elsif q = 2 then -- q 가 2이면
Scan_Line <= "110111"; --110111 출력
elsif q =3 then -- q 가 3이면
Scan_Line <= "111011"; --111011 출력
elsif q =4 then -- q 가 4이면
Scan_Line <= "111101"; --111101 출력
else -- 그외에는
Scan_Line <= "111110"; --111110 출력
end if;
end process;
end beha;
●멀티플렉서6X1entity MUX_6x1 is --MUX_6X1 의 입출력을 정의해준다
port ( A,B,C,D,E,F :in std_logic_vector(3 downto 0);
Sel : in std_logic_vector( 5 downto 0);
y : out std_logic_vector (3 downto 0));
end MUX_6x1;
architecture beha of Mux_6x1 is
begin
process(a,b,c,d,e,f,sel)
begin
if sel ="011111" then --SEL 값이 011111 이면 출력값은 a
y <= a ;
elsif sel ="101111" then --SEL 값이 101111 이면 출력값은 b
y <= b ;
elsif sel ="110111" then --SEL 값이 110111 이면 출력값은 c
y <= c ;
elsif sel ="111011" then --SEL 값이 111011 이면 출력값은 d
y <= d ;
elsif sel ="111101" then -- SEL 값이 111101 이면 출력값은 e
y <= e ;
else
y <=f; --그외의 경우에 출력값은 f
end if;
end process;
end beha;
●BCD_TO_FDATA
entity BCD_to_Fdata is --BCD_to_Fdata 의 입출력을 설정
port ( Data_in : in std_logic_vector( 3 downto 0);
Data_out: out std_logic_vector ( 7 downto 0));
end BCD_to_Fdata;
architecture beha of BCD_to_Fdata is
begin
process(Data_in)
begin
if Data_in = 0 then -- 0 이 입력되면
Data_out <= "00111111" ; --00111111 출력
elsif Data_in = 1 then -- 1이 입력되면
Data_out <= "00000110" ; --00000110 출력
elsif Data_in = 2 then --2가 입력되면
Data_out <= "01011011" ; --01011011 출력
elsif Data_in = 3 then --3이 입력되면
Data_out <= "01001111" ; --01001111 출력
elsif Data_in = 4 then -- 4가 입력되면
Data_out <= "01100110" ; --01100110출력
elsif Data_in = 5 then -- 5가 입력되면
Data_out <= "01101101" ; --01101101출력
elsif Data_in = 6 then --6이 입력되면
Data_out <= "01111101" ; --01111101 출력
elsif Data_in = 7 then -- 7이 입력되면
Data_out <= "00000111" ; --00000111 출력
elsif Data_in = 8 then --8이 입력되면
Data_out <= "01111111" ; --01111111 출력
else -- 그 외의 경우는
Data_out <= "01100111" ; --01100111 출력
end if;
end process;
end beha;
●시계회로
  • 가격2,000
  • 페이지수13페이지
  • 등록일2009.05.04
  • 저작시기2009.5
  • 파일형식한글(hwp)
  • 자료번호#533487
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니