Моделируйте счетчик для генерации HDL-кода

Этот шаблон проекта показывает MATLAB® пример счетчика, который подходит для генерации HDL-кода.

Счетчик MATLAB

Этот шаблон проекта демонстрирует две лучшие практики для записи кода MATLAB для генерации HDL-кода:

  • Инициализируйте постоянные переменные до определенного значения. В этом примере an if оператор и isempty функция инициализирует постоянную переменную. Если постоянная переменная не инициализирована, HDL-код не может быть сгенерирован.

  • Внутри функции считывайте стойкие переменные перед их изменением, в порядок, чтобы постоянные переменные выводились как регистры.

Этот Simulink® модель иллюстрирует счетчик, смоделированный в этом примере.

Чтобы узнать, как смоделировать счетчик в Simulink, смотрите Создание HDL-совместимой модели Simulink.

Код MATLAB для счетчика

Функция 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

См. также

|

Похожие темы