Eric Cigan,Mathworks
此视频是一个系列的一部分,它演示了系统的方法,可以使用SoC BlockSet™设计FPGA的硬件逻辑和嵌入式处理器之间的数据路径。应用程序通常在片上系统(SOC)设备上的硬件逻辑和嵌入式处理器之间进行划分,以满足吞吐量,延迟和处理要求。
学习设计和模拟包括FPGA和处理器算法以及存储器接口的整个应用程序。您将看到如何使用SOC Boltset的块来模拟共享外部存储器,以及如何使用SOC块集测量不同形式的延迟,以及来自内存缓冲区的数据丢失。
通过使用模拟执行这些分析,您可以更好地了解您的设计,而不是使用仅使用硬件时。在在硬件上实施之前,您可以揭示吞吐量,延迟和丢弃样本的丢失问题。
在此视频中,我们将展示SoC块集在从FPGA到处理器的数据路径时如何用于模拟和模拟硬件效果。
通过在开发应用程序时模拟硬件效果,您可以评估整体性能,而无需将应用程序加载到开发板上的所有额外努力。此外,通过仿真,您可以对应用程序具有更高的可见性,而不是开发板可以更快地识别问题并测试潜在的解决方案。
这是我们设计的应用程序的初始模型。它从外部源采用正弦数据流,将其分类为低频或高频信号,并照亮低频或高频探测器光。
我们将通过使用Toggle开关来测试它来选择低频和高频信号。出于测试的目的,我们将在FPGA中生成测试信号。FPGA过滤输入流,然后将数据传递给缓冲区。此初始模型使用简单的理想缓冲区,这足以检查算法。处理器在数据帧上运行,检测信号,并打开相应的检测器光。
我们可以看到模型运行。在仿真中,我们可以在低频和高频测试信号之间切换,我们看到探测器LED亮起。此模拟证明了算法,但现在我们希望在硬件中配置DDR内存中缓冲的硬件效果。SoC BlockSet包括帮助我们的块和模板。
考虑本申请图。测试信号以100kHz的速率由FPGA采样。处理器每10毫秒地在数据帧上运行。由于数据从FPGA异步传输到处理器,因此我们在FPGA内存中插入FIFO以及DDR内存。这里显示的虚线表示背压。这是由于内存缓冲区填充,可能需要更多数据保留在FPGA的FIFO中,直到刷新缓冲区。
以下是设计必须满足的两个要求:
当我们尝试满足这些要求时,我们将专注于两个参数:帧大小和缓冲区的数量。
我们使用SOC SlocSet的块更准确地模拟该设计的架构。
要开始,我们使用800个样本的帧大小,每个样本消耗4个字节。我们还指定内存区域将包含11个缓冲区。我们设置了内存通道块的参数并运行模拟。
在仿真过程中,我们可以在低频信号和高频信号之间切换输入信号。我们可以查看来自处理器的DataOut信号并查看频率变化,我们可以看到指示灯相应地改变。我们运行了100秒的时间的模拟,这个模型已经运行完成。
我们打开内存通道块,该块被归档为按帧测量延迟帧。如图所示,在模拟中几秒钟,延迟达到100毫秒范围内的值。最大允许延迟为100毫秒,因此这种设计不会脱离延迟要求。由于我们接近要求,让我们继续前进。
其他要求是10,000中不超过1种样品。使用SOC块集,该模型被仪表,因此我们可以确定样品是否正在丢弃。我们可以从顶部图表中看到,缓冲区使用开始在3秒钟内增加到模拟中,并增加到5.5秒左右。中间图绘制FIFO使用,底部绘制已丢弃的样本数量。
在5.8秒左右,FIFO开始稳步下降样品。到100秒结束时,近900个样本已经掉落,我们可以看到每个10秒的时间,约100个样本都掉落。这对10,000人的所需限额几乎正确。由于这种设计不太满足任何一个规范,因此让我们尝试更改内存配置。
我们将从800到1,000个样本增加帧大小,并将缓冲区的数量从11到9中减少。然后我们使用新参数重新运行模拟。
一旦模拟完成,我们可以打开内存通道块。在这种情况下,延迟在模拟进行到大约23秒时达到峰值,此时达到约78毫秒的延迟。记住,允许的最大延迟是100毫秒,所以现在我们在这个限制下很安全。
然后我们再检查一下,是否在10000个样品中掉落少于1个的要求之内。当我们看三个相同的变量时,我们可以看到没有任何样本被丢弃。这意味着我们现在的设计满足了我们的两个需求。
既然我们使用SoC块集的模拟来确定帧大小和缓冲区的数量,我们已准备好在FPGA板上的硬件上实现设计,我们可以使用SoC块集进行进一步测试以验证我们的模拟结果。
为了总结,我们使用SoC Sloctset通过硬件效果增强算法的模型,因此我们可以使用模拟来查看帧大小和影响性能的缓冲区数量如何。
通过使用其硬件架构模拟算法,我们能够在硬件上实现之前揭示延迟和丢弃样本的问题。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。