芯片验证就是一次旅行

news2024/12/23 5:33:04

如果你国庆希望去一个你不曾去过的城市旅行,比如“中国苏州”。对游客来说,它是个蛮大的城市,有许多景点可以游玩,还有许多事情可以做。但实际上,即使最豪也最清闲的游客也很难看苏州的所有方方面面。同样的道理也适用于硬件资源完备和验证经验丰富的验证人员去验证一款复杂的芯片。

毫不夸张地说,即使用上全世界所有的资金,耗尽一代人的光阴也不能保证可以验证一款芯片的所有方面。

有经验的游客是如何确定在苏州旅游的最佳方式呢?

  1. 自驾、地铁、公交还是步行?

  2. 如何在有限的时间里多旅游一些地方?

  3. 如何利用最短的时间多参加些活动?

  4. 如何确保能看到所有好的景点?比如最美的日出和日落?

  5. 从哪里买门票和订酒店?旅行社还是自已解决这些问题?

首先,我们需要确定自己的旅游策略和目的。旅游的目的会影响游客如何安排时间和确定城市具体的参观地方。不同的旅行目的,走走停停或者特种兵旅行的行程会有很大的不同。

游客的目的对实际旅行策略起着举足轻重的作用。当你带着对象到一个城市旅行,如果没有任何计划,仅仅走走停停的话,那会是一件比较可怕的事情。

回到芯片验证的角度来看,在项目的初期,验证经理希望你是一个有计划的验证安排(也就是希望找旅行社,用比较短的时间尽量游览完大部分关键的地标式的景点)。而到了项目后期,bug逐渐收敛,大部分的景点已经游览完毕,验证经理又会希望你能够发挥自己的创造力,“走走停停”,去发现一些不一样的风景(bug)。

第一次去苏州,当你选择“走走停停”的旅行策略。你走了一整天,看到了很酷的东西,东方之门地标、姑苏区的小桥流水和精致的园林、更加现代化的工业园区,但还是会错过许多著名的景点。因为即使在看见它们时,它们一眼看上去也是没有任何特别的地方,完全没有意识到它的重要性和历史韵味。

那几个普普通通的小寺庙居然是《枫桥夜泊》寒山寺。

“月落乌啼霜满天,江枫渔火对愁眠。姑苏城外寒山寺,夜半钟声到客船。”

那河边的村落就是惹朱元璋嫉妒的沈万三故居,更不知这背后充满传奇色彩的商海沉浮。

d947c7244a6ae89a2c1926cbcc2f2b32.png

“走走停停”的旅行策略,在你转了几次地铁之后,很容易丧失了方向感,不知自己身在何处,曾经去过哪里,究竟走过了多大的区域。似乎看到了很多东西,但实际上顶多看了点儿表面的东西。从验证的角度来说这种感觉是很危险的。

“走走停停”的验证策略和定向测试或者随机测试其实是不冲突的。因为在不了解历史背景的情况下,去一个苏州园林和去多次不同的苏州园林可能并不能让你对苏州有更多的认知。

到一个城市确实随心所欲,但是如果不系统地了解这座城市,真的会错过不少机会。作为一个项目的验证人员,你没有机会先随心所欲一次,然后再系统性地验证一次。

验证,负担不起漫无目的和随心所欲,因为这会导致错过重要功能的验证和遗漏缺陷。

毫无疑问,有导游的旅游比起随便走走用的时间更少,走过的有意思的地方更多。然而,两种方法有着互补性。自由乱逛经常也能发现一些很酷的地方。就这样有组织有目标的旅游和自由风格漫无目的的闲逛需要紧密地结合起来。

旅游可以从有组织有系统和自由风格的组合中受益,探索式验证也是如此。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1038494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第 4 章 串(文本行编辑实现)

1. 背景说明 该文本编辑器利用串的堆实现,其中对串的原始存储方式基本不作修改(有部分修改之处),优化之处在于在串的末尾加上了一个空字符,目的是区分字符串结尾,便于将串保存在文件中,且该优化…

JavaScript入门——(2)基础语法(上)

