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

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

3天内不再提示

​SOC验证的作用与含义及原因

FPGA之家 来源:FPGA之家 作者:Watchman 2021-04-22 09:43 次阅读

SOC 验证有什么用?

这篇文章的标题听起来像是上世纪90年代电视剧里的玩笑,但它实际上是一个严肃的问题。很多人不明白,是什么让一个系统级芯片(SoC)与其他半导体器件不同。许多公司,尤其是在电子设计自动化(EDA)行业中,围绕术语“SOC”进行了众多讨论,但却没有定义它,或者解释它为什么是这样一个重要的概念。

Soc验证的含义

从“SoC”的定义开始讨论,应该是最合适的地方。正如其名称所暗示的那样,“系统级芯片”,是存在于单个封装的完整系统,通常都处于单个die,尽管3-D集成电路建立在多个die上的情况也正变得越来越普遍。

本质上,SoC就是将分布在多个芯片甚至是离散设备上的功能集成到一个芯片中。现在已经很难找到不含某种处理器的系统了,所以在实际的定义中,在SoC必须包括至少一个处理器。

最常见的SoC架构包括一个或多个嵌入式处理器,部分片上存储器,附加的功能单元,标准总线接口以及可能的片外存储器。某种类型的片上总线,总线结构,或网络芯片将所有的单元连接在一起。

与其他芯片验证不同的原因是什么?

由于需要在嵌入式处理器上运行的软件,完整的SoC实际是芯片加上在这些在处理器上运行的代码。有些系统级芯片具有在多个不同的处理器,CPUDSP,图像处理器等,——所有的运行代码都是针对单独功能定制的。

处理器的存在是使得SoC验证与其他芯片验证不同的关键。更小,没那么复杂的芯片,以及许多在SoC内部的模块,可以使用仿真测试平台有效的进行验证。提供数据到芯片的输入,检查芯片上的输出数据。

传统测试平台可简化为一个框架,允许用户提供一系列的二进制输入,并使用波形查看器查看输出结果。当然,如此的手动设置仅仅能够验证复杂设计很少的预期功能。

现代的基于测试平台的验证环境会为芯片输入自动生成随机的stimulus,这种随机同时处于用户指定的约束条件(规则)下,并会自动检查每个测试的结果。这比基于传统测试平台手工编写单独的测试更有效率。

有约束的随机测试平台

一些验证方法已经建立,流行的标准是有约束的随机测试平台,并允许有限复用测试平台的组件。这些验证方法中,最有名的是标准组织Accellera定义的通用验证方法学(UVM)。

带约束的随机测试平台在一定程度上工作正常,但不能就此扩展到full-SoC验证上。仅仅从芯片的输入来验证其所有功能,是一件太过困难的工程。

此外,虽然在SoC的嵌入式处理器通常有能力在仿真中运行代码,但对所有协调处理器与测试平台的活动,UVM都不提供任何指导。事实上,在SoC级运行的任何UVM-based仿真,通常用总线功能模型(BFMS)去替代嵌入式处理器。

以上的这些限制导致许多SoC团队在full-chip级仅仅做最少的验证。他们仅仅验证模块是否已正确连接,并可能运行一些简单的测试来验证各主要模块运行正常。

对SoC运行中,模块串接的真实情形,他们却很少运行测试。这种“stitch and ship”方法带来高风险,因为它从从未测试模块间复杂相互作用的情况,而其恰恰极可能暴露设计bug或证实性能的缺陷。

模块级验证

在模块级验证中,很难发现诸如存储器冲突,总线饱和,等在SoC多模块共享资源时才发生的问题。

考虑到SoC功能在很大程度上取决于其嵌入式处理器,意料之中,一个纯粹的测试平台是不足够的。有些验证团队认识到这一点,他们用人工设计测试在嵌入式处理器上运行。这些测试通常不连接到测试平台也未很好集成到整个验证工作中。

此外,要人工设计对SoC并行功能多任务(multi-threaded)测试简直比登天还难。当然,我们所需要的就是考虑这些corner-case bugs和性能问题。

充分有效的SoC验证

