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