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