有前辈帮我解决一下问题吗,verilog语言写的一个带进位和借位输出的2位二进制可逆计数器,编译出来有error,但是实在不知道为什么错,希望有前辈找一下瑕疵。下面是代码,加粗有下划线的语句的modelsim给出的错误的地方。。。
module counter(clk,En,q,r,co,d,s);
input clk,En,r,s;
input[1:0] d;
output[1:0] q;
reg[1:0] q;
output co;
reg co;
always @(negedge clk)
if(r)
begin q=0;
end
else
begin
if(d)
begin q=d;
end
end
if(En)
begin
if(s==1)
begin
q=q+2'b1;
if(q==2'b11)
begin co=1;
q<=0;
end
else
begin co=0;
end
end
else if(s==0)
begin
q=q-2'b1;
if(q==2'b00)
begin co=1;
q<=2'b11;
end
else
begin co=0;
end
end
else
begin q=q;
end
end
endmodule
input clk,En,r,s;
input[1:0] d;
output[1:0] q;
reg[1:0] q;
output co;
reg co;
always @(negedge clk)
if(r)
begin q=0;
end
else
begin
if(d)
begin q=d;
end
end
if(En)
begin
if(s==1)
begin
q=q+2'b1;
if(q==2'b11)
begin co=1;
q<=0;
end
else
begin co=0;
end
end
else if(s==0)
begin
q=q-2'b1;
if(q==2'b00)
begin co=1;
q<=2'b11;
end
else
begin co=0;
end
end
else
begin q=q;
end
end
endmodule