数字IC验证高频面试问题整理—附答案(四)

news/2025/2/4 17:56:04/

好久没更新面试题目了,不少同学在后台催更,这不就来了~

共150道验证高频面试题整理~含答案(文末可领取全部题目)
在这里插入图片描述

Q1.illegal_bins和ignore_bins命中分别会怎么样?命中是否会计入覆盖率统计

illegal_bins 表示非法的bin,如果采样命中会报错;
ignore_bins 表示忽略的bin,如果采样命中直接忽略,并不计入覆盖率统计。

Q2.负数采用二进制如何表示

负数采用二进制的补码形式表示,最高位的0表示正,1表示负;

例如-1,1的原码为0001,反码为1110,补码为1111,,1111表示-1.

Q3.4值逻辑变量赋值给二值逻辑变量时,x和z对应什么值

对应0

Q4.类中this是什么

this表示指向本身的指针,通过this可以绑定方法和对象,可以区分方法体的形参和对象成员,this只能作为实参传递,this的生命周期从调用方法开始存在,当方法结束生命周期也随之结束,this只能应用于动态生命周期,不能应用于static中。

Q5.子类中super是什么?

super主要用于在子类中访问父类的属性和方法。

Q6.在IC验证中,我们一般对哪些内容进行随机化

器件配置:通过寄存器和系统信号;
环境配置:随机化验证环境,例如:合理的时钟和外部反馈信号;
原始输入数据:例如数据包的长度,宽度,数据发送的顺序;
延时:握手信号之间的时序关系,例如:vaild和ready,req和ack之间的时序关系;
异常协议

Q7.通过函数返回数组有哪些方法

可以通过for/foreach遍历数组的方法打印返回

Q8.什么是clocking block的skew

在clocking block中,实际上指定了默认的input偏差和output偏差,只不过这个偏差在宏观的时间刻度上观察不到,对输入性质的信号指定的默认采样时间是1step,对于输出性质的信号指定的默认驱动时间为0,其中1step是一个较为特殊的时间单位,一般指输入信号在采样信号事件发生之前的输入信号的稳定值。

可以认为1step实际采样时刻发生在上一时间槽的最后时刻,1step不像ns、ps等之类可以用来设置设计的时间精度和时间单位,它指定了当前采样值来自于当前时间槽的pre-pone区,0则表示在采样事件发生后立刻将对应的值驱动到输出端口,与1step不同的是,该时刻的采样发生在采样事件发生的当前时间槽的Observed Region。

另外,也可以自定义,例如:default input 1ns output 1ns

Q9.并发断言的主要组成有哪些

并发断言的用法的话,主要是有三个层次:
第一是布尔表达式,布尔表达式是组成断言的最小单元,断言可以由多个逻辑事件组成,这些逻辑事件可以是简单的布尔表达式.在SVA中,信号或事件可以使用常用的操作符,如:&&, ||, !, ^,&等;

第二个序列sequence编写,sequence是布尔表达式更高一层的单元,一个sequence中可以包含若干个布尔表达式,同时在sequence中可以使用一些新的操作符,如 ## 、重复操作符、序列操作符;

第三个是属性property的编写,property是比sequence更高一层的单元,也是构成断言最常用的模块,其中最重要的性质是可以在property中使用蕴含操作符(|-> |=>);

Q10.如何检查随机化是否成功

可以通过立即断言检查随机化是否成功
例如 assert(p.randomize()) 来检查p句柄指向的实例是否实例化成功;

Q11.什么时候randomize()失败

1.变量对象没有声明rand或randc;
2.constraint 有冲突,无法随机出值;

Q12.黑盒验证、灰盒验证、白盒验证

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

Q13.竞争与冒险是什么

竞争: 信号由于不同路径传输到达某一汇合点的时间有先有后的现象。(当一个门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同路径产生的,使得他们的状态改变的时刻有先有后,这种时差引起的现象称为竞争。)

冒险: 由于竞争现象所引起的电路输出发生瞬间错误(产生干扰脉冲)的现象。