一、JavaScript介绍 1.1 JavaScript是什么 1.1.1 JavaScript是什么? JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。 注意:HTML和CSS是标记语言。 1.1.2 作用(做什么&#xff1f…

8月最新修正版风车IM即时聊天通讯源码+搭建教程

8月最新修正版风车IM即时聊天通讯源码搭建教程。风车 IM没啥好说的很多人在找,IM的天花板了,知道的在找的都知道它的价值,开版好像就要29999,后端加密已解,可自己再加密,可反编译出后端项目源码,已增加启动后端需要google auth双重验证,pc端 web端 wap端 android端 ios端 都有 …

小米机型解锁bl 跳“168小时”限制 操作步骤分析

写到前面的安全提示 了解解锁bl后的风险: 解锁设备后将允许修改系统重要组件,并有可能在一定程度上导致设备受损;解锁后设备安全性将失去保证,易受恶意软件攻击,从而导致个人隐私数据泄露;解锁后部分对系…

老胡的周刊(第109期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 lobe-chat[2] LobeChat 是一个开源的、可扩展…

面试题:说说Java并发运行中的一些安全问题

文章目录 1.什么是多线程并发运行安全问题?2.用synchronized修饰的方法3.同步块4.使用Synchronized修饰静态方法5.互斥锁6.死锁现象7.wait()和sleep()的区别 1.什么是多线程并发运行安全问题? 当多个线程并发操作一个数据时,由于线程操作的时…

在Linux上安装Percona Toolkit工具

安装步骤 1. 下载安装包 下载地址:https://www.percona.com/software/database-tools/percona-toolkit 2.上传并解压 上传tar包到服务器,并通过tar -zxvf 文件名.tar.gz解压。工具在bin文件夹中,这个是免安装的。 3. 配置环境变量 配置…

安装OpenSearch

title: “安装opensearch” createTime: 2021-11-30T19:13:4508:00 updateTime: 2021-11-30T19:13:4508:00 draft: false author: “name” tags: [“es”,“安装”] categories: [“OpenSearch”] description: “测试的” 说明 基于Elasticsearch7.10.2 的 opensearch-1.1.…

gRPC之实现TLS通信加密_已设置图床

gRPC之实现TLS通信加密 "crypto/tls"包 “crypto/tls” 是 Go 编程语言中的一个包,用于实现 TLS(传输层安全)协议。TLS 协议用于加密和保护网络通信,通常用于保护敏感数据的传输,如密码、支付信息等。在 G…

详解--计算机存储相关(寄存器、CPU Cache、内存、外存)

CPU寄存器、高速缓冲存储器、主存储器、外存储器 1. 主存储器 参考链接–主存 参考链接–内存 主存储器简称 主存,又称 内存储器(简称 内存)。作用 暂时存放CPU中的运算数据。存放指令和数据,并能由中央处理器(CPU&a…

什么是Service Worker?它在PWA中的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Service Worker的作用是什么?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

1066 二级C语言-自定义函数

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数: (1)fact(n)计算n的阶乘; (2)mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是do…

HEC-HMS和HEC-RAS水文模型、防洪评价报告编制及洪水建模、洪水危险性评价等相关案例解析

► HEC-RAS一维、二维建模方法及应用 【目标】: 1.掌握一维数学模型基本地形导入方法 2.掌握恒定流、非恒定流一维数学模型水流计算方法 3.掌握一维数学模型计算结果分析,水面线成果分析及调试;流速分布图输出方法 4.掌握一维数学模型增设构…

如何让一个uniform variable在多级shader中都起作用(类似C语言的全局变量)?

GLSL编程中通常设计多个shader,如vertex shader, fragment shader等等。在最近的某个项目中,我需要定义一个变量,该变量类似C语言中的全局变量,要同时在两个shader中都起作用。c - OpenGL Uniform Across Multiple Shaders - Stac…

2023-9-23 区间选点

题目链接&#xff1a;区间选点 #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n;struct Range {int l, r;bool operator< (const Range &W) const{return r < W.r;} }range[N];int main() {scanf("%d"…

MyBatisPlus + ShardingJDBC 批量插入不返回主键ID

本文讲述一个由 ShardingJDBC 使用不当引起的悲惨故事。 一. 问题重现 有一天运营反馈我们部分订单状态和第三方订单状态无法同步。 根据现象找到了不能同步订单状态是因为 order 表的 thirdOrderId 为空导致的&#xff0c;但是这个字段为啥为空&#xff0c;排查过程比较波折…

NebulaGraph实战:2-NebulaGraph手工和Python操作

图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点&#xff08;Vertex&#xff09;和边&#xff08;Edge&#xff09;&#xff0c;还可以将属性&#xff08;Property&#xff09;附加到点和边上。本文以示例数据集basketballplayer为例…

java的Map和Set集合

Set集合 一.HashSet HashSet 元素是无序的 向Hashset中添加元素时&#xff0c;是如何判断元素是否重复的: 添加元素时&#xff0c;如果用equals判断效率太低&#xff0c;因为equals是一个一个字符比较 HashSet底层用到hashCode和equals 一个内容&#xff1a;"sahdihwo&q…

FPGA 安装Quartus 13.1无法生成.sof文件

FPGA 安装Quartus 13.1无法生成.sof文件 安装环境编译无法生成 .sof文件分析原因 找资料1.第1篇文章2.第2篇文章 安装环境 Quarter II 13.0下载、安装、破解包括可能出现的几乎所有的问题详解野火FPGA安装视频 编译无法生成 .sof文件 分析原因 1.推测可能是破解失败。2.安装…

洛谷bfs题2---P1825 [USACO11OPEN] Corn Maze S

P1825 [USACO11OPEN] Corn Maze S import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {public static int N;//行public static int M;//列public static Queue<Integer> q new LinkedList<>();public static in…