微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 一个综合时的错误

一个综合时的错误

时间: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:
没有弄明白是什么原因

enable=0;
你看enable,有两处赋值,

学的vhdl,不过你的报错是多处赋值的错误。我猜verilog里那个enable=0就是赋值语句吧?让所有赋值语句都在if的从句里,多处同时赋值就会出现这样的报错。

只说一句,报的error已经说的很清楚的了,LZ是只看了Error这几个字母没看后面的解释么?



  看了,不过很惭愧,第一次遇到这样的错误,并且提示是在35行,当时只看了35行上下的代码,没发现有什么错误,以后产生这样的错误就知道了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top