本人初学verilog, 用ISE综合遇到点问题,特来寻求帮助!找了半天也没发现错误!module saler(clk,reset,half_yuan,one_yuan,out);
input clk,reset,half_yuan,one_yuan;
output reg out;
reg [2:0] state;
parameter idle=0,half=1,one=2,one_half=3,two=4;
always@(posedge clk or posedge reset)
if(reset)
begin
out<=0;
state<=idle;
end
else case(state)
idle:begin
out<=0;
if(half_yuan) state<=half;
else if(one_yuan) state<=one;
else state<=idle;
end
half:begin
out<=0;
if(half_yuan) state<=one;
else if(one_yuan) state<=one_half;
else state<=half;
end
one:begin
out<=0;
if(half_yuan) state<=one_half;
else if(one_yuan) state<=two;
else state<=one;
one_half:begin
out<=0;
if(half_yuan) state<=two;
else if(one_yuan ) state<=two;
else state<=one_half;
end
two:begin
out<=1;
state<=idle;
end
default:begin
out<=0;
state<=idle;
end
endcase
endmodule
ERROR:HDLCompiler:31 - "E:MIPS2 ensaler.v" Line 50: <one_half> is already declared.
ERROR:HDLCompiler:31 - "E:MIPS2 ensaler.v" Line 56: <two> is already declared.
ERROR:HDLCompiler:806 - "E:MIPS2 ensaler.v" Line 60: Syntax error near "default".
ERROR:HDLCompiler:806 - "E:MIPS2 ensaler.v" Line 64: Syntax error near "endcase".
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
module saler(clk,reset,half_yuan,one_yuan,out);
input clk,reset,half_yuan,one_yuan;
output reg out;
reg [2:0] state;
parameter idle=0,half=1,one=2,one_half=3,two=4;
always@(posedge clk or posedge reset)
if(reset)
begin
out<=0;
state<=idle;
end
else case(state)
idle:begin
out<=0;
if(half_yuan) state<=half;
else if(one_yuan) state<=one;
else state<=idle;
end
half:begin
out<=0;
if(half_yuan) state<=one;
else if(one_yuan) state<=one_half;
else state<=half;
end
one:begin
out<=0;
if(half_yuan) state<=one_half;
else if(one_yuan) state<=two;
else state<=one;
end
one_half:begin
out<=0;
if(half_yuan) state<=two;
else if(one_yuan ) state<=two;
else state<=one_half;
end
two:begin
out<=1;
state<=idle;
end
default:begin
out<=0;
state<=idle;
end
endcase
endmodule
还有,注意程序素养,配套的关键字要对齐!
一周热门 更多>