Записать MATLAB® код, что оборудование моделей и подходит для генерации HDL-кода, использует этот шаблон разработки.
Этот шаблон разработки демонстрирует лучшие практики для записи кода MATLAB для генерации HDL-кода:
Инициализируйте персистентные переменные к определенному значению. В этом примере, if
оператор и isempty
функция инициализирует персистентную переменную. Если вы не инициализируете персистентную переменную, то вы не можете сгенерировать HDL-код.
В функции считайте персистентные переменные, прежде чем они будут изменены так, чтобы персистентные переменные были выведены как регистры.
Этот Simulink® модель иллюстрирует счетчик MATLAB, смоделированный в этом примере.
Чтобы изучить, как смоделировать счетчик в Simulink, смотрите, Создают Совместимую с HDL Модель Simulink.
Функция mlhdlc_counter
поведенческая модель 4-битного синхронного суммирующего счетчика. Входной сигнал, 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