新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于MATLAB在FPGA 算法上浮点定点转换的实现

基于MATLAB在FPGA 算法上浮点定点转换的实现

作者: 时间:2010-12-10 来源:网络 收藏

确定变量的初始量化值和随后对该值的细化改进的过程,非常适合自动化。AccelDSP Synthesis 综合工具包括自动化,该功能将在仿真过程中对 模型进行分析,以确定输入数据和常量的动态范围要求。这些值提供了自动量化过程的起点,然后该过程将利用从 6,000 多个设计中获得的大量内置经验,确定下游变量的最佳字长。
  
通过自动量化而获得的初始模型提供了一个良好的起点,但一般需要对该模型进行细化改进。
  
提供了一种开发数学模型的高效环境,这种通常只需使用一组较少的仿真矢量就可完成。
  
该过程高度反复,且紧密耦合至数据作用 (data effect) 的分析。为了最大程度地缩短这一反复循环时间,AccelDSP Synthesis 综合工具提供了一种加速仿真流程。
  
分析定点数据作用
  
提供了一种开发数学模型的高效环境,这种算法通常只需使用一组较少的仿真矢量就可完成。但是,当把该算法应用到定点硬件时,您将需要增加数据集,以精确地确定真实世界的环境响应。MATLAB 是一种解释型仿真器,可能无法为这些较大的、CPU 强度较高的定点仿真提供必需的性能。因此,开发者常常转向 C/C++。
  
加速定点仿真
  
AccelDSP Synthesis 综合工具的 M2C-Accelerator 自动生成一个硬件精确的定点 C++ 模型和测试基准,以加快定点仿真。
  
消除手动记录步骤节省了开发时间,大程度地减小了误差的引入。由于 C++ 是编译式的,因此可提供高达 1000 倍的仿真性能优势(图 6)。这种性能水平通常是那些要求理解定点数据作用的大型矢量集所必需的。

  

如果您想继续使用 MATLAB 可视化环境,包括其绘图功能,M2C-Accelerator 还可生成一个可用于原 MATLAB 测试基准脚本文件仿真的定点 C/C++ dll。 当您已经获得初始定点结果时,分析和细化改进的过程就可以开始了。AccelDSP Synthesis 综合工具提供了一组图形工具,包括表格化报告、变量探查和绘图等,以便在这一过程中提供辅助。
  
观测定点位增长
  
一个设计必须从整体上考虑,以有效地将算法为定点模型。
  
如果从早期开始就一直未对数据路径进行检查,位增长可能会快速增长而产生过度的硬件,而过度约束位增长则可能造成无法接受的数值精度损失。获得对位增长进展情况较好观测性的一种通用技巧是向一个电子表格中输入变量。AccelDSP Synthesis 综合工具通过生成一个表格化、格式化的定点报告(图 7)而提供了此类级别的观测性。

  

在优化硬件之前,您必须获得一个可以接受的定点响应。如果一个输出的信噪比 (SNR) 不在所需的技术规格之上,则必须对推断的量化值进行调整。这一过程通常由查找因变量上溢出和下溢出导致的重大误差开始。
  
上溢出和下溢出
  
关于输入数据动态范围的不良假设可能会引起由于变量的最高有效位 (MSB) 上溢出和最低有效位 (LSB) 下溢出而导致较大的定点误差的问题。您需要在观测和纠正更细微的定点误差之前先解决这些误差。
  
上溢出和下溢出报告,是 MATLAB

定点数据类型的固有属性,但不是 C/C++ 所固有的,且常常在模型重写过程中被省掉。但是,由 M2C-Accelerator 生成的 C++ 模型中包含了反映在仿真期间发生的所有上溢出和下溢出的量化例程。当这些情况发生时,它们将被汇总在“验证定点报告”中(图 8)。



评论


相关推荐

技术专区

关闭