Forum Discussion
Altera_Forum
Honored Contributor
11 years agoDoes your logic state machine is working?
I have my code here and hope you could find error in my code... localparam State1 = 0; localparam State2 = 1; reg [31:0] rCntr; reg [15:0] rTmCntr1, rTmCntr2; reg wPwm, StateSignal, SwitchSignal; initial begin rTmCntr1 = 0; rTmCntr2 = 0; rCntr = 2000000; wPwm = 0; StateSignal = State1; SwitchSignal = 0; end always @(posedge c0) begin if (SwitchSignal == 1) StateSignal = State2; end always @(posedge c0) begin if (StateSignal == State1) begin // code for State1 if (Enable == 1'b1) begin rTmCntr1 <= rTmCntr1 + 1'b1; if (rTmCntr1 < 2500) wPwm <= 1; else if (rTmCntr1 > 2500) wPwm <= 0; if (rTmCntr1 == 5000) rTmCntr1 <= 1'b0; end if (rCntr > 0) rCntr <= rCntr - 1'b1; else if (rCntr == 10) SwitchSignal = 1; end else begin // code for State2 if (Enable == 1'b1) begin rTmCntr2 <= rTmCntr2 + 1'b1; if (rTmCntr2 < 1250) wPwm <= 1; else if (rTmCntr2 > 5000) wPwm <= 0; if (rTmCntr2 == 5000) rTmCntr2 <= 1'b0; end end end Thanks, Sean