Q14.虚接口有什么好处

interface是连接硬件的,其是硬件语言;但对于验证来说,其描述语言往往是软件语言,interface无法在基于OOP的测试平台中实例化,因此我们无法通过interface把激励传送到DUT中;为了解决这个问题,引入了virtual interface,使得基于OOP的验证环境可以通过虚接口把激励传送给DUT。

Q15.接口的使用有什么优势

将有关信号封装在同一个接口中, 对于设计和验证环境都便于维护和使用。 如果你需要新添加信号, 只需要在接口中定义这个信号, 而在使用这个接口的模块或者验证环境中做出相应修改。

由于接口既可以在硬件世界(module)中使用,又可以在软件世界(class)中使用,interface作为SV中唯—的硬件和软件环境的媒介交互,它的地位不可取代。

接口由于可以例化的特性, 使得对于多组相同的总线, 在例化和使用时变得更加灵活,不仅使得代码变得简洁, 也更易于验证环境的管理和维护。

篇幅限制,IC验证面试题目就不一一罗列了,大家如果需要面试题目,以及想了解简历上需要注意的问题,都可以跟工程师先了解一下(所有面试题目可领)

这里放个入口:IC验证面试题目


http://www.ppmy.cn/news/1120736.html

相关文章

数据结构(持续更新)

嗯,怎么说数据结构果然很玄妙。按照能不能存储多行元素大致分为两类。 不能存好几行的数据包括pair,int,float,double,char,struct; 能存好几行的:map,unordered_map,list,vector,set,string,array。 1. pair “pair” 是 C++ 标准库中的一个模板类,它用于存储…

09_CSS3多媒体查询

1 多媒体查询 1.1 媒体查询 媒体查询能在不同的条件下使用不同的样式,使页⾯在不同在终端设备下达到不同的渲染效果。 CSS 的 Media Query 媒体查询(也称为媒介查询)用来根据窗口宽度、屏幕比例和设备方向等差异来改变页面的显示方式。 使…

Failed to connect to bitbucket.org port 443 错误原因, 解决办法

最近使用SourceTree来访问bitbucket.org的代码托管Git, 当Pull或者Push发现操作失败: Failed to connect to bitbucket.org port 443 错误原因: 无法链接到网站地址, 可能是DNS解析IP地址错误, 或者网站维护, 大概率是被墙或者DNS解析错误. 解决办法: 如果您的浏览器能够访问b…

字符串 (3)--- KMP 算法的扩展

对于个长度为n的字符串s。定义函数z[i]表示s和s[i,n-1](即以 s[i] 开头的后缀)的最长公共前缀(LCP)的长度。z被称为s的Z函数。特别地,z[0] 0。 如同大多数字符串主题所介绍的算法,其关键在于,…

APIFOX公共脚本

APIFOX公共脚本 从参数中获取数据加密放入请求头中调用接口获取token放入全局变量中 从参数中获取数据加密放入请求头中 var paramJson JSON.parse(pm.request.body.raw) console.log(paramJson); var params1 paramJson.params1; var params2 paramJson.params2;var md5_sig…

嵌入式MCU都有什么高级用法?

嵌入式MCU都有什么高级用法? 您举的几个例子,确实是MCU外设的一些高端玩法。只是不知道您是否想过,既然这些机制是被 人设计出来的,那它就是种标准用法。从微控制器的发展历程来看,许多硬件机制都是有了实际 需求后才…

SpringBoot轻松实现项目集成Knife4j接口文档

Knife4j 介绍 Knife4j 官网 Knife4j是一款基于Swagger生成API文档的增强工具,它简化了开发者构建和管理RESTful API文档的过程。通过自动扫描项目中的接口信息,Knife4j能够生成详细、易读的API文档,无需手动编写和维护。它提供交互式的接口调…

软件测试这些基本类型你知道吗?

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 关于软件测试的类型,从不同角度来讲,可以分很多种,有时候甚至觉得软件…