0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式软件驱动的硬件验证

星星科技指导员 来源:嵌入式计算设计 作者:Frank Schirrmeister 2022-06-14 15:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

另一组片上系统验证方法依赖于使用经过验证的硅片、新的和未经测试(可能尚不可用)硅片的虚拟原型以及 FPGA 原型在硬件上执行实际软件。正如我们从这个角度看到的那样,有时会使用所有三种方法。

据最佳估计,90 nm 芯片设计背后的软件开发工作已经超过了硬件开发工作。对 2011 年的预测是,不到 40% 的整体芯片开发成本将用于硬件。软件现在主导着项目周期,并决定了芯片何时可以投入批量生产。结果,软件验证的重要性增加了,软件在硬件验证过程中扮演了不可或缺的角色。

将硬件和软件结合在一起

今天,工程师使用三种基本技术在硬件表示上执行软件。在衍生设计中,部分软件可以使用上一代芯片进行开发。这种方法通常最适用于分层软件架构中较高的软件部分,特别是对于独立于硬件的应用程序。

虚拟原型提供了设计周期中最早的解决方案,因为它们可以在架构确定后立即实施。这些原型是片上系统 (SoC)、电路板、I/O 和用户界面的预寄存器传输级别 (RTL)、寄存器精确和功能齐全的软件模型。它们执行未经修改的生产代码,并使用 USB 等外部接口作为虚拟 I/O 近乎实时地运行。

因为虚拟原型本质上是软件,所以它们提供了高度的系统可见性和控制,包括多核调试。它们还可以作为半导体和系统制造商之间协作的工具。自 Open SystemC Initiative Transaction Level Model (TLM) 2.0 API 标准化以来,SystemC 已成为使用可互操作的事务级模型开发快速虚拟原型的合适基础设施。

在 RTL 完成并使用功能验证技术达到稳定状态后,可以使用 FPGA 原型。原型是 SoC、电路板和 I/O 实现未修改的 ASIC RTL 代码的硅前、功能齐全的硬件表示。经过优化实施,它们可以在连接外部接口和激励的情况下几乎实时运行,并结合 RTL 仿真提供比实际芯片更高的系统可见性和控制。与传统的硬件/软件覆盖相比,FPGA 原型提供了更高的速度水平,后者将 RTL 仿真与周期精确的处理器模型相结合。

根据所需的准确性、速度和所需的可用时间,不同的技术为软件开发和软件驱动的硬件验证提供最合适的解决方案。混合产品通常允许设计人员利用多种产品的优势。例如,可以通过处理器和外围设备的快速事务级模型来增强 RTL 仿真,以提高仿真速度和验证覆盖率。或者,在混合使用模式下处理设计问题的虚拟原型和 FPGA 原型结合了基于软件和硬件的执行,提供了比单独产品更好的解决方案。

从实际项目中学习

为了更好地理解这个问题,Synopsys 和 International Business Strategies 分析了包括复杂硬件和软件在内的 12 个项目的项目工作量和经过的时间。图 1 显示了分析的 12 个项目的示例。上半部分显示了不同开发阶段的时间线;底部显示了每个阶段的总体项目工作量的百分比。

图 1:在对 12 个项目的分析中,RTL 验证占用了 21% 的硬件/软件开发工作量。

poYBAGKoN4SAe7SdAAJudbYtL-U173.png

RTL 验证平均占整体硬件/软件工作量的 21%,或仅硬件工作量的 38%。此外,RTL 验证消耗了从需求到 GDSII 所用时间的大约 55%。验证在流片的整个流程中以不同的变体继续进行,而且在 IP 认证上花费的大部分精力也可以被认为是另一种形式的验证。因此,验证很容易达到硬件开发中经常提到的 70% 的数字。

从硬件从规范到流片的开发时间来看,移植操作系统平均需要大约三分之一的时间,开发实用软件大约需要一半时间,三分之二的时间用于移植操作系统。开发应用软件。在工程样品可用时开始软件开发的全系列开发过程将使项目进度再增加半年到四分之三的时间。除非项目是并行开发的,否则软件开发会延迟大量交付硬件的能力。

虽然在项目开始后从需求到流片有 17% 的时间可以使用稳定的规范(虚拟原型的先决条件),但从需求到流片需要将近 70% 的时间才能达到稳定的 RTL(先决条件)用于硬件原型。虚拟和硬件原型在非常不同的时间可用,因此适用于非常不同的开发阶段。

