FPGA用于SOC设计验证

文章作者:Anupurba Mukherjee

利用fpga验证SoC设计是一个强有力的工具,正成为半导体设计中一个非常重要的部分。

芯片系统(SoC)集成是半导体行业成功的背后支撑,以继续实现其更好、更小、更快的芯片目标。电子系统的设计和验证使用了多种工具。验证是最重要的方面之一,因为它演示了设计的功能正确性。利用fpga验证SoC设计是一个强有力的工具,正成为半导体设计中一个非常重要的部分。

传统的方法不足以完全验证一个系统。有一个令人信服的理由来做动态时序分析。EDA供应商提供基本模拟解决方案,充分支持低密度设备。这些工具还不够强大,不足以调试和验证当今设计人员所需要的程度,以满足大规模fpga中在会议安排和有效调试方面的激烈竞争。

一些体系结构探索工具通过重用系统模型来基于实时和现实的工作负载测试时间、功率和功能来解决与验证相关的问题。它们解决了当前验证解决方案中的许多缺陷。我们将讨论如何解决每一个特定的问题和每个问题是如何解决的。

当前SOC验证背后的问题

随着soc的规模和复杂性的增加,对更有效的验证工具的需求越来越大。过度竞争正在缩短上市时间。这使得设计人员很难在硬件中使用传统的实现和测试设计方法。万博投注网址

功能模拟仅测试RTL设计的功能功能。它们基本上确实是发送一组通用的输入,并且他们测试这些方案并确定它是否有效。它未能提供从系统其余部分的工作负载的时间,功耗和响应。

静态分析无法发现设计动态运行时出现的问题。时序分析方法也有各种缺点。在实际系统中,动态因素可能导致SoC上的时间违规。它可以告诉用户设计是否满足设置和应用的时间约束是否满足。一个例子是在设计对时间敏感的网络路由器时,必须注意指定可以使用时隙的优先级级别。还必须注意,使优先级包不会使用为另一个时间段分配的资源。例如,控制数据帧的优先级为3。在当前时隙中,A类数据包开始使用资源。当传输A类帧时,下一个时隙启动,在这个新的时隙(控制数据帧)调度的数据包必须等待当前传输完成。静态分析工具永远无法发现这个问题。 Similarly, with packet routing through a common crossbar in a network, packets could end up getting dropped. So proper flow control mechanism should be in place. Static timing analysis will not be able to find this problem.

另一种验证方法是系统内测试。如果设计在电路板上工作并通过了测试套件,那么它就可以发布了。但一些问题,如时间违规可能不会立即出现,到那时,设计已经在客户手中。

使用架构模拟器获得准确性

为了描述这个新的系统验证解决方案,我们使用了Mirabilis Design的一个名为VisualSim Architect的商业架构模拟器。体系结构模拟器传统上用于系统规范验证、权衡和体系结构覆盖。新的趋势是通过将这些模拟器与FPGA板和模拟器集成来扩展它们的作用。SystemC和Verilog模拟器提供了类似的方法,但它们的系统模型要么太详细,要么太抽象。他们不能准确地捕捉系统场景的模拟性能,使大规模测试成为可能。

逻辑函数或IP被认为是图形架构模型中的块。大多数架构模拟器都有一个不同的组件库,涵盖在RTL中实现的ASIC设计块。环境允许捕获整个架构,这允许用户查看整个系统正在做的事情。系统可以在芯片或全框或网络内部。该体系结构包含有助于生成缓冲占用,定时或功耗的必要细节。它还提供有关在设计中替换块之后整个系统的响应的信息。例如,如果用仿真器或FPGA替换内存块,那么对系统其余部分的影响将是什么?

按期完成对任何设计的成功都是至关重要的。例如,一个block预计在20µs内完成它的模拟,但我们观察到它需要20毫秒的时间。其结果是,系统的其他部分受到影响。这些细节被捕获,用户可以了解FPGA上每个实现的时间,相对于系统的其余部分。未能按时完成还可能导致测试失败,而测试是在产品环境中可用的必要条件。

第二个有趣的特性是使用测试芯片测试每个块或IP所花费的成本和时间的减少。一个测试芯片可能需要20万美元的NRE,大约200美元到300美元的封装和其他支持活动,以及6到9个月的测试。使用VisualSim,用户可以为特定的IP块加载RTL,用特定的FPGA块替换当前的架构块。c++ API连接到特定的FPGA块。这有助于用户保持相同的架构环境和概述芯片或整个系统的活动。它包括性能、定时和延迟。

