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

news2024/11/18 10:22:34

近日后台有同学私信还想要验证的面试题目,这不就来了~

Q16.权重约束中”:=”和”: /”的区别

: =操作符表示值范围内的每一个值的权重是相同的,比如[1:3]:=40,表示1,2,3取到的概率为40/120;

:/操作符表示权重要平均分到值范围内的每一个值,比如[1:3]:/60,表示1,2,3取到的概率为20/60。

Q17.rand和randc区别

rand: 表示随机,比如有56个数,每次的随机概率都是1/56;
randc: 表示周期性随机,比如56个数,第一次随机的概率为1/56,第二次随机的概率为1/55,以此类推。

Q18.break、continue和returen的含义用法

break 语句结束整个循环。
continue 立即结束本次循环,继续执行下一次循环。
return 语句会终止函数的执行并返回函数的值(如果有返回值的话)。

Q19.function中return语句执行之后,function里剩下的代码语句还会执行吗

return之后,function里剩下的语句不能执行,其是终止函数的执行,并返回函数的值。

Q20.触发器和锁存器的区别

触发器: 时钟触发,受时钟控制,只有在时钟触发时才采样当前的输入,产生输出。

锁存器: 由电平触发,非同步控制。在使能信号有效时锁存器相当于通路,在使能信号无效时锁存器保持输出状态。触发器由时钟沿触发,同步控制。

锁存器对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产生;触发器则不易产生毛刺。

Q21.为什么要使用两级触发器进行同步

使用二级触发器进行同步可以极大的避免亚稳态的出现:

至于为什么“打两拍”可以减少亚稳态,我觉得根本原因是在于寄存器是一个双稳态器件,只有0和1两种稳定的状态。在绝大多数时候,第一级Flop的Q端,即使出现亚稳态,也会在一个时钟周期内稳定下来,这样第二级Flop所采到的就是一个稳定的值。“打两拍”就是利用这一点,切断了亚稳态的传播。

Q22.setup和hold违例分别是什么

setup time是指在时钟有效沿之前,数据输入端信号必须保持稳定的最短时间。
hold time是指在时钟有效沿之后,数据输入端信号必须保持稳定的最短时间。

hold time时序检查确保新数据不会在触发器稳定输出初始数据之前过早到达D端而覆盖其初始数据。
[图片]

总结为一句话:当前待传输的数据,相对于Capture edge来说,必须早来(setup time)晚走(hold time)。

Q23.SVA中and、intersect、or、throughout、$past如何使用

and:可以按照逻辑与的方式组合两个序列,当两个序列都匹配时,整个属性成功。

示例:
property p;
sequence_a and sequence_b;
endproperty
注意】sequence_a和sequence_b的检查起始点必须一样,但是两者结束的结束点可以不一样,整个属性的成功点以两个sequence中最后一个成功的sequence的匹配点为属性的成功点。
or:可以按照逻辑或的方式组合两个序列,当两个序列有一个匹配时,整个属性成功。
示例:
property p;
sequence_a or sequence_b;
endproperty
注意】sequence_a和sequence_b的检查起始点必须一样,但是两者结束的结束点可以不一样,整个属性的成功点取决于最早匹配成功的sequence,只要两个序列有一个匹配成功,整个属性就认为匹配。

intersect两侧的表达式都是sequence,不能是property,使用intersect时需要确保其两侧的sequence必须同时开始,且当两个sequence最终同时匹配时才认为两个序列的intersect匹配,即两个sequence匹配的长度必须相同,intersect操作符和and操作符很相似,但是and没有要求两个序列最终匹配时同时匹配。

在SVA中有时需要某些信号在一个序列的检查过程中一直保持一个状态,此时就可以使用throughout操作符,当这些信号的状态发生不期望的变化时,序列的检查即认为失败。

past主要用于检查当前表达式前一个时钟周期(如果不指定number_of_ticks,默认指向前一个时钟周期)值是否为真,如果位真则$past返回为真。其格式如下:
past(expression[,number_of_ticks]);
其中number_of_ticks可以指定检查当前时刻之前number_of_ticks个周期的采样值.

Q24.SVA中”->”和”=>”区别

@ (posedge clk) a |-> b 断定clk上升沿后,a事件"开始发生",同时,b事件发生
@ (posedge clk) a |=> b 断定clk上升沿后,a事件开始发生,下一个时钟沿后,b事件开始发生。