提高验证效率

如果在 SoC 设计周期的早期提供虚拟原型用于软件开发,它可以不断发展以满足不同的需求。软件驱动验证的三种主要使用模型在 RTL 中利用虚拟原型与信号级仿真的集成:

1. 当一个 RTL 块可用时,它可以在虚拟原型中替换它的 TLM。然后可以在此版本的原型上验证软件,作为验证硬件和软件的一种方式。知道使用了真实的系统场景会增加验证的信心。此外,鉴于尽可能多的系统在事务级别进行模拟,验证的模拟速度更快。

2. 虚拟原型还可以作为运行实际系统软件的测试台组件,为 RTL 验证测试台开发和硅后验证测试提供先机。虚拟原型可用于生成系统激励来测试 RTL,然后验证虚拟原型和 RTL 功能是否相同。用户可以在TLM嵌入式定向软件测试上进行高效开发,也可以用于系统集成测试。结果,验证测试用例开发的生产力提高了。

3. 由于虚拟原型的某些部分被验证为等同于它们相应的 RTL,虚拟原型可以成为参考可执行规范。因此,用户获得了针对事务级别和 RTL 的单一黄金测试平台。

图 2 显示了 Synopsys Innovator 虚拟原型开发环境中的 USB On-The-Go 示例和分别使用事务级处理器模型和嵌入式软件的 USB 验证环境。

图 2:在 USB 验证环境中,事务级处理器模型通过 USB 连接到 RTL。

poYBAGKoN46AOn-nAAPhXJM6Rrk850.png

即使在项目开始时没有虚拟原型,硬件组件的虚拟化也可以帮助从 RTL 验证环境开始逐步提高验证效率。

在事务级别用虚拟处理器模型替换系统中片上处理器的 RTL 表示可以显着提高仿真速度,从而缩短验证周转时间。在几个客户示例中,更换单个处理器模型将仿真速度提高了 32 倍。

为了在功能 RTL 验证中加入软件驱动程序以执行实际产品测试用例,只需对适当的子系统进行建模并将其连接到 RTL 仿真。这可以像从库中添加事务级处理器模型一样简单,通过简单的总线模型将其连接到正在验证的外设的 TLM,然后将其连接到 RTL,如图 2 所示。

混合原型

为了通过提高仿真速度和系统中嵌入式软件的执行来进一步提高验证效率,可以使用硬件原型。鉴于虚拟原型和硬件原型在项目的根本不同阶段都可用,混合原型提供了一个可行的解决方案,让开发人员可以利用这两个世界的优势。

虽然虚拟原型在设计流程的早期就可用——通常仅在规范稳定后几周——它们通常并不代表 FPGA 原型可以展示的完整实现细节。相比之下,FPGA 原型在相当高的速度下运行完全准确,但在设计流程的后期可用,尽管在硅片从生产中返回之前还很长时间。

图 3 显示了混合 TLM 和硬件原型的原理图。几种混合使用模型结合了虚拟原型和 FPGA 原型的优点,包括重用实际 RTL 而不是重新建模和加速硬件和软件的整体执行。

图 3:虚拟原型和 FPGA 原型的混合使用模型结合了虚拟原型和 FPGA 原型的优点。

poYBAGKoN52AOkMVAAPApSgwAuE373.png

未来更智能的验证

由于验证对项目工作和时间表以及软件对项目成功的影响越来越大,考虑到嵌入式软件的智能验证变得越来越重要。

使用虚拟原型,无论是自下而上的 RTL 验证,还是自上而下的虚拟原型验证,都可以逐步提高验证效率。通过使用处理器和外围设备的虚拟化事务级模型增强传统 RTL 仿真,可以提高验证效率。这提高了仿真速度,并允许直接执行 TLM 参考模型作为测试台的一部分。在自上而下的流程中,可以通过重用现有的虚拟原型及其模型来提高验证效率,这可以通过简单地将正在验证的 RTL 替换为 TLM 直到 RTL 可用,从而为验证场景开发提供先机。虚拟原型随后成为 RTL 验证的参考。

