程序中有錯誤,我確定它是由始終模塊中的negedge iChang
引起的。錯誤是:程序中的組合循環
節點零時鐘振盪.......檢查組合環路的設計或矢量源文件。
我的部分程序如下:
input clk, rst,iChang;
[email protected](posedge clk or negedge rst or negedge iChang)
begin
if(!iChang)//auto mode,serious problems!!!!!!!!!!!!!!!!!!
begin
if(!rst)
begin
s1<=state1;
A<=3'b0;
B<=3'b0;
count1<=3'd4;
count2<=3'd2;
count3<=3'd3;
count4<=3'd2;
temp<=1'b1;
end
else
begin
if(temp==1)
begin
temp<=1'b0;
case(s1)
state1:
begin
times<=count1;
A<=3'b001;
B<=3'b100;
s1<=state2;
end
state2:
begin
times<=count2;
A<=3'b010;
B<=3'b100;
s1<=state3;
end
state3:
begin
times<=count3;
A<=3'b100;
B<=3'b001;
s1<=state4;
end
state4:
begin
times<=count4;
A<=3'b100;
B<=3'b010;
s1<=state1;
end
default:
begin
A<=3'b000;
B<=3'b000;
end
endcase
end
如果我在always
塊取出negedge iChang
和if(!iChang)
塊,不會有任何錯誤。我不明白negedge iChang
和組合循環之間的關係。似乎沒有反饋會導致組合循環。
'iChang'從哪裏來? – Unn 2014-12-02 16:39:07
這是一個輸入(按鈕),用於觸發始終阻止 – 2014-12-02 16:47:56