Page 431 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 431
인천전자마이스터고 전자회로설계과
reg [1:0]state;
// out_flag = [0] : pir센서 감지중 [1] : 감지완료, pir_flag = [0] : 이상X [1] : 생명 발견,
end_flag = [0] : 도어락 제어중 [1] : 제어완료
reg out_flag, pir_flag, end_flag;
parameter IDLE = 2'b00, READY = 2'b01, OUTPUT = 2'b10;
always @(posedge clk, negedge reset)
begin
if (!reset) state <= IDLE;
else
begin
case (state)
IDLE : state <= (door == 2'b10 || door == 2'b01)? READY :
IDLE;
READY : state <= (out_flag)? ((pir_flag)? IDLE : OUTPUT) :
READY;
OUTPUT : state <= (end_flag)? IDLE : OUTPUT;
default : state <= IDLE;
endcase
end
end
always @(posedge clk, negedge reset)
begin
if (!reset)
begin
time_cnt <= 0;
out_flag <= 1;
pir_flag <= 0;
d_out <= 0;
end
else
begin
if (state == READY) out_flag <= 0;
if (!out_flag)
//state == READY, pir 센서 감지 중
begin
time_cnt <= time_cnt + 1;
if (sen_in == 3'b100 || sen_in == 3'b101 || sen_in == 3'b110
|| sen_in == 3'b111)
- 424 -