虚拟原型和 FPGA 原型的混合以及 RTL 仿真和事务级模型的混合允许开发人员利用各个解决方案的综合优势。对验证效率的直接影响很大程度上源于更快的模拟执行,这反过来又可以加快验证周转速度。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20148

    浏览量

    247146
  • FPGA
    +关注

    关注

    1655

    文章

    22286

    浏览量

    630296
  • 嵌入式
    +关注

    关注

    5186

    文章

    20148

    浏览量

    328841
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32嵌入式软件开发的必备知识

    嵌入式系统中最常用的编程语言,因为它们提供了直接访问硬件的能力,并且代码执行效率高。 了解汇编语言,用于编写底层驱动、中断处理程序以及性能要求极高的代码段。 对其他编程语言如Python、Java等有
    发表于 11-28 07:48

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平
    发表于 11-19 06:55

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,以满足不
    发表于 11-13 08:12

    嵌入式软件测试与专业测试工具的必要性深度解析

    MSO‌:提供电源完整性测试、时序分析、数字信号验证硬件调试功能,以及中断处理分析、代码执行流程跟踪等软件调试能力。 测试工具选型建议选择嵌入式
    发表于 09-28 17:42

    硬件工程师和嵌入式软件哪个更有前途?

    不少人琢磨硬件工程师和嵌入式软件到底哪个更有前途,其实从实际职场情况和成长路子看,差别还挺清楚的。先说说天花板这事,一般来讲,硬件工程师的职业天花板还真比
    的头像 发表于 09-10 10:43 790次阅读

    AMD 2025.1版嵌入式软件和工具的新增功能

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1031次阅读

    【干货速递】嵌入式数据可靠性,软件设计的这些细节不能忽视!

    前两期内容分别讲述了嵌入式数据可靠性的元器件选型和硬件设计,这一期我们来讲讲软件设计。哪怕硬件设计再完善,但如果软件没有设计好,也达不到预期
    的头像 发表于 07-31 11:34 366次阅读
    【干货速递】<b class='flag-5'>嵌入式</b>数据可靠性,<b class='flag-5'>软件</b>设计的这些细节不能忽视!

    嵌入式软件开发常用的软件有哪些?

    软件功能。 2. Visual Studio 简称VS: 它是一个IDE,集成开发环境。验证C程序或是进行c#程序开发,可以用它。一些与嵌入式相关的模拟器也是基于VS的。帮助开发人员更稳定,更有
    发表于 07-03 17:06

    Linux嵌入式和单片机嵌入式的区别?

    :使用Linux操作系统,可以运行各种复杂的应用程序和驱动程序。 4. 资源需求 : 单片机嵌入式 :对硬件资源的需求较低,通常只需要一个单片机芯片,内存和存储空间较小。 Linux嵌入
    发表于 06-20 09:46

    嵌入式开发入门指南:从零开始学习嵌入式

    开发(设备驱动、内核编译) 4. 推荐的学习资源书籍:《嵌入式系统软件设计基础》《ARM Cortex-M系列嵌入式开发》在线课程:慕课网、B站嵌入
    发表于 05-15 09:29

    嵌入式软件行业增长驱动因素

    嵌入式软件在物联网应用中至关重要,因为它管理设备操作、控制传感器、支持连接并确保数据安全。例如,在智能家居中,恒温器、安全摄像头和灯光等设备使用嵌入式系统独立运行,并通过云平台或本地网络与其他智能
    的头像 发表于 05-09 11:26 665次阅读

    如何成为一名嵌入式软件工程师?

    RTOS的编程和使用对于提升嵌入式软件的实时性和稳定性至关重要。 开发环境:熟悉Keil、IAR、Eclipse等集成开发环境,以及JTAG、GDB等调试工具。 2)硬件接口与驱动
    发表于 04-15 14:37

    嵌入式软件单元测试的必要性、核心方法及工具深度解析

    一、为什么嵌入式软件必须重视单元测试? ‌嵌入式系统的特殊性‌ 在汽车 ECU、医疗设备控制器等场景中,软件直接操控硬件,‌单比特错误可能导
    的头像 发表于 03-21 14:53 958次阅读

    如何提高嵌入式代码质量?

    的情况下也必须保持稳定的性能。 3. 硬件依赖:嵌入式软件紧密依赖硬件平台,需要充分理解硬件特性才能编写高效且稳定的代码。 了解这些特点有助
    发表于 01-15 10:48

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备中。这些系统的关键特点是它们与硬件的紧密集成
    的头像 发表于 12-09 09:38 1467次阅读