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

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

3天内不再提示

多级调试方法的硬件仿真

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

扫码添加小助手

加入工程师交流群

芯片设计调试是一门困难的学科,而片上系统 (SoC) 设计则更是如此。这就像众所周知的大海捞针。对于 SoC 设计,它是两个大海捞针,一个用于软件,另一个用于硬件。软件开发团队经常将集体矛头指向硬件团队,声称这是一个硬件错误,而硬件团队则迅速回击,声称这是一个软件错误。如果没有有效的验证工具来查明问题,就很难知道谁是对的。这就是硬件仿真的用武之地。

硬件仿真对于调试硬件和测试 SoC 设计中硬件和软件的集成非常重要,远远早于第一个芯片。当工程组的两个不同部分(硬件设计师和软件开发人员)使用仿真时,他们能够共享相同的系统和设计表示。SoC 设计的组合软件和硬件视图使它们能够协同工作以调试硬件和软件交互。

作为大多数 SoC 验证流程的基础,硬件仿真允许工程团队更有策略地进行规划并实施基于多个抽象级别的调试方法。工程团队不必彼此独立地钻进两个干草堆。相反,他们可以跨嵌入式软件和底层硬件之间的边界跟踪错误,以确定问题出在软件还是硬件上。

实现基于多个抽象级别的调试方法从最高级别的嵌入式软件开始,然后在抽象级别向下移动以跟踪各个硬件元素的行为。事实上,从包含数十亿个时钟周期的数据库开始,软件调试器可以将问题定位到几百万个时钟周期内。在这个级别,软件开发人员可以识别软件代码中的源代码,或者他们的硬件设计同行可以使用软件感知硬件调试方法来专注于较低的抽象级别。该方法要求通过硬件事务器实现监视器、检查器和断言,以避免速度下降并帮助将问题缩小到几千个周期。

一旦审查了这两个级别收集的数据,硬件仿真允许工程组向下移动到信号级别。它可以通过所识别时间段的寄存器传输电平(RTL)波形分析信息,并追踪其可能的来源。要么发现了硬件错误,要么清除了硬件故障。如果是后者,它会迫使决定回到软件环境。

导航多个级别的调试抽象

在不同的抽象级别之间导航——从软件到硬件再到后面——避免了长时间的模拟运行和大量的详细数据(图 1)。

poYBAGKukNOAJ0WjAAJYn70M568353.png

【图1 | 硬件仿真为软件和硬件调试提供了一个生态系统。]

软件模拟器无法实现多级调试方法,因为它们太慢而无法有效执行嵌入式软件。实际上,它们将运行数月来处理数十亿个设计周期,这些设计的大小达到数亿个专用集成电路ASIC) 等效门。对于消费电子设备或任何其他电子设备的供应商来说,这是一个不可接受的时间限制。

虽然仍然被广泛使用,但在验证场景中推动其成功的原始仿真风格的在线仿真 (ICE) 模式现在在基于事务的验证中面临着可行的替代方案。从概念上讲,这个想法很简单。测试是在高级抽象上编写的,从高级命令到位级信号的转换从测试台转移到称为事务器的专用实体中。通过将事务处理器映射到硬件仿真器上,与基于仿真的验证相比,可以轻松实现 5 或 6 个数量级的加速。

工程组使用事务处理程序来构建虚拟测试环境,而不是 ICE 物理目标系统,方法是用一组等效的事务处理程序替换一组基于 I/O 协议的速度适配器(图 2)。

pYYBAGKukNuAc0UYAAK6HACnCmE557.png

【图2 | 一个完整的虚拟测试环境包括通过事务建模的所有 SoC 外围接口。]

基于事务的加速简化了设计调试。通过完全控制并非由硬件测试台提供的设计时钟,调试变得更加容易和高效。通过控制时钟频率,可以停止仿真的被测设计 (DUT) 模型、读取其内存内容、强制某些寄存器或转储波形。

传统上,在 ICE 环境中调试需要由来自目标系统的不可控时钟驱动的硬件逻辑分析仪。该设置导致了不确定的行为并损害了调试 DUT 的能力。硬件仿真供应商最近通过将其转换为确定性行为的方法解决了 ICE 外围设备的随机行为。

多层次的协同验证视角

一旦软件设计人员和硬件开发人员使用硬件仿真体验了基于事务的验证,他们的整个验证视角就会发生变化。无需繁琐的 ICE 硬件即可快速设置强大的测试环境的能力意味着更容易和更有效的调试。目标可能是相同的——在更短的时间内做出更好的设计——但现在的体验可能会变得不那么具有挑战性。

工程团队发现现代硬件仿真器是测试硬件和在 SoC 设计中集成硬件和软件的必要条件。它使他们能够更有策略地进行规划并成功实施硬件/软件联合验证。

