Разверните или потоковые циклы в сгенерированном HDL-коде
coder.hdl.loopspec('unroll')
coder.hdl.loopspec('unroll',unroll_factor)
coder.hdl.loopspec('stream')
coder.hdl.loopspec('stream',stream_factor)
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
не имеет никакого эффекта.