人工智能、芯片复杂性不断上升使原型设计变得复杂
原型设计是设计复杂芯片的一项重要技术,对于越来越多的包含人工智能/机器学习的设计来说,原型设计变得越来越具有挑战性。
本文引用地址:http://www.amcfsurvey.com/article/202309/450211.htm原型设计允许在实际芯片可用之前开发和测试软件。反过来,这使得多个团队能够同时进行设计,并且允许对不同的选项进行更多的实验,以查看最适合的特定应用程序的选项。
Cadence 产品管理总监 Lance Tamura 表示:「设计尺寸已经限制了仿真可以支持的内容,精确到各模块或非常短的测试用例。人工智能一直是仿真和原型平台发展的重要推动力,因为它需要大量定制芯片。因此,人工智能推动了设计尺寸的增长,从而导致对仿真和原型设计的需求不断增长。」
但人工智能/机器学习的推出,以及对算法的不断优化和改变,也给运行良好的设计流程增加了一些不确定性。软件的变化可能会影响数据在芯片或封装中的移动方式、存储方式和位置,并且可能会产生影响性能、功耗和可靠性的新压力点。
Quadric 首席营销官 Steve Roddy 表示:「作为一般规则,系统仿真一直是 SoC 的任何高性能'数据平面'元素的关键步骤,到 2023 年,今天的新情况是,机器学习推理的快速发展同时扰乱了几乎所有类型的子系统。经过验证的构建模块的已知特征可能允许团队使用启发式方法来调整系统资源(内存、总线带宽、I/O 带宽、电源管理)的大小,但这些特征都被破坏了。」
Roddy 表示,这适用于图形引擎(使用机器学习推理进行动态超级缩放和放大)以及 Wi-Fi 子系统(可能使用新颖的机器学习算法来改进波束形成或星座解码)。它还适用于深度学习网络,包括语音增强和摄像头。
他说:「这些新颖的机器学习工作负载中的每一个都可能需要同时运行,而且随着数据科学家几乎每个月都发明新的网络图,每一个工作负载都可能会迅速变化。」「在将大量检查写入掩模车间之前,先进行仿真,然后进行 FPGA 原型设计,这实际上是完全完成设计的唯一方法。」
甚至在人工智能推出之前,原型设计就已经被推到了极限。虽然设计团队欣赏原型设计的价值,但他们希望不要花那么长时间或在此过程中进行太多迭代。
「缩短获得工作 FPGA 原型的时间是客户的首要要求,」西门子 EDA 原型产品战略总监 Juergen Jaeger 表示。「一旦原型运行并发挥作用,每个人都会欣喜若狂,因为现在你有了设计的前期版本。你可以启动操作系统并通过它真实运行的网络流量,以查看系统的实际行为。」
如何实现工作?
原理 模拟、仿真和原型设计就像虚拟凳子的三个腿。通常,从模拟开始,这是一种基于软件的验证方法,其中设计的过程主要是在软件中创建的,无论是 VHDL、Verilog、SystemVerilog 还是 SystemC。「就其本质而言,模拟的好坏取决于你在测试平台上提出的一系列问题,」Jaeger 指出。「而且因为它全部通过软件在计算机上运行,所以它也是这些方法中最慢的。」
仿真更进一步,将设计映射到仿真器本身。「该设计在硬件上运行,你可以将模拟器视为用于模拟的大规模并行计算引擎、加速器,」Jaeger 说。「然后,由于仿真运行得足够快,除了测试台之外,你还可以将真实的显示器或键盘或鼠标连接到它。这形成了一个更完整的验证环境,因为你不再依赖于向测试平台提出的问题。」
原型设计更进一步,有效地创建设计的数字孪生,并将其映射到 FPGA 中,从而在 ASIC 成为芯片之前对其功能进行测试。基于 FPGA 的原型设计通常是三步流程中的最后一步。
「这三者相互补充,并在项目的不同阶段使用,」Synopsys 产品营销总监 António Costa 说。「在原型上,你可以拥有现实世界的界面。例如,如果你想与 PCIe 5.0 交互,你需要一个以非常高性能运行的原型。进行一致性测试的唯一方法是使用你计划在 SoC 中使用的软件快速运行该接口。」
变革策略
在复杂的设计和新的应用领域中,所有这些都变得更加困难,因为算法处于不断变化的状态。虽然设计在仿真和仿真后可能会完美运行,但在数月或数年后,随着软件更新和系统优化的不断进行,它的表现可能会大不相同。
对于预期寿命为几年的消费设备来说,这可能不是问题,但在汽车或数据中心应用中情况就完全不同了,在这些应用中,芯片预计能按预期运行更长时间。在汽车和 5G/6G 等市场中,已经实施了法规和标准,以确保设计不会偏离原始规范太远。「如果你不符合规定,如果有不兼容的东西,你可能不会被授权出售,」Costa 说。「这非常重要,是每次开发都需要完成的最后一项。」
Costa 强调这是一个至关重要且经常被忽视的失败点,也是为什么原型设计永远不能被跳过的原因。芯片可能会出色地通过模拟和仿真,但随后会在市场上失败,因为它无法通过标准协议连接。
即使在这种传统的三步流程的范围内,设计团队也可能会针对不同的应用程序进行一些调整。「虽然有些人认为模拟、仿真和原型设计是按顺序进行的,但实际上它们通常是并行发生的,因为在某些事情上,一种技术可以比另一种技术做得更好,」Imperas 软件销售和营销副总裁 Larry Lapides 说道。「模拟本质上是一种白盒技术,可以洞察正在发生的一切。然而,如果你使用硬件,则并不总是可以获得所有信息。我们的用户从仿真开始,在投片前使用它,但也在投片后使用它,因为仿真提供了可观察性、自动化的简易性和可控性。」
其中许多变化是对日益复杂的设计以及共同设计硬件和软件以最大限度地提高每瓦性能的需求的反应。这会产生一些可预见的问题。
「硬件和软件团队不一定知道如何相互沟通,他们来自不同的角度,」Lapides 说。「硬件人员喜欢模型。但如果他们正在构建 A、详细模型,以及 B、完整 SoC 的模型,这些事情将会减慢软件开发的模拟环境。你不需要对 SoC 上的所有内容进行建模,不需要了解处理器管道的详细级别,也不需要对通信以太网协议进行物理实现。你需要专注于用现实的、可实现的里程碑来定义项目,这些里程碑是相互依存的。」
人工智能/机器学习可能会进一步模糊这些界限。「IP 核供应商面临着生产准确的 SystemC 处理器和加速器模块模型的压力,芯片制造商可以在早期系统模型中结合这些模型来运行早期软件,」Quadric 的 Roddy 说。「芯片制造商可能会在大型仿真系统中对大部分或全部完整 SoC 进行原型设计。对于选择与内部硬件团队一起构建 NPU 加速卸载引擎的半导体设计团队来说,这给这些团队带来了聘请 SystemC 建模专家的负担。事实上,芯片集成商早在加速器块之前就需要 C 模型,因为只有当精确的模型运行时,集成商才能知道加速器具有正确的规格。」
这个等式的另一面是人工智能可以用来帮助解决这些问题,特别是在平面规划方面。自我改进的启发式算法可以从以前的尝试中学习,可以预测哪些设计可能会在布局布线上失败,并且应该有助于避免此类问题。「这对生产力来说是一个巨大的提升,因为现在意味着你不必等待 20 个小时直到出现故障,而是一分钟后就知道它将出现故障,并且你甚至可以在运行布局和布线之前修复它,」Jaeger 说。
改变重点
人工智能还可以改变三大支柱的相对价值。「如果你正在定义一个人工智能系统,你就拥有顶层的人工智能算法,并且你必须能够从这些算法编译到某个中间级别,这将利用底层的架构,」Imperas 的 Lapides 说道。「然后必须拥有硬件编译器,它将获取这些单独的部分并将它们编译为核心,之后必须在数十亿个场景中运行它。能够在正常的原型设计环境中使用 FPGA 原型(其运行速度为 50 兆赫兹)或在硬件仿真器(其运行速度可能为 5 兆赫兹)中完成此操作,而不是直接执行在将以数百兆赫兹运行的仿真环境中,这意味着仿真具有真正的优势。它不能做所有事情,但它可以做很多事情来帮助优化从算法到芯片上的分布式人工智能加速器的人工智能编译步骤。我们的客户正在构建人工智能设备,这些设备并行使用数十到数百个模拟许可证来帮助进行功能正确性测试和优化。」
弄清楚使用哪些工具、何时使用它们以及如何划分设计本身就是一个越来越大的挑战。
「现有的分区算法仍然相当有效,但实现非常快的编译时间和快速运行时间仍然是一个挑战,」Cadence 的 Tamura 说。「随着设计尺寸的增长,这变得更加困难。人工智能算法不仅有可能为当前平台提供有效的分区解决方案,而且还可能影响未来平台的架构。」
寻找最佳方法可能需要与各种供应商交谈,并仔细研究技术论文以了解哪种方法最适合哪些应用程序。它还可能需要缩小芯片制造商的关注范围,将选择的数量限制在那些经过芯片测试的产品上。
「尽可能标准化你的设计方法和工具,」是德科技 ASIC 设计经理 John Mick 建议。「在插入生产流程之前开发测试用例以证明流程的更改。对多个设计使用相同的工艺节点。迁移到新节点意味着新的 IP 和设计规则集,这可能会导致 ASIC 开发时间延长数月。」
也就是说,这些设计的复杂性以及针对特定应用程序和用例的定制可能会对最有效的方案产生重大影响。「客户应该了解他们正在寻找的关键功能,」Jaeger 说。「例如,如果你的目标是主要运行软件,那么尽可能高的性能就是你的第一要务。如果你想主要确保 RTL 功能正常,并且不必进行芯片重新设计,那么调试功能对你来说是最重要的。」
就这一点而言,EDA 工具提供商通常会提供量身定制的产品。「例如,是德科技与模拟器无关,因此我们不使用『固定』供应商流程。我们优化设计流程以与不同的供应商合作。这意味着我们已经开发了数百个脚本来处理这些工具并使其全部正常工作,」Mick 说。
Synopsys 的 Costa 补充说,所有这些建议可能看起来都是显而易见的,但在紧要关头,当团队担心时间和预算时,它们很容易被忽视。这最终可能会花费更多的时间。「如果你仍然需要每天更改 RTL,那么现在进行原型设计可能还为时过早。你应该返回仿真,并确保设计状况良好。最重要的是,制定可靠的计划是知道何时停止的关键。「验证永无止境,」Jaeger 说。
结论
芯片制造商可用的选项数量,以及终端市场对高度定制解决方案(包括某种形式的人工智能/机器学习)的需求,以及每瓦性能的数量级改进,正在使现有工具和方法远远超出其最初目标。
对于芯片制造商来说,关键是限制有意义的选项数量,以便保持专注,并在设计可以从中受益的地方利用任何可用的新技术、工具和方法。尽管如此,仍有更多的变量需要应对,更多的挑战可能是独一无二的,可能没有单一的解决方案。这些变化使设计过程变得更加有趣和创新,但这种自由度是有代价的。
评论