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

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

    关注

    463

    文章

    54429

    浏览量

    469381
  • soc
    soc
    +关注

    关注

    40

    文章

    4624

    浏览量

    230205

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    沃虎电子:共模电感的参数解读与测试验证方法

    共模电感作为电磁兼容设计的关键元件,其性能参数直接影响滤波效果。然而,规格书中的参数往往不够直观,工程师需要理解参数含义并掌握验证方法。本文系统解读共模电感的关键参数,介绍实用的测试验证方法,帮助硬件工程师准确评估共模电感性能。
    的头像 发表于 03-25 16:01 234次阅读

    【「龙芯之光 自主可控处理器设计解析」阅读体验】--LoongArch的SOC逻辑设计

    本书第二章以SOC BX2004讲述了LoongArch的SOC逻辑设计。 芯片使用130nm CMOS工艺,CPU内核工作频率120MHz,内存总线工作频率81MHz,功耗小于250 mW。核心
    发表于 01-18 13:45

    利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证

    由于Vivado中Block Design的友好的ui界面以及丰富的IP资源,在FPGA上实现SoC大多会采用Block Design进行设计与实现。对于基于蜂鸟e203内核的SoC设计,为了使其
    发表于 10-30 07:35

    利用蜂鸟E203搭建SoC【2】——外部中断扩展与验证

    SoC设计中一个重要通信方式就是中断,中断可以避免轮询方式造成的cpu空转消耗,可以更好利用cpu资源。蜂鸟e203中提供了plic外部中断总线进行中断的控制与配置,但在demo中已经被外设全部
    发表于 10-29 07:14

    蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因及解决措施

    内容:蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因 现象: 解决措施: 蜂鸟e203在虚拟机unbuntu上面验证时不要重复输入命令: make install make compile SIM=iverilog
    发表于 10-24 08:27

    在Linux ubuntu上使用riscv-formal工具验证蜂鸟E203 SoC的正确性

    内容:在Linux ubuntu上使用riscv-formal工具验证蜂鸟E203 SoC的正确性 步骤: 1、下载和安装riscv-formal工具: bash复制代码 git clone
    发表于 10-24 07:52

    新思科技RTL与功能签核助力低功耗SoC验证

    在半导体设计中,“签核”通常被视为一个里程碑。但实际上,这涵盖了多个具有特定目标的独立验证阶段。
    的头像 发表于 10-21 10:15 1042次阅读

    如何在e203 SOC中添加自定义外设

    外设的基地址和连接e203_soc_top信号使用,并将自定义的外设正确实例化在此对外接口口模块中。 3、在e203_soc_top中正确实例化第2步中的对外接口模块 4、在system顶层模块中正确实例化e203_soc_t
    发表于 10-20 10:38

    在友晶DE1-SOC开发板实现Chirikov标准映射求解器

    该项目是在友晶DE1-SOC开发板实现Chirikov标准映射的求解器,并将其应用于图像加密和解密的概念验证
    的头像 发表于 07-07 15:22 2008次阅读
    在友晶DE1-<b class='flag-5'>SOC</b>开发板实现Chirikov标准映射求解器

    Veloce Primo补全完整的SoC验证环境

    0 1   简介   SoC 设计团队的任务是在创建昂贵的生产掩膜之前完成完整的系统级验证。这意味着彻底审核所有硬件模块、这些模块之间的所有交互以及为最终应用创建的所有专用软件,而且所有这些任务都要
    的头像 发表于 06-12 14:39 1596次阅读
    Veloce Primo补全完整的<b class='flag-5'>SoC</b><b class='flag-5'>验证</b>环境

    Keithley 2400数字源表校准数据异常时如何验证设备精度

    ,影响实验结论或产品质量。因此,及时验证设备精度并排查异常原因,是确保测试可靠性的关键。本文将从设备原理、常见故障、验证方法等方面,系统介绍如何应对校准数据异常问题。   一、校准数据异常的可能
    的头像 发表于 06-10 12:03 913次阅读
    Keithley 2400数字源表校准数据异常时如何<b class='flag-5'>验证</b>设备精度

    直流电能表铭牌图标、数字的含义,你认识多少?

    了解这些内容的含义,有助于您在购买电能表时准确选型。
    的头像 发表于 06-06 13:53 2755次阅读
    直流电能表铭牌图标、数字的<b class='flag-5'>含义</b>,你认识多少?

    芯片的验证为何越来越难?

    本文由半导体产业纵横(ID:ICVIEWS)编译自semiengineering过去,仿真曾是验证的唯一工具,但如今选择已变得多样。平衡成本与收益并非易事。芯片首次流片成功率正在下降,主要原因
    的头像 发表于 06-05 11:55 1044次阅读
    芯片的<b class='flag-5'>验证</b>为何越来越难?

    新思科技VSO.ai如何颠覆芯片验证

    随着片上系统(SoC)复杂性不断增加,IP的复杂性与验证难度以及用于验证的VIP的开发要求也日益提高。不断发展的协议标准要求为IP和VIP提供动态测试套件,并满足规定的功能和代码覆盖率指标。
    的头像 发表于 05-21 14:49 1508次阅读
    新思科技VSO.ai如何颠覆芯片<b class='flag-5'>验证</b>

    筑牢汽车品质基石:深入剖析 DV 与 PV 验证

    Validation,生产验证验证起着至关重要的作用,它们是保障汽车质量的坚固防线,确保汽车在性能、安全性和可靠性等多方面达到高标准。
    的头像 发表于 05-13 09:15 2092次阅读
    筑牢汽车品质基石:深入剖析 DV 与 PV <b class='flag-5'>验证</b>