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
    +关注

    关注

    1624

    文章

    21608

    浏览量

    601077
  • 嵌入式
    +关注

    关注

    5056

    文章

    18955

    浏览量

    301671
  • 仿真器
    +关注

    关注

    14

    文章

    1011

    浏览量

    83583
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式?一文读懂嵌入式主板

    现代科技浪潮嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式
    的头像 发表于 10-16 10:14 324次阅读

    嵌入式系统的未来趋势有哪些?

    会更加模块化和集成化,允许更容易的硬件软件的切换和升级。这会提高系统的可维护性和可扩展性,会使得系统能够适应不断变化的应用需求。 5.
    发表于 09-12 15:42

    嵌入式机电一体化系统设计与实现》读后感

    刻的认识。从硬件上将外围器件整合到CPU内部,到软件操作系统内核嵌入应用程序,再到将
    发表于 08-21 08:45

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

    嵌入式RTOS是嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。本节,您将了解嵌入式
    的头像 发表于 08-20 11:28 396次阅读

    嵌入式系统怎么学?

    系统设计与调试:需要掌握嵌入式系统的设计方法和调试技术,包括硬件设计、软件设计、电路调试等,以确保系统
    发表于 07-02 10:10

    嵌入式硬件VS软件,到底哪个更难?

    嵌入式系统开发硬件软件是密不可分的两个方面。但是,究竟是
    的头像 发表于 06-13 08:10 1056次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>硬件</b>VS<b class='flag-5'>软件</b>,到底哪个更难?

    从事嵌入式方向,一定要软硬件通吃?

    嵌入式系统开发领域,软件硬件的界限常常模糊不清。一个常见的问题是,嵌入式
    的头像 发表于 06-05 08:10 997次阅读
    从事<b class='flag-5'>嵌入式</b>方向,一定要软<b class='flag-5'>硬件</b>通吃?

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式
    发表于 05-16 11:00

    嵌入式系统硬件基础知识大全

    基础知识的探讨,我们希望读者能够掌握嵌入式系统的基本概念,理解其工作原理,为从事嵌入式系统设计和开发工作奠定基础。 嵌入式
    发表于 05-09 14:12

    实时级嵌入式系统半实物仿真测试平台ETest

    产品简介** ETest_RT是一款具有高实时性的嵌入式系统半实物仿真测试平台(Embedded System Real Time Test Studio RT,简称:ETest_RT
    发表于 04-25 17:01

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件嵌入式软件通常是指
    发表于 02-19 11:23

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统软件部分。固件负责控制
    发表于 02-02 15:24

    嵌入式软件开发和软件开发的区别

    嵌入式软件开发和软件开发是两个不同的概念,它们一些关键方面有着明显的区别。嵌入式软件开发是指开
    的头像 发表于 01-22 15:27 2115次阅读

    基于功能安全的汽车嵌入式软件单元验证技术研究

    ,对满足功能安全ASIL等级的汽车嵌入式软件单元验证技术进行详细介绍,从而提高软件质量,减少软件安全隐患,对汽车
    的头像 发表于 01-07 11:27 983次阅读
    基于功能安全的汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>单元<b class='flag-5'>验证</b>技术研究

    嵌入式硬件软件哪个好?

    嵌入式硬件软件哪个好? 嵌入式硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软
    发表于 12-05 15:17