MATLAB HDL-Coder: Expression could not be reduced to a constant.

9 views (last 30 days)
I am trying to pass a struct hwconst into a MATLAB function.
function [out] = function_hdl(in, hwconst)
That function I want to translate into Verilog code using HDL-Coder. hwconst contains a field lfsrWidth. I am then using this field in the MATLAB function as follows:
WD_lfsr = coder.const(hwconst.lfsrWidth);
However, that line gives me an error during building: "Expression could not be reduced to a constant." I guess it's because lfsrWidth is not defined as a constant, see below. That's because the option for that is not there. How to use a structure with hardware constants properly with HDL Coder?

Accepted Answer

Kiran Kintali
Kiran Kintali on 10 Feb 2025
Is hwconst an input variable (creates hardware interface pins) or just a non-tuanble constant parameter passed into the design from the testbench. If it is a constant parameter you need to right click in the GUI for hwconst and define it a constant value.
Here are some examples on how to do this via command line workflows.
This example shows how to pass / load constants
>> mlhdlc_demo_setup('comms_data_packet')

More Answers (0)

Categories

Find more on Code Generation in Help Center and File Exchange

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!