Q25.如何关闭约束

根据不同需要,来选择使能哪些约束块,禁止哪些约束块的要求,可以使用内建的constrai nt_mode()函数打开或者关闭多个约束块;rand_mode()函数打开或者关闭随机变量。

Q26.deep copy和shallow copy区别

如果拷贝的对象里的元素只有值,没有引用,那浅拷贝和深拷贝没有差别,都会将原有对象复制一份,产生一个新对象,对新对象里的值进行修改不会影响原有对象,新对象和原对象完全分离开。

如果拷贝的对象里的元素包含引用(像一个列表里储存着另一个列表,存的就是另一个列表的引用),那浅拷贝和深拷贝是不同的,浅拷贝虽然将原有对象复制一份,但是依然保存的是引用,所以对新对象里的引用里的值进行修改,依然会改变原对象里的列表的值,新对象和原对象完全分离开并没有完全分离开。而深拷贝则不同,它会将原对象里的引用也新创建一个,即新建一个列表,然后放的是新列表的引用,这样就可以将新对象和原对象完全分离开。

Q27.队列常用的方法有哪些

队列常用的使用方法:insert,delete, push_back和pop_front
Push插入,pop取出
Front前边,back后边

Q28.local和protected区别

类中如果没有指明访问类型,那么成员的默认类型是public,子类和外部均可以访问成员。
如果指明了访问类型是protected,那么只有该类或者子类可以访问成员,而外部无法访问。
如果指明了访问类型是local,那么只有该类可以访问成员,子类和外部均无法访问。

Q29.常用的debug方法有哪些

1.打印显示
2.设置断点
3.波形分析

Q30.亚稳态的危害

亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。
亚稳态违背了时序,无法在规定的时间内达到稳定,且亚稳态具有传输功能,会传递给后一级的触发器,从而导致电路出错。亚稳态最后会稳定下来,但是所需的时间较长。

共150道验证高频面试题整理(含答案)
在这里插入图片描述

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

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

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

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

相关文章

手把手教你在云环境炼丹(部署Stable Diffusion WebUI)

前几天写了一篇《手把手教你在本机安装Stable Diffusion秋叶整合包》的文章,有些同学反映对硬件的要求太高,显卡太TM贵了。今天我再分享一个云服务器炼丹的方法,方便大家快速入门上手,这个云服务不需要特殊网络设置,能…

【rtmp】2: rtmp 推送 annexb

参考RTMP协议封装H264和H265协议详解 大神分析rtmp推送的大部分是annexb的h264 因此,我们就以此为格式 转为rtmp avcc 推送到服务器端。 一般sps、pps 前面有4个 字节的起始码,所以要跳过,不要计算在sps pps 长度里。 对于视频,先发avc头 第一个 5个字节 第一个字节 0x17 ,…

source insight常用操作

1、窗口布局 SI窗口十分丰富,通过菜单栏View->Toolbars/panels选择显示那些工具栏/窗口 Source Insight 窗口介绍_sourceinsight窗口_STCNXPARM的博客-CSDN博客 2、RGB护眼色 Source Insight4.0字体大小及护眼背景配置_sourceinsight4背景色配置_ProYuan28的…

Let’s Encrypt 免费证书提示:(STAGING) Pretend Pear X1证书不受信任

通过Let’s Encrypt 免费申请证书,发现浏览器并不信任 原因 我使用了ACME V2 测试环境: https://acme-staging-v02.api.letsencrypt.org/directory 需要改为生产环境 https://acme-v02.api.letsencrypt.org/directory 测试环境有两个活跃的根证书…

vue中的require

vue中的require 一、基本概念二、具体演示1.引入json2.引入图片 三、require.context引入图片:引入json引入模块js:引入vue文件: 一、基本概念 require 是 node 中的一个方法,他的作用是 用于引入模块、 JSON、或本地静态文件。r…

快速开发框架若依的基础使用详解

Hi I’m Shendi 快速开发框架若依的基础使用详解 最近在为公司制作新的项目,经过了一段时间的技术沉淀,我开始尝试接触市面上用的比较多的快速开发框架,听的最多的当属若依吧 于是就选用了若依 介绍 为什么选?目的是为了提高开发…

【前端设计】尝试一文搞懂verilog parameter的全部细节

这里是尼德兰的喵芯片设计相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏! 让我们一起为成为芯片前端全栈工程师而努力! 一个参数的标准定义呢应该是这样的: parameter type range name …

