片上系统 (SoC) 集成支持半导体行业的成功,以继续实现其更好、更小和更快芯片的目标。多种工具用于电子系统的设计和验证。验证是最重要的方面之一,因为它证明了设计的功能正确性。使用 FPGA 来验证 SoC 设计是一种强大的工具,并且正在成为半导体设计中非常重要的一部分。
传统方法不足以完全验证系统。进行动态时序分析是有充分理由的。EDA 供应商为基本仿真提供了充分支持低密度设备的解决方案。这些工具的功能不够强大,无法达到当今设计人员所需的程度来进行调试和验证,以满足在大型 FPGA 中有效地满足进度和调试的激烈竞争。
一些架构探索工具通过重用系统模型来测试基于实时和现实工作负载的时序、功率和功能,从而解决了与验证相关的问题。它们解决了当前验证解决方案中的众多缺点。我们将讨论解决每个特定问题以及如何解决每个问题。
当前 SoC 验证背后的问题
随着 SoC 尺寸和复杂性的增加,对更有效的验证工具的需求不断增长。过度竞争正在缩短上市时间。这使得设计人员很难在硬件中使用传统的实现和测试设计方法。
功能仿真仅测试 RTL 设计的功能能力。他们本质上所做的是发送一组通用输入,然后他们测试这些场景并确定它是否有效。它无法为系统其余部分的工作负载提供时间、功耗和响应。
静态分析无法找到动态运行设计时可以看到的问题。时序分析方法也有各种缺点。在实际系统中,动态因素会导致 SoC 发生时序违规。它可以告诉用户设计是否可以满足设置以及是否满足应用的时序约束。一个例子是对时间敏感的网络路由器的设计,其中必须注意指定可以使用时隙的优先级。还必须注意使优先级数据包不使用分配给另一个时隙的资源。例如,控制数据帧的优先级为 3。在当前时隙中,A 类数据包开始使用资源。在传输 A 类帧时,下一个时隙开始,在这个新时隙内调度的数据包(控制数据帧)必须等到当前传输完成。静态分析工具永远无法发现这个问题。类似地,通过网络中的公共交叉开关进行数据包路由,数据包最终可能会被丢弃。所以应该有适当的流量控制机制。静态时序分析将无法发现这个问题。
另一种验证方法是系统内测试。如果设计在板上工作并通过了测试套件,那么它就可以发布了。但是一些时间违规等问题可能不会立即出现,到那时,设计已经在客户手中。
使用架构模拟器获得准确性
为了描述这个新的系统验证解决方案,我们使用了 Mirabilis Design 的名为 VisualSim Architect 的商业架构模拟器。架构模拟器传统上用于系统规范验证、权衡和架构覆盖。新趋势是通过将这些模拟器与 FPGA 板和仿真器集成来扩展这些模拟器的作用。SystemC 和 Verilog 模拟器提供了类似的方法,但它们的系统模型要么过于详细,要么过于抽象。它们无法以能够进行大规模测试的模拟性能准确捕捉系统场景。
逻辑功能或 IP 被视为图形架构模型中的一个块。大多数架构模拟器都有一个多样化的组件库,涵盖了在 RTL 中实现的 ASIC 设计块。该环境允许捕获整个体系结构,从而允许用户查看整个系统在做什么。该系统可以只是在一个芯片或完整的盒子或网络内部。该架构包含有助于生成缓冲区占用、时序或功耗的必要细节。它还提供了有关在设计中更换模块后整个系统的响应的信息。例如,如果内存块被仿真器或 FPGA 取代,那么对系统的其余部分会有什么影响?
满足时间期限对于任何设计的成功都是至关重要的。例如,一个模块预计在 20 µs 内完成其仿真,但据观察需要 20 ms 的时间。结果,系统的其余部分受到影响。这些细节被捕获,用户可以了解 FPGA 上每个实现的时序,相对于系统的其余部分。未能满足时间期限也可能导致无法在其产品环境中使用所需的测试。
第二个有趣的特性是减少了使用测试芯片测试每个块或 IP 的成本和时间。一个测试芯片可能需要 200,000 美元的 NRE,大约 200 到 300 美元的封装和其他支持活动,以及 6 到 9 个月的测试。使用 VisualSim,用户可以加载特定 IP 块的 RTL,用该特定 FPGA 块替换当前架构块。C++ API 连接到特定的 FPGA 模块。这有助于用户保持相同的架构环境并概览芯片或整个系统的活动。它包括性能、时间和延迟。
放在 FPGA 上的 IP 最终会进入产品。这表明用户将在真实架构的上下文中测试 IP。它验证 IP 是否将在系统中工作。此外,还会产生性能或功耗等附加信息。因此,它不仅限于验证单个 IP,而是验证整个 SoC,IP 位于该块或 FPGA 中。
解决您的难题的解决方案
大多数工程师都有令人信服的理由拒绝进行时序仿真。一些主要问题是:
- 这很耗时。时间是任何设计成功的最关键因素之一。如果您从头开始构建时序模型,则非常耗时。但这里的想法是在 VisualSim 环境中重用架构模型。它有两个目的。可以通过更高的准确性和对现有、内部或购买的 IP 的更好评估来增强架构模型。这也有助于对代码可用的 IP 进行时序分析,这就是为什么花费的时间非常短的原因。
-
需要大量内存和处理器能力才能进行验证。设计师更喜欢基于组件的仿真,而不是大型设计的仿真。引入分而治之是因为单个 FPGA 板只能运行一小块芯片。一个大型设计的仿真将消耗大量处理器功率、内存和 FPGA 容量。例如,要模拟一个完整的 SoC,用户可能需要 2,000 个 FPGA。将这么多 FPGA 放在一块板上并运行它非常困难。因此,分而治之的概念受到了大多数设计师的欢迎,他们希望每个部件在组装后都能正常工作。当前的工具还有许多对验证无用的底层细节,这会减慢整个设计的仿真速度。其次,“保持层次结构”解决方案允许设计保持其层次结构,即使它经历了实现。它占据了处理器的每个部分,例如,并形成层次结构。但是大多数当前的工具都提供了一到两级的层次结构。
VisualSim 等架构建模环境可以对整个 SoC 或电路板进行建模。该环境测试所有功能并在很短的时间(一两个小时)内完成,原因是它抽象了时钟和信号并重用了架构块,这使得模拟速度更快。FPGA 板只需要包含要测试的特定 IP。此外,模拟器每秒运行 8000 万个事件,整个 SoC 每秒运行超过 40,000 条指令(不是周期)。此外,它可以在普通的 Linux 服务器上运行。因此,可以通过使用现成的系统将成本保持在较低水平。它还创建了 30 到 40 个层次结构。每个分层组件都可以是可重用的组件。该模型是由这些小的分层组件构建的。
- 无法从功能仿真中重用测试台。必须创建新的测试平台。环境正在重用架构模型。架构模型在同一模型中具有时序、功能和功率。它具有所有必需的统计信息,例如延迟、吞吐量、功耗、效率、服务效用、波形等。由于它具有所有详细信息,因此可以轻松地在时序和功能上重复使用它。
- 调试设计原来是一件苦差事,因为整个网表都是扁平的,无法及时找出问题。环境有助于调试工作。它在测试环境方面提供了很多探针。此外,架构模型可用作比较 FPGA 板的输出的参考。因此,查看哪个序列有错误变得容易得多。因此可以缩小错误范围。
- 时序仿真显示了最坏情况的数字。该设计有足够的松弛度,无需担心。诸如 VisualSim 之类的商业工具运行周期精确的模拟,已被证明可以以 90% 至 95% 的精度获得时序,并以 85% 至 98% 的精度获得功率。因此,即使是极高的吞吐量和时间期限设计也可以进行准确测试。
- 并非所有子模块都在同一站点编码。没有办法将在每个站点编码的部分分开,因为这些部分的设计者将更好地理解设计以验证它。整个架构都在 VisualSim 中捕获。每个远程团队都可以用 VisualSim 中的完整系统模型替换他们的设计。这样,每个团队都可以独立测试,多个团队也可以联合测试。
一些突出的好处:
- 降低测试成本和时间
- 多级层次结构
- 重用架构模型
- 可以对整个 SoC 或电路板进行建模
- 独立测试
- 帮助调试工作
展望前景
重用架构模型可以节省大量时间。基于组件的仿真现在是一个古老的概念。在很短的时间内验证整个 SoC 可以节省时间和成本。像 VisualSim 这样的工具可以捕获整个架构,允许用户查看整个系统在做什么。性能、时序和延迟等附加信息可以让用户了解最终设计将如何工作。完成的模拟非常快,可能需要一到两个小时的时间,而传统方法可能需要数天才能验证。
审核编辑:刘清
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)