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

    关注

    1600

    文章

    21281

    浏览量

    592866
  • 嵌入式
    +关注

    关注

    4976

    文章

    18246

    浏览量

    287941
  • 仿真器
    +关注

    关注

    14

    文章

    987

    浏览量

    82974
收藏 人收藏

    评论

    相关推荐

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    和生成HDL代码。 随着异构架构和片上系统技术的不断发展,协同设计、协同仿真和协同调试将成为未来嵌入式系统开发者必备的素质。所谓的协同,就是要求设计者同时掌握
    发表于 04-10 16:00

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

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

    嵌入式学习步骤

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

    面向系统级芯片验证硬件平台介绍

    当设计的规模动辄几十亿门,系统验证时间不断的增加,硬件验证系统几乎是验证工程师不可或缺的利器,因此对高性能
    的头像 发表于 01-05 10:06 296次阅读

    嵌入式硬件软件哪个好?

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

    仿真系统软件的架构是什么

    仿真软件的架构可以包括以下几个部分: 硬件驱动部分:负责驱动硬件,向上一层提供底层硬件的操作接口。仿真
    的头像 发表于 10-16 16:56 460次阅读

    什么是嵌入式Linux?

    之有运行程序的能力与作用。很多智能家电开发,智能产品的研究上有着主导的作用。(对个人、团队开发产品有兴趣的朋友一定要看看嵌入式!) linux的嵌入式系统开发,涵盖了从
    发表于 10-11 13:47

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动
    发表于 09-28 06:59

    嵌入式Linux应用开发的完全手册

    是怎样和硬件发生作用的。 同样,对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一·步学习“有操作系统的”嵌入式
    发表于 09-25 07:12

    嵌入式软件好还是硬件好?

    越高,那他的身价也相应变高。据统计,65%的电子产品开发企业嵌入式软件开发工程师团队,往往只占全公司人数的5%,但是却创造了全公司超过70%的效益。 嵌入式
    发表于 09-18 15:31

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动
    发表于 09-11 07:24

    如何提高嵌入式软件单元测试效率

    本指南中,您将学习如何通过更短的时间内运行更多的测试来增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式
    发表于 08-28 06:31

    嵌入式学习路线你知道吗?

    外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于
    发表于 06-14 16:00

    软件仿真硬件仿真、原型验证是如何工作的?

    面对复杂的设计代码,我们如何确保其准确性?功能验证就是这场战斗的关键过程。工程师们通常使用的验证方法包括软件仿真硬件
    的头像 发表于 06-11 14:24 525次阅读
    <b class='flag-5'>软件</b><b class='flag-5'>仿真</b>、<b class='flag-5'>硬件</b><b class='flag-5'>仿真</b>、原型<b class='flag-5'>验证</b>是如何工作的?

    什么人适合学习嵌入式开发?

    操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这一领域占了嵌入式
    发表于 06-07 15:55