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

조회 수: 1 (최근 30일)
Lars Boschert
Lars Boschert 2017년 11월 9일
답변: Kiran Kintali 2020년 10월 20일
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
Lars Boschert
Lars Boschert 2017년 11월 13일
편집: Lars Boschert 2017년 11월 13일
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.

댓글을 달려면 로그인하십시오.

답변 (1개)

Kiran Kintali
Kiran Kintali 2020년 10월 20일
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