Этот шаблон конструкции показывает пример счетчика MATLAB ®, который подходит для генерации кода HDL .
Этот шаблон конструкции демонстрирует два лучших метода написания кода MATLAB для создания кода HDL:
Инициализация постоянных переменных для определенного значения. В этом примере if заявление и isempty инициализировать постоянную переменную. Если постоянная переменная не инициализирована, то код HDL не может быть создан.
Внутри функции считывайте постоянные переменные перед их изменением, чтобы постоянные переменные выводились как регистры.
Эта модель Simulink ® иллюстрирует счетчик, смоделированный в этом примере.

Сведения о моделировании счетчика в Simulink см. в разделе Создание HDL-совместимой модели Simulink.
Функция mlhdlc_counter - поведенческая модель четырехразрядного синхронного счетчика. Входной сигнал, enable_ctr, запускает значение регистра подсчета, count_val, увеличить на единицу. Счетчик продолжает увеличиваться на единицу каждый раз, когда входной сигнал не равен нулю, пока счетчик не достигнет предела 15. После достижения счетчиком этого предела счетчик возвращается к нулю. Постоянная переменная, которая инициализирована как нулевая, представляет текущее значение счетчика. Два if операторы определяют значение счетчика на основе входных данных.
Следующий раздел кода определяет mldhlc_counter функция.
%#codegen function count = mlhdlc_counter(enable_ctr) %four bit synchronous up counter %persistent variable for the state persistent count_val; if isempty(count_val) count_val = 0; end %counting up if enable_ctr count_val=count_val+1; %limit to four bits if count_val>15 count_val=0; end end count=count_val; end