Borrar filtros
Borrar filtros

Error when converting design from Matlab Simulink to HDL

12 visualizaciones (últimos 30 días)
Ho
Ho el 19 de Jun. de 2023
Editada: Kiran Kintali el 28 de Jun. de 2024 a las 13:46
I am a newbie here. I really hope someone can help me with this problem. I made a simple design using simulink and did it convert it to VHDL language however it throws an error: "Slope and bias scaling 'sfix64_S9p765625en13' is not supported for HDL code generation. Slope must be equal to a power of 2, and bias should always be 0". I've been messing around for a week but haven't fixed it yet. I very much hope maybe someone knows how to solve it here. Thank you so much everyone.
This is the file simulink:
  1 comentario
Walter Roberson
Walter Roberson el 19 de Jun. de 2023
How did the sfix64_S9p765625en13 output get chosen?
The error is effectively saying that it is not permitted for VHDL purposes to have a conversion which is (INTERNAL times 9 plus 765625) and that instead you have to use (INTERNAL times 2^some_power + 0) . Or to put it another way, you can only use power-of-2 scaling, EXTERNAL = 2^N * INTERNAL for some integer N.

Iniciar sesión para comentar.

Respuestas (1)

Kiran Kintali
Kiran Kintali el 19 de Jun. de 2023
The model has an incorrect/undefined type specification. You need to use the fixdt(1,64,32) syntax.
In addition, please note HDL Coder does not currently support Slopbias scaling. Hardware friendly binary point scaling is suitable for HDL Code generation.
  2 comentarios
Andrew Sol
Andrew Sol el 28 de Jun. de 2024 a las 10:43
What does the notation fixdt(1,64,32) mean?
Kiran Kintali
Kiran Kintali el 28 de Jun. de 2024 a las 13:00
Editada: Kiran Kintali el 28 de Jun. de 2024 a las 13:46
>> a = fixdt(1,64,32)
a =
NumericType with properties:
DataTypeMode: 'Fixed-point: binary point scaling'
Signedness: 'Signed'
WordLength: 64
FractionLength: 32
IsAlias: 0
DataScope: 'Auto'
HeaderFile: ''
Description: ''
>> b = numerictype(1,64,32)
b =
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 64
FractionLength: 32
>> range(b)
ans =
1.0e+09 *
-2.1475 2.1475
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 64
FractionLength: 32
>>

Iniciar sesión para comentar.

Categorías

Más información sobre Fixed Point en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by