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

2 visualizzazioni (ultimi 30 giorni)
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 Commento
Lars Boschert
Lars Boschert il 13 Nov 2017
Modificato: Lars Boschert il 13 Nov 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.

Accedi per commentare.

Risposte (1)

Kiran Kintali
Kiran Kintali il 20 Ott 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

Community Treasure Hunt

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

Start Hunting!

Translated by