Advertisement
Guest User

Untitled

a guest
Nov 9th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module STATE_MACHINE (
  2.     input CLK, E, RESET,
  3.     output [1:0] Z
  4. );
  5.  
  6.     reg [1:0] ACTUAL_STATE;
  7.     reg [1:0] NEXT_STATE;
  8.     reg [1:0] Z_INT;
  9.      
  10.     parameter Z1=2'b00, Z2=2'b01, Z3=2'b10, Z4=2'b11;
  11.  
  12.  
  13.  
  14.  
  15.  
  16.   always @(posedge CLK)
  17. begin : STATE_MEM
  18.     if (RESET == 1) begin
  19.        
  20.         ACTUAL_STATE <= Z1;
  21.     end else begin
  22.         ACTUAL_STATE <= NEXT_STATE;
  23.     end
  24. end
  25.  
  26.  
  27. always @(ACTUAL_STATE, E)
  28. begin : OUTPUT_LOGIC
  29.    case (ACTUAL_STATE)
  30.    Z1 : begin
  31.       Z_INT<=Z1;
  32.       end
  33.    Z2 : begin
  34.       Z_INT<=2'b01;
  35.       end
  36.    Z3 : begin
  37.       Z_INT<=2'b10;
  38.       end
  39.    Z4 : begin
  40.       Z_INT<=2'b11;
  41.       end
  42. endcase
  43.  
  44.  
  45. end
  46.  
  47. assign Z=Z_INT;
  48. always @(ACTUAL_STATE, E)
  49. begin : OUTPUT_LOGICee
  50. case (ACTUAL_STATE)
  51.    Z1 : begin
  52.     case (E)
  53.        1 : NEXT_STATE<= Z2;
  54.        0 : NEXT_STATE<= Z2;
  55.     endcase
  56.    end
  57.    
  58.    Z2 : begin
  59.     case (E)
  60.        1 : NEXT_STATE<= Z3;
  61.        0 : NEXT_STATE<= Z4;
  62.     endcase
  63.    end
  64.  
  65.    Z3 : begin
  66.     case (E)
  67.        1 : NEXT_STATE<= Z4;
  68.        0 : NEXT_STATE<= Z1;
  69.     endcase
  70.    end
  71.  
  72.    Z4 : begin
  73.     case (E)
  74.        1 : NEXT_STATE<= Z1;
  75.        0 : NEXT_STATE<= Z3;
  76.     endcase
  77.    end
  78.  
  79. endcase
  80. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement