고급디지털 회로설계 111detector
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

고급디지털 회로설계 111detector에 대한 보고서 자료입니다.

본문내용

efinitions
m_clk_process :process
begin
m_clk <= \'0\';
wait for m_clk_period/2;
m_clk <= \'1\';
wait for m_clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
m_reset <= \'0\';
wait for 50 ns;
startsig <= \'1\';
wait for 50 ns;
startsig <= \'0\';
wait for 50 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 50 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'0\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 50 ns;
startsig <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for 10 ns;
m_input <= \'1\';
wait for m_clk_period*10;
-- insert stimulus here
wait;
end process;
END;
6. Simulation 결과
test bench를 이용하여 우선 startsig를 입력한 뒤에
m_input 값을 다음과 같이 설정하였다.
0011101111011111001111110011111111001110111101111100111
이 때, 15개의 111이 detect된 뒤에 멈추는가를 확인하고 그 뒤에는 아무것도 작동하지 않는지를 보았다. 그 뒤에 starsig 입력을 다시 주어 초기값으로 되돌려 동작함을 확인하였다.

startsig에 의해 starter에 1이 들어오면 stop 상태에서 work 상태로 바뀐다. work 상태에서 m_input에 1이 입력되면 a state에서 b state로 이동하는 것을 확인할 수 있다. 그리고 이와 마찬가지로 clock의 rising edge일 때 들어온 input이 있을 때 위에서 그린 state diagram 대로 state가 변한다.

이처럼 state가 변하면서, 111이 세 번 연속으로 입력된 상태인 d, f, g에서 각각 한번씩 count한다. 따라서 맨 아래 변수 cx를 보면 4bit의 2진수로 1씩 커져감을 확인할 수 있다.

이처럼 cx가 계속 증가하다가 15인 “1111”이 되면 주어진 조건대로 동작을 멈춘다.
이 때는 stop으로 이동하여 위 사진에 보이는 바와 같이 input이 더 들어와도 count하지 않는다.

s=1이 입력되면 다시 work state로 이동하여 처음부터 같은 과정을 되풀이한다.
  • 가격9,660
  • 페이지수16페이지
  • 등록일2013.12.16
  • 저작시기2013.3
  • 파일형식한글(hwp)
  • 자료번호#897878
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니