coder.hdl.pipeline

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

Описание

пример

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

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

  • На целой правой стороне оператора присваивания.

  • На подвыражении.

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

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

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

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

  • В цикле.

  • Персистентная переменная, которая сопоставляет с элементом состояния, как государственный реестр или RAM.

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

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

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

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

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

пример

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

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

  • На целой правой стороне оператора присваивания.

  • На подвыражении.

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

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

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

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

  • В цикле.

  • Персистентная переменная, которая сопоставляет с элементом состояния, как государственный реестр или RAM.

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

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

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

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

Вы не можете использовать coder.hdl.pipeline вставить регистр трубопровода для одной переменной или другого никакого-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