Page 981 - 3-2
P. 981
else if(sec3 >= 3) state <= turn_state;
turn_motor : if(clk_cnt == clk_figure && angle_flag) state <= open_door;
else if(rs_flag == 1&¤t_sector == motor_sector) state <= open_door;
open_door : if(sec1 == 1) state <= door_stop1;
door_stop1 : if(sec10 == 10) state <= door_close;
door_close : if(sec1 == 1) state <= door_stop2;
door_stop2 : state <= idle;
default : state <= idle;
endcase
end
//output
always@(posedge clk, negedge rst)
if(!rst)
begin
angle_set <= 0;
door_open <= 0;
end
else
begin
case(state)
idle : begin
angle_set <= 0;
door_open <= 0;
end
turn_state : begin
case(current_sector)
0 : angle_set <= 115; //90 도 회전 (2 번방)
1 : angle_set <= 155; //135 도 회전 (3 번방)
2 : angle_set <= 155;//135 도 회전 (1 번방)
default : angle_set <= 0;
endcase
end
rs_state : angle_set <= 0;
turn_motor : begin
case(current_sector)
- 981 -