微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 关于synopsys 综合的问题,谢谢。error:cannot test variable...

关于synopsys 综合的问题,谢谢。error:cannot test variable...

时间:10-02 整理:3721RD 点击:
我的always块是这样的:
wire en_b;
assign en_b = ~en;
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
end

敏感表中最多两个edge

边沿敏感列表中最多3个出发条件,包括时钟,异步置位,异步复位.
你的太多了.

同意三楼的

哦 知道拉 谢谢,非常感激

非常感谢,住快乐

跟几个触发条件没关系,我写5个都不会报错啊。
问题是if else串中,要把异步触发条件写在同步触发条件前面。

有所收获

7楼说的才是对的

那按照7楼说的,怎么修改呢?我最后触发沿都用成posedge,就要没有报错了。但是DC里面不能用negedge 方式么?

always @(posedge rst or posedge clk or posedge en or posedge en_b)……
一看到小编这样写就醉了,你知道自己想要描述的电路长什么样吗?你如果还是学生也就罢了,如果任职某IC设计公司……

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

网站地图

Top