Page 436 - 3-2
P. 436
endmodule
MDP_SENSOR
module MDP_SENSOR(clk,rst,
sensor3,sensor_rst,sensor_10s);
input clk,rst;
input sensor3; // 감지하면 1 감지안하면 0
input sensor_rst;
output reg sensor_10s;
reg sensor_flag;
reg [31:0] cnt_20; // 센서 감지 시간 계산 변수
always@(posedge clk, negedge rst)
begin
if(!rst) sensor_flag <= 0;
else
begin
if(sensor3 == 1'b0) sensor_flag <= 1;
else if(cnt_20 >= 50000000*10) sensor_flag <= 0;
else sensor_flag <= sensor_flag;
end
end
always@(posedge clk, negedge rst)
begin
if(!rst) begin sensor_10s <= 1'b0; cnt_20 <= 0; end
else
begin
if(sensor_flag == 1'b1)
begin
if(cnt_20 >= 50000000*13)
begin
cnt_20 <= 0;
sensor_10s <= 1'b0;
end
else if(cnt_20 >= 50000000*10)
begin
sensor_10s <= 1'b1;
end
else cnt_20 <= cnt_20 + 1;
- 436 -