审核编辑:郭婷

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

    关注

    31

    文章

    5588

    浏览量

    129035
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227554
  • 仿真器
    +关注

    关注

    14

    文章

    1048

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机系统硬件调试方法

    单片机的系统硬件调试,通常有静态调试和动态调试两种不同,前者是通过目测、万能表测试、加电检查、联机检查的方法,在加电于样机之前.对样机的型号
    发表于 12-03 06:10

    利用 NucleiStudio IDE 和 vivado 进行软硬件联合仿真

    ,使用NucleiStudio IDE 和 vivado对蜂鸟E203+demo协处理器的软硬件协同仿真实验已经完成。根据以上步骤可以方便地对E203 SoC进行软硬件仿真
    发表于 11-05 13:56

    Vivado仿真之后没有出现仿真结果的解决方法

    ;Run Behavioral Simulation之后,会出现如下图界面,此时,在Tcl Console中并没有出现仿真结果。 没有出现仿真结果的原因是没有给Vivado时间进行仿真,解决
    发表于 10-31 06:24

    如何使用CMSIS DAP仿真调试,通过NucleiStudio调试蜂鸟SOC

    如标题所示,我们分享如何使用CMSIS DAP仿真调试,通过NucleiStudio调试蜂鸟SOC 我们先介绍一下CMSIS DAP仿真器: 他的功能如下: 可以看到,它支持JT
    发表于 10-21 12:05

    AMD Vivado ChipScope助力硬件调试

    许多硬件问题只有在整个集成系统实时运行的过程中才会显现出来。AMD Vivado ChipScope 提供了一套完整的调试流程,可在系统运行期间最大限度提升对可编程逻辑的观测能力,助力设计调试
    的头像 发表于 09-05 17:08 898次阅读

    keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序怎么解决?

    keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?烧录器用的是jlink
    发表于 07-18 06:08

    硬件调试:JLink 驱动配置与调试技巧

    摘要: 本文深入探讨了 JLink 调试器在嵌入式系统硬件调试中的应用,详细阐述了 JLink 驱动配置的方法以及硬件
    的头像 发表于 06-12 23:20 1259次阅读
    <b class='flag-5'>硬件</b><b class='flag-5'>调试</b>:JLink 驱动配置与<b class='flag-5'>调试</b>技巧

    第三章 仿真器介绍

    本篇文章我们介绍了W55MH32板载的WIZ-Link仿真器的使用方法,让我们一起插上USB线开始下载、调试程序吧!
    的头像 发表于 05-21 11:54 716次阅读
    第三章 <b class='flag-5'>仿真</b>器介绍

    如何解决Air780EPM开发中的调试难题?深度解析高效调试方法

    在Air780EPM项目开发中,调试效率往往直接影响进度。面对代码报错、逻辑漏洞等常见痛点,开发者亟需一套系统化的方法论。本文将揭秘实战中验证的调试技巧,助您快速定位问题并优化代码流程。
    的头像 发表于 05-17 10:46 543次阅读
    如何解决Air780EPM开发中的<b class='flag-5'>调试</b>难题?深度解析高效<b class='flag-5'>调试</b><b class='flag-5'>方法</b>

    多级放大电路的学习课件免费下载

    本文档的主要内容详细介绍的是多级放大电路的学习课件免费下载包括了:多级放大电路的耦合方式,多级放大电路的电压放大倍数和输入、输出电阻
    发表于 04-11 16:39 22次下载

    大规模硬件仿真系统的编译挑战

    引言随着集成电路设计复杂度的不断提升,硬件仿真系统在现代芯片设计流程中扮演着越来越重要的角色。基于FPGA(现场可编程门阵列)的商用硬件仿真系统因其灵活性、全自动化、高性能和可重构性,
    的头像 发表于 03-31 16:11 1222次阅读
    大规模<b class='flag-5'>硬件</b><b class='flag-5'>仿真</b>系统的编译挑战

    光纤放大器传感器调试方法

    光纤放大器传感器的调试方法,涵盖硬件检查、光纤调整、参数设置及性能测试等关键环节。 一、硬件检查 在对光纤放大器传感器进行调试之前,首要任务
    的头像 发表于 03-06 11:41 3764次阅读
    光纤放大器传感器<b class='flag-5'>调试</b><b class='flag-5'>方法</b>

    利用云主机快速开发MQTT客户端仿真硬件上云IoTDA

    本项目的目标不仅仅是为开发者提供一个调试工具,更重要的是通过仿真硬件的方式,使得开发者能够从软件层面全面体验物联网设备上云的全过程。
    的头像 发表于 01-13 14:15 2272次阅读
    利用云主机快速开发MQTT客户端<b class='flag-5'>仿真</b><b class='flag-5'>硬件</b>上云IoTDA

    单片机Debug与仿真区别

    单片机的开发是一个复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,开发者需要使用Debug和仿真技术来检测和修正代码中的错误。 Debug(调试) Debug
    的头像 发表于 12-19 09:47 1399次阅读

    自动控制系统的调试方法 自动控制系统与传统控制系统的比较

    自动控制系统的调试方法 自动控制系统的调试是一个复杂的过程,涉及到对系统性能的测试和优化。以下是一些基本的调试方法: 理论分析与
    的头像 发表于 12-18 09:50 1485次阅读