使用 IP-XACT 的 SoC 设计流程

文摘   2024-11-13 07:01   重庆  
SoC 的流片从来都不是一件容易的事。芯片的物理尺寸往往掩盖了为进入流片阶段所做的工作。而且,这仍未尘埃落定,因为硬件和软件开发团队正在等待代工厂的测试芯片完成硅片的启动和验证。设计团队的压力是显而易见的,尤其是由于芯片可能无法按预期运行。失败的测试芯片可能会错过市场机会,并且由于工艺节点较低和错过时间表的情况下 NRE 成本高昂而导致的成本损失。

在大多数情况下,SoC 或 IP 的开发是分布在多个地点的专门设计团队的杰作,他们使用 EDA 工具的内部设计流程进行协作。设计公司内部采用的设计流程的效率对成功流片起着非常关键的作用。拥有这一秘诀的企业能够一次又一次地成功流片。这些设计公司已将其设计工具流程集成到 EDA 工具之间,并实现了流程自动化和高效的设计交接。软件、硬件和验证团队之间无缝交换设计数据,使工程师能够协同工作并进行富有成效的协作。确保可重用性并使用单一来源自动生成所需的正确构造资料,供不同团队成员以各种格式使用,可带来丰厚的回报并有助于缩短设计开发周期。这种方法的另一个好处是,它可以减轻对数据的错误解释或基于不正确版本的资料(例如内存映射)开发代码的可能性。它还减少了手动开发所需代码并验证所需代码所花费的精力。

在当前疫情和可能与大萧条相媲美的经济衰退期间,不同团队之间良好的流程和高效协作的重要性在今天变得更加重要。建立设计流程并尽可能实现自动化有助于执行定义明确、可能平凡的任务,这些任务容易出现人为错误。这些包括虚拟原型设计、顶层布线的结构 RTL 生成、测试逻辑插入、文档、设计交接以及用于验证设计的测试台和测试向量的创建。那么,开发流程的关键要素有哪些,可以增加成功流片的可能性呢?
公司在开发成功的设计流程时部署的大多数方案的关键要素之一是良好的数据模型,该模型具有足够的可塑性,可用于自动化当今复杂设计流程的不同细微差别。虽然一些公司更喜欢使用专有数据模型以及 Perl/Tcl/Python 脚本,但许多公司选择使用 IP-XACT。使用 IP-XACT 作为设计流程的基础有许多优势。其中一些如下所列:
  • 它是一个 IEEE 标准,这意味着它是开放的,所有人都可以访问。依赖专有方法来开发设计流程,可能会在需要时对它们进行修改施加限制。
  • 它配备了标准 API,可通过用软件层补充 IP-XACT 描述来定制解决方案。
  • 使用 API,可以完善生成器的价值主张。它可用于捕获生成器内的配置智能,以自动生成 IP 的最终配置 IP-XACT 描述。
  • 它非常灵活,可与大型遗留系统配合使用,但可应用于没有遗留 IP 的项目。
  • IP-XACT 标准化了许多不同的元数据规范,并提供了紧密的生成器接口 (TGI) 以提供可编程性。
  • 分布式软件和硬件团队可以使用 IP-XACT 更有效地协作,并在不同的设计环境之间快速交换设计信息。
  • 它将来自多个供应商的不同 EDA 工具整合到一个集成的设计和验证环境中。

如今,大多数芯片都配有与之相关的软件组件,用于控制和管理其运行。任何 SoC 开发周期的第一步都是创建设计规范。但随着安全关键系统在汽车、航空航天、国防等行业中的重要性日益增加,许多设计都有一组相关要求,这些要求通常使用 ReqIF(需求交换格式)捕获,简而言之,每个要求都应与设计的特定部分相关联。然后使用这组使用 ReqIF 定义的要求自动生成设计规范。由此生成的相关文档最终将输入到整体设计文档中。这就带来了设计可追溯性的概念,这种概念在当今的 SoC 设计中越来越重要,并在整个设计流程中得到维护。
随着通过一组要求确定设计规范,硬件-软件内存映射也随之开发。此内存映射与架构规范一起构成了设计流程起点的共同来源。自动生成不同的输出,例如结构 RTL、C 头文件、系统 C 文件,以确保设计原型经过验证并确认能够按预期工作。这是一个迭代流程,设计周期下游所需的任何更改都会在原型中得到验证,并生成下游所需的输出。这种方法可确保所有团队使用相同版本的输出,从而减少对规范的误解。这种方法的另一个好处是,它使验证团队能够在流程的不同阶段验证结果,并确保结果在整个流程中保持一致。


