很抱歉,如果此类问题已经出现。
我一直在寻找几天的帮助。
我在参数行附近收到错误。 ERROR说:HDLCompiler:806 - “;”附近的语法错误。 case(State)附近的另一个错误“(”。附近的语法错误。但我觉得它的语法不是错误。
`timescale 1ns / 1ps
module movSeven(Clk, Rst, A, an0, an1, an2, an3 );
input A;
output reg an0, an1, an2, an3;
input Clk, Rst;
parameter W = 1, X = 2, Y = 3, Z = 4 ;
reg [1:0] State, StateNext;
always @(State, A) begin
case(State)
W:begin
an0 <= 0;
if (A == 0)
StateNext <= W;
else
StateNext <= X;
end
X:begin
an1 <= 0;
if (A == 0)
StateNext <= X;
else
StateNext <= Y;
end
Y:begin
an2 <= 0;
if (A == 0)
StateNext <= Y;
else
StateNext <= X;
end
Z:begin
an3 <= 0;
if (A == 0)
StateNext <= Z;
else
StateNext <= W;
end
endcase
end
always @(posedge Clk)
begin
if (Rst == 1)
State <= X;
else
State <= StateNext;
end
endmodule
答案 0 :(得分:1)
State
和StateNext
是2位宽。所以他们不能有一个值= 4(参数Z)
另外,尝试为每个参数提供单独的行,并以位格式定义它们。
parameter W = 2'b00;
parameter X = 2'b01;
parameter Y = 2'b10;
parameter Z = 2'b11;