从系列:FPGA设计与MATLAB
拉Sivakumar, MathWorks
高效的硬件实现需要定点量化你的数据类型。信号处理算法可以挑战将在保持所需的精度,特别是如果你正在编写手工劳动再教育。基于模型的设计方法允许您轻松地探索和想象不同的选项和自动化的过程。这部分的教程展示了基本概念和一般方法可以使用。
这个视频覆盖:
欢迎来到HDL编码视频系列。在这个视频系列中,我们将学习一个受欢迎的生产证明路径通过仿真软件MATLAB数字信号处理算法,定点设计师,和HDL编码目标FPGA。金宝app
在本系列之前的视频中,我们已经讨论了MATLAB和Simulink的力量,创造了脉冲检测算法的仿真软件模型,并介绍了设计架构选项扩展控制速度和面积权衡。金宝app在视频系列的四个部分中,我们将展示如何将仿真软件模型转换为定点数据类型和比较模型定点模型,以MATLAB黄金参考。金宝app在MATLAB和Simulink默认为双精度金宝app浮点数据类型,这是64位。我们将转换为定点数据类型和操作以减少硬件资源和计算步骤。
在MathWorks定点数据类型的特点是位字大小,二进制点,是否签署或无符号。二进制小数点的位置是定点值缩放和解释。我们将定义我们的定点规范在试验台脚本和调用MATLAB工作区。
我们将重命名并保存模型,并利用数据类型转换块工作区信号转换为定点。DT_input规范范围从1到1,也足以代表吵闹的接收信号。过滤块设置为使用软件不能执行乘法和添加定点数据类型当我们设置“系数数据类型”过滤块DT_coeff。
金宝app仿真软件自动传播定点数据类型为您保持精度和可视化。建议维持充分精确直到你得到繁殖,然后将其转换到18位,映射到单个DSP片FPGA。滤波器输出,形象化Pulse_Detector_v3_tb长椅上运行测试脚本。合成滤波器的输出块现在有40个单词长度及其部分长度是37。
运行测试脚本在最初阶段的转换为定点将导致错误,我们将暂时忽略。
在计算能力子系统,使用输入的数据类型转换块我们将减少从40字长到18使用DT_filter规范加法器的最后阶段,减少36字长到18使用DT_power规范。更新数据的模型在每个转换步骤看到单词长度的变化通过操作。
在当地的峰值子系统中,我们将使用一个不同的方法继承数据类型使用数据类型重复的块。一个端口连接到阈值常数块的输出设置为“从反向传播继承”和另一个抽头延迟块的输出。
此外,我们将改变脚本中发现价值MATLAB函数块的真与假,分别。这些更改完成后,更新模型,它应该是没有误差的。错误是由于在之前的阶段之间的数据类型不匹配阈值和抽头延迟块信号。
当比较两个信号在MATLAB功能块,仿真软件需要相同的信号类型和大小。金宝app此外,检测到的信号从MATLAB函数块为单位延迟块需要启用一个布尔数据类型。这是意识到通过改变“真与假”布尔格式在MATLAB脚本功能块。
在这个例子中,我们已经能够手动转换数据类型。在复杂的设计,定点设计师运行模拟和收集所需的范围和精度。从这些模拟它提出定点类型可以接受哪一个,调整,应用和运行比较。这都是管理workflow-oriented图形用户界面(GUI),在那里你可以分析和快速迭代。
也请记住,生成本机浮点快速开始针对硬件。它将使用更多的资源但是你可以将它应用到你的设计需要一个大动态范围解决棘手的量子化问题。
使用脚本pulse_detector_v3_tb试验台,我们比较MATLAB的输出黄金参考和定点仿真软件模型。金宝app
从浮点定点时,我们引入了量化误差。这些错误发生由于缩放和饱和度。
因此,有一个增加MATLAB黄金参考输出之间的误差比浮点仿真软件的设计。金宝app量子化错误预计整个过程是一个效率和准确性之间的权衡。
在这个视频系列的第四部分HDL编码,我们已经将仿真软件模型设计定点数据类型。金宝app此外,我们已经展示了仿真软件的可视化能力,传播数据,验证的结果是金宝app在一个宽容。
下一节我们将生成和合成优化HDL代码。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。