Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module fsm_trecere(
  2.     output reg p_rosu,      // red for pedestrians
  3.     output reg p_verde,     // green for pedestrians
  4.     output reg m_rosu,      // red for cars
  5.     output reg m_galben,    // yellow for cars
  6.     output reg m_verde,     // green for cars
  7.     output reg [7:0] T,     // timeout count
  8.     input done,             // timeout expired
  9.     input clk);             // clock input
  10.  
  11. //TODO implementarea functionalitatii
  12. reg [1:0] state = 2'b0;
  13. reg [1:0] next_state;
  14.  
  15. always @(posedge clk) begin
  16.     state <= next_state;
  17. end
  18.  
  19. always @(*) begin
  20.    
  21.     p_rosu = 0;
  22.     p_verde = 0;
  23.     m_rosu = 0;
  24.     m_verde = 0;
  25.     m_galben = 0;
  26.     m_verde = 0;
  27.    
  28.     case(state)
  29.          
  30.         0: begin
  31.              p_rosu = 1;
  32.               m_verde = 1;
  33.               T = 8'd50;
  34.               if (done == 1)
  35.                     next_state = 1;
  36.               else
  37.                     next_state = 0;
  38.               end
  39.         1: begin
  40.             p_rosu = 1;
  41.             m_galben = 1;
  42.             T = 8'd10;
  43.             if (done == 1)
  44.                 next_state = 2;
  45.             else
  46.                 next_state = 1;
  47.             end
  48.         2: begin
  49.             m_rosu = 1;
  50.             p_verde = 1;
  51.             T=8'd30;
  52.             if (done == 1)
  53.                 next_state = 0;
  54.             else
  55.                 next_state = 2;
  56.             end
  57.         endcase
  58. end
  59.                
  60. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement