我正在使用 Simulink/Matlab Embedded Coder 构建模型,然后通过 HDL Coder 将其转换为 VHDL。它在仿真和 HDL 中的行为应该略有不同,特别是在调试输出方面。
有没有一种程序化的方式来区分选择了哪个目标?这最好不需要手动开关,例如“DEBUG = 1;”并确保根本不会合成禁用的代码或子模型。如果还可以区分不同的“加速器”模式,那将是一个加号。
更新: 这样的开关应该在自动生成 HDL 代码之前生效,因为我想避免手动接触生成的代码。
解决方案: 我找到了一个可以部分回答我的问题的解决方案:EnvironmentController在 Simulink 中提供了这样一个开关。也许还有一种仅限嵌入式 Matlab 的方法?
最佳答案
当您的 Simulink 模型中有 MATLAB 代码时,您可以使用 coder.target
来识别目标。您可以使用它来区分“C”代码生成和“HDL”代码生成。
coder.target("HDL")
在生成 HDL 时为真。
此文档位于 http://www.mathworks.com/help/coder/ref/coder.target.html
关于matlab - simulink中仿真和HDL代码生成的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265901/