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

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

3天内不再提示

硬件仿真如何让嵌入式系统便宜可靠?看完懂了~

模拟对话 2018-03-14 17:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在当今竞争激烈的形势下,使富含嵌入式软件的复杂电子设备更快面市,但是同时确保其更便宜更可靠,是一种相当冒险的做法。未经彻底测试的硬件设计不可避免地导致返工,增加设计成本并延长布局流程的网表交付时间,并最终延迟上市时间目标,对收益源造成破坏性影响。

推迟嵌入式软件的测试也潜藏有错过上市机遇的可能,会带来更严重的后果。

正因为如此,项目周期的验证部分极大地占用计划时间变成了很常见的事情。其中的根本原因,在于跟踪和消除错误极为不易,尤其是在片上系统 (SoC) 的软件内容以每年约 200% 的速度增长的情况下。与此相反,设计的硬件部分仅增长约 50%。

硬件仿真作为系统验证的基础

虽然虚拟原型和现场可编程门阵列 (FPGA) 原型在早期嵌入式软件测试上已受到关注,但对于软件和硬件的集成并无助益。前者缺乏追踪硬件错误所需的硬件精确性,而对于尽快消除错误所需的硬件调试,后者能力有限。

因此,开发团队和项目经理已转而采用硬件仿真作为其验证策略的基础。硬件仿真是一种多功能验证工具,有许多相关优势,包括软硬件协同验证或测试硬件和软件集成的功能。它已受到软件开发者的注意,因为这是能够确
嵌入式系统软件通过底层硬件正常工作的唯一验证工具。对于致力于调试复杂 SoC 设计的硬件工程师来说,这也是值得注意的,因为工程师可以凭借该方法追踪硬件内的软件错误或软件行为中的硬件错误。硬件仿真的其他优势包括快速汇编功能、软件验证、全面的设计调试和可扩展性,可满足包括数十亿应用程序特定集成电路 (ASIC) 门的设计。此外,它能够以验证嵌入式软件和执行系统验证必需的高速率来处理数十亿验证周期(图 1)。

过去,硬件调试和测试是项目周期验证
部分的唯一工作,此作业由硬件描述语言 (HDL) 测试平台驱动的逻辑软件仿真进行管理。传统的大箱式硬件仿真只用于最大型的设计。很多开发团队已采用正式验证对软件仿真进行补充,以增加基础覆盖范围并确保不遗漏特殊用例。但是,只有硬件仿真可以在比较可行的时间内完成 SoC 设计的全部验证任务,并缓解与基于事件的软件仿真相关的运行问题。

都是软件内容的问题

SoC 的软件内容使协同验证成为验证策略中一个非常重要的部分,因为它可以在投片前确认一个嵌入式 SoC 的硬件和软件部分同时得到验证且正确交互。

过去,如果设计流片后发生硬件问题,软件开发者必须尽其所能设法围绕问题进行编码。在 SoC 完成之前验证软件,设计团队可以在进入硅片阶段之前解决硬件问题。如前所述,硬件仿真检查用于确保嵌入式软件根据规范在硬件上运行。

过去使用各种调试引擎进行软件调试。每种引擎有一个核心,充分利用硬件对处理器内部工作的可视性和控制功能。虽然提供了部分调试功能,但由于处理器提供的接入方式,诊断问题的能力受限。此外,由于传统软件调试通常发生在实际系统中,软件开发者以目标系统速度在实际硬件上执行实际代码。这样他们可以通过大量代码迅速找到错误的程序。

这些传统技术在调试 SoC 时无效,因为没有实际硬件,无法以真实系统速度执行代码。一般来说,只要执行代码且软件模拟器提供所有硬件可视性,即可仿真硬件。但问题是速度 - 调试代码是很慢的一种方法。

例如:如果 SoC 设计为在 Linux 上运行程序,软件开发者必须以数十亿时钟周期完成 Linux 启动,软件才能开始执行。粗略估计这会以约 10 赫兹 (Hz) 的典型软件仿真速度花费 28 年以上完成 Linux 启动。


不管调试硬件还是软件,传统硬件和软件调试工具都无法得知彼此的任何情况。如果采用复杂的大型 SoC 设计,尝试找到问题时独立完成两种调试是效率低下的。

两者结合是最为理想的方法,这样硬件仿真就可以节约时间。SoC 硬件通常在 FPGA 或其他可编程器件中实施,速度更快。在此设置中,根据运行速度,最快可以 15 分钟的速度完成 Linux 启动。硬件仿真可提供与硬件调试器相似的断点和波形控制及可视性。

确认 SoC 设计按预期工作

硬件仿真以其高性能(这是软件需求推动的越来越重要的需求)在一众验证工具中脱颖而出。它能够确认 SoC 设计按计划工作,并适于处理大到十亿 ASIC 等效门的复杂设计,且每月可完成超过一万亿验证周期。即使是这样,现阶段使用硬件仿真进行彻底详尽的功能验证仍然是可用的最具成本效益且有效的调试方法(图 2)。

引入事务级建模 (TLM) 和事务处理器可用性可将硬件仿真转为一系列垂直市场的虚拟平台测试环境。事务处理器作为验证知识产权 (IP) 组合的一部分,是外设功能或协议的一种高级抽象模型。事务处理器通常作为现成 IP 提供,可用于各种不同的协议。典型的事务处理器通常包括 PCIe、USB、FireWire、Ethernet、Digital Video、RGB、HDMII2CUART 和 JTAG 器件。

更好验证更多的复杂系统

先前,硬件设计独立于要在芯片上执行的软件的开发。但今非昔比,由于 SoC处理器数量翻倍且每代产品包含两倍的软件内容,软件问题成为开发团队和项目经理优先考虑的对象。现在,开发团队证实预期软件在硬件平台正常工作后,SoC 才算完整。

SoC 是一个全面的嵌入式系统,需要进行硬件仿真来验证其能否正常工作。通过硬件仿真,开发团队可以更策略性地进行计划,并根据多个抽象层面实施调试方法。他们可以同时在硬件和嵌入式软件之间追踪错误,确定问题所在。通过具有更高性价比且有效的方式,他们在这个过程中节约了时间,大幅降低错过上市机遇的风险。

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

    关注

    41

    文章

    3716

    浏览量

    133070
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227554
  • 硬件仿真
    +关注

    关注

    1

    文章

    31

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式硬件设计解析

    ,及时将新技术、新元件应用到系统中,提高系统的性能和竞争力。 成本优化:在保证性能和可靠性的前提下,通过优化设计、选择性价比更高的元件等方式降低成本,提高产品的市场竞争力。 七、总结与展望
    发表于 12-02 08:22

    嵌入式系统的定义和应用领域

    。尽管有些嵌入式系统可能包含操作系统,但大多数情况下,它们仅由一个程序来控制整个逻辑。 从更专业的角度来看,嵌入式系统可以被定义为:以应用
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    嵌入式开发的关键点: 1. 硬件限制: 嵌入式系统通常具有严格的硬件限制,例如处理器速度、内存和存储容量等。因此,
    发表于 11-13 08:12

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们在资源利用、可靠性、可预测性、任务调度和中断
    发表于 11-13 06:30

    油介质损耗及电阻率测试仪的嵌入式系统架构与抗干扰设计

    油介质损耗及电阻率测试仪的精准检测能力,不仅依赖于核心的电气测量模块与温控系统,更离不开稳定可靠嵌入式系统作为“中枢神经”。嵌入式
    的头像 发表于 09-02 13:57 351次阅读
    油介质损耗及电阻率测试仪的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>架构与抗干扰设计

    入行嵌入式应该怎么准备?

    想入行嵌入式该怎么准备。很能理解大家对于嵌入式的关注,嵌入式系统是当今科技领域中的重要组成部分,它存在于我们生活的方方面面,各行各业。智能化时代的到来也
    发表于 08-06 10:34

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

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

    【深度解析】硬件电路设计:如何确保嵌入式数据可靠性?

    嵌入式系统开发中,硬件电路设计是确保数据可靠性的关键环节。本期我们将重点探讨硬件设计中的两个重要方面:数据读写保护和掉电保护。
    的头像 发表于 07-30 11:35 531次阅读
    【深度解析】<b class='flag-5'>硬件</b>电路设计:如何确保<b class='flag-5'>嵌入式</b>数据<b class='flag-5'>可靠</b>性?

    【技术指南】提升嵌入式数据可靠性,从元器件选型开始!

    数据可靠性是嵌入式产品开发中的关键问题,涉及多个层面的设计和选型。从本期开始,我们将通过一系列内容深入探讨嵌入式数据存储的可靠性问题。前言数据可靠
    的头像 发表于 07-29 11:35 278次阅读
    【技术指南】提升<b class='flag-5'>嵌入式</b>数据<b class='flag-5'>可靠</b>性,从元器件选型开始!

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

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

    可靠嵌入式主板设计

    设计直接影响整个系统的稳定性和寿命。因此,设计高可靠性的嵌入式主板不仅是技术挑战,也是提高产品竞争力的关键因素。本文将深入探讨高可靠嵌入式
    的头像 发表于 03-25 15:11 807次阅读
    高<b class='flag-5'>可靠</b>性<b class='flag-5'>嵌入式</b>主板设计

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

    嵌入式代码的质量是至关重要的。本文将探讨如何通过有效的开发方法和工具来提高嵌入式代码的质量,以确保系统可靠性和可维护性。 理解嵌入式
    发表于 01-15 10:48

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发和调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要熟练掌握这些开发工具,才能在嵌入式系统开发的
    发表于 12-20 15:29

    新手怎么学嵌入式?

    操作系统示例。 学习嵌入式技术是一个充满挑战但又极具乐趣的过程。对于新手来说,只要有耐心和恒心,按照上述步骤逐步学习,从基础知识到编程语言,从硬件知识到实践操作,再到嵌入式操作
    发表于 12-12 10:51

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

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常
    的头像 发表于 12-09 09:38 1463次阅读