SHELL——备份脚本

编写脚本,使用mysqldump实现分库分表备份。 1、获取分库备份的库名列表 [rootweb01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys" mysql: [Warning] Using …

二十三种设计模式第十九篇--命令模式

命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许您以参数化的方式将客户端代码与具体实现解耦。在命令模式中,命令对象充当调用者和接收者之间的中介。这使您能够根据需要将请求排队、记录请求日志、撤销操作等。 命令模…

华为数通HCIP-IP组播基础

ospf、isis、BGP--ping通,单播路由--单播路由表; mpls--单播标签互通 点到多点业务流量下发 1、通过广播 一对所有发送; 缺陷:导致流量的有偿性、安全性得不到保障; 2、通过单播 一对一发送; 缺陷&…

嵌入式软件和硬件首先说一下怎么入门?

1,编程。这个你是否懂C语言编程,能够熟练或者熟悉使用C语言编写一段程序。不懂学习C语言。 2,单片机。你是否了解什么是单片机,单片机是做什么的。不懂的话,最好先了解一下什么是单片机,看下书&#xff0c…

万里腾飞终有路,国产替代正当时

2023年7月27-28日,I-CAR 2023 第六届细胞免疫疗法深度聚焦论坛在上海建工浦江皇冠假日酒店隆重举办,本次大会主要围绕实体瘤、质量控制&产业化、通用CAR-T疗法、免疫治疗新风口四大主题展开,就细胞免疫治疗快速发展崛起的同时&#xff0c…

openGauss学习笔记-26 openGauss 高级数据管理-约束

文章目录 openGauss学习笔记-26 openGauss 高级数据管理-约束26.1 NOT NULL约束26.2 UNIQUE约束26.3 PRIMARY KEY26.4 FOREIGN KEY26.5 CHECK约束 openGauss学习笔记-26 openGauss 高级数据管理-约束 约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成…

ubuntu下,在vscode中使用platformio出现 Can not find working Python 3.6+ Interpreter的问题

有一段时间没有使用platformio了,今天突然使用的时候,发现用不了,报错: Ubuntu PlatformIO: Can not find working Python 3.6 Interpreter. Please install the latest Python 3 and restart VSCode。 上网一查,发现…

最全面的TCP、UDP、Socket、HTTP网络编程面试题

先看一天面试的经验: 第一场: 面试官:你说一下TCP的三次握手 我:第一次Client将SYN置1......、第二次Server收........、 第三次........ 面试官:很难背吧? 我:......是啊,很难&…

【编译】gcc make cmake Makefile CMakeList.txt 区别

文章目录 一 关系二 gcc2.1 编译过程2.2 编译参数2.3 静态库和动态库1 后缀名2 联系与区别 2.4 GDB 调试器1 常用命令 三 make、makefile四 cmake、cmakelist4.1 语法特性4.2 重要命令4.2 重要变量4.3 编译流程4.4 两种构建方式 五 Vscode5.0 常用快捷键5.1 界面5.2 插件5.3 .v…

程序的编译(3/13)

经过预处理后的源文件,褪去一切包装,注释被删除,预处理命令也基本上被处理掉,剩下的就是 C 代码了。接下来的第二步,就进入到编译阶段。编译阶段主要分为两步:第一步,编译器调用一系列解析工具分…

leetcode 面试题 08.05.递归乘法

⭐️ 题目描述 🌟 leetcode链接:面试题 08.05.递归乘法 思路: A 3 , B 4 ,3 * 4 等价于 3 3 3 3。 代码: int multiply(int A, int B){if (!B) {return 0;}return A multiply(A , B - 1); }

23款奔驰AMG GLE53加装原厂HUD抬头显示系统,增加您的行车安全

HUD是平视显示器的简称,它原先是运用在航空器上的飞行辅助仪器。指飞行员不需要低头,就能够看到他需要的重要资讯。由于HUD的方便性以及能够提高飞行安全,这项技术后来也发展到汽车行业。汽车搭载的HUD抬头数字显示功能,是利用光学…

Antd 日期范围选择框选择一个日期后,面板收起

需求 初始状态只有开始时间,如下图⬇️ 产品需要优化体验: 点击结束日期选择日期下拉面板直接收起,而不是需要选择起始时间 思路 需要一段逻辑的open属性控制后续操作还是由组件内部控制 逻辑 第一次打开,open控制选择了&am…