位置:51电子网 » 技术资料 » EDA/PLD

MATLAB 算法面向 FPGA 的浮点定点转换

发布时间:2008/5/28 0:00:00 访问次数:672

accelchip 公司(最近已被赛灵思公司收购)最近所做的一次调查显示,53% 的回答者认为浮点定点转换是在fpga 上实现算法时最困难的地方(图 1)。

  虽然 matlab 是一种强大的运算开发工具,但其许多优点却在浮点定点转换过程中被降低了。例如,由于定点算术中精度较低,新的数学误差被引入算法。您必须重写代码,使用能够反映实际硬件宏架构的低级模型来替换高级函数和运算符。而仿真运行时间将可能长达 50 倍之久。基于这些原因,matlab,这一算法开发的优势选择,却经常遭到遗弃,转而使用 c/c++ 进行定点建模。

  生成定点模型

  如果未将高级函数和运算符替换为硬件精确的宏架构,浮点 matlab 算法的定点表示将不会真正反映最终硬件的响应(图 2)。


图 3 对此进行了突出显示,该图使用一组量化为 8 位有符号二进制补码的随机输入矢量,对 matlab 除法运算符与工具硬件 cordic 除法算法的定点响应进行了比较。

   根据数据数值,计算输出之间将存在巨大分歧。

  在定点生成过程中,acceldsp™ synthesis 综合工具的 ip explorer™ 技术将自动使用硬件精确的表达式替换高级 matlab 函数和运算符(图 4)。此步骤是透明的,且不需要对 matlab 代码进行修改。您可以使用综合指示来重新定义初始宏架构和微架构选择。

  一旦这些运算符替换为硬件精确的宏架构,量化过程就将开始。

  图形辅助式自动量化

  与定点 dsp 处理器不同, fpga 结构允许使用可变定点字长。通过解除对变量的固定 16 位或 24 位边界限制,您可以执行需要位数增长的算术计算而不会引起额外的数值误差。

  这对于像雷达、导航和制导系统等要求较高数值精度的应用来说是一个巨大的优点。

  在大多数情况下,位增长率定律 (bit growth rules) 是简单直接和易于理解的。例如,一次加法的结果增长一位,而一次乘法的结果则增长到等于输入字长度的总长度(图 5)。然而,要在实际设计中确定变量的这些属性,将是一个高度反复的过程。允许未检查的位数增长现象发生,在硬件中代价是昂贵的,通常也是不必要的。如果您技术功底深厚,您可以采用各种技巧来尽可能地减小字长而同时保持数值精度。



确定变量的初始量化值和随后对该值的细化改进的过程,非常适合自动化。acceldsp synthesis 综合工具包括自动化浮点定点转换,该功能将在仿真过程中对浮点 matlab 模型进行分析,以确定输入数据和常量的动态范围要求。这些值提供了自动量化过程的起点,然后该过程将利用从 6,000 多个设计中获得的大量内置经验,确定下游变量的最佳字长。

  通过自动量化而获得的初始定点模型提供了一个良好的起点,但一般需要对该模型进行细化改进。

  matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需使用一组较少的仿真矢量就可完成。

  该过程高度反复,且紧密耦合至数据作用 (data effect) 的分析。为了最大程度地缩短这一反复循环时间,acceldsp synthesis 综合工具提供了一种加速定点仿真流程。

  分析定点数据作用

  matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需使用一组较少的仿真矢量就可完成。但是,当把该算法应用到定点硬件时,您将需要增加数据集,以精确地确定真实世界的环境响应。matlab 是一种解释型仿真器,可能无法为这些较大的、cpu 强度较高的定点仿真提供必需的性能。因此,开发者常常转向 c/c++。

  加速定点仿真

  acceldsp synthesis 综合工具的 m2c-accelerator 自动生成一个硬件精确的定点 c++ 模型和测试基准,以加快定点仿真。

  消除手动记录步骤节省了开发时间,大程度地减小了误

accelchip 公司(最近已被赛灵思公司收购)最近所做的一次调查显示,53% 的回答者认为浮点定点转换是在fpga 上实现算法时最困难的地方(图 1)。

  虽然 matlab 是一种强大的运算开发工具,但其许多优点却在浮点定点转换过程中被降低了。例如,由于定点算术中精度较低,新的数学误差被引入算法。您必须重写代码,使用能够反映实际硬件宏架构的低级模型来替换高级函数和运算符。而仿真运行时间将可能长达 50 倍之久。基于这些原因,matlab,这一算法开发的优势选择,却经常遭到遗弃,转而使用 c/c++ 进行定点建模。

  生成定点模型

  如果未将高级函数和运算符替换为硬件精确的宏架构,浮点 matlab 算法的定点表示将不会真正反映最终硬件的响应(图 2)。


图 3 对此进行了突出显示,该图使用一组量化为 8 位有符号二进制补码的随机输入矢量,对 matlab 除法运算符与工具硬件 cordic 除法算法的定点响应进行了比较。

   根据数据数值,计算输出之间将存在巨大分歧。

  在定点生成过程中,acceldsp™ synthesis 综合工具的 ip explorer™ 技术将自动使用硬件精确的表达式替换高级 matlab 函数和运算符(图 4)。此步骤是透明的,且不需要对 matlab 代码进行修改。您可以使用综合指示来重新定义初始宏架构和微架构选择。

  一旦这些运算符替换为硬件精确的宏架构,量化过程就将开始。

  图形辅助式自动量化

  与定点 dsp 处理器不同, fpga 结构允许使用可变定点字长。通过解除对变量的固定 16 位或 24 位边界限制,您可以执行需要位数增长的算术计算而不会引起额外的数值误差。

  这对于像雷达、导航和制导系统等要求较高数值精度的应用来说是一个巨大的优点。

  在大多数情况下,位增长率定律 (bit growth rules) 是简单直接和易于理解的。例如,一次加法的结果增长一位,而一次乘法的结果则增长到等于输入字长度的总长度(图 5)。然而,要在实际设计中确定变量的这些属性,将是一个高度反复的过程。允许未检查的位数增长现象发生,在硬件中代价是昂贵的,通常也是不必要的。如果您技术功底深厚,您可以采用各种技巧来尽可能地减小字长而同时保持数值精度。



确定变量的初始量化值和随后对该值的细化改进的过程,非常适合自动化。acceldsp synthesis 综合工具包括自动化浮点定点转换,该功能将在仿真过程中对浮点 matlab 模型进行分析,以确定输入数据和常量的动态范围要求。这些值提供了自动量化过程的起点,然后该过程将利用从 6,000 多个设计中获得的大量内置经验,确定下游变量的最佳字长。

  通过自动量化而获得的初始定点模型提供了一个良好的起点,但一般需要对该模型进行细化改进。

  matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需使用一组较少的仿真矢量就可完成。

  该过程高度反复,且紧密耦合至数据作用 (data effect) 的分析。为了最大程度地缩短这一反复循环时间,acceldsp synthesis 综合工具提供了一种加速定点仿真流程。

  分析定点数据作用

  matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需使用一组较少的仿真矢量就可完成。但是,当把该算法应用到定点硬件时,您将需要增加数据集,以精确地确定真实世界的环境响应。matlab 是一种解释型仿真器,可能无法为这些较大的、cpu 强度较高的定点仿真提供必需的性能。因此,开发者常常转向 c/c++。

  加速定点仿真

  acceldsp synthesis 综合工具的 m2c-accelerator 自动生成一个硬件精确的定点 c++ 模型和测试基准,以加快定点仿真。

  消除手动记录步骤节省了开发时间,大程度地减小了误

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!