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

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

3天内不再提示

使用软件查找硬件错误

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

扫码添加小助手

加入工程师交流群

有一个基本的自然法则适用于任何计算芯片,无论是处理器微控制器还是片上系统:软件总是会发现硬件错误。在我的整个职业生涯中,我参与过的项目中没有一个被证明是正确的。

如果你很不幸,在你制作芯片后软件发现了一个错误,那么接下来会发生什么取决于问题的严重程度。

如果它不是致命的,并且如果你很幸运并且像一些知名处理器制造商那样拥有市场力量,那么每个人都会围绕这个 bug 编写代码,然后所有未来的版本都必须复制这个 bug 以实现向后兼容性。这不适用于我们大多数人。更倾向于:

您可能必须删除不起作用的功能。

功率可能太高,或性能太慢,损害您的竞争力和获得好价格的能力。

在最坏的情况下,您可能不得不花费大量时间并旋转另一套面具。额外的延误和费用。

最好的解决方案是在您投入芯片之前运行该软件并捕获这些错误。您将同时验证软件和硬件。但是怎么做呢?

模拟软件非常慢。我们说的是几年。除了琐碎的代码之外,根本不是一个选项。

相比之下,仿真被证明是解决这个问题的关键工具。您可以在模拟器上实例化硬件,然后让它在合理的时间范围内运行实际代码。也许不是真正的系统速度,但足够快以使其成为可行的解决方案。

但是,假设您要找到问题,您必须能够追踪这些问题的原因,而调试部分在历史上一直是问题所在。事实上,许多工程师一直不愿意使用仿真,因为在过去,访问内部处理器状态的唯一途径是通过 JTAG。仿真器以几 MHz 的时钟速度运行;仿真器上的 JTAG 只运行其中的一小部分。

那么,例如,如果你想单步执行指令?这意味着通过 JTAG 传输大约 400 万个低级位。在仿真器上以 1 MHz 完成,这将需要 4 秒非常昂贵的实时仿真器时间。

而且,更糟糕的是,它是侵入性的:在这 4 秒内,时钟正在走动。处理器状态将保持不变,但处理器之外的世界将继续。如果您只是在调试处理器代码,这可以工作(即使速度很慢)。但是,如果您尝试调试与非处理器硬件的交互,这将变得非常困难,因为在您完成该单个步骤时,处理器之外的所有内容都已更改状态。

由于仿真器上的 JTAG 既缓慢又具有侵入性,调试——尤其是与性能和同步相关的问题——变得非常令人沮丧。因此,考虑到这一点,仿真在过去并不是首选解决方案——阻力仍然存在。

今天的模拟器调试速度很快

但是时代和模拟器已经改变。Mentor 有一种单独的方法来捕获不依赖于 JTAG 的处理器状态,因此它可以快速发生 - 在 40-50 MHz 范围内。这可能比 FPGA 原型上的 JTAG 更快。数据被馈送到我们的 CoModel 主机,状态历史可以在其中存储和重新创建,一个周期一个周期。

鉴于已存储的跟踪,您现在可以针对该跟踪重放任何有问题的软件,它将遵循系统状态,以便您可以看到哪里出了问题。可以单步执行;您可以探测寄存器和内存;你可以看公交车。一切都没有入侵:您的调试工作不会改变系统状态。这一切都可以离线完成——您无需使用实时仿真器,这使其更具成本效益。

因此,关于软件调试在模拟器上是否实用的历史担忧不再适用。您可以在流片前彻底使用您的计算平台。软件开发人员可以在芯片可用甚至 FPGA 原型可用之前很久就开始软件开发。可用于调试的工具旨在为软件工程师所熟悉——即使您最终发现了硬件错误。

行使部分系统

我们要解决的下一个挑战是影响单个 IP 块的开发人员,这些 IP 块最终将成为整个系统的一部分。今天的问题是,在完全系统集成之前,你真的不能用真正的软件运行你的块,因为系统需要你的部分和所有其他部分才能工作。因此,即使您提前完成了块设计,也是“快点等待”。

在 Mentor,我们正在开发一个测试平台增强功能,它将提供计算平台的关键部分。鉴于 ARM 的流行,我们将从 ARM 架构和与 ARM 相关的总线开始。处理器将覆盖 AndroidLinux。这将让您在仿真器上实现您的模块,并在完整系统设计可用之前将其“插入”抽象环境,让您在验​​证方面领先一步。

总之,您必须在生成掩码之前运行软件,以证明您的计算硬件是正确的。仿真是做到这一点的唯一现实方法,而目前 Mentor 的 Veloce 仿真器上提供的工具使其成为非常实用、高效的练习。您可以用最少的实时仿真时间快速调试您的软件和硬件。而且,在不久的将来,您将能够在完全系统集成之前在 IP 块上运行和调试该软件。

您可以更早地编写软件,并且可以更快地验证您的硬件。所有这些都使得您在真正的硅片中发现这些硬件错误的可能性大大降低。