虽然每个人都同意良好设计流程的好处,但从另一个角度考虑流程自动化的重要性是有用的。任何 SoC 开发周期中的异常通常是由于设计修改(例如功能更改、内存映射修改等)或由于可能在设计流程的任何步骤中出现的问题而引起的。随着设计复杂性的增加和设计团队的分散,保持每个人的同步变得很重要,这对于保持设计正常进行至关重要。设计工程师经常犯这样的错误:在本地进行必要的设计更改,然后没有通知其他工程师对设计所做的更改。这种失误的影响通常在设计周期的后期才会显现出来。为了解决这个问题,重要的是确保在设计架构阶段进行更改,并在验证后将其传播到所有团队,以保持众多模型(架构、TLM、软件、电源和 RTL、文档等)同步。
大多数设计流程的下一步涉及定义 SoC 的顶层以及功率和时序约束。定义顶层分区、它们的引脚及其互连可以使用多种方法来完成,而不必手动操作。许多公司为此使用不同的方法,但一个共同点是使用自定义 Tcl、Python 或 Perl 脚本以及专有数据模型来定义互连。虽然自定义脚本有助于大大提高设计流程的自动化程度,但当设计团队必须修改脚本以适应不同的设计约束或与不熟悉的第三方 IP 集成时,它们的生产力就会受到严重限制。因此,最近许多公司已经放弃了这种方法,并开始使用 IP-XACT。这种方法减轻了手动创建互连、进行修改、ECO 和消除连接错误的麻烦,同时保留了以不同语言自动生成 RTL 的灵活性。对于顶层定义的每个分区,IP(第三方或内部 IP)都会根据需要进行封装、验证,并使用与上述顶层集成类似的方法将其连接到其他 IP 或黑盒(任何尚未开发的设计模块)。使用 IP-XACT 解决方案而不是自定义脚本,设计人员可以集成来自多个供应商的 IP,并使用各种前沿验证工具(如协议检查器、设计规则检查器、时钟和复位域交叉分析、静态时序和形式验证工具、嵌入式软件测试等)现场验证 IP。这些任务所需的大部分输出都是自动生成的,从而确保了通用的可重用流程。

拥有可重用的连接解决方案为设计团队带来了多种好处。其中一些如下所示:
  • 通过添加必要的组件和接口,快速构建基于平台的正确构建设计,并根据需要轻松进行修改。
  • 通过自下而上的设计流程或自上而下的设计流程或两者结合,灵活地实施设计。
  • 轻松将旧式 RTL 打包为符合 IP-XACT 标准的 IP 并根据需要进行布线。
  • 提供一种方法来跟踪设计中使用的 IP 的各个版本,如果最新版本不起作用,则始终返回到旧版本。
  • 能够使用通用总线或自定义接口连接设计实例,从而减少设计中的连接总数。
  • 连接 IP 实例时,尽量减少出错的范围。
  • 根据物理设计要求管理对逻辑设计层次结构的修改,同时考虑时序和功率约束。
  • 根据需要轻松管理 IP、SoC 配置/重新配置,并以所需格式(如 Verilog、VHDL、System Verilog 或 System C)列出设计。
  • 通过设计团队之间高效的设计交接来创建更好的工作流程。
  • 自动生成不同格式的文档,例如 pdf、MS Word、Dita、html 等。这一点变得尤为重要,因为在硬件到软件的迭代过程中,设计周期中会发生许多变化,这通常会导致设计文档与所做的更改不同步。自动生成文档可确保文档始终是最新的并与设计更改同步。

在顶层定义的每个分区或块都带有其时序预算和功率估算,需要满足这些预算和功率估算,并作为设计分区或顶层块构建的指导方针。这些约束可能会因设计实施或架构更改期间发现的障碍而发生变化,但这样的流程可以通过在设计规范阶段进行更改,然后自动生成下游流程和工具所需的输出,从而实现快速迭代。
如果不提及 PPA(功率-性能-面积),谈论 IP-XACT 的设计流程是不完整的。满足 PPA 是所有设计的关键要求,并且通常容易出现从手动修改 RTL 到长工具运行时间的长迭代周期。为了找到合适的解决方案,成功的设计流程使设计团队能够尝试各种假设情景,以创建最适合在物理实现期间满足 PPA 的设计层次结构。此类流程中包含的一些功能包括:
  • 能够修改逻辑层次结构,同时自动生成所需语言的 RTL。逻辑重组功能包括
  • 将同一层次结构中的实例分组到新层次结构中或根据需要取消层次结构的分组。将 IP 或子系统从一个层次结构移动到另一个层次结构。
  • 根据需要创建馈通或重新路由网络,同时在层次结构操作期间保留现有连接和内存映射。
  • 定义多个设计层次结构,而无需实际修改实际设计层次结构。
  • 有效地管理不同层次结构的时序和功率约束。
  • 选择哪个层次结构产生最佳时序收敛结果。

为了加快使用定义良好的流程开发 SoC 或 IP 的过程,有必要使用经过试验和测试且是多家公司生产流程一部分的解决方案。使用 Register Manager 提供的解决方案,设计公司可以自动化其设计流程并以更低的成本更快地成功完成设计。

软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
 最新文章