通过集成自动化更好更快地创建 SoC 设计
作者:Insaf Meliane
现代高端片上系统(SoC)设计可能非常庞大且极其复杂,需要使用数千个知识产权(IP)模块。这些IP中的大多数来自可靠的第三方供应商。通常还会有一个或多个内部开发的IP,作为 SoC的关键部分,与来自第三方的IP一起构成SoC,这是将该SoC与竞争对手区分开来的秘笈。
过去,构成 SoC 的 IP 通常是手工集成和配置的。然而,如果没有复杂、高效且高性能的集成自动化技术的帮助,要开发当今的 SoC是不可能的。
管理元数据
元数据(metadata)是指关于数据的数据。就用于构建 SoC 的 IP 而言,每个 IP 的元数据视图都提供了有用的信息,以增强该 IP 的核心功能。例如,一个 IP 可能有很多端口,使其可以通过片上网络(NoC)与其他 IP 通信。与 IP 相关的元数据就描述了端口宽度和类型、工作频率、配置参数、通信协议和其他规格等内容。
除了 IP 的核心逻辑外,元数据还包括配置和状态寄存器(configuration and status registers, CSR)。这些寄存器允许对 IP 进行配置,并由 SoC 上的处理器 IP 和外部主机(如果需要)监控其运行。每个 IP 可能包含数十万个 CSR,而整个 SoC 可能包含数百万个此类元件。
CSR 在 SoC 的硬件/软件接口(hardware/software interface, HSI)方面发挥了重要作用,HSI 是软件(包括低级固件和高级应用软件)与底层硬件之间的交互点。这种集成允许动态控制和状态更新,这对 SoC 的功能和效率至关重要。
管理所有这些元数据可能是一场后勤噩梦。在 SoC 设计的早期,大部分元数据都存储在电子表格中,由人工创建、操作和维护。这在当今的 SoC 设计中根本不可能实现,尤其是 CSR,在器件开发的早期阶段,CSR 每天可以很容易被修改数百次。例如,CSR 位可能会被添加、删除或重命名,CSR的硬件/软件行为也可能会被修改。
许多公司和组织都为整个行业采用的标准做出了贡献。IP-XACT 就是这样一种标准,也被称为 IEEE 1685,它是一种可扩展标记语言 (Extensible Markup Language, XML) 格式,从设计之初就旨在促进 SoC IP 的管理和集成。
与IP-XACT 相关的SystemRDL 标准是一种开源的基于文本的描述语言,专门针对寄存器。由于存在一些局限性,最初的 SystemRDL 1.0 已升级到 SystemRDL 2.0,增加了对基于验证的属性(如约束、覆盖率和 HDL 路径)的支持。
CSRCompiler 工具
了解 IP-XACT 和 SystemRDL 2.0 等标准的作用非常重要。这些标准为如何以机器可读的形式表示和存储与 IP 相关的元数据提供了规范,机器可以生成和使用这些元数据。也就是说,这些标准本身并不是工具。要充分利用 IP-XACT 和 SystemRDL 2.0,就必须拥有适当的工具以及相关的开发环境和方法。
一些公司可能会选择开发自己的自主工具和基础架构。这些工具和基础架构通常是使用 Tcl、Perl 和 Python 等语言创建的脚本大杂烩。这种内部开发的问题在于,其贡献者往往会离开公司,留下成千上万行无人知道该如何维护的代码。(有一个关于代码注释的古老编程笑话是这样说的:当我编写这个函数时,只有宇宙和我自己知道它是如何工作的......现在只有宇宙知道了!)。此外,编写和维护这些自主开发的脚本和解决方案需要大量的手工劳动来生成精确的设计。随着 SoC 的复杂程度不断提高,过去仅靠手工或几个脚本就能完成工作方式已不再可行。
为了解决这些问题,Arteris提供了一套工具来促进SoC的创建和管理。 CSRCompiler就是其中之一,它是一种完整的寄存器设计解决方案,适用于硬件、软件、验证和文档,可从单一源规范协作管理您的设计,将地址映射共享转变为一个流畅的集成流程。
CSRCompiler 提供可扩展的统一基础架构,可在整个设计流程(RTL、SW、DV、DOC)中自动处理 HSI 要求的各个方面。它可以接受多种格式的 CSR 定义,并为不同小组提供不同的数据视图,如硬件设计工程师的 RTL、软件开发人员的头文件和验证工程师的文档(图 1)。
图 1. CSRCompiler:输入和输出。(图片由Arteris提供)
除了能够读取从传统电子表格到 IP-XACT 及其自己的 CSRSpec 格式的任何内容以外,CSRCompiler 还可以处理和生成 SystemRDL 文件。今天的SoC开发人员会发现,CSRCompiler现在支持最新的SystemRDL 2.0标准,这特别有吸引力。
与最初的版本相比,SystemRDL 2.0 改进了定义寄存器和存储器的方法。它现在可以描述内存组件、备用组件、数组和字段结构等新元素。该工具还为可配置组件提供参数支持,以加快开发速度并提高设计重复利用率,适用于汽车、通信、消费电子、企业和工业市场。
结论
通过集中和定制 HSI 信息,CSRCompiler 的集成 HSI 数据库可为包括架构师、RTL 设计师、验证工程师、软件开发人员和技术撰稿人在内的整个 SoC 开发团队提供服务。因此,它可以简化团队间的协作,这些团队都依赖于正确实施的 HSI 来确保稳健的设计。
CSRCompiler 的灵活设计使其能够将多种输入格式集成到单个源中。所有输入都经过语义和语法正确性验证,确保数据干净、经过验证并可随时使用。其全面的交叉编译器能高效生成所有需要的格式,并防止在地址映射部署过程中出现设计错误,从而确保首次正确输出。此外,它还能在数秒内编译数千个寄存器,在数分钟内编译数百万个寄存器,以极快的性能提高生产率。
CSRCompiler 能够充分利用 SystemRDL 2.0 的优势,确保多个视图和组织之间的一致性,而无需耗时且容易出错的手工脚本撰写和编辑。它为整个设计团队提供了一个完整、正确和最新的寄存器设计生态系统。这种方法最多可将 HSI 开发流程缩短三分之一,从而最大限度地减少挫折感、提高生产率、降低风险并加快产品上市时间。
Insaf Meliane 是 Arteris 的产品管理和营销经理。在加入产品团队之前,她是一名现场应用经理,为客户提供复杂 SoC 设计集成支持。在加入 Arteris 之前,她曾在其他领先的半导体公司担任过设计和应用工程职务。Insaf 拥有法国格勒诺布尔国立高等电子和无线电通信学院的微电子学和系统芯片工程学位。
|