SoC验证要充分有效,就必须包括在嵌入式处理器上运行自动化测试。软件可以在仿真中生成在多处理器多线程情况下的测试case。

为了对SoC有足够的压力测试,测试case需要刺激和协调处理器和测试平台内的并发活动。测试case必须能够对随机生成的输入数据进行自动验证,计算输入的预期结果,并检查芯片的输出符合预期的结果。

通常来说,我们需要提供SoC的功能信息给测试case生成器,这些case才能恰当的验证其功能性并检验结果。描述SoC设计功能的最好方法就是一系列可视方案模型。

图像能够捕获芯片的数据流路径并记录如何配置模块来运行所有SoC设计功能。图像引导的生成器约束保证其不会对非预期行为生成test case。

来自Breker验证系统中的TrekSoC产品

这个软件工具能自动生成在SoC的嵌入式处理器上运行并能够自验证的C语言test case,而且该软件不需要操作系统或者其他产品软件的支持。

这些test case都是多线程的,因此能并行检验SoC的多个部位,在tapeout之前进行足够的压力测试。生成器中成熟的scheduler能够跟踪多个并行运行的现实情况,并从线程中移动它们以尽可能多的对SoC进行测试。

因为一些C-based测试会从芯片输入读取数据,或者发送数据到芯片输出,“TrekBox”组件连接现有的总线功能模型(BFMS)在测试平台中,并协调处理器和测试平台间的活动。

当每个C-based测试准备接收或生成数据时,会通知TrekBox处理实际的数据传输。源数据也可以被加载到存储器,并且存储器检查可以在不干扰的SoC的情况下进行。

这个基于图形的场景模型描述了能够在SoC中产生无限数量的多线程测试case的所有信息。

总结

总之,SoCs使得半导体产业能继续实现其,更好,体积更小,更快芯片的目标。它们与其它类型的芯片不同,所以SoC的验证也必然是不同的。

开发团队必须认识到,在SoC时代,存在严重bugs风险或者毫无竞争力的去生产芯片的情况,使得他们的世界已经不同。

自动生成多线程,自我验证C测试case是一个相当新,但是很好的验证方法。“SoC验证”团队采取这种方式会有着更快产生更好的,更小的芯片的优势。
编辑:lyn

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

    关注

    446

    文章

    47706

    浏览量

    408889
  • soc
    soc
    +关注

    关注

    38

    文章

    3739

    浏览量

    215599

