Open alem1105 opened 5 months ago
module es(input logic x, clk, reset, output logic y);
typedef enum [2:0] {A, B, C, D, E} stato
stato attuale, prossimo
always_ff @(posedge clk or posedge reset)
if (reset) attuale <= A
else attuale <= prossimo
always_comb
case (stato)
A: if (x) prossimo = C else prossimo = B
B: if (x) prossimo = C else prossimo = A
C: if (x) prossimo = E else prossimo = D
D: if (x) prossimo = A else prossimo = D
E: if (x) prossimo = B else prossimo = E
default: prossimo = A
endcase
assign y = if (state == C | state == D)
endmodule