How do I convert between enumeration and integer types for use with HDL Coder?
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 12 de Feb. de 2019
Respondida: Kiran Kintali
el 9 de Jul. de 2021
I am using enumerations in my model, and would like to generate HDL code. However, when I use a data type conversion block to convert between integer types and enumerations and try to generate HDL code, I get an error:
"Illegal conversion to/from an enumerated type in modelName/Data Type Conversion"
What is the recommended approach for converting between enums and integer types for HDL Coder?
Respuesta aceptada
MathWorks Support Team
el 7 de Mayo de 2020
Using data type conversion blocks to convert between enumeration and integer types is not currently support for HDL Coder.
As a workaround, you may use the following:
1) Enumeration to integer: Use a multiport switch or use a MATLAB Function block with a switch statement, as shown in the attached model
2) Integer to enumeration: Use a selector block or use a MATLAB Function block with a switch statement, as shown in the attached model.
Please note that there is not one accepted approach, and each approach will generate slightly different HDL code. Therefore, please choose the option that best suits your modeling needs in Simulink.
Finally, please note that enumerations have further limitations when used with HDL Coder, as described here:
0 comentarios
Más respuestas (1)
Kiran Kintali
el 9 de Jul. de 2021
Updated Answer (R2021a)
HDL Code Generation for Data Type Conversion block supports enumerated data types in R2021a release. See web(fullfile(docroot, 'hdlcoder/release-notes.html'))
You can now use enumerated signals at the ports of the Data Type Conversion block for HDL code generation. You can use the Data Type Conversion block to convert the enumeration data to integer or integer-to-enumeration data. Specify your enumerated data to your Data Type Conversion block.
See attached updated Example showing HDL friendly model.
0 comentarios
Ver también
Categorías
Más información sobre External Component Interfaces en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!