原文标题:​SOC 验证有什么用?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    编码器5条线的含义作用

    编码器5条线的含义作用:A相输出是编码器最基本的信号之一,它代表着旋转轴每转动一个单位所产生的脉冲数。一般来说,A相输出是一个方波信号,在每个周期内都会有一个上升沿和一个下降沿。B相输出也是编码器
    的头像 发表于 01-22 10:59 1006次阅读
    编码器5条线的<b class='flag-5'>含义</b>及<b class='flag-5'>作用</b>

    pcb各层的含义作用

    各层的含义作用。 第一层是顶层(Top Layer),又称为元件层(Component Layer)或样板层(Solder Mask Layer)。这一层是PCB上最上方的层,通常包含了与元器件直接连接的所有元素。其中包括元器件封装(如电阻、电容、集成电路等),插孔、焊
    的头像 发表于 12-18 14:34 1311次阅读

    地线和零线的含义、接线位置及作用

    对于许多初学者来说,地线和零线是两个相对陌生的概念。然而,它们在电力系统中扮演着至关重要的角色,尤其是在防止触电事故和保障设备安全方面。本文将详细解释地线和零线的含义、接线位置及作用,并探讨如果错误地连接它们会带来哪些后果。
    的头像 发表于 12-07 11:24 821次阅读

    CPU、MCU、MPU、SOC和MCM的含义及区别

    在嵌入式开发中,我们经常会接触到一些专业术语,例如CPU、MCU、MPU、SOC和MCM等,这些缩写代表了不同类型的电子处理单元,它们在消费电子、计算机硬件、自动化和工业系统中扮演着重要角色。下面
    的头像 发表于 11-29 14:14 802次阅读

    什么是efuse?efuse在soc中的有何作用

    在现代 SoC 设计中,efuse 是一种非常重要的技术,可以用于保护 SoC 中的敏感信息,防止黑客攻击和未经授权的访问。
    的头像 发表于 11-21 15:00 1211次阅读

    编码器:5条线的含义作用

    编码器:5条线的含义作用!编码器是很常见的一种电子元器件,它可以将机械运动转化为数字信号,广泛应用于各种工业自动化生产控制系统中。在其中,编码器的5条线分别对应着不同类型的信号和功能,下面我们就来逐一了解。
    的头像 发表于 11-20 15:29 1186次阅读
    编码器:5条线的<b class='flag-5'>含义</b>及<b class='flag-5'>作用</b>

    基于FPGA的原型设计对系统级验证的适用性

    验证SoC困难的部分原因是它的状态依赖于许多变量,包括它以前的状态、输入序列和SoC输出的更广泛的系统效应(和可能的反馈)。 以实时连接到系统其他部分的速度运行
    发表于 09-25 12:22 483次阅读
    基于FPGA的原型设计对系统级<b class='flag-5'>验证</b>的适用性

    Testcase在芯片验证中的作用

    随着半导体技术的快速发展,集成电路芯片的复杂度日益增加,芯片设计中的验证工作变得越来越重要。验证的目的是确保芯片在各种工况下的功能正确性和性能稳定性。在这个过程中,testcase(测试用例)扮演着关键角色。本文将简要介绍 testcase 的基本概念、设计方法和在芯片
    的头像 发表于 09-09 09:32 600次阅读

    SoC芯片设计验证详解

    汽车外,还有很多其他行业也能从电子器件的增加受益,当然保障功能安全是大的前提。本文讨论SOC芯片设计验证验证计划和策略以及验证方法。它定义了功能模拟、功能覆盖、
    的头像 发表于 07-31 23:45 882次阅读
    <b class='flag-5'>SoC</b>芯片设计<b class='flag-5'>验证</b>详解

    fpga验证及其在soc验证中的作用有哪些

    很多其他行业也能从电子器件的增加受益,当然保障功能安全是大的前提。本文讨论SOC芯片设计验证验证计划和策略以及验证方法。它定义了功能模拟、功能覆盖、代码覆盖以及设计
    的头像 发表于 07-20 09:05 644次阅读

    移动SoC的时钟验证

    移动电话技术的进步不断挑战极限,要求SoC在提供不断提升的性能的同时,还能保持较长的电池续航时间。为了满足这些需求,业界正在逐步采用更低的技术节点,目前的设计都是在5纳米或更低的工艺下完成的。在这
    的头像 发表于 07-17 10:12 463次阅读
    移动<b class='flag-5'>SoC</b>的时钟<b class='flag-5'>验证</b>

    为什么SoC验证一定需要FPGA原型验证呢?

    在现代SoC芯片验证过程中,不可避免的都会使用FPGA原型验证,或许原型验证一词对你而言非常新鲜,但是FPGA上板验证应该是非常熟悉的场景了
    发表于 05-30 15:04 962次阅读
    为什么<b class='flag-5'>SoC</b><b class='flag-5'>验证</b>一定需要FPGA原型<b class='flag-5'>验证</b>呢?

    SoC仿真验证到FPGA原型验证的时机

    我们当然希望在项目中尽快准备好基于FPGA原型验证的代码,以便最大限度地为软件团队和RTL验证人员带来更客观的收益。
    发表于 05-30 11:10 804次阅读
    从<b class='flag-5'>SoC</b>仿真<b class='flag-5'>验证</b>到FPGA原型<b class='flag-5'>验证</b>的时机

    SoC设计的IO PAD怎么移植到FPGA原型验证

    FPGA原型验证系统要尽可能多的复用SoC相关的模块,这样才是复刻SoC原型的意义所在。
    发表于 05-23 16:50 401次阅读
    <b class='flag-5'>SoC</b>设计的IO PAD怎么移植到FPGA原型<b class='flag-5'>验证</b>

    S32K312 DCMDEB寄存器中APPDBG_STAT_SOC位的具体含义是什么?

    先生关于S32K312 DCMDEB寄存器中APPDBG_STAT_SOC位的具体含义
    发表于 04-21 06:02