这个例子显示了如何检测溢出使用fiaccel
功能。在转换过程中的数值测试阶段,工具模拟使用缩放双打定点代码。然后,它报告,其中在将溢出的定点数据类型生成的代码产生值的表达式。
为了完成这个例子中,您必须安装以下产品:s manbetx 845
MATLAB®
定点设计™
C编译器
您可以使用MEX -setup
更改默认的编译器。看到更改默认的编译器(MATLAB)。
创建本地工作文件夹,例如,Cover Flow功能
。
切换到文档根\工具箱\固定点\例子
夹。在MATLAB命令行中输入:
CD(完整文件(文档根, '工具箱', '固定点', '实施例'))
复制overflow.m
和overflow_test.m
文件到本地工作文件夹。
这是创建一个单独的测试脚本来完成所有的预处理和后处理,如加载输入,设置输入值,测试调用该函数,并且输出测试结果的最佳实践。
类型 | 名称 | 描述 |
---|---|---|
功能码 | overflow.m |
入口点函数MATLAB |
测试文件 | overflow_test.m |
MATLAB脚本测试overflow.m |
创建一个coder.FixptConfig
宾语,fixptcfg
,使用默认设置。
fixptcfg = coder.config('fixpt');
将测试台的名字。在这个例子中,测试台函数名overflow_test
。
fixptcfg.TestBenchName ='overflow_test';
默认的文字长度设置为16。
fixptcfg.DefaultWordLength = 16;
fixptcfg.TestNumerics = TRUE;fixptcfg.DetectFixptOverflows = TRUE;
设置fimath
产品模式
和和方式
至KeepLSB
。这些设置模式整数操作的C语言的行为。
fixptcfg.fimath ='fimath( '' RoundingMethod'”, '' 楼 '', '' OverflowAction '', '' 包裹 '', '' ProductMode '', '' KeepLSB '', '' SumMode '', '' KeepLSB '')”;
转换浮点MATLAB功能,溢出
以定点MATLAB代码。你并不需要指定输入类型的fiaccel
命令,因为它从测试文件推断类型。
fiaccel-float2fixedfixptcfg溢出
该NUMERICS测试阶段报告溢出。
在表达溢出错误 'ACC + B(j)的* Z(k)的'。电流范围的百分比= 104%。
确定是否在此表达的添加或乘法溢出。设置fimath
ProductMode到FullPrecision
使乘法不会溢出,然后运行fiaccel
再次命令。
fixptcfg.fimath ='fimath( '' RoundingMethod'”, '' 楼 '', '' OverflowAction '', '' 包裹 '', '' ProductMode '', '' FullPrecision '', '' SumMode '', '' KeepLSB '')”;fiaccel-float2fixedfixptcfg溢出
所述NUMERICS测试阶段仍报告溢出,这表明它是添加在被溢出的表达。