how to make HDL coder optimize the multiplication with a small constant to shift right?

mu2 is a very small constant ,which is on the order of 1e-6.
mu2 has to be multiplied by xi and yi.
xi times yi is variable which is on the order between 1 and 1e4.
I tried the shift arithmetic module but the result was wrong ಥ﹏ಥ
Thanks for helping me!

5 Comments

Are you (already) coding the signals as fixed-point? If so I might suggest using a math block and letting Simulink and HDL Coder take care of the optimization
your help was very much appreciated. I changed the constant mu2 from 'workspace' to 'constant', and then convert my model to use optimized fixed-point data types.the result is right!
but due to unfamiliar to the HDL toolbox, I meet a new question:
HDL Coder is saying that the model cannot be compiled.
Could you try to run the model and see if you get any errors?
Alternatively, can you uncheck the "Generate test bench" box and see if HDL Code generation is successful?
Thanks for your patience! The model can run without any error. when uncheck the "Generate test bench" box,I meet the same question in last comment;when I generate HDL code, there is error:
they both say cannot connect to the model.
But The subsystem of this model can sucessfully generate HDL code before coding the signals as fixed-point.Although it still cannot generate testbench:
We may need to look at your model to see what the issue is. You can post it here if that is acceptable. Otherwise, it is best if you contact MATLAB technical support.

Sign in to comment.

Answers (0)

Products

Release

R2022a

Tags

Asked:

on 26 Apr 2023

Community Treasure Hunt

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

Start Hunting!