always @(posedge rst or posedge clk or posedge en or posedge en_b)
begin
if (rst)
begin
.....
end
else if (Tlat_on)
begin
......
end
else if (Toff_on)
......
但是用DC综合的时候,提示error为:cannot test variable ' Tlat_on / Toff_on' because it was not in the event expression or with wrong polarity.
请问这个错误该如何改啊?谢谢。
我的代码是这样的:
always @(posedge rst or posedge clk or posedge en or posedge en_b)
begin
if (rst)
begin
latched <= 1'b0;
powerdown <= 1'b0;
en_sst <= 1'b0;
Toff_on <= 1'b1;
Tlat_on <= 1'b0;
en_sst_on <= 1'b1;
counter <= 10'h000;
end
else if (Tlat_on)
begin
if (en)
begin
counter <= counter + 10'h001;
powerdown <= 1'b0;
if (counter == TTLATCH - 10'h008)
latched <= 1'b1;
else if (counter > TTLATCH)
begin
latched <= 1'b0;
if (en_sst_on)
begin
en_sst <= 1'b1;
if (counter == TSST)
begin
en_sst <= 1'b0;
en_sst_on <= 1'b0;
end
end
else
begin
Tlat_on <= 1'b0;
Toff_on <= 1'b0;
counter <= counter; //omit?
end
end
end
else
begin
counter <= 10'h000;
latched <= 1'b0;
Toff_on <= 1'b1;
Tlat_on <= 1'b0;
end
end
else if (Toff_on)
begin
if (en)
begin
Toff_on <= 1'b0;
Tlat_on <= 1'b1;
counter <= 10'h000;
end
else if (counter == TTOFF)
begin
counter <= 10'h000; //omit?
Toff_on <= 1'b0;
Tlat_on <= 1'b0;
en_sst_on <= 1'b1;
powerdown <= 1'b1;
latched <= 1'b0; //omit?
end
else
begin
counter <= counter + 10'h001;
end
end
else
begin
Tlat_on <= 1'b1;
Toff_on <= 1'b0;
powerdown <= 1'b0;
counter <= counter; //omit?
end