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

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

3天内不再提示

智能跟踪SoC验证进度的方法

VIBT_dputech 来源:大普微 作者:大普微 2021-03-28 10:52 次阅读

随着芯片技术的不断发展,特别是芯片工艺水平的提升,芯片规模越来越大,这也为芯片逻辑功能验证带来了很大的挑战。如何保证产品上市时间(TimetoMarket),快速完成功能验证和达成较高的覆盖率,已成为验证进程管理的棘手问题。本文主要跟小伙伴们聊一聊智能跟踪SoC验证进度的方法。

EDA工具两大巨头Synopsys和Cadence都有自己的验证计划工具,分别是Synopsys公司的VerificationPlanner和Cadence的vmanager,两者各有千秋。今天我们主要针对的是Synopsys的层次化验证计划工具。该工具采用自定义的描述语言HVP(Hierarchical Verification Plan),层次化地描述验证计划,并在验证计划的实施过程中,通过测试数据结果,反标回验证计划,根据产生相应的状态报告,可以有效地追踪验证的整个进程。其基本流程如图1所示。

3efeea52-8eb9-11eb-8b86-12bb97331649.png

图1:HVP基本流程

该流程需要验证人员首先编写验证计划,验证计划通常需要Synopsys提供的另一种工具Verdi或DVE编辑HVP文件,或者直接采用office工具Excel编辑XML格式文件。在项目验证计划中会包含测试计划、功能覆盖率计划、断言覆盖计划、代码覆盖率计划等等。下面将介绍HVP是如何编写来映射我们上述提到的各种计划的。

验证计划有自己的.hvp格式,如图2 HVP描述示例。该文件可以比较容易的通过Verdi生成模板。

3f508cfe-8eb9-11eb-8b86-12bb97331649.png

图2:HVP描述示例

当然,如果你比较钟爱Excel,那么可以用命令将hvp计划文件转换成XML格式:

hvpgenxls–planmy_plan.hvp –lca

这样就可以用Excel打开生成的如my_plan.hvp.xml文件了,如图3所示。

3fb2c6d0-8eb9-11eb-8b86-12bb97331649.png

图3:ExcelXML格式验证计划

从图3中可以看出,测试项填在feature列,分层计划一方面就体现在feature是分级的,C列feature为B列的子feature。另一方面体现在plan可以include子plan,如图4中include列即为myplan包含了cache_plan。带有value关键字列表示测试项完成度情况,而带有measure关键字列则表示对应测试项如何衡量,也即我们所提的如代码覆盖率,功能覆盖率,断言覆盖率了。如图5中“measure snps.source”列中,group关键字表征功能覆盖率,property关键字表征断言覆盖率,tree关键字则表征代码覆盖率。

4014d5dc-8eb9-11eb-8b86-12bb97331649.png

图4:包含子plan示例

409408a2-8eb9-11eb-8b86-12bb97331649.png

图5:包含代码代码覆盖率、功能覆盖率和断言覆盖率的plan示例

好了,我们的验证计划完成了,下一步就要开发测试用例并作回归测试。所有测试用例运行完成后,仿真工具VCS会收集这些覆盖率并输出数据库。此外,当然我们也希望会收集测试用例是pass还是fail的信息,作为反标信息的用户自定义输入信息。有了这些数据,通过反标工具就可以看到验证报告了,运行如下命令:

hvpannotate –plan my_plan.hvp.xml –dir *.vdb –userdata *.hud

可以得到my_plan.hvp.ann.xml文件,类似如图6所有的形式。

4125b0f4-8eb9-11eb-8b86-12bb97331649.png

图6:反标后的hvp计划示例

写到这里,我们的验证工程师们确实被这种可视化的、自动化的验证计划管理惊艳到了。整个验证跟踪过程被自动化,既保证了跟踪的准确性,也避免了工程繁琐的管理和手工劳动。重要的一点是,老大再问起验得咋样了,我们就可以以数据说话:“老大,就一个功能覆盖点没覆盖到了,你看。”领导满意的点点头:“嗯,小伙子不错,年轻有为!”

但是,我们的工程师们也注意到了,填写功能覆盖率计划的时候,要从我们测试平台中找出covergroup或coverpoint的层次路径,如图5中的group instance和group bin。这个可麻烦了,有没有好的方法不去写层次路径,只写coveragegroup和coverpoint名呢?这个难不倒我们的技术牛们,他们创造了一个新的HVP流程,如图7所示。一个新的HVP模板如图8所示,让验证人员只需要填写class.covergroup[.coverpoint[.bin]]这样格式的命名来表征当前feature或子feature由哪个covergroup和coverpoint覆盖测试,然后运行我们开发的工具xhvp,可以输出最终的hvp文件和用Systemverilog语言描述的function coverage类声明文件了。通过上述的步骤,我们的技术牛把function coverage的代码都生成好了,对验证人员真是无比的体贴,大大减轻验证人员的负担。当然也大大提高验证评审的效率,从而加快项目验证进度。

41b33c3a-8eb9-11eb-8b86-12bb97331649.png

