How to do speed optimizations with/in feedback Loops? -Simulink HDL Coder

3 visualizaciones (últimos 30 días)
Hello Community, I am using Simulink HDL Coder with Matlab r2017a. However, I have an implementation of a PI Controller and try to optimize the clockspeed for my FPGA design. But some of the blocks(e.g Multiplier for Kp and KI, atleast it tells me so) to optimize are arranged in a feedback Loop and HDL Coder refuses to insert (adaptive) Pipeline Registers and also delay balancing is not possible for delays in Feedback Loops.
Do you have a nice and accurate workaround for doing speed optimization in feedback-Loops (in General)?
Thank you, Lars
  1 comentario
Lars Boschert
Lars Boschert el 13 de Nov. de 2017
Editada: Lars Boschert el 13 de Nov. de 2017
https://de.mathworks.com/matlabcentral/answers/48239-how-to-do-area-optimization-like-sharing-and-streaming-in-models-with-feedback-simulink-hdl-coder
The answer given in the question on top is also working for Speed optimizations(adaptive Pipelining): "consider moving the feedback loop into the subsystem where sharing is occuring".
I did that but my mistake was that the discrete Integrator, which is build with a "sum" and an "UnitDelay", also results in a Feedback path/Loop.

Iniciar sesión para comentar.

Respuestas (1)

Kiran Kintali
Kiran Kintali el 20 de Oct. de 2020
To address pipelining of blocks in feedback loops you can refer to this example and related HDL Coder features.
Clock Rate Pipelining
This example shows how to apply clock rate pipelining to optimize slow paths in your design and thereby reduce latency, increase clock frequency and decrease area usage. For more information on how to use clock-rate pipelining, see Clock-Rate Pipelining.
HDL Coder Clock Rate Pipelining, Part 1: Introduction
HDL Coder Clock Rate Pipelining, Part 2: Optimization

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by