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