FPGA设计与MATLAB,第4部分:转换为定点
从系列中:MATLAB FPGA设计
有效的硬件实现需要将数据类型量化到固定点。在保持所需精度的同时转换信号处理算法可能具有挑战性,特别是在手写RTL时。基于模型的设计方法允许您轻松地探索和可视化不同的选项,并自动化大部分流程。本教程的这一部分介绍了基本概念和可以使用的一般方法。
这段视频包括:
- 将默认的64位双精度数据类型转换为定点表示
- MATLAB中的定点数据类型定义®和仿真软金宝app件®环境
- 数据类型的传播,以在数学计算期间保持精度
- 模型检查一致性和精确性,以确保可预测的实现结果
- 定点模型设计的比较与验证,具有黄金参考价值
欢迎来到HDL编码器视频系列。在本视频系列中,我们将学习一个流行的生产验证路径,通过Simulink,定点设计器和HDL编码器将MATLAB数字信号处理算法用于FPGA。金宝app
在本系列之前的视频中,我们讨论了MATLAB和Simulink的优势,创建了脉冲检测算法的Simulink模型,并介绍了扩展控制速度和面积权衡的设计架构选项。金宝app在视频系列的第四部分中,我们将展示如何将Simulink模型转换为定点数据类型,并将Simulink定点模型与MATLAB黄金参考金宝app进行比较。MATLAB和Simulink中的数字默认为金宝app双精度浮点数据类型,即64位。我们将转换为定点数据类型和操作,以减少硬件资源和计算步骤。
在MathWorks中,定点数据类型的特征是字的位数大小、二进制点以及它是有符号还是无符号。二进制点的位置是定点值缩放和解释的方式。我们将在测试台架脚本中定义定点规范,并从MATLAB工作区调用它们。
我们将重命名并保存模型,并利用数据类型转换块将工作空间信号转换为固定点。DT_input规范的范围从-1到1,这足以表示有噪声的接收信号。当我们将Filter块上的“系数数据类型”设置为DT_coeff时,Filter块被设置为使用全精度定点数据类型执行乘法和加法。
金宝appSimulink自动传播定点数据类型,以保持精度并为您可视化。建议保持完全精度,直到达到乘法,然后将其转换为18位,以便将其映射到FPGA上的单个DSP片。要使过滤器输出可视化,可以运行测试台架脚本Pulse_Detector_v3_tb。过滤块的最终输出现在的字长为40,分数长度为37。
在转换到固定点的初始阶段运行测试脚本会导致错误,我们将暂时忽略这些错误。
在Compute Power子系统中,使用输入端的数据类型转换块,我们将使用DT_filter规范将单词长度从40减少到18,在加法器的最后阶段,使用DT_power规范将单词长度从36减少到18。在每个数据转换步骤更新模型,以查看通过操作的单词长度的变化。
在Local Peak子系统中,我们将使用不同的方法通过使用data type Duplicate块来继承数据类型。将一个端口连接到阈值常量块,其输出被设置为“从反向传播继承”,另一个端口连接到被敲击的延迟块输出。
另外,我们将MATLAB函数块脚本中的检测值分别改为true和false。完成这些更改后,更新模型,它应该是无错误的。之前阶段的错误是由于阈值和敲击延迟块信号之间的数据类型不匹配。
在MATLAB函数块中比较两个信号时,Simulink要求信号的类型和大小相同。金宝app此外,从MATLAB函数块馈送到Unit Delay Enabled块的检测信号需要是布尔数据类型。这是通过在MATLAB函数块脚本中更改为“真假”布尔格式来实现的。
在本例中,我们已经能够手动转换数据类型。在复杂的设计中,定点设计器运行模拟并收集所需的范围和精度。从这些模拟中,它提出了可以接受、调整、应用和运行比较的定点类型。这些都在面向工作流的图形用户界面[GUI]中进行管理,在那里您可以快速分析和迭代。
还要记住,生成本地浮点数是开始瞄准硬件的一种快速方法。这将使用更多的资源,但你可以将其应用到设计中需要大动态范围的部分,以克服棘手的量化问题。
使用测试台架脚本pulse_detector_v3_tb,我们比较了MATLAB黄金参考和定点Simulink模型的输出。金宝app
当从浮点数转换为定点时,我们引入了量化误差。这些错误是由于缩放和饱和造成的。
因此,与浮点Simulink设计相比,MATLAB黄金参考输出之间的误差有所增加。金宝app量化误差是预料之中的——整个过程是效率和准确性之间的权衡。
在这个关于HDL Coder的视频系列的第四部分中,我们已经将Simulink模型设计转换为定点数据类型。金宝app此外,我们还展示了Simulink在可视化、传播数据和验证结果方金宝app面的能力。
在下一个视频中,我们将生成和合成优化的HDL代码。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。