Effacer les filtres
Effacer les filtres

Error when converting design from Matlab Simulink to HDL

12 vues (au cours des 30 derniers jours)
Ho
Ho le 19 Juin 2023
Modifié(e) : Kiran Kintali le 28 Juin 2024 à 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 commentaire
Walter Roberson
Walter Roberson le 19 Juin 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.

Connectez-vous pour commenter.

Réponses (1)

Kiran Kintali
Kiran Kintali le 19 Juin 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 commentaires
Andrew Sol
Andrew Sol le 28 Juin 2024 à 10:43
What does the notation fixdt(1,64,32) mean?
Kiran Kintali
Kiran Kintali le 28 Juin 2024 à 13:00
Modifié(e) : Kiran Kintali le 28 Juin 2024 à 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
>>

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by