exponenta event banner

coder.hdl.pipeline

Вставка регистров трубопроводов на выходе выражения MATLAB

Описание

пример

out = coder.hdl.pipeline(expr) вставляет один регистр трубопровода на выходе expr в сгенерированном коде HDL. Эта прагматика не влияет на поведение моделирования MATLAB ®.

Используйте эту прагматику, чтобы точно указать место вставки регистров трубопровода. Например, в инструкции назначения MATLAB можно указать pragma coder.hdl.pipeline:

  • В правой части инструкции о присвоении.

  • На субэкспрессии.

  • Вложив несколько прагматов.

  • При вызове подфункции, если подфункция возвращает одно значение. Нельзя указать прагматику для подфункции, возвращающей несколько значений.

Если включена распределенная конвейерная обработка, HDL Coder™ может перемещать регистры трубопровода для разрыва критического пути.

Кодер HDL не может вставить регистр конвейера на выходе выражения MATLAB, если одна из переменных в выражении:

  • В петле.

  • Постоянная переменная, которая сопоставляется с элементом состояния, как регистр состояния или ОЗУ.

  • Вывод функции. Например, в следующем коде нельзя добавить регистр трубопровода для выражения, содержащего y:

    function [y] = myfun(x)
    y = x + 5;
    end

  • В цикле обратной связи данных. Например, в следующем коде невозможно переместить выражение, содержащее t или pvar переменные:

    persistent pvar;
    t = u + pvar;
    pvar = t + v;

Вы не можете использовать coder.hdl.pipeline вставка регистра трубопровода для одной переменной или другого выражения no-op. Инструкции по вставке регистра трубопровода для входной переменной функции см. в разделе Регистры портов.

пример

out = coder.hdl.pipeline(expr,num) вставки num регистры трубопроводов на выходе expr в сгенерированном коде HDL. Эта прагматика не влияет на поведение моделирования MATLAB.

Используйте эту прагматику, чтобы точно указать место вставки регистров трубопровода. Например, в инструкции назначения MATLAB можно указать pragma coder.hdl.pipeline:

  • В правой части инструкции о присвоении.

  • На субэкспрессии.

  • Вложив несколько прагматов.

  • При вызове подфункции, если подфункция возвращает одно значение. Нельзя указать прагматику для подфункции, возвращающей несколько значений.

Если включена распределенная конвейерная обработка, кодер HDL может перемещать регистры трубопровода для разрыва критического пути.

Кодер HDL не может вставить регистр конвейера на выходе выражения MATLAB, если одна из переменных в выражении:

  • В петле.

  • Постоянная переменная, которая сопоставляется с элементом состояния, как регистр состояния или ОЗУ.

  • Вывод функции. Например, в следующем коде нельзя добавить регистр трубопровода для выражения, содержащего y:

    function [y] = myfun(x)
    y = x + 5;
    end

  • В цикле обратной связи данных. Например, в следующем коде невозможно переместить выражение, содержащее t или pvar переменные:

    persistent pvar;
    t = u + pvar;
    pvar = t + v;

Вы не можете использовать coder.hdl.pipeline вставка регистра трубопровода для одной переменной или другого выражения no-op. Инструкции по вставке регистра трубопровода для входной переменной функции см. в разделе Регистры портов.

Примеры

свернуть все

На выходе выражения MATLAB a + b * c, вставьте один регистр трубопровода.

y = coder.hdl.pipeline(a + b * c);

На выходе выражения MATLAB a + b * c, вставьте три регистра трубопровода.

    y = coder.hdl.pipeline(a + b * c, 3);

Для выражения MATLAB: a + b * c, после вычисления b * c, вставьте пять регистров трубопроводов.

    y = a + coder.hdl.pipeline(b * c, 5);

На промежуточном этапе и на выходе выражения MATLAB используйте вложенное выражение coder.hdl.pipeline прагматики для вставки регистров трубопроводов.

Для выражения MATLAB: a + b * c, после вычисления b * c, вставьте пять регистров конвейера и вставьте два регистра конвейера на выходе всего выражения.

    y = coder.hdl.pipeline(a + coder.hdl.pipeline(b * c, 5),2);

Входные аргументы

свернуть все

Выражение MATLAB для конвейера. На выходе этого выражения в сгенерированный HDL-код вставьте регистры трубопровода.

Пример: a + b

Количество регистров трубопроводов, вставляемых на выходе expr в сгенерированном HDL-коде, указанном как положительное целое число.

Пример: 3

Представлен в R2015a