一、简介
本文主要以matlab 2019b版本,主要讲解怎么用simulink和fixed point tool生成嵌入式定点c代码:
在嵌入式代码设计中,由于浮点运算特别占用CPU资源,我们通常使用将浮点转化成定点再运算。下面讲用fixed point tool 生成定点嵌入式代码。
Fixed-Point Tool用户界面,可自动执行Simulink®模型中指定定点数据类型的任务。该工具收集模型对象的范围数据。范围数据来自:
1.设计对象在块上明确指定的最小值和最大值
2.记录模拟期间出现的最小值和最大值
3.使用范围分析得出的最小值和最大值
根据这些值,该工具将提供定点数据类型,以最大程度地提高精度并覆盖范围。然后,您可以查看数据类型建议,并将其有选择地应用于模型中的对象。此过程也称为自动缩放。使用定点工具,您可以:
1.根据指定的设计范围得出范围信息。请参阅范围分析的工作原理。
2.根据模拟数据提出并应用数据类型。
3.根据派生范围提议和应用数据类型。
二、具体实现方法
开始转换之前,需要在Simulink中设置模型。转换工作流程包括四个主要阶段。
1.准备转换系统
选择要转换为定点的系统。定点工具将为指定系统中的对象建议数据类型。选择是通过模拟还是派生范围分析来收集范围。您可以使用Simulink.SimulationInput对象指定多个模拟方案。指定信号容差以用于验证转换后的系统的行为。通过单击“定点工具”工具栏中的“准备”按钮,自动准备要转换的设计系统。定点工具分析您的模型并提出自动缩放的配置建议。
2.收集范围
运行模拟或推导。模拟或推导完成后,可以使用“模拟数据的可视化”窗格中的直方图检查模型中对象的范围。
3.转换数据类型
定点工具根据第二阶段中收集的范围提出数据类型。您可以在“设置”菜单中编辑默认字长和其他建议设置。要生成建议,请单击“建议数据类型”。如果您对建议感到满意,请单击“应用数据类型”。
4.验证新设置
使用新应用的定点数据类型模拟模型以检查定点模型的行为。您可以使用Simulation Data Inspector比较浮点和定点行为。
验证之后,如果您确定系统的行为不可接受,则可以迭代转换和验证步骤,直到选择满足系统要求的设计为止。
进行如下图步骤,根据需要填写相应精度,应用,仿真,验证,生成定点代码。