관리 메뉴

드럼치는 프로그래머

[시스템분석및설계] 16장 적외선 센서 제어기 설계 예비레포트 본문

★─Multi Media/☆─2학년 2학기

[시스템분석및설계] 16장 적외선 센서 제어기 설계 예비레포트

드럼치는한동이 2008. 3. 14. 02:40

◎ 실험 목적

적외선 센서 제어기의 동작을 VHDL로 기술하고, 시뮬레이션을 통해 동작을 검증한다.

 

◎ 이론 설명

사용자 삽입 이미지

D1~D7 - 발광 다이오드

D8~D14 - 수광 다이오드

사용자 삽입 이미지


◎ 실험 장비

▶ Xilinx ISE

▶ ModelSIM

▶ Rov-Lab 트레이닝 키트

 

◎ 실험 순서

▶ 적외선 센서 제어기 설계

① 적외선 센서 제어기의 동작을 VHDL로 기술

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity sensor_con is

Port ( RSTB : IN std_logic;

CLK_4M : IN std_logic;

LIGHT : OUT std_logic_vector (6 downto 0);

SENSE : IN std_logic_vector (6 downto 0);

LED : OUT std_logic_vector (6 downto 0) );

end sensor_con;

architecture RoV_Lab of sensor_con is

signal clk_500 : std_logic;

begin

================== Clock(500Hz) Generator ====================

 

process(RSTB, CLK_4M)

variable cnt : Integer range 0 to 4000;

begin

if RSTB = '0' then

cnt := 0;

clk_500 <= '0';

else rising_edge (CLK_4M) then

-- if cnt >= 3999 then -- 정상 작동시

if cnt >= 2 then -- 시뮬레이션시

cnt := 0;

clk_500 <= not clk_500;

else

cnt := cnt + 1;

end if;

end if;

end process;

=================== Infrared Light Emission ===============================

LIGHT(0) <= clk_500;

LIGHT(1) <= clk_500;

LIGHT(2) <= clk_500;

LIGHT(3) <= clk_500;

LIGHT(4) <= clk_500;

LIGHT(5) <= clk_500;

LIGHT(6) <= clk_500;

======================= Line Status Sensing & LED display =================

process(RSTB, CLK_500)

begin

if RSTB = '0' then

LED <= (others => '0');

else rising_edge (CLK_500) then

LED <= SENSE;

end if;

end process;

end RoV_Lab;





② TestBenchWaveform으로 시뮬레이션

주어진 입력(RSTB, CLK_4M, SENSE)에 따라 출력(LIGHT, LED)이

진리표대로 정확하게 출력되는지를 검증

 

③ 트레이닝 키트로 동작 검증

주어진 입력(RSTB, CLK_4M, SENSE)에 따라 출력(LIGHT, LED)이

진리표대로 정확하게 출력되는지를 검증

Comments