J
Jatin Sharma
Guest
I am writing an FSM design example to detect sequence "0110". I have written the code but constantly getting syntax error afte the line always@(PS or x). Even if i remove the code after always@(PS,x) still i am getting the same error in the that line.
//////////////////code////////////////////////
module sequence_detector(x,clk,reset,z);
output reg z;
input clk,reset,x;
parameter S0 = 0, S1 = 1, S2 = 2, S3 = 3;
reg[0:1] PS,NS;
always@(posedge clk or posedge reset)
begin
if(reset)
PS <= S0;
else
PS <= NS;
end
always@(PS,x)
begin
case (PS)
S0:
begin
z = 0;
NS = x ? S0 : S1;
end
S1:
begin
z = 0;
NS = x ? S2 : S1;
end
S2:
begin
z = 0;
NS = x ? S3 : S1;
end
S3:
begin
z = x ? 0 : 1;
NS = x ? S0 : S1;
end
default:
begin
z = 0;
NS = S0;
end
endcase
end
endmodule
//////////////////////////////////////////////////////////////////
/////////////////////////////error////////////////////////////////
seq_detector_tb.v:17: syntax error
seq_detector_tb.v:19: Syntax in assignment statement l-value.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:22: syntax error
seq_detector_tb.v:22: error: invalid module item.
seq_detector_tb.v:23: syntax error
I give up.
//////////////////code////////////////////////
module sequence_detector(x,clk,reset,z);
output reg z;
input clk,reset,x;
parameter S0 = 0, S1 = 1, S2 = 2, S3 = 3;
reg[0:1] PS,NS;
always@(posedge clk or posedge reset)
begin
if(reset)
PS <= S0;
else
PS <= NS;
end
always@(PS,x)
begin
case (PS)
S0:
begin
z = 0;
NS = x ? S0 : S1;
end
S1:
begin
z = 0;
NS = x ? S2 : S1;
end
S2:
begin
z = 0;
NS = x ? S3 : S1;
end
S3:
begin
z = x ? 0 : 1;
NS = x ? S0 : S1;
end
default:
begin
z = 0;
NS = S0;
end
endcase
end
endmodule
//////////////////////////////////////////////////////////////////
/////////////////////////////error////////////////////////////////
seq_detector_tb.v:17: syntax error
seq_detector_tb.v:19: Syntax in assignment statement l-value.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:19: syntax error
seq_detector_tb.v:19: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:20: syntax error
seq_detector_tb.v:20: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:21: syntax error
seq_detector_tb.v:21: error: invalid module item.
seq_detector_tb.v:22: syntax error
seq_detector_tb.v:22: error: invalid module item.
seq_detector_tb.v:23: syntax error
I give up.