FPGA设计与MATLAB,第3部分:架构高效的硬件
从系列中:MATLAB FPGA设计
生成高效的FPGA设计通常涉及平衡吞吐量、延迟和硬件资源。根据您的设计性质和目标,有许多方法可以调整您的算法以实现高效的硬件实现。本教程的这一部分展示了一些方法。
这段视频包括:
- 为HDL代码生成设置模型参数
- 如何使用Simu金宝applink®模型的采样速率转换为FPGA硬件的时钟速率
- 在数据路径上使用各种优化技术插入管道寄存器
- 利用数据有效的控制信号来监测输入的采样数据
- 利用MATLAB验证优化后的体系结构®试验台
欢迎来到HDL编码器视频系列。在本视频系列中,我们将学习一个流行的生产验证路径,通过Simulink,定点设计器和HDL编码器将MATLAB数字信号处理算法用于FPGA。金宝app
在视频系列的第一部分中,我们讨论了MATLAB和Simulink的优势,并概述了MathWorks File Exchange网站上提供的HDL Coder 金宝appSelf-Guided Tutorial。在第二个视频中,我们创建了脉冲检测算法的Simulink模型硬件实现。金宝app
在本部分中,我们将准备用于HDL代码生成的Simulink模型,并金宝app重点介绍优化硬件微架构的技术。
我们将重命名并保存模型,并在MATLAB命令行上运行HDLSETUP。HDLSETUP为HDL代码生成配置了几个模型参数。其中一个参数,采样时间对应于一个区域采样数据的速度,这是通过颜色代码来可视化的。在FPGA上,这通常转化为时钟速率——数据通过流水线级的速度有多快,这在信号通过并行路径时协调信号的计时。
当模型更新时,具有不同采样时间的块以不同的颜色显示。在我们的模型中,采样时间是相同的,更新时,块和信号线将显示为红色。
将Filter块、Compute Power和Local Peak子系统组合成一个顶级子系统,并将其命名为Pulse Detector。这个新的子系统将被称为待测设备(DUT),并包含我们将为其生成HDL代码的算法。
HDL Coder软件提供了架构选项,扩展了对实现硬件设计的速度和面积权衡的控制。我们将展示插入管道级的多种方法,以平衡并行路径并以更高的时钟频率运行。
我们将首先将Filter结构更改为Direct Form Transposed,以获得更好的计时性能,并插入额外的输入/输出管道寄存器。类似地,添加一级输入和输出管道寄存器,并通过HDL Block属性为Compute Power子系统设置“Adaptive Pipelining”为ON。
自适应流水线为某些操作自动插入管道寄存器,从而提高时钟速度。时钟速度的提高是通过减少管道阶段之间的逻辑操作来实现的。这种优化技术依赖于目标设备和频率设置。
当我们在最后一步从模型生成HDL代码时,我们可以查看插入到各个块中的延迟。管道寄存器会影响模型的整体模拟,为了模拟效果,可以手动插入延迟。
这就是我们在Simulink模型设计中添加数据有效性检查作为控制信号时要做的事情。金宝app我们创建Valid_In和Valid_out端口,并向并行路径添加管道延迟。一个在数据输入/输出路径上,另一个在DUT子系统中的有效输入/输出路径上。将延迟块之后的valid_in信号记录为filter_valid信号,以在测试期间限定输出。
使用测试台架脚本pulse_detector_v2_tb,我们比较了MATLAB黄金参考和更新后的Simulink模型的输出。金宝app
记录的filter_valid信号验证测试台架脚本中过滤器和量级平方块的输出。
测试台架的输出数据证明,优化后的Simulink模型符合黄金参考。金宝app
在HDL Coder系列视频的第三部分中,我们对用于HDL代码生成的Simulink模型进行了更改,并强调了可用于优化参数以提高速度和资源使用的技术。金宝app
在下一个视频中,我们将把Simulink模型设计转换为定点数据类型。金宝app
您也可以从以下列表中选择一个网站
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。