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

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

3天内不再提示

硬件仿真在嵌入式软件和系统验证中的应用

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

扫码添加小助手

加入工程师交流群

任何学科的设计——电子、机械、航空航天等——都始于一个规范,该规范捕捉最终产品应该做什么,并从根本上推动整个开发周期。在开发的早期阶段,第一个任务使用规范来验证正在开发的设计是否正常工作并且没有错误。然后,当设计的所有部分都组装成一个完整的系统时,第二个任务使用规范来确定系统是否也按照预期的方式运行。

广告:

航空航天、机械

这两个任务称为设计验证(任务 1)和设计验证(任务 2)。有时,错误地,这两个术语可以互换使用。虽然相似,但这两项任务的目标却截然不同。

验证:我们构建的系统正确吗?

验证:我们是否在构建正确的系统?

在片上系统 (SoC) 设计过程中,使用基于软件的硬件描述语言 (HDL) 仿真方法进行设计验证。相反,设计验证是在实际使用环境中测试的整个系统的原型上进行的。

不幸的是,HDL 仿真执行速度并没有跟上设备的复杂性,尽管它具有所有优点:易用性、灵活性和快速的设计迭代时间。当今的许多设计,例如具有 1,024 个端口的互联网路由器或高清视频处理器,都需要大量的验证序列,即使在最快的 PC 上模拟也需要很多年。这些序列源于运行长的、连续的串行协议流或处理复杂的嵌入式软件以全面验证 SoC 或系统设计的需要。

此外,近年来,在硅可用之前开始软件验证已变得很重要。为了实现这一目标,引入了一种称为虚拟原型的新型方法。虽然其中一些工具已经实现了启动软件开发的目标,但它们只处理不需要准确表示底层硬件的应用程序。在测试嵌入式软件(例如固件、设备驱动程序、操作系统和诊断程序)的交互时,它们会出现不足。对于此测试,嵌入式软件开发人员依靠准确的硬件模型来验证他们的代码。

相比之下,硬件设计人员需要一套相当完整的软件来在系统验证期间全面测试他们的 SoC。古老的基于 FPGA 电路板的系统原型设计方法提供了设计的准确表示,但不太适合硬件调试。因此,只要设计适合少数 FPGA,FPGA 原型对软件开发团队的吸引力就更大。

最终,软件和硬件组需要在一个通用模型上走到一起,以验证完整的硬件和嵌入式软件。对于大多数使用传统开发周期的人来说,第一个完整的模型是实际的硅片(图 1)。

pYYBAGLDmryAOyoeAAEkefk1rws728.png

【图1 | 在传统的开发周期中,第一个完整的模型是硅。]

等待实际硅片的问题在于它在设计周期中为时已晚。由于嵌入式软件无法在完整、准确的系统模型的上下文中得到充分验证,直到硅片,所以在硅片中发现问题的可能性增加。它们可以在软件或软件和硬件中找到,通常会迫使额外的芯片重新设计和代码修订。重新设计和代码修订都具有成本和上市时间的影响。避免这些影响所需要的是一种提供统一解决方案的方法,以在第一块芯片之前实现硬件/软件验证和确认。

最新一代的硬件仿真器实现了这一点。它们提供几乎无限的容量,多达数十亿个门,并以 1 兆赫或更多兆赫的速度验证被测设计 (DUT),提供比 FPGA 原型系统更好的硬件调试。它们易于使用,可以更快地编译 DUT,并允许从世界任何地方进行 24/7 远程访问。在仿真器上运行的新软件应用程序使其能够支持多种类型的验证,从低功耗分析和验证到测试设计 (DFT) 逻辑验证。仿真器还为从网络到处理器/图形、存储等各种细分市场带来了独特的技术。

在设计周期的早期,仿真器用于与仿真器和 SystemVerilog 进行协同仿真,以在组装完整的 SoC 设计之前验证知识产权 (IP) 模块和子系统。在设计周期的后期,仿真器用于验证整个系统并执行嵌入式软件验证。

它们在相同的设计表示上为硬件和软件工程师提供完整的硬件和软件调试功能。这让硬件和软件开发团队能够以前所未有的方式协作并修复集成问题(图 2)。

poYBAGLDmsOANT8nAAFHAxOgUIg491.png

【图2 | 最新一代的硬件仿真器显着加快了开发周期。]

硬件仿真以前仅限于验证超大型设计,如今已成为所有设计验证和确认流程的基础。这种新发现的流行是日益增长的硅复杂性和嵌入式软件的广泛使用的结果。在设计中心,硬件仿真被使用,并且在未来它将在从硬件验证、硬件/软件集成到嵌入式软件和系统验证的整个开发周期中使用得更多。

审核编辑:郭婷

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

    关注

    1655

    文章

    22283

    浏览量

    630273
  • 嵌入式
    +关注

    关注

    5186

    文章

    20146

    浏览量

    328814
  • 仿真器
    +关注

    关注

    14

    文章

    1048

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    设计的原则和方法,能够设计出高效、可维护的软件系统。 了解嵌入式系统的实时性要求,能够设计出满足实时性要求的软件
    发表于 11-28 07:48

    C语言嵌入式开发的应用

    C 语言汽车电子控制系统开发的主导地位。 2、设备驱动程序 设备驱动程序是嵌入式系统
    发表于 11-21 08:09

    嵌入式和FPGA的区别

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

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的
    发表于 11-13 08:12

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

    嵌入式系统作为控制、监视或辅助装置运行的专用计算机系统,其软件测试面临着独特的挑战和严格的要求。专业测试工具
    发表于 09-28 17:42

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

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

    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统软件验证

    TESSY现已支持ABIX HiperSIM,为基于MELEXIS MLX16架构的汽车嵌入式系统提供高效、可靠的软件验证解决方案。自动化测试+高保真
    的头像 发表于 07-17 13:39 668次阅读
    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的<b class='flag-5'>软件</b><b class='flag-5'>验证</b>

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

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

    嵌入式单片机电机控制系统的应用

    长时间处于良好的工作状态,其稳定性也得到了显著的提升。嵌入式单片机电机控制系统的应用可以分为软件应用和
    发表于 06-11 15:07

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

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

    Python嵌入式系统的应用场景

    你想把你的职业生涯提升到一个新的水平?Python嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1191次阅读

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

    并提升代码质量。 遵循良好的软件工程实践 良好的软件工程实践是提高代码质量的基础,特别是嵌入式系统
    发表于 01-15 10:48

    MPU嵌入式系统的应用

    一、MPU的基本功能 微处理器单元(MPU)是嵌入式系统的大脑,负责执行程序指令、处理数据和控制其他硬件设备。MPU的基本功能包括: 指令执行:MPU能够从存储器
    的头像 发表于 01-08 09:26 1500次阅读

    嵌入式系统开发的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发的测试方法 嵌入式系统开发是一个复杂的过程,涉及到硬件
    的头像 发表于 12-09 10:22 2033次阅读

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

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