审核编辑:郭婷

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

    关注

    68

    文章

    20329

    浏览量

    254834
  • Android
    +关注

    关注

    12

    文章

    4035

    浏览量

    134470
  • Linux
    +关注

    关注

    88

    文章

    11814

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    错误防护:自动驾驶系统迈向高阶自动化的必答题?

    问题。本文从系统性文献综述视角,全面梳理软错误在自动驾驶感知、决策与执行环节的传播机理,深入剖析硬件级、软件算法级及系统架构级三类防护技术的研究现状与发展趋势,详细阐述基于ISO 26262功能安全标准的量化评估方法及产
    的头像 发表于 01-05 00:07 746次阅读

    探索TLE4999线性霍尔评估套件:从硬件软件的全方位解析

    探索TLE4999线性霍尔评估套件:从硬件软件的全方位解析 在电子工程师的日常工作中,评估套件是验证和开发传感器应用的重要工具。今天,我们就来深入探讨一下TLE4999线性霍尔评估套件,从硬件组成
    的头像 发表于 12-18 15:45 846次阅读

    智能双卡设计实战指南:硬件电路与软件配置详解!

    在智能双卡设计中,硬件电路的可靠性与软件配置的精准性直接决定双卡功能的稳定性。本文基于实际项目经验,详细拆解硬件设计中SIM卡供电电路、时钟信号匹配及卡槽复用设计的实现细节,并同步讲解软件
    的头像 发表于 12-16 15:13 643次阅读
    智能双卡设计实战指南:<b class='flag-5'>硬件</b>电路与<b class='flag-5'>软件</b>配置详解!

    ADC模数转换实战:硬件设计与软件开发要点指南!

    为实现高精度、高稳定性的ADC模数转换,硬件软件设计均需遵循特定原则。硬件层面需优化信号调理、参考电压及抗干扰设计;软件层面需合理配置采样参数、实现数据滤波及异常处理。本文将结合实际
    的头像 发表于 12-16 13:25 564次阅读
    ADC模数转换实战:<b class='flag-5'>硬件</b>设计与<b class='flag-5'>软件</b>开发要点指南!

    芯源的CRC硬件计算谁用过吗?MCU的CRC你们喜欢用硬件的还是软件的啊?

    芯源的CRC硬件计算谁用过吗?MCU的CRC你们喜欢用硬件的还是软件的啊?
    发表于 12-01 08:25

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

    的使用,以便在开发计算机上编译出能在目标硬件上运行的程序。 熟悉调试器的使用,能够进行软件的断点调试、单步执行、变量查看等。 7、系统分析与设计 能够进行项目需求分析,将需求转化为软件功能需求。 掌握
    发表于 11-28 07:48

    广凌智慧教室建设内容:硬件软件介绍

    广凌科技(广凌股份)凭借“硬件+平台+数据”的深度融合,推出智慧教室整体解决方案,全面覆盖智慧教室建设的硬件配置、软件平台、数据驱动及场景适配需求,一起来看看广凌智慧教室建设需要搭建什么硬件
    的头像 发表于 11-11 16:17 1444次阅读
    广凌智慧教室建设内容:<b class='flag-5'>硬件</b>与<b class='flag-5'>软件</b>介绍

    硬件融合拼接器与软件融合拼接的区别?

    硬件融合拼接器和软件融合拼接是两种不同的图像拼接技术,它们在实现方式、效果和应用场景等方面存在一些区别。 1、实现方式 硬件融合拼接器通常是通过硬件设备来实现图像的拼接,这种设备通常由
    的头像 发表于 09-28 14:33 637次阅读

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

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

    电动工具EMC测试整改:硬件软件的成本减半秘诀

    深圳南柯电子|电动工具EMC测试整改:硬件软件的成本减半秘诀
    的头像 发表于 08-20 11:06 1103次阅读

    发电机控制器EMC整改:硬件+软件双维度的整改方案

    深圳南柯电子|发电机控制器EMC整改:硬件+软件双维度的整改方案
    的头像 发表于 07-28 10:59 679次阅读

    请问中断过多的时候进入硬件错误如何处置?

    中断过多的时候进入硬件错误如何处置?是加看门狗还是加硬件错误处理?
    发表于 07-21 06:11

    老旧工控机升级策略:硬件迭代与软件兼容性的平衡之道

    在工业自动化领域,老旧工控机的升级是一个常见且具有挑战性的任务。随着技术的不断进步,硬件性能的提升成为必然需求,但与此同时,软件兼容性问题却常常成为升级过程中的绊脚石。如何在硬件迭代的同时确保
    的头像 发表于 05-29 16:05 1489次阅读

    硬件辅助验证(HAV) 对软件验证的价值

    硬件辅助验证 (HAV) 有着悠久的历史,如今作为软件驱动验证的必备技术,再度受到关注。 RISC-V 可能是说明这一点的最好例子。HAV 能够执行多个周期的软件驱动验证,是加速 RISC-V
    的头像 发表于 05-13 18:21 2201次阅读

    如何验证CAN控制器的错误响应机制?

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制器的错误管理机制的工作原理。本文将基于其工作原理及ISO16845-1:2016标准,为大家介绍
    的头像 发表于 04-30 18:24 1017次阅读
    如何验证CAN控制器的<b class='flag-5'>错误</b>响应机制?