集成电路开发中的自动化工具-验证回归工具

路科验证 2024-03-21 12:02

引言

IC验证工程师在接到任务后的工作流程一般是这样的:

  • 读模块规格说明书(Module Specification)
  • 写验证计划(Verification Plan)
  • 搭建测试平台(Testbench)
  • 开发测试用例(Testcase)
  • 跑仿真调试(Simulation & Debug),如有Bug需上报并等待修复并重新测试
  • 批量跑所有的测试用例并自动给出结果,称为测试回归(Regression)
  • 收集各项覆盖率(Coverage),根据结果增加新测试用例,查漏补缺
  • 写测试结果报告

在以上工作中,开发测试用例和跑仿真调试占据了验证流程的绝大部分时间,也是验证工程师的工作日常;在这个流程中,下面的工具有潜在的自动化需求:

  • 搭建测试平台自动化
  • 测试回归及结果报告自动化

验证回归工具

一个简单的验证回归工具,至少需要做下面一些步骤:

  • 创建临时目录,将所有的测试用例目录拷贝或者浅拷贝到临时目录下面
  • 分别启动每一个测试用例,本地启动或者提交到算力池,并重定向输出到log文件
  • 对于随机测试用例,上面一步需要多次启动并给出不同的随机种子
  • 等测试用例结束之后,需要打开log文件并检查有没有错误发生
  • 生成所有测试用例的运行结果

从上面的步骤可以看出,如果没有回归自动化,手动做这项工作还是相当麻烦的;但如此简单的功能肯定不是一个通用工具,要解决通用性,上面的步骤很多地方需要参数化,比如下面列举的一些方面:

  • 临时目录的位置
  • 哪些测试用例参与回归
  • 并行启动的用例个数最大值
  • 随机用例的次数
  • 检查结果时哪些算出错,哪些不算出错

解决了以上参数化后,就勉强算一个最低要求的通用回归工具了;但这并不终点,我们不会因为解决了温饱问题就止步不前,高质量的幸福生活是我们每个人追求的目标!

RunFab

RunFab是笔者开发的主要用于验证回归的通用并行任务管理工具,目前具有下面一些功能:

  • 任务模板的定制,任务的参数化
  • 任务的实例化,以及任务实例列表管理
  • 任务实例的启动,停止,实时运行状态监测
  • 运行结果的检查,可配置的关键词句过滤
  • 结果报告的生成
  • 集成的验证目标计划模块,验证目标与测试用例的映射和覆盖率的结果报告

RunFab将用户执行的命令抽象成一个任务模型,任务由若干条动作组成,动作可以是一些Linux命令,也可以是一些python模块里的函数或者类,这些动作可以支持输入参数,参数可以是常量,也可以是变量;含有变量的任务就是参数化的任务,将这些变量具体化就是任务的实例化,由多个实例化的任务组成了任务实例列表,对任务实例的管理是工具的核心内容;

任务可以嵌套,形成树形结构,任务内的变量可以定义本地缺省值,任务实例可以用一个新值覆盖这个缺省值,层次化的任务树形结构形成的变量值的覆盖链条,这个链条的顶端是任务实例;在任务实例列表文件中,也可以有列表及的缺省值,它的优先级介于任务和任务实例之间;这个策略跟编程语言的类的继承概念相似,都是方便代码复用,以及用户做扩展;

RunFab的内核有一个并行任务分发器,负责启动并行任务并实时监测任务的运行状态,并将实时状态回传给内核,可以及时显示在图形界面上;用户可以通过界面或者命令来控制任务分发器来启动部分或者全部的任务实例,也可以停止部分或者全部的运行任务实例;

结果检查模块负责在任务实例运行结束后,对产生的一个或者多个日志文件进行分析,给出运行结果;检查模块定义了2级过滤系统,第1级为错误抓取,第2级是错误排除,日志文件内容经过2级过滤后剩下的就是真实的错误,需要用户关注并分析;用户可以使用工具自带的检查器,也可以自定义一个,然后用配置告诉工具怎么调用;

RunFab还针对验证的随机测试用例做了相应的功能,可以方便的产生随机子用例,以及随机子用例的重复次数,并对随机子用例进行管理;

另外,除了对任务实例的管理,也支持工具级的一些配置,比如:

  • 对远程提交任务的控制
  • 任务分发器的启停
  • 并行任务数量的控制
  • 任务运行的后台模式、独立窗口模式、以及图形模式的选择

RunFab不仅可以用于验证回归,也可以用于日常的一般任务,例如将一些常用命令,或者流程做成一个任务,再将任务实例化,并对每一个实例起一个好记的名字,这样就可以将一些杂乱无章的命令或者脚本统一放到一个或者多个分类的任务实例列表中去,用户只需要打开固定的列表,在里面选择要执行的有名字的实例即可,省去了记忆大量命令的烦恼;

总结

验证回归工具实际上是验证流程中的平台,验证工程师日常用它来启动仿真,检查分析结果,写验证计划,生成验证报告等;在现实中它为验证工程师提供一条龙的服务,是验证工程师真正的朋友!


*免责声明:文章来源于知乎,版权归原作者Quickor所有。如有侵权,请联系路科验证删稿。文章内容系作者个人观点,路科验证转载仅为了传达一种不同的观点,不代表路科验证对该观点赞同或支持,欢迎评论区留言交流。
原文官网链接:http://www.quickor.cn/doc/index.html

往期精彩:
集成电路开发中的自动化工具 - 开篇
集成电路开发中的自动化工具 - 连线工具
集成电路开发中的自动化工具 - 寄存器工具


路科验证 专注于数字芯片验证的系统思想和前沿工程领域。路桑是Intel资深验证专家,主持验证架构规划和方法学研究,担任过亿门级通信芯片的验证经理角色。在工程领域之外,他在西安电子科技大学和西安交通大学客座讲授芯片验证课程。著有书籍《芯片验证漫游指南》。
评论
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 186浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 616浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 143浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 150浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 140浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 58浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 113浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 418浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 293浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 117浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 189浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