MATLAB 算法面向 FPGA 的浮点定点转换_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab 算法面向 fpga 的浮点定点转换accelchip 公司(最近已被公司收购)最近所做的一次调查显示,53% 的回答者认为浮点定点转换是在 上实现算法时最困难的地方(图 1)。 虽然 matlab 是一种强大的运算开发工具,但其许多优点却在浮点定点转换过程中被降低了。例如,因为定点算术中精度较低,新的数学误差被引入算法。您必需重写代码,用法能够反映实际硬件宏架构的低级模型来替换高级函数和运算符。而运行时光将可能长达 50 倍之久。基于这些缘由,matlab,这一算法开发的优势挑选,却常常遭到遗落,转而用法 c/c+ 举行定点建模。生成定点模型假如未将高级函数和运算符替换为硬件精确

2、的宏架构,浮点 matlab 算法的定点表示将不会真正反映终于硬件的响应(图 2)。图 3 对此举行了突出显示,该图用法一组量化为 8 位有符号二进制补码的随机输入矢量,对 matlab 除法运算符与工具硬件 cordic 除法算法的定点响应举行了比较。按照数据数值,计算输出之间将存在巨大分歧。在定点生成过程中,accel synthesis 综合工具的 ip explorer 技术将自动用法硬件精确的表达式替换高级 matlab 函数和运算符(图 4)。此步骤是透亮的,且不需要对 matlab 代码举行修改。您可以用法综合指示来重新定义初始宏架构和微架构挑选。一旦这些运算符替换为硬件精确的宏

3、架构,量化过程就将开头。图形辅助式自动量化与定点 dsp 处理器不同, fpga 结构允许用法可变定点字长。通过解除对变量的固定 16 位或 24 位边界限制,您可以执行需要位数增长的算术计算而不会引起额外的数值误差。这对于像雷达、导航和制导系统等要求较高数值精度的应用来说是一个巨大的优点。在大多数状况下,位增长率定律 (bit growth rules) 是容易挺直和易于理解的。例如,一次加法的结果增长一位,而一次乘法的结果则增长到等于输入字长度的总长度(图 5)。然而,要在实际设计中确定变量的这些属性,将是一个高度反复的过程。允许未检查的位数增长现象发生,在硬件中代价是昂贵的,通常也是不须

4、要的。假如您技术功底浓厚,您可以采纳各种技巧来尽可能地减小字长而同时保持数值精度。确定变量的初始量化值和随后对该值的细化改进的过程,十分适合。acceldsp synthesis 综合工具包括自动化浮点定点转换,该功能将在仿真过程中对浮点 matlab 模型举行分析,以确定输入数据和常量的动态范围要求。这些值提供了自动量化过程的起点,然后该过程将利用从 6,000 多个设计中获得的大量内置阅历,确定下游变量的最佳字长。通过自动量化而获得的初始定点模型提供了一个良好的起点,但普通需要对该模型举行细化改进。matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需用法一组较少的仿真矢量就

5、可完成。该过程高度反复,且紧密耦合至数据作用 (data effect) 的分析。为了最大程度地缩短这一反复循环时光,acceldsp synthesis 综合工具提供了一种加速定点仿真流程。分析定点数据作用matlab 提供了一种开发算法数学模型的高效环境,这种算法通常只需用法一组较少的仿真矢量就可完成。但是,当把该算法应用到定点硬件时,您将需要增强数据集,以精确地确定真切世界的环境响应。matlab 是一种说明型仿真器,可能无法为这些较大的、cpu 强度较高的定点仿真提供必须的性能。因此,开发者经常转向 c/c+。加速定点仿真acceldsp synthesis 综合工具的 m2c-acc

6、elerator 自动生成一个硬件精确的定点 c+ 模型和测试基准,以加快定点仿真。消退手动记录步骤节约了开发时光,大程度地减小了误差的引入。因为 c+ 是编译式的,因此可提供高达 1000 倍的仿真性能优势(图 6)。这种性能水平通常是那些要求理解定点数据作用的大型矢量集所必须的。假如您想继续用法 matlab 可视化环境,包括其绘图功能,m2c-accelerator 还可生成一个可用于原 matlab 测试基准脚本文件仿真的定点 c/c+ dll。 当您已经获得初始定点结果时,分析和细化改进的过程就可以开头了。acceldsp synthesis 综合工具提供了一组图形工具,包括表格化报

7、告、变量探查和绘图等,以便在这一过程中提供辅助。观测定点位增长一个设计必需从整体上考虑,以有效地将浮点算法转换为定点模型。假如从早期开头就向来未对数据路径举行检查,位增长可能会迅速增长而产生过度的硬件,而过度约束位增长则可能造成无法接受的数值精度损失。获得对位增进步展状况较好观测性的一种通用技巧是向一个表格中输入变量。acceldsp synthesis 综合工具通过生成一个表格化、格式化的定点报告(图 7)而提供了此类级别的观测性。在优化硬件之前,您必需获得一个可以接受的定点响应。假如一个输出的信噪比 (snr) 不在所需的技术规格之上,则必需对判断的量化值举行调节。这一过程通常由查找因变量

8、上溢出和下溢出导致的重大误差开头。上溢出和下溢出关于输入数据动态范围的不良假设可能会引起因为变量的最高有效位 (msb) 上溢出和最低有效位 (lsb) 下溢出而导致较大的定点误差的问题。您需要在观测和订正更细微的定点误差之前先解决这些误差。上溢出和下溢出报告,是 matlab定点数据类型的固有属性,但不是 c/c+ 所固有的,且经常在模型重写过程中被省掉。但是,由 m2c-accelerator 生成的 c+ 模型中包含了反映在仿真期间发生的全部上溢出和下溢出的量化例程。当这些状况发生时,它们将被汇总在“验证定点报告”中(图 8)。一旦您解决了任何上溢出和下溢出问题,该定点模型的细化改进将越

9、发依靠于可视化。假如另外的定点数据误差继续存在,那么您必需分析常量的作用。否则,您可以通过减小变量位宽来继续细化改进硬件的过程。在两种状况下,知道因某个特定变量的量化而引起的定点误差,在细化改进过程中都是一个实用的协助。定点可视化按照一组给定的数据集确定一个算法的合适定点响应,通常不是一种精确的科学行为。您经常不得不在数值精度方面做出一些折衷,以提高硬件效率。这一过程高度反复,且紧密耦合至绘图中所示定点效应的可视分析。但是,在一个输出信号上观测到不行接受的 snr,并不总是表示那里错误地指定了一个量化值。对此,必需举行进一步的分析。为了协助举行这一过程,acceldsp synthesis 综合工具的 accelprobe 工具以图形方式对一个给定仿真期间的任何变量的浮点和定点值举行了比较(图 9)。假如您用法的是 accelprobe,您会快速体味到特定变量的贡献使终于结果的误差累积的过程。您可以通过在 matlab 源码中增强语句 “accel_probe(variable_name)”,来“探查”一个变量。“定点历史”图可以让您感知一个变量在仿真期间可能碰到的频繁程度。假如一个值很少浮现,则需要用以在动态范围内的高端或低端存储该值的附

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论