Why does Loop Streaming not work for my nested loop when generating HDL Code?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 9 de Oct. de 2018
Editada: MathWorks Support Team
el 1 de Mzo. de 2024
I would like to decrease hardware resource usage in my FPGA design by applying Loop Streaming optimization. In the Check Report provided after HDL code generation, I can see a warning that streaming failed:
"Could not apply coder.hdl.loopspec pragma with the 'stream' option. This could be because the 'stream' option
was applied on a loop containing a nested loop with a streaming factor that is not equal to the number of iterations,
or because the 'stream' option was applied in a System Object."
My loop indeed contains a nested loop, but the streaming factor is accurate. Also, I have closely followed the requirements and limitations given in the documentation which can be accessed by running the following command in the MATLAB R2018b:
web(fullfile(docroot, 'hdlcoder/ug/loop-optimization-1.html'))
Why is streaming still failing?
Please follow the below link to search for the required information regarding the current release:
Respuesta aceptada
MathWorks Support Team
el 18 de En. de 2024
Editada: MathWorks Support Team
el 1 de Mzo. de 2024
Besides the points mentioned on the documentation page, nested loops are only supported for streaming when the loop body resides in the nested loop alone, i.e. loop over rows in outer loop and columns in inner loop for some element-wise operations on a matrix.
If the loop body almost solely lives in the outer loop, it cannot be streamed as it is. In this case, in order to do loop streaming on the outer loop, this nested loop could be unrolled. This can be done by using a second loopspec pragma and specifying 'unroll' in it at the nested loop:
coder.hdl.loopspec('stream')
for i = 1:N
%...
%...
%...
%...
%...
%...
%...
coder.hdl.loopspec('unroll')
for j = 1:M
%...
end
%...
end
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!