검색어 입력폼

전자자물쇠(VHDL)

저작시기 2007.04 |등록일 2007.04.07 한글파일한컴오피스 (hwp) | 9페이지 | 가격 2,000원

소개글

전자 자물쇠 VHDL 코드와 설명
새로운 비밀번호를 입력 하여 사용 가능.
맥스플러스 툴을 이용하여 작성
Moore state machine을 이용하여 작성(상태도,블록도포함)
HWP로 작성하여 보고서용으로 적합
HBE-COMBO에 동작

컴파일 실행환경

맥스 플러스

본문내용

begin
key_en <=key(0) or key(1) or key(2) or key(3) or key(4) or key(5) or
key(6) or key(7) or key(8) or key(9) or key(10) or key(11) or
key(12) or key(13);

key_origin1<="00000000000001";
key_origin2<="00000000000010";
key_origin3<="00000000000100";
key_origin4<="00000000001000";

key_latch: process(clk,next_state)
begin
if clk`event and clk=`1` then key_en1 <= key_en;
if key_en=`1` and key_en1=`0` then key_sw <= key;
else key_sw <= (others => `0`);
end if;
end if;
end process;

moor_comb : process(reset,clk)
begin
if reset=`1` then
next_state <=START;
flag <= `0`;
elsif clk`event and clk=`1` then
case next_state is
when START =>
if key_sw = "00000000000000" then next_state <= START;
elsif key_sw = "00010000000000" then next_state <= state0;
elsif key_sw = "00100000000000" then next_state <= input0;
else next_state <= START;
end if;
lamp <= "000001";
when input0 =>
case key_sw is

참고 자료

에러가 발생했다는 메모를 받아서 보니 input0 상태에서 밑에 두 줄이 빠졌네요.
혼란을 드려서 죄송합니다..
end case;
lamp <= "100000";

<참고> 밑에 부분을 복사하셔서 input0 상태를 수정하시기 바랍니다.
when input0 =>
case key_sw is
when "00000000000001" => temp1 <= key_sw;next_state <=input1;
when "00000000000010" => temp1 <= key_sw;next_state <=input1;
when "00000000000100" => temp1 <= key_sw;next_state <=input1;
when "00000000001000" => temp1 <= key_sw;next_state <=input1;
when "00000000010000" => temp1 <= key_sw;next_state <=input1;
when "00000000100000" => temp1 <= key_sw;next_state <=input1;
when "00000001000000" => temp1 <= key_sw;next_state <=input1;
when "00000010000000" => temp1 <= key_sw;next_state <=input1;
when "00000100000000" => temp1 <= key_sw;next_state <=input1;
when "00001000000000" => temp1 <= key_sw;next_state <=input1;
when others=> next_state <= input0;
end case;
lamp <= "100000";
다운로드 맨위로