Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module sev_state_moore_state_machine
  2. (
  3.     input logic clk, in, reset,
  4.     output logic [2:0] out
  5. );
  6.     enum logic [2:0] {S0,S1,S2,S3, S4, S5, S6, S7} state, next_state;
  7.      
  8.     always_ff @ (posedge clk or negedge reset) begin
  9.         if (!reset) state <= S0;
  10.         else state <= next_state;
  11.     end
  12.     always_comb begin
  13.         case (state)
  14.                 S0: next_state = in? S5:S0;
  15.                 S1: next_state = in? S6:S1;
  16.                 S2: next_state = in? S7:S2;
  17.                 S3: next_state = in? S0:S3;
  18.                 S4: next_state = in? S1:S4;
  19.                 S5: next_state = in? S2:S5;
  20.                 S6: next_state = in? S3:S6;
  21.                 S7: next_state = in? S4:S7;
  22.                 default: next_state = S0;
  23.             endcase
  24.     end
  25.     always @ (state) begin
  26.         case (state)
  27.             S0: out = 3'b000;
  28.             S1: out = 3'b001;
  29.             S2: out = 3'b010;
  30.             S3: out = 3'b011;
  31.             S4: out = 3'b100;
  32.             S5: out = 3'b101;
  33.             S6: out = 3'b110;
  34.             S7: out = 3'b111;
  35.             default: out = 3'b000;
  36.         endcase
  37.     end
  38. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement