• Techo

[IC design] 在 vivado post simulation (postsim) 中發現 combinational loop

由於最近在幫別人寫code

所以接觸到 vivado 的 synthesis 和 post simulation

所以碰到了一些工作上沒機會遇到的問題

這篇就純紀錄一下 debug 的過程


在做 post simulation 的時候發現跟 behavior simulation 結果不一樣

我第一個直覺是 timing violation

所以我直接把 testbench 的 clock 調很慢

結果還是一樣的錯誤

接著我只好去 trace 出現錯誤的 flip flop 前面的 combinational 電路

結果發現在敲進 DFF 之前電路還沒有呈現一個穩定的狀態

在整個 clock 周期內都一直改變值

這樣其實蠻不合理的

那段 RTL code 其實只有頂多四個或五個 mux

Gate delay 應該不會很久

也不會花太多時間來達到穩定

這看起來就是因為有 logic loop 導致電路結果又重新灌入電路輸入來讓電路運算無法達到穩定

所以我回去檢查發現某一行寫成

xxx_nx = xxx_nx + .....;

沒想到這個筆誤在 no timing simulation 居然可以動

後來再回去檢查 synthesis log

發現 vivado 早就有報 warning給我

所以 Warning 還是不要偷懶要好好看一下比較好啊


92 次瀏覽0 則留言
Logo2020.JPG