一个综合时的错误
时间:10-02
整理:3721RD
点击:
`timescale 1 ns /1 ps
module qdq(
LED,
PSW,
rst
);
input [3:0]PSW;
input rst;
output [3:0]LED;
reg [3:0]LED;
reg enable;
always@(rst)
begin
if(!rst)
enable=1;
end
always@(negedge rst or negedge PSW[0])
begin
if(!rst)
LED[0] = 1'b0;
else
begin
if(enable)
begin
enable=0;
LED[0] = 1'b1;
end
else
LED[0]=LED[0];
end
end
always@(negedge rst or negedge PSW[1])
begin
if(!rst)
LED[1] = 1'b0;
else
begin
if(enable)
begin
enable=0;
LED[1] = 1'b1;
end
else
LED[1]=LED[1];
end
end
always@(negedge rst or negedge PSW[2])
begin
if(!rst)
LED[2] = 1'b0;
else
begin
if(enable)
begin
enable =0;
LED[2] = 1'b1;
end
else
LED[2]=LED[2];
end
end
always@(negedge rst or negedge PSW[3])
begin
if(!rst)
LED[3] = 1'b0;
else
begin
if(enable)
begin
enable =0;
LED[3] = 1'b1;
end
else
LED[3]=LED[3];
end
end
endmodule
上面是代码,很简单,一个抢答器
综合时出现了错误,
ERROR:HDLCompiler:1401 - "E:\ISE_LIB\qdq_sec\qdq.v" Line 35: Signal enable in unit qdq is connected to following multiple drivers:
没有弄明白是什么原因
module qdq(
LED,
PSW,
rst
);
input [3:0]PSW;
input rst;
output [3:0]LED;
reg [3:0]LED;
reg enable;
always@(rst)
begin
if(!rst)
enable=1;
end
always@(negedge rst or negedge PSW[0])
begin
if(!rst)
LED[0] = 1'b0;
else
begin
if(enable)
begin
enable=0;
LED[0] = 1'b1;
end
else
LED[0]=LED[0];
end
end
always@(negedge rst or negedge PSW[1])
begin
if(!rst)
LED[1] = 1'b0;
else
begin
if(enable)
begin
enable=0;
LED[1] = 1'b1;
end
else
LED[1]=LED[1];
end
end
always@(negedge rst or negedge PSW[2])
begin
if(!rst)
LED[2] = 1'b0;
else
begin
if(enable)
begin
enable =0;
LED[2] = 1'b1;
end
else
LED[2]=LED[2];
end
end
always@(negedge rst or negedge PSW[3])
begin
if(!rst)
LED[3] = 1'b0;
else
begin
if(enable)
begin
enable =0;
LED[3] = 1'b1;
end
else
LED[3]=LED[3];
end
end
endmodule
上面是代码,很简单,一个抢答器
综合时出现了错误,
ERROR:HDLCompiler:1401 - "E:\ISE_LIB\qdq_sec\qdq.v" Line 35: Signal enable in unit qdq is connected to following multiple drivers:
没有弄明白是什么原因
enable=0;
你看enable,有两处赋值,
学的vhdl,不过你的报错是多处赋值的错误。我猜verilog里那个enable=0就是赋值语句吧?让所有赋值语句都在if的从句里,多处同时赋值就会出现这样的报错。
只说一句,报的error已经说的很清楚的了,LZ是只看了Error这几个字母没看后面的解释么?
看了,不过很惭愧,第一次遇到这样的错误,并且提示是在35行,当时只看了35行上下的代码,没发现有什么错误,以后产生这样的错误就知道了