[ݳXȲέp


verilog中使用NAND作OSC的問題(combinatorial loop)(已解決)

非8051系列的單晶片軟硬體請在此區討論(CPU介面周邊,或MICRO CHIP等....)

版主: charlesliao

verilog中使用NAND作OSC的問題(combinatorial loop)(已解決)

文章stu80409 發表於 週一 10月 20, 2014 7:38 pm

module OSC(
input start,
output Tosc
);

wire w1,w2,w3,w4,w5,w6,w7,w8 ,w9 ,w10 ,w11 ,w12 ,w13 ,w14 ,w15;

nand n1(w1,w15,start);
nand n2(w2,w1,w1);
nand n3(w3,w2,w2);
nand n4(w4,w3,w3);
nand n5(w5,w4,w4);
nand n6(w6,w5,w5);
nand n7(w7,w6,w6);
nand n8(w8,w7,w7);
nand n9(w9,w8,w8);
nand n10(w10,w9,w9);
nand n11(w11,w10,w10);
nand n12(w12,w11,w11);
nand n13(w13,w12,w12);
nand n14(w14,w13,w13);
nand n15(w15,w14,w14);
buf b1(Tosc,w15);

endmodule


以上是我的OSC電路, 最後輸出拉回輸入
但是最後合成的時候有一個警告寫 :Unit OSC : the following signal(s) form a combinatorial loop: w10.
RTL也不是正常的電路
最後用post-route模擬也無法起振...
請問要如何修改, 還是甚麼東西沒設定到?
最後由 stu80409 於 週二 10月 21, 2014 3:48 pm 編輯, 總共編輯了 1 次
stu80409
 
文章: 255
註冊時間: 週二 9月 01, 2009 10:30 am

Re: verilog中使用NAND作OSC的問題(combinatorial loop)

文章stu80409 發表於 週二 10月 21, 2014 3:47 pm

在每條wire前面都要加一個 /*synthesis keep = 1*/ 才不會被最佳化合成

這樣就正常了!
stu80409
 
文章: 255
註冊時間: 週二 9月 01, 2009 10:30 am


回到 其他類單晶片--相關的軟硬體討論區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 4 位訪客

cron