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