Постоянные переменные позволяют моделировать регистры. Если необходимо сохранить состояние между вызовами алгоритма MATLAB ®, используйте постоянные переменные.
Перед использованием постоянной переменной необходимо инициализировать ее инструкцией, указывающей ее размер и тип. Можно инициализировать постоянную переменную с помощью постоянного значения или переменной, как в следующих примерах:
% Initialize with a constant persistent p; if isempty(p) p = fi(0,0,8,0); end
% Initialize with a variable initval = fi(0,0,8,0); persistent p; if isempty(p) p = initval; end
Используйте логическое выражение, которое вычисляет константу, чтобы проверить, была ли инициализирована постоянная переменная, как в предыдущих примерах. Использование логического выражения, которое вычисляет константу, гарантирует, что сгенерированный код HDL для теста будет выполнен только один раз, как часть процесса сброса.
Можно инициализировать несколько переменных в одном логическом выражении, как в следующем примере:
% Initialize with variables initval1 = fi(0,0,8,0); initval2 = fi(0,0,7,0); persistent p; if isempty(p) x = initval1; y = initval2; end
Примечание
Если постоянные переменные не инициализированы, как описано выше, в сгенерированном коде могут появиться дополнительные контрольные переменные. Эти контрольные переменные могут преобразовываться в неэффективное оборудование.
Постоянные переменные массива позволяют моделировать ОЗУ.
По умолчанию программное обеспечение HDL Coder™ оптимизирует область проекта, сопоставляя постоянные переменные массива с оперативной памятью. Если переменные постоянного массива не сопоставлены с оперативной памятью, они сопоставляются с регистрами. Поэтому отображение ОЗУ может уменьшить область конструкции в целевом оборудовании.
Сведения о том, как переменные постоянного массива сопоставляются с оперативной памятью, см. в разделе Сопоставление постоянных массивов и dsp. Задержка в ОЗУ.