struct memeber can not be Simulink.Parameter?

3 ビュー (過去 30 日間)
dayu lai
dayu lai 2021 年 7 月 29 日
コメント済み: dayu lai 2021 年 8 月 5 日
I am using HDL Coder to generate RTL code from simulink.
While I want some signal internal a simulink to be tunable, which names 'bp' for example. So I wrote following code:
bp = Simulink.Parameter;
bp.Value = [0;0;0];
bp.CoderInfo.StorageClass = 'ExportedGlobal';
Then the bp signal will appeared as a input port in RTL.
However, if I wrote like this:
reg.bp = Simulink.Parameter;
reg.bp.Value = [0;0;0];
reg.bp.CoderInfo.StorageClass = 'ExportedGlobal';
While generate RTL, it comes out error:
Invalid setting in '<some_block>' for parameter 'Value'.
error using slhdlcoder.SimulinkConnection/initModel
Expression 'reg.bp' for block '<some_block>' returns a Simulink.Parameter object that has property values that need to be evaluated. This object should be instantiated in a workspace and referenced by name in Simulink
So it seems struct member can not be simulink parameter?

回答 (1 件)

Kiran Kintali
Kiran Kintali 2021 年 8 月 1 日
Can you share a sample model?
  1 件のコメント
dayu lai
dayu lai 2021 年 8 月 5 日
Hi, I use the same demo in other question
The demo above can generate RTL successfully. However, if I change the parameter of constant before comparator into structure memeber. The compile of MDL is fail.
See the attached png for detail.
In reality, there will be a lot of tunable value in my design. I just want them to be members of structure, like reg.tunable_value0, reg.tunable_value1 and etc. Otherwise my workspace would be full filled with the global tunable value.
How I can do it?






Community Treasure Hunt

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

Start Hunting!

Translated by