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