对于大多数片上系统(SoC)设计来说,最关键的任务不是RTL编码,甚至不是创建芯片架构。今天,SoC的设计主要使用来自多个供应商的各种IP块。这使得管理硅IP成为SoC设计过程中的主要任务。
一般来说,新编写的RTL代码将不到SoC设计的十分之一。通常,SoC芯片架构决策也是比较明确的:现有架构的变体或应用中主要数据流的反映,标准总线或片上网络(NoC)分层。
但设计中的每一块IP可能有数十种类型和数百个实例需要管理。芯片设计人员必须定义需求,选择供应商和特定产品,进行任何必要的定制,设置配置参数,并将IP实例集成到一个有效的、可测试的系统中。这个过程将消耗大部分项目资源,直到后端实现。
这一现实使管理IP的专业能力成为SoC设计成功的重要因素。IP的关键信息——特别是供应商支持、详细规格和文档、bug修复以及来自大型、有影响力的IP供应商的定制支持的能力——成为一个很关键的问题。
另外,IP块日益增长的复杂性也只会增加IP管理的挑战。
至关重要的伙伴关系
许多SoC设计团队使用设计服务公司来补充他们的团队的特定技能——例如后端。
在极端情况下,客户可能只有SoC的功能描述。
灵活的参与
很多时候,有一些主要的IP块,客户只是有些概念。例如,客户可能知道他们需要一个低功耗人工智能(AI)加速器块来用于物联网(IoT)芯片。然而,他们可能几乎没有关于这些复杂IP块如何在不同设计中运行或它们内部的信息。
或者一个团队可能正在为他们的SoC中的新功能编写代码,但不知道如何选择和配置RISC-V CPU核,以便满足时序和功耗限制。
这些差异使灵活的参与至关重要。设计合作伙伴应该能够在任何级别加入项目,从概念到网表,并与客户的设计团队顺畅沟通。最初,目标是与客户合作完善IP要求——从概念到功能规范,再到详细的功耗/性能/面积和布局要求——以便合作伙伴可以为设计中的每个实例选择最佳IP。
IP选择
有了要求,客户和设计合作伙伴将选择要使用的IP。
理想情况下,合作伙伴将在内部开发和维护其广泛的IP库。这允许客户快速将需求与其库存相匹配。如果匹配不完美,IP开发团队拥有文档、工具和资源来根据客户的特定需求自定义IP块。
在选择、定制和许可IP方面,客户不仅仅需要熟练的设计工程师还需要一个专门负责建立和维护第三方IP关系的工程团队。
与第三方IP供应商建立久经考验的IP许可和开发关系的全球网络,以及致力于维护该网络的团队,至关重要。客户应该特别调查潜在设计合作伙伴与ARM以及与不断增长的RISC-V供应商生态系统的关系。
IP集成
SoC客户将深入参与IP集成。IP实例必须正确配置,然后连接到芯片的总线或网络架构。必须验证组装的SoC设计的正确运行。功能设计以外的重要主题,如测试架构、电源管理和时钟架构,必须统一解决。
第一步是连接,从选择具有必要接口的IP块开始。一些模块可能需要自定义。
通常,IP块在组装的SoC设计中表现不如预期或描述的那样。这是内部IP设计团队非常有价值的一种情况。即使有外部IP,SoC设计通常也可以在不引入第三方供应商的情况下解决问题。
对IP块内部的详细了解在电源管理和测试设计时也很有价值。模块的设计可能关于测试策略、BIST以及如何部署电源或时钟门控。这些选择必须在整个设计中协调一致,以产生具有最小测试时间和有效芯片电源管理策略的SoC。做出这些选择可能需要设计师深入IP块的内部。
所以即使只有SoC设计产品,最好也要有IP设计团队。
当今SoC设计将拥有广泛的内部IP组合和广泛的第三方供应商网络。它将有单独的IP设计小组来支持这两个方面。它还将有一个灵活的参与模式,根据客户的资源和专业知识,在客户和合作伙伴团队之间执行任务。
综上,当前SoC设计中IP的重要性改变了SoC设计任务的性质,以及客户对IP设计合作伙伴的期望。