图7:新的HVP流程

4222b650-8eb9-11eb-8b86-12bb97331649.png

图8:HVP模板计划页示例

至此,这套大杀器介绍完了,它在我们的DPU600芯片验证中已经被完美地使用。作为DapuStor业内首创的智能存储SoC芯片,基于最新的12nm FinFET工艺,即有业内领先性能的SSD主控功能,还集成了可计算存储,机器学习等高大上的特性,同时还拥有强大的功耗管理,晶体管数接近亿级,这么多强大的功能,其验证复杂度可想而知,得益于我们的HVP流程, DPU600芯片的逻辑验证顺利完成,而且一次流片量产成功,基于DPU600产品也即将面世,敬请期待哦!

原文标题:芯片验证管理,也能自动跟踪!

文章出处:【微信公众号:大普微】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    447

    文章

    47788

    浏览量

    409128
  • eda
    eda
    +关注

    关注

    71

    文章

    2537

    浏览量

    170863

原文标题:芯片验证管理,也能自动跟踪!

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

收藏 人收藏

    评论

    相关推荐

    北京清微智能科技有限公司发布IC验证方法,实现双DUT验证

    清微智能在本周宣布新型专利“一种IC验证中实现双DUT验证方法”已于今年3月获批。该项专利内容由该集团独立研究,申请日期优先于2024年3月26日。
    的头像 发表于 04-08 10:07 119次阅读
    北京清微<b class='flag-5'>智能</b>科技有限公司发布IC<b class='flag-5'>验证</b>新<b class='flag-5'>方法</b>,实现双DUT<b class='flag-5'>验证</b>

    SoC芯片上的寄存器设计与验证

    就像芯片本身一样,SoC上的CSR设计也沿用了层级设计的方法。从最底层往上,寄存器可以被分为以下几个层级。
    的头像 发表于 10-20 10:39 509次阅读
    <b class='flag-5'>SoC</b>芯片上的寄存器设计与<b class='flag-5'>验证</b>

    SOC设计方法与实例

    简述SOC的设计流程跟方法,以及现在市场上跟SOC设计相关的解决方案;接下来我们会将眼光转到OPENCORES,这是一个以opensource的精神推广IC设计的机构,笔者会介绍在OPENCORES
    发表于 09-20 07:24

    基于VMM验证方法学的MCU验证环境

    1 简介 随着设计的复杂程度不断增加,要求把更多的资源放到验证上,不但要求验证能够覆盖所有的功能,还希望能够给出大量的异常情况来检查DUT对应异常的处理状态,这在传统测试方法下往往是难以实现
    的头像 发表于 08-25 16:45 624次阅读

    ARM CoreSight™片上系统SoC-600M技术参考手册

    本书是为以下读者撰写的: ·希望将酷睿思™SoC-600M整合到他们的设计中并从SoC产生实时指令和数据跟踪信息的硬件和软件工程师。 ·编写使用酷睿™SoC-600M的工具的软件工程师
    发表于 08-18 06:31

    Arm CoreSight SoC-600技术参考手册

    酷睿™SoC-600是ARM嵌入式调试和跟踪组件家族的成员。 CoreSight™SoC-600提供的部分功能包括: ·可用于调试和跟踪ARM So
    发表于 08-17 07:45

    ARM®CoreSight™SoC-400技术参考手册

    状态。本书是为以下读者编写的: • • 希望将 CoreSight SoC-400 整合到其设计中并从 SoC 生成实时指令和数据跟踪信息的硬件和软件工程师。 软件工程师编写使用 CoreSight
    发表于 08-02 18:49

    SoC芯片设计验证详解

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

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

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

    移动SoC的时钟验证

    些更低的几何尺寸下设计和验证时钟带来了越来越多的复杂性和验证挑战。在这种快速发展的形势下,必须重新评估当前的时钟验证方法,以确保最佳的时钟性能和可靠性。
    的头像 发表于 07-17 10:12 467次阅读
    移动<b class='flag-5'>SoC</b>的时钟<b class='flag-5'>验证</b>

    基于形式验证的高效RISC-V处理器验证方法

    随着RISC-V处理器的快速发展,如何保证其正确性成为了一个重要的问题。传统的测试方法只能覆盖一部分错误情况,而且无法完全保证处理器的正确性。因此,基于形式验证方法成为了一个非常有前途的方法
    的头像 发表于 06-02 10:35 1020次阅读

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

    在现代SoC芯片验证过程中,不可避免的都会使用FPGA原型验证,或许原型验证一词对你而言非常新鲜,但是FPGA上板验证应该是非常熟悉的场景了
    发表于 05-30 15:04 986次阅读
    为什么<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>的时机

    提高复杂串行协议的调试效率

    调试复杂的串行协议是验证工程师面临的最大挑战。这是影响每个项目进度的最耗费时间和精力的活动之一。传统的调试方法使用松散连接的波形、日志文件、消息和文档的组合,这不足以进行高效的调试。使用日志文件调试
    的头像 发表于 05-26 11:23 448次阅读
    提高复杂串行协议的调试效率

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

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