Разверните или потоковые циклы в сгенерированном HDL-коде
coder.hdl.loopspec('unroll')
полностью разворачивает цикл в сгенерированном HDL-коде. Вместо инструкции циклов сгенерированный код содержит несколько экземпляров тела цикла с одним экземпляром тела цикла на итерацию цикла.
coder.hdl.loopspec
прагма не влияет на поведение симуляции MATLAB®.
Примечание
Если вы задаете coder.unroll
прагма, эта прагма более приоритетна coder.hdl.loopspec
. coder.hdl.loopspec
не оказывает влияния.
coder.hdl.loopspec('unroll',
разворачивает цикл заданным разворачивающим фактором, unroll_factor
)unroll_factor
, в сгенерированном HDL-коде.
Сгенерированный HDL-код является инструкцией циклов, которая содержит unroll_factor
экземпляры исходного тела цикла. Количество итераций цикла в сгенерированном коде (original_loop_iterations
/ unroll_factor
). Если (original_loop_iterations
/ unroll_factor
) имеет остаток, остающиеся итерации полностью развернуты как экземпляры тела цикла вне цикла.
Эта прагма не влияет на поведение симуляции MATLAB.
coder.hdl.loopspec('stream')
генерирует один экземпляр тела цикла в HDL-коде. Вместо того, чтобы использовать инструкцию циклов, сгенерированный код реализует локальную сверхдискретизацию и добавленную логику, чтобы совпадать с функциональностью исходного цикла.
Можно задать эту прагму циклы for в верхнем уровне проекта MATLAB.
Эта прагма не влияет на поведение симуляции MATLAB.
coder.hdl.loopspec('stream',
разворачивает цикл с stream_factor
)unroll_factor
установите на original_loop_iterations
/ stream_factor
округленный в меньшую сторону до ближайшего целого числа, и также сверхдискретизировал цикл. Если (original_loop_iterations
/ stream_factor
) имеет остаток, экземпляры тела цикла остатка вне цикла не сверхдискретизированы, и запуск на исходном уровне.
Можно задать эту прагму циклы for в верхнем уровне проекта MATLAB.
Эта прагма не влияет на поведение симуляции MATLAB.