Advertisement
Guest User

Untitled

a guest
May 8th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module FSM_user_coding(
  2.     input w,clk,aclr,
  3.     output reg z); 
  4.  
  5.     reg [3:0]    y_Q, Y_D;
  6.        
  7.     localparam [3:0]    
  8.             A = 4'b0000,
  9.             B = 4'b0001,
  10.             C = 4'b0010,
  11.             D = 4'b0011,
  12.             E = 4'b0100,
  13.             F = 4'b0101,
  14.             G = 4'b0110,
  15.             H = 4'b0111,
  16.             I = 4'b1000;
  17.     always @(*)
  18.     case (y_Q)
  19.         A:  if (!w) Y_D = B;    else Y_D = F;
  20.         B:  if (!w) Y_D = C;    else Y_D = F;
  21.         C:  if (!w) Y_D = D;    else Y_D = F;
  22.         D:  if (!w) Y_D = E;    else Y_D = F;
  23.         E:  if (!w) Y_D = E;    else Y_D = F;
  24.         F:  if (!w) Y_D = B;    else Y_D = G;
  25.         G:  if (!w) Y_D = B;    else Y_D = H;
  26.         H:  if (!w) Y_D = B;    else Y_D = I;
  27.         I:  if (!w) Y_D = B;    else Y_D = I;
  28.         default:    Y_D = 4'bxxxx;
  29.     endcase
  30.     always @(posedge clk,negedge aclr) 
  31.         if (~aclr)      y_Q <= 0;
  32.         else        y_Q <= Y_D;
  33.  
  34.     always @(*)
  35.         z = (y_Q == E) | (y_Q == I);   
  36. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement