主要内容

fiaccel

加速定点代码并转换浮点数MATLAB编码到定点MATLAB代码

语法

fiaccel -选项fcn
fiaccel -float2fixedfcn

描述

fiaccel -选项fcn翻译MATLAB®文件fcn.m到MEX函数,该函数加速定点代码。使用fiaccel,你的代码必须满足以下要求之一:

  • 顶层函数没有输入或输出,代码使用fi

  • 顶级函数有一个输出或一个非常数输入,并且至少有一个输出或输入是fi

  • 顶层函数至少有一个输入或输出,其中包含一个内置整数类(int8uint8int16uint16int32uint32int64,或uint64),代码使用fi

请注意

如果顶层文件位于包含Unicode字符的路径上,则代码生成可能无法找到该文件。

fiaccel -float2fixedfcn转换浮点MATLAB函数,fcn到定点MATLAB代码。

输入参数

fcn

MATLAB函数,从中生成MEX函数。fcn必须适合代码生成。有关代码生成的信息,请参见MATLAB中的代码加速和代码生成

选项

编译器选项的选择。fiaccel优先使用单个命令行选项,而不是使用配置对象指定的选项。如果命令行选项冲突,则最右边的选项优先。

arg游戏example_inputs

通过提供示例输入值的单元格数组来定义MATLAB函数输入的大小、类和复杂性。示例输入在单元格数组中的位置必须与MATLAB函数定义中输入参数的位置相对应。若要生成输入参数少于函数定义的函数,请省略不需要的参数的示例值。

在应用它们的函数之后立即指定示例输入。

可以提供一个示例值,而不是一个示例值编码器。类型对象。要创建一个编码器。类型对象,使用coder.typeof

配置config_object

指定MEX生成参数,基于config_object,定义为MATLAB变量使用coder.mexconfig.例如:

CFG = code .mexconfig;

- dout_folder

将生成的文件存储在指定的绝对路径或相对路径中out_folder.如果指定的文件夹out_folder不存在,fiaccel为您创建它。

如果不指定文件夹位置,fiaccel在默认文件夹中生成文件:

fiaccel /墨西哥人/fcn

fcn是在命令行中指定的MATLAB函数的名称。

该函数不支持文件夹名称中包含以下字符:星号(金宝app),问号(?)、dollar($)和pound ().

-float2fixedfloat2fixed_cfg_name

使用由浮点到定点转换配置对象指定的设置生成定点MATLAB代码float2fixed_cfg_name

对于这个选项,fiaccel在文件夹中生成文件codegen / fcn_name / fixpt

你必须设置TestBenchName的属性float2fixed_cfg_name.例如:

fixptcfg。TestBenchName = 'myadd_test';
指定myadd_test浮点到定点配置对象的测试文件是吗fixptcfg

方法不能使用此选项全球选择。

- g

在调试模式下编译MEX函数,并关闭优化。如果没有指定,fiaccel生成优化模式下的MEX函数。

全球global_values

在MATLAB文件中指定全局变量的初始值。使用单元格数组中的值global_values来初始化编译函数中的全局变量。单元格数组应该提供每个全局变量的名称和初始值。编译前必须初始化全局变量fiaccel.方法未为全局变量提供初始值全球选项,fiaccel在MATLAB全局工作空间中检查变量。如果不提供初始值,fiaccel产生一个错误。

生成的MEX代码和MATLAB都有各自的全局数据副本。为了确保一致性,必须在两者交互时同步它们的全局数据。如果不同步数据,它们的全局变量可能会不同。

方法不能使用此选项-float2fixed选择。

-我包含路径

添加包含路径到代码生成路径的开始。

fiaccel搜索代码生成路径第一个当MATLAB代码转换为MEX代码时。

-launchreport

生成并打开代码生成报告。如果不指定此选项,fiaccel仅在出现错误或警告消息或指定报告选择。

-nargout

在生成的入口点函数中指定输出参数的数量。代码生成器按照它们在MATLAB函数定义中出现的顺序生成指定数量的输出参数。

- ooutput_file_name

生成带有基名的MEX函数output_file_name加上一个特定于平台的扩展。

output_file_name可以是文件名,也可以包含现有路径。

如果不指定输出文件名,则基文件名为fcn_mex,它可以让你运行原始的MATLAB函数和MEX函数,并比较结果。

- ooptimization_option

的值优化生成的MEX代码optimization_option

  • 启用:内联-启用函数内联

  • 禁用:内联—禁用功能内联

如果没有指定,fiaccel使用内联进行优化。

报告

生成一个代码生成报告。如果不指定此选项,fiaccel仅在出现错误或警告消息或指定-launchreport选择。

-?

显示帮助fiaccel命令。

例子

创建一个测试文件并计算移动平均值。然后,用fiaccel加速代码和比较。

函数avg = test_moving_average(x) %#codegen if nargin < 1, x = fi(rand(100,1),1,16,15);End z = fi(zero (10,1),1,16,15);均值= x;对于k = 1:length(x) [avg(k),z] = moving_average(x(k),z);结束函数[avg,z] = moving_average(x,z) %#codegen if nargin < 2, z = fi(zero (10,1),1,16,15);End z(2: End) = z(1: End -1);%更新缓冲区z(1) = x;%增加新值avg = mean(z);%计算移动平均%使用fiaccel创建MEX函数和%加速代码x = fi(rand(100,1),1,16,15);fiaccel test_moving_average -args {x} -report %比较非加速代码和加速代码。 x = fi(rand(100,1),1,16,15); % Non-compiled version tic,avg = test_moving_average(x);toc % Compiled version tic,avg = test_moving_average_mex(x);toc

转换成浮点数MATLAB定点编码

创建一个编码器。FixptConfig对象,fixptcfg,使用默认设置。

Fixptcfg = code .config(“fixpt”);

设置测试台架名称。在本例中,测试工作台函数名称为dti_test

fixptcfg。TestBenchName =“dti_test”

将浮点的MATLAB函数转换为定点的MATLAB代码。在本例中,MATLAB函数名称为贸易工业部

fiaccel-float2fixedfixptcfg贸易工业部
在R2011a中介绍