??原文基于Verilog-XL仿真器,測試了以下幾種方式對仿真效率的影響。
1. 使用 Case 語句而不是 if / else if 語句
??八選一多路選擇器 case 實現效率比 if / else if 提升 6% 。
2. 如果可以盡量不使用 begin end 語句
??使用 begin end 的 ff 觸發器比不使用 begin end 的 ff 觸發器仿真多消耗 6% 的內存與 6% 的仿真時間。
3. 使用 define 而不是使用 parameter / defparam
??使用 parameter / defparam 相比使用define多消耗25%-35%的內存。
4. 盡量在一個always塊里賦值
??使用 4 個always塊給 4 個變量賦值比使用 1 個 always 塊給 4 個變量賦值慢 34% 。
5. 盡量少聲明不使用的引腳 / 減少不必要的層級
??具有 4 個外部引腳的模塊仿真比無外部引腳的模塊仿真多 46% 仿真時間。
6. 盡量降低仿真精度
??使用 1ns / 1ps 為仿真精度相比 1ns / 1ns 精度多耗費 156% 內存和 99% 執行時間。
7. 盡量減少 $time 精度和執行次數
8. 盡量使用 always 進行循環操作如時鐘產生