Персистентные переменные включают вам к регистрам модели. Если необходимо сохранить состояние между вызовами алгоритма 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
Примечание
Если персистентные переменные не инициализируются аналогичные описанному выше, дополнительные переменные сигнальной метки могут появиться в сгенерированном коде. Эти переменные сигнальной метки могут перевести в неэффективное оборудование.
Персистентные переменные типа массив включают вам к модели RAM.
По умолчанию программное обеспечение HDL Coder™ оптимизирует область вашего проекта путем отображения персистентных переменных типа массив с RAM. Если персистентные переменные типа массив не сопоставлены с RAM, они сопоставляют с регистрами. Отображение RAM может поэтому уменьшать область вашего проекта в целевом компьютере.
Чтобы изучить, как персистентные переменные типа массив сопоставляют с RAM, см. Карту Персистентные Массивы и dsp.Delay к RAM.