FPGA上的IP最终将进入产品。这表明用户将在真实体系结构的上下文中测试IP。它验证IP是否能在系统中工作。此外,还会产生性能或功耗等额外信息。所以它不局限于仅仅验证单个IP,而是验证IP在那个块或FPGA中的整个SoC。

解决困境的方法

大多数工程师都有令人信服的理由拒绝进行时序模拟。一些主要的问题是:

  • 这是耗时的。时间是任何设计成功的最关键因素之一。如果您已经从头构建了计时模型,那么这将非常耗时。但是这里的想法是在VisualSim环境中重用体系结构模型。它有两个目的。架构模型可以通过提高现有的、内部的或购买的IP的准确性和更好的评估来增强。这也有助于对可用代码的IP进行计时分析,这就是所花费的时间非常短的原因。
  • 它需要很多内存和处理器电源来验证。设计人员具有优选的基于组件的仿真,而不是模拟一个大型设计。划分和征服是推出的,因为单个FPGA板只能运行一小块芯片。仿真对一个大型设计将消耗很多处理器电源,内存和FPGA容量。例如,为了模拟完整的SOC,用户可能需要2,000 FPGA。把这个很多FPGA放在板上并运行它很难。因此,大多数设计师都欢迎分裂和征服概念,希望每个部件在大会之后工作。目前的工具还具有许多潜在的细节,无需验证,这减慢了整个设计的模拟。其次,即使通过实现,“保持层次结构”解决方案允许设计保持其层次结构。例如,它占据了处理器的每个部分,并制作层次结构。但大多数当前工具都提供了一个到两个层次的层次结构。
    VisualSim等架构建模环境可以对整个SoC或电路板建模。环境测试所有功能并在很短的时间内完成(一两个小时),原因是它抽象时钟和信号并重用体系结构块,这使得模拟速度更快。FPGA板只需要包含被测试的特定IP。此外,模拟器以每秒8000万个事件和每秒超过40000条指令(不是循环)的速度运行整个SoC。此外,它可以在普通的Linux服务器上运行。因此,使用现成的系统可以降低成本。它还创建了30到40个层次。每个分层组件都可以是可重用组件。该模型是由这些小的分层组件建立的。
  • 无法从功能模拟重新使用测试台。必须创建新的测试台。环境正在重用体系结构模型。体系结构模型在同一模型中具有时间、功能和功能。它具有所有所需的统计数据,如延迟、吞吐量、功耗、效率、服务效用、波形等。由于它包含了所有的细节,它可以很容易地用于计时和功能。
  • 调试设计原来是一件苦差事,因为整个网络列表是扁平的,而且没有办法及时找出问题。环境援助调试努力。它在测试环境方面提供了大量探针。此外,架构模型可以用作比较FPGA板的输出的引用。因此,观看哪个序列具有更容易的序列。所以可以缩小错误。
  • 时序模拟显示了最坏情况的数字。这个设计有足够的松弛之处,不必担心。VisualSim等商业工具运行了一个循环准确的仿真,已被证明是以90%的精度和功率高达90%至98%的准确度。因此,即使是极高的吞吐量和时序截止日期设计也可以准确地测试。万博投注网址
  • 并不是所有的子模块都是在同一个站点编码的。没有办法将每个站点编码的部分分开,因为这些部分的设计师将是更好地理解设计的人,以便验证它。整个架构在VisualSim中捕获。每个远程团队都可以使用VisualSim中的完整系统模型更换它们的设计。这样,每个团队都可以独立测试,并且多个团队也可以结合测试。

一些突出优点:

  • 削减测试的成本和时间
  • 多级层次结构
  • 重用体系结构模型
  • 整个SoC或板都可以建模
  • 独立测试
  • 帮助调试努力

展望未来

重新抵押架构模型可节省大量时间。基于组件的模拟现在是一个旧的概念。在很短的时间段内验证整个SoC可以节省时间和成本。VisualSim等工具可以捕获整个架构,这允许用户查看整个系统正在进行的内容。诸如性能,时序和延迟的其他信息是将为用户提供最终设计如何工作的信息。完成的模拟非常迅速,可能需要一到两个小时的时间与可能需要数天验证的传统方法。

本文最初发布EEWEB.

Anupurba穆克吉是一个产品市场工程师Mirabilis Design Inc.

留下你的评论