const
помешает пишет будущее, IEEE std 1800-2012 § 6.20.6 «Const константа» состояние «... константные может быть установлены в процессе моделирования ...» что говорит о том, что до торгового автомата, чтобы решить, если надо будь то оптимизация производительности.
static
помещает переменную в общую память. Это может помочь или повредить производительность в зависимости от сценария моделирования. Фактическое влияние производительности - симулятор, поэтому вам нужно будет запустить свои собственные тесты. IEEE std 1800-2012 § 6.21 «Объем и срок службы» для большего количества.
Для небольшого проекта воздействие на производительность будет незначительным. Для больших проектов производительность должна быть разделена на категории: использование памяти и время доступа к памяти. static
переменные могут иметь компромисс меньшего объема памяти (разделяемая память) и более длительное время поиска (адрес памяти статической переменной может быть далек для остальных данных объекта). const
вряд ли добавит отрицательную производительность.
Самый простой способ получить некоторые базовые данные о производительности - завершить моделирование с помощью $finish(2)
. См. IEEE std 1800-2012 Таблица 20-1-Диагностика для $ finish. Это сообщит о времени моделирования, местоположении и статистике памяти и времени процессора, используемых в симуляции, если имитатор соответствует стандарту.
С предоставленным example с использованием ModelSim 10.1d все комбинации сообщили о том же объеме использования памяти. Время выполнения было вызвано только количеством вызовов методом печати, а не атрибутом const
/static
.
Если бы я должен был догадаться, производительность будет (заказывается лучше к худшему):
const string
в static method
string
в static
методом
const static string
static string
const string
string
+1 для введения edaplayground для меня! – Ari