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

博客 2020-05-30 阅读:23

定点数据分析

MATLAB为开发算法的数学模型提供了一个有效的环境,通常只需使用几个仿真向量就可以完成。但是,当该算法应用于定点硬件时,您需要添加数据集来准确确定真实世界的环境响应。MATLAB是一种解释性的模拟器,它可能不适合这些大型、

中央处理器

更高强度的定点模拟提供了必要的性能。因此,开发人员经常求助于c/c。

加速定点模拟

加速器综合集成工具的M2C加速器自动生成硬件精确定点C模型和测试基准,以加速定点模拟。取消手动记录步骤节省了开发时间,并大大减少了错误的引入。由于编译了C,它可以提供高达1000倍的模拟性能优势(图6)。对于需要理解定点数据作用的大型向量集,这种性能水平通常是必要的。如果你想继续使用MATLAB可视化环境,包括它的绘图功能,M2C加速器还可以生成一个定点C/C dll,可以用来模拟原来的MATLAB测试基准脚本文件。当您获得初始定点结果时,分析和细化过程就可以开始了。AccelDSP综合集成工具提供了一套图形工具,包括表格报告、变量探索和映射等。来协助这个过程。

定点增长观察

设计必须作为一个整体来考虑,以便有效地将浮点算法转换成定点模型。如果从早期就没有检查过数据路径,位增长可能会迅速增加,导致硬件过多,而过度限制位增长可能会导致无法接受的数值精度损失。获得更好的对位生长过程可观察性的常用技术是将变量输入到电子表格中。AccelDSP Synthesis通过生成表格格式的定点报告来提供这种级别的可见性(图7)。在优化硬件之前,您必须获得可接受的定点响应。如果输出的信噪比不超过要求的规格,则必须调整推断的量化值。这个过程通常从发现因变量的上溢和下溢引起的重大错误开始。

上溢流和下溢流

对输入数据动态范围的错误假设可能会导致较大的定点错误,原因是变量的最高有效位(MSB)溢出和最低有效位(LSB)溢出。在观察和纠正更细微的定点错误之前,您需要解决这些错误。上溢和下溢报告是MATLAB定点数据类型的固有属性,但它们不是C/C中固有的,并且在模型重写过程中经常被忽略。然而,由M2C加速器生成的C模型包括一个量化例程,该例程反映了模拟期间发生的所有上溢和下溢。当这些情况发生时,将在“验证现场报告”中进行总结(图8)。一旦解决了任何上溢和下溢问题,定点模型的细化和改进将更多地依赖于可视化。如果额外的定点数据错误继续存在,那么您必须分析常量的作用。否则,您可以通过减少可变位宽来继续改进硬件改进过程。在这两种情况下,知道由特定变量的量化引起的定点误差对细化和改进过程是有用的帮助。

发表评论:

二维码