const
,以防將來寫道,IEEE std 1800-2012 § 6.20.6「常量常量」狀態「......一個常量可以模擬期間設置...」,這表明它是由賣主以決定是否應該對性能進行任何優化。
static
將把變量放入共享內存。根據仿真場景,它可能會幫助或傷害性能。實際的性能影響是特定於模擬器的,所以您需要運行自己的基準測試。 IEEE std 1800-2012 § 6.21「範圍和壽命」的更多信息。
對於一個小項目,性能影響可以忽略不計。對於大型項目,性能需要分成幾類:內存使用率和內存訪問時間。 static
變量可以權衡較小的內存佔用(共享內存)和較長的查找時間(靜態變量的內存地址可以遠離對象數據的其餘部分)。 const
不太可能增加任何負面表現。
獲得一些基本性能數據的最簡單方法是用$finish(2)
結束仿真。請參閱IEEE std 1800-2012表20-1診斷$完成。如果模擬器符合標準,這將報告仿真時間,位置和有關仿真中使用的內存和CPU時間的統計信息。
使用ModelSim 10.1d提供的example,所有組合均報告相同的內存使用情況。運行時間僅受打印方法調用次數影響,而不受const
/static
屬性的影響。
如果我猜的話,性能會(有序最好更糟):
- 在
static method
string
const string
在static
方法
const static string
static string
const string
string
+1向我介紹edaplayground! – Ari