避免用組合邏輯產生時鐘上一篇 / 下一篇 2011-04-06 12:32:34 / 個人分類:經(jīng)驗集錦 今天看到一個問題如下: 回復: 報告的warning和這個模塊看起來沒關系,至少從你貼的代碼沒看出來問題。但是報告的warning你的確需要關注,你用了gating clock,你是不是將這個模塊的dout在外面用作時鐘了?如果是的話,設計是不建議這樣用的。 評:對于ASIC設計來說,gating-clock可以通過特定的單元或者綜合工具,由工藝庫提供商或者綜合器來保證gating-clock的 正確性。在RTL代碼級設計中,盡量不要使用gating-clock來控制時鐘。使用控制時鐘的方法非常危險,因為這個非常難以通過后端約束來解決組合 邏輯產生的glitch,這些時鐘的glitch會使設計功能變得雜亂無章,無法跟蹤,導致仿真和綜合后結果不能match。 當然,我覺得ASIC設計后端place&route可以人工干預,以此來控制產生的clock的質量。FPGA實現(xiàn)就沒有這么好的命運 了,大多數(shù)的FPGA是經(jīng)過工具自動布局布線完成,而且FPGA設計因為其靈活性,經(jīng)常有非常多次數(shù)的設計交替(不像ASIC,芯片做一次后端,制造出來 了,ASIC設計就結束了)。所以,每次FPGA自動布局布線都可能會將產生的clock布線結果不一樣,那么clock質量就不一樣,這樣設計的后端會 非常難做,產生的bit流文件也非常難在FPGA上debug(調試)。 最后,需要指出的是,不是不能在FPGA內用gating clock,不同的FPGA廠商有其自己的gating clock或者時鐘生成器的方法。需要詳細參考其data-sheet。避免問題的產生。 |
|