Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module fsm_trecere(
- output reg p_rosu, // red for pedestrians
- output reg p_verde, // green for pedestrians
- output reg m_rosu, // red for cars
- output reg m_galben, // yellow for cars
- output reg m_verde, // green for cars
- output reg [7:0] T, // timeout count
- input done, // timeout expired
- input clk); // clock input
- //TODO implementarea functionalitatii
- reg [1:0] state = 2'b0;
- reg [1:0] next_state;
- always @(posedge clk) begin
- state <= next_state;
- end
- always @(*) begin
- p_rosu = 0;
- p_verde = 0;
- m_rosu = 0;
- m_verde = 0;
- m_galben = 0;
- m_verde = 0;
- case(state)
- 0: begin
- p_rosu = 1;
- m_verde = 1;
- T = 8'd50;
- if (done == 1)
- next_state = 1;
- else
- next_state = 0;
- end
- 1: begin
- p_rosu = 1;
- m_galben = 1;
- T = 8'd10;
- if (done == 1)
- next_state = 2;
- else
- next_state = 1;
- end
- 2: begin
- m_rosu = 1;
- p_verde = 1;
- T=8'd30;
- if (done == 1)
- next_state = 0;
- else
- next_state = 2;
- end
- endcase
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement