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

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

3天内不再提示

用于调试嵌入式系统软件的硬件仿真

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

扫码添加小助手

加入工程师交流群

在当今竞争激烈的环境中,将富含嵌入式软件的复杂电子设备更快地推向市场,同时使它们更便宜、更可靠是一个非常冒险的提议。

不彻底测试硬件设计不可避免地会导致重新设计,增加设计成本并延长网表到布局过程的交付时间,并最终延迟上市时间,从而对收入流产生破坏性影响。缺少市场窗口的更显着结果隐藏在嵌入式软件的后期测试中。

毫不奇怪,项目周期的验证部分占用了不成比例的大量进度。这是因为跟踪和消除错误并非易事,尤其是当片上系统 (SoC) 的软件内容以每年大约2 0 0 %的速度增长时。相比之下,设计中硬件部分的增长仅为5 0 %左右。

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

虽然虚拟原型和现场可编程门阵列 (FPGA) 原型在早期嵌入式软件测试中受到关注,但它们无法帮助实现软硬件的集成。前者缺乏跟踪硬件错误所需的硬件准确性。后者提供了快速放大错误所需的有限硬件调试功能。

因此,开发团队和项目经理已将硬件仿真作为其验证策略的基础。仿真是一种多功能验证工具,具有许多相关优势,包括硬件/软件协同验证,或测试硬件和软件集成的能力。软件开发人员已经注意到了,因为它是唯一能够确保嵌入式系统软件与底层硬件正常工作的验证工具。同样值得注意的是,对于致力于调试复杂 SoC 设计的硬件工程师来说,它可以将软件错误跟踪到硬件或软件行为中的硬件错误。其他好处包括它的快速编译能力,软件验证的另一个优点,全面的设计调试和可扩展性,以适应包含超过 10 亿个专用集成电路ASIC) 门的设计。此外,它可以高速处理数十亿个验证周期,以验证嵌入式软件和执行系统验证。

过去,硬件调试和测试是项目周期验证部分的唯一原因,这是由硬件描述语言 (HDL) 测试台驱动的逻辑仿真管理的。传统的 big-box 仿真仅用于最大的设计。许多开发团队已采用形式验证来补充模拟,增加基本覆盖范围并确保不会遗漏一些极端情况。然而,只有硬件仿真才能在实际时间内完成 SoC 设计的整个验证任务,并缓解与基于事件的仿真相关的运行时问题。

一切都与软件内容有关

SoC 的软件内容使联合验证成为验证策略中最重要的部分,因为它确认嵌入式 SoC 的硬件和软件部分同时验证并在提交到芯片之前正确交互。

过去,如果设计流片到芯片上后出现硬件问题,软件开发人员必须尽可能地解决如何围绕它编写代码。通过在 SoC 完成之前验证软件,设计团队有机会在硬件问题被安装到芯片之前修复它们。如前所述,仿真检查以确保嵌入式软件根据规范在支持硬件上运行。

过去,软件调试是使用各种调试引擎完成的。每个内核一个,他们利用了硬件功能,这些功能提供了对处理器内部工作的可见性和控制。虽然提供了一些调试功能,但诊断问题的能力受到处理器提供的访问类型的限制。此外,由于传统的软件调试通常发生在实际系统上,因此软件开发人员正在以目标系统速度在真实硬件上执行真实代码。这使他们能够通过大量代码快速找到错误例程。

这些传统技术在调试 SoC 时会失效。因为没有真正的硬件,代码不能以真正的系统速度执行。假设,可以在执行代码时模拟硬件,并且所有硬件可见性都将由模拟器提供。问题在于速度——这是一种调试代码的缓慢方式。

例如,如果 SoC 设计为在 Linux 上运行程序,则软件开发人员必须以数十亿个时钟周期完成 Linux 启动,然后软件才能开始执行。粗略的估计是,使用大约1 0赫兹(Hz) 的典型模拟速度完成Linux引导需要超过2 8 年的时间。

不管是硬件调试还是软件调试,传统的硬件和软件调试工具是互不相识的。对于大型且复杂的 SoC 设计,单独进行两种类型的调试以尝试定位问题是低效的。

让两者一起工作是理想的场景,而这正是仿真节省时间的地方。SoC 硬件在硬件中实现,通常是 FPGA 或其他一些可编程元件,使其速度更快。使用此设置,Linux 启动可以在1 5分钟内完成,具体取决于运行的实际速度。硬件仿真提供与具有断点和波形的硬件调试器类似的控制和可见性。

确认 SoC 设计将按预期工作

硬件仿真以其高性能与其他验证工具区分开来——这是由软件需求驱动的日益重要的需求。它能够确认 SoC 设计将按计划工作,并且适合处理复杂的设计,这些设计可大至 10 亿个 ASIC 等效门,并且每月消耗超过 1 万亿个验证周期。即便如此,在此阶段使用硬件仿真进行彻底和详尽的功能验证仍然是可用的最具成本效益和最有效的调试方法。

交易级建模 (TLM) 的引入和交易者的可用性可以将硬件仿真转变为一系列垂直市场的虚拟平台测试环境。交易者是验证知识产权 (IP) 组合的一部分,是外围功能或协议的高级抽象模型。交易者,通常作为现成的 IP 提供,可用于各种不同的协议。典型目录包括 PCIe、USB、FireWire、以太网、数字视频、RGB、HDMII2CUART 和 JTAG 组件。

更好地验证更复杂的系统

以前,硬件设计独立于要在这些芯片上执行的软件的创建。情况不再如此。由于 SoC 的处理器数量翻了一番,并且每一代产品包含的软件内容增加了一倍,因此对软件的关注成为开发团队和项目经理的首要任务。现在,在开发团队证明预期的软件可以在硬件平台上运行之前,SoC 是不完整的。

SoC 是一个成熟的嵌入式系统,需要硬件仿真来验证它是否正常工作。借助硬件仿真,开发团队可以更有策略地规划并实施基于多个抽象级别的调试方法。他们可以同时跟踪硬件和嵌入式软件之间的错误,以确定问题所在。在此过程中,他们以经济高效的方式节省了时间,大大降低了错过市场窗口的风险。

审核编辑:郭婷

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

    关注

    1664

    文章

    22537

    浏览量

    640176
  • 以太网
    +关注

    关注

    41

    文章

    6250

    浏览量

    181778
  • soc
    soc
    +关注

    关注

    40

    文章

    4647

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式驱动开发,需要掌握哪些技能?

    有经验的老司机都知道,做嵌入式驱动开发需要掌握一系列的技能,包含编程、硬件、操作系统调试等多个方面。 1、硬件知识熟悉原理图:能看
    发表于 01-20 16:46

    什么是嵌入式应用开发?

    设计、实现和部署,还包括硬件选择、软件设计、测试、集成和维护等流程‌。 定义和背景 嵌入式应用开发是指将软件部署到嵌入式
    发表于 01-12 16:13

    嵌入式系统应用热门的原因主要有几个方面

    的内核?简直没有可比性。2. 专用性强。嵌入式系统的个性化很强,其中的软件系统硬件的结合非常紧密,一般要针对
    发表于 01-08 06:37

    系统嵌入式的学习路线

    ,供各位嵌入式初学者参考,希望对大家有所帮助。嵌入式工程师需要掌握的内容非常广泛,主要包括嵌入式软件嵌入式
    发表于 12-16 07:49

    嵌入式系统软件架构通常划分

    嵌入式系统软件架构通常划分如下分层设计: 应用层:环境温度监测、报警触发逻辑。 中间件层:支持MQTT协议的网络通信模块,用于将温度数据上传至云端。 操作
    发表于 12-01 07:20

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

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

    嵌入式与FPGA的区别

    ,一是嵌入式软件开发,主要与嵌入式cao作系统、应用软件等有关。第二是嵌入式
    发表于 11-20 07:12

    嵌入式和FPGA的区别

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

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

    覆盖率达95%的CAN通信模块测试。 监控与调试工具 ‌Monit‌:开源的Linux监控工具,可监测硬件资源和操作系统资源,对宿主机的CPU和内存占用极小,特别适合嵌入式
    发表于 09-28 17:42

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

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

    是德示波器MSOX3052T在嵌入式系统中的应用

    在现代电子系统设计中,嵌入式系统已成为智能设备与物联网的核心。面对日益复杂的硬件架构与软件算法,调试
    的头像 发表于 08-27 17:38 847次阅读
    是德示波器MSOX3052T在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中的应用

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

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

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

    常会遇到各种问题和错误。因此,具备良好的调试和故障排除能力是非常重要的。需要学会使用调试工具和设备,如示波器、逻辑分析仪和仿真器,以便于分析和解决问题。 六、领域知识嵌入式
    发表于 08-06 10:34

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

    、编译和调试嵌入式系统软件。它提供了一个集成的开发环境(IDE),包括代码编辑器、编译器、调试器和仿真器等组件,这些组件可以方便地进行配置和
    发表于 07-03 17:06

    普源示波器MSO5074在嵌入式系统联合调试中的高效实践

    一、引言:嵌入式系统调试的挑战与示波器的必要性 嵌入式系统作为核心控制单元广泛应用于汽车、医疗设
    的头像 发表于 06-20 13:45 929次阅读
    普源示波器MSO5074在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>联合<b class='flag-5'>调试</b>中的高效实践