exponenta event banner

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

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

Счетчик MATLAB

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

  • Инициализация постоянных переменных для определенного значения. В этом примере 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

См. также

|

Связанные темы