VIVO(维沃)2021年芯片设计工程师笔试题+解析
目录
题型:
单选:
多选:
简答题:
题目来源于众多网友对笔试的记录、回忆。
理解不到位,难免出错,解析仅为个人看法,有不同意见请留言指教,谢谢!
题型:
15个单选+5个多选+4个简答/代码题
单选:
1.如果对一幅(帧)分辨率为VGA。每像素数据位宽为8bit的图像进行直方图统计,对应像素地某个取值的统计结果最多有多少种可能?
A.307200 B.307201 C.256 D.255
解析:C
每像素数据位为8bit,每像素有0-255种可能,因此最多有256种可能。
2.netlist一般通过什么手段进行验证可以保证其与RTL的一致性?
A.形式验证 B.随机验证 C.网表验证 D.RTL验证
解析:A
形式验证是为了验证综合之后的网表文件与rtl设计文件是否一样,采用的工具是formality。
3.对于跨异步时钟域的信号,以下哪个方面一般不需要在功能仿验证时考虑?
A.信号有效是高电平还是低电平 B.信号变化的最小宽度
C.时钟频率 D.时钟的抖动
解析:D
功能仿真是前端要做的,不关心时序,而时钟抖动(clock skew)是后端加入器件库和工艺库
以及时钟树综合之后才会出现的。
4.关于复位,以下说法正确的是()?
A.复位信号的生效必须需要有时钟上升沿 B.芯片中的复位信号需要在同一周期中生效
C.芯片中所有寄存器都必须有复位控制 D.复位设计可以确保寄存器从稳定态开始工作
解析:D
异步复位跟时钟沿没关系,A错;
异步复位同步释放,不是同一周期,B错;
静态配置的寄存器不需要复位,C错;
复位可以保证寄存器从稳定态开始工作,D对。
5.降低NMOS的开启电压VT的方法,下述哪种方法是无效的?
A.增加源漏极的N型掺杂浓度 B.减少氧化层厚度
C.减少衬底的P型掺杂浓度 D.减少沟道长度
解析:C
当栅极接通正电压之后,衬底上的少数载流子聚集到栅极下面,形成导电沟槽,完成NMOS的开启。
因此,C选项应该是增大掺杂浓度,若减少掺杂浓度的话,载流子浓度降低,就需要更大的开启电压。
6.以下Verilog运算法优先级由高到低的排序正确的是?
A.^,!,&,|,&& B. &,|,&&,^,!
C. !,|,&,&&,^ D.!,&,^,|,&&
解析:D
运算优先级由高到低:取反 乘除取余 加减 移位 比大小 比相等 位逻辑运算 逻辑运算 三目运算符
7.在RTL设计阶段,降低功耗的常用设计方法是?
A.降低电路漏电流 B.多阈值电压 C. 门控时钟 D.门级电路的功耗优化
解析:C
在rtl设计阶段进行低功耗设计的方法主要有三种:
减少输入数据切换:只在有需要的时候更新触发器
减少触发器时钟切换:门控时钟,这个用的最多
减小芯片面积:优化设计
8.如下图所示的电路中,已知两个D触发器之间有一段组合逻辑,如果时钟周期为T,则建立时间余量为()?
A.T-T1+T2-T3-T4+Tsetup B.T-T1-T2-T3-T4-Tsetup
C. T-T1+T2-T3-T4-Tsetup D.T-T1-T2-T3-T4+Tsetup
解析:C
时钟周期T+时钟偏斜(T2-T1)-一级触发器延时(T3)-组合逻辑延时(T4)
-二级触发器建立时间(Tsetup)
9.下图为组合逻辑Y=f(x1,x2,x3,x4)的真值表,请根据此真值表选择Y的逻辑表达为?
解析:D
很简单的卡诺图化简,画两个圈即可得出结果
10.下面的那个描述可以产生glich free的门控后时钟?
A.always@(posedge clk) gated <= en; assign gated_clk = gated & ~clk;
B.always@(posedge clk) gated <= en; assign gated_clk = gated | ~clk;
C.always@(negedge clk) gated <= en; assign gated_clk = gated & ~clk;
D.always@(negedge clk) gated <= en; assign gated_clk = gated | ~clk;
解析:A
对上升沿有效的 clk,使用与门进行门控,ena 使能信号跳变只能发生在时钟的低电平区;
对下降沿有效的 clk,使用或门进行门控,ena 使能信号跳变只能发生在时钟的高电平区;
11.一个三角形的封闭道路上在三个顶点分别停有一辆可自主行驶的汽车,汽车会同时以相同速度随机朝另外一个顶点行驶,那最终他们有多大的几率都不会相撞?
A. 1/3 B.1/2 C. 1/8 D.1/4
解析:D
三辆车,每辆车有两个朝向,因此总共有2^3=8种可能,
但只有当三辆车同朝向一个方向行驶的时候才不会相撞,
同一个方向有两种可能,逆时针和顺时针,因此,有2/8=1/4的概率不会相撞。
12.D触发器:Tsetup = 3ns;Thold = 1ns;Tck2q = 1ns。该触发器最大可运行时钟频率是()?
A.250Mhz B.1Ghz C.200Mhz D.500Mhz
解析:A
Delay = Tsetup + Tck2q = 4ns,延时与保持时间没关系。
因此最大时钟频率=(1/4)*1000MHZ=250MHZ
13. 假设一个3bit计数器(计数范围为0-6)工作在38MHZ的时钟域下,要把此计数器的值传递到另一个异步100MHZ时钟域,一下方式不正确的是()?
A.使用格雷码 B.使用DMUX电路 C.锁存加握手信号 D.使用异步fifo
解析:A
本题的计数范围为0-6,格雷码无法形成闭环,因此无法使用格雷码,
如果计数范围是0-7就可以使用格雷码。
14.下面哪一个不是循环关键字()?
A.fork B.while C.forever D.repeat
解析:A
fork join:用于测试文件中延时语句的并行执行。
15.X和Y均为补码表示的二进制,其中X=10010010B,Y=10001011B,下列选项中哪一个为X+Y的运算结果()?
A.111100010B B.011100011B C.100011101B D.110011101B
解析:C
补码可以直接加减,这里直接做加法即可。
多选:
16.以下关于IIC接口的描述中正确的是()?
A.在master发送8位数据后,slave如果驱动SDA信号为低,表示NACK
B.当SCL为高时,SDA从高电平到低电平跳变表示start
C.SCL和SDA都是开漏输出
D.SCL和SDA均需接上拉电阻
解析:BCD
A错:发送器发送一个数据单元后,接受器在第九个时钟信号拉低SDA电平,表示接收到数据(ACK)。
B对:开始信号(START):SCL为高电平时,SDA由高电平跳变到低电平,标志开始传输数据。
C对、D对:SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出,
需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,
输出级也是开漏电路,在总线上消耗的电流很小,
17.关于异步处理,以下说法正确的是()?
A.异步处理需要考虑发送和接收时钟之间的频率关系
B.单比特信号打两拍后可以避免亚稳态的发生
C.异步FIFO采用格雷码的原因是为了提高电路速度
D.静态配置信号有些情况下可以不做异步处理
解析:ABD
异步fifo采用格雷码的原因是为了防止亚稳态
18.下面关于代码覆盖率描述正确的是()?
A.代码覆盖率包括条件覆盖率
B.代码覆盖率包括功能覆盖率
C.代码覆盖率达到百分之一百说明代码缺陷问题已完全消除
D.代码覆盖率包括语句覆盖率
解析:AD
代码覆盖率包括条件覆盖率、翻转覆盖率、行(语句)覆盖率、状态机覆盖率。
代码覆盖率达到百分之百只能说代码都覆盖了,并不能说明所有代码缺陷已完全消除。
19.一下关于DFT的描述中,正确的是()?
A.DFT是为了找出设计的错误
B.Boundary scan可以用来测试IO PAD
C.Stuck at fault通常可以用DC测试覆盖
D.scan chain,mbist,logic bist都是常见的DFT设计手段
解析:BD
对于ABD:DFT(可测性设计)指的是在芯片原始设计阶段插入的用于找出芯片加工过程中导致的物理
缺陷设计,包括边界扫描(boundary scan test)、内建自测试(bist)、扫描链(scan path)。
对于C:我们所说的DC SCAN就是normal scan test 即慢速测试,测试频率是10M-30M ,
1995年以后,工程师发现通过DC SCAN测试没有缺陷的芯片在高工作频率下使用会有问题。
其根本原因是随着制造工艺向深亚微米迈进,芯片的工作频率也提高到200M-1G,
原来的SCAN测试方法和模型不再能捕捉到所有的std-logic的制造缺陷。
20.数字电路设计中,关于同步复位和异步复位描述正确的是()?
A.异步复位不需要时钟也能完成复位动作
B.同步复位在时钟沿变化时完成复位动作
C.异步复位信号不能有毛刺
D.如果复位信号没有毛刺,异步复位信号不会出现亚稳态
解析:ABC
对于D选项,当异步复位信号recovery和removal时间不满足的时候会进入亚稳态,
这也是异步复位信号不能设为false path的原因。
简答题:
21.如果输入信号为连续单bit数据,为了统计检测到“110010”的次数,应该如何实现?请你用你觉得方便并能清晰表达失效过程的方式作答。
解析:很简单的序列检测题,这里要注意的是题目要求的是统计检测到“110010”的次数,
同时这也暗含了连续检测的意思。
module seq(clk ,rst_n ,din ,//输入值d_cnt //检测到的次数
);input clk ;
input rst_n;
input din ;output[4:0] d_cnt;
//方法一:移位寄存器
/***********开始***************/
reg[5:0] data;
reg[4:0] d_cnt;always @(posedge clk or negedge rst_n)beginif(rst_n==1'b0)begindata <= 6'b0;endelse begindata <= {data[4:0],din};end
endalways @(posedge clk or negedge rst_n)beginif(rst_n==1'b0)begind_cnt <= 5'b0;endelse if(data==110010)begind_cnt <= d_cnt + 1'b1;end
end
/***********结束***************///方法二:状态机
/***********开始***************/
parameter S0= 7'b0000001;
parameter S1= 7'b0000010;
parameter S2= 7'b0000100;
parameter S3= 7'b0001000;
parameter S4= 7'b0010000;
parameter S5= 7'b0100000;
parameter S6= 7'b1000000;reg[6:0] state_c ;
reg[6:0] state_n ;always@(posedge clk or negedge rst_n)beginif(!rst_n)beginstate_c <= S0;endelse beginstate_c <= state_n;end
end//第二段:组合逻辑always模块,描述状态转移条件判断
always@(*)begincase(state_c)S0:beginif(din==1'b1)beginstate_n = S1;endelse beginstate_n = S0;endendS1:beginif(din==1'b1)beginstate_n = S2;endelse beginstate_n = S0;endendS2:beginif(din==1'b0)beginstate_n = S3;endelse beginstate_n = S2;endendS3:beginif(din==1'b0)beginstate_n = S4;endelse beginstate_n = S1;endendS4:beginif(din==1'b1)beginstate_n = S5;endelse beginstate_n = S0;endendS5:beginif(din==1'b0)beginstate_n = S6;endelse beginstate_n = S2;endendS6:beginif(din==1'b0)beginstate_n = S0;endelse beginstate_n = S1;endend default:beginstate_n = S0;endendcase
end//第四段:同步时序always模块,格式化描述寄存器输出(可有多个输出)
always @(posedge clk or negedge rst_n)beginif(!rst_n)begind_cnt <=5'b0 //初始化endelse if(state_c==S6)begind_cnt <= d_cnt + 1'b1;end
end/***********结束***************/endmodule
22.下图中的电路,器件延迟如图中标注,将框内的电路作为一个寄存器,其有效setup time = ()ns,hold time = ()ns?如果将图中Thold改为0ns,hold time检查的有效值又是多少()ns?
解析:其实跟经典模型一样,就是将这个模型视为一个整体然后进行建立、保持时间分析,
个人认为(不一定对,仅供参考,也有说法建立时间为2+2-1=3)建立时间为4+2+2-1=7ns,
保持时间为2+1(clk skew)=3ns,hold为0之后,保持时间为1ns.
23.对于同步FIFO,每100个cycle可以写入60个数据,每10个cycle可以读出6个数据,为了保证数据正确传输不溢出,FIFO的深度至少为多少?如果FIFO改为异步的,写时钟为200Mhz,每100个cycle可以写入30个数据,读时钟为100Mhz,每10个cycle可以读出6个数据,,FIFO的深度又应该至少为多少?请写出计算过程。
1)最大突发传输量为:200个时钟周期中间连续写入120个数据,在此时间内读出120/10*6=72,
还剩余48个数,因此fifo最小深度为48;
2)最大突发数据量为:200个时钟周期中连续写入60个数,用时5*60=300ns,
此时读时钟经过了300/10=30个周期,总共读出30/10*6=18个数据,因此fifo的最小深度为42。
24.请描述下如何用verilog语言实现如下加法:
C=A+B;A是21bit无符号数,B是18bit有符号数;
如何实现才能保证正确的得到一个不溢出的有符号数C;
解析:扩展一位直接相加即可。
module addr(
input[20:0] A,
input[17:0] B,
output[21:0] C
);wire[21:0] C;assign C= {1'b0,A} + {4{B[17],B}}endmodule
虽然看到的星光已是多年前的面目,可毕竞千里迢迢,为你而来。--《八月长安》
VIVO(维沃)2021年芯片设计工程师笔试题+解析相关推荐
- 字节跳动2019春招后端开发工程师-笔试题解析
一.简介 字节跳动2019春招第三批在线笔试(后端开发工程师)已结束,结果也是凉凉.本文主要是分析这次的题目,并给出代码,以供大家参考和讨论,如有错误之处,还望帮忙指正,谢谢每位优秀的程序员. 二.题 ...
- 【数据挖掘】恒生金融有限公司2023届秋招数据ETL工程师笔试题解析
公司:恒生科技 笔试时间:2022年9月24号 岗位:数据ETL工程师 时间:120分钟 1 不定项选择题 1.SQL 修改表结构的关键词是 A. alter B. create C. desc D. ...
- 华为海思 2021数字芯片/IC 笔试题+解析
题目来源于众多网友对笔试的记录.回忆. 理解不到位,难免出错,解析仅为个人看法,有不同意见请留言指教,谢谢! 题型: 30个单选+10个多选 单选 1.影响芯片成本的主要因素是die size和封装, ...
- 华为芯片设计面试题_华为公司面试硬件工程师笔试题
华为公司面试硬件工程师笔试题 华为是我国知名的大企业,那么它在招聘硬件工程师的时候有什么要求呢?以下是百分网小编精心为大家整理的华为公司面试硬件工程师笔试题,希望对大家有所帮助!更多内容请关注应届毕业 ...
- 美团点评2020年测试工程师笔试题
VOL 155 04 2020-09 今天距2021年118天 这是ITester软件测试小栈第155次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- 搜狗2020年测试工程师笔试题
VOL 151 21 2020-08 今天距2021年132天 这是ITester软件测试小栈第151次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- 2021大厂字节跳动笔试题(含答案)
2021字节跳动web工程师笔试题 第一题 [ {num: 12, city: 'beijing'}, {num: 56, city: 'shanghai'}, {num: 167, city: 'g ...
- 下列不属于android布局的是( ),Android软件工程师笔试题(全选择题)【0-1年经验】...
Android软件工程师笔试题,全选择题,适合0-1年经验的面试者. Android软件工程师笔试题 单选题(共35题) 1.退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个 ...
- MTK深圳公司嵌入式软件工程师笔试题(含部分答案)
MTK深圳嵌入式软件工程师笔试题(B卷) 1. #define pi 3.14 #define Area(R) pi*R*R main() { int r1=5,r2=2; double s=0; ...
最新文章
- saxreader读取服务器xml文件,使用SAXReader从xml文件读取元素
- 如何在 JS 代码中消灭 for 循环
- 51nod 1513-3的幂的和(费马小定理+快速幂)
- springboot @JsonSerialize 的使用
- SAP UI5 Component-preload.js
- body onload 控制窗口大小 html,如何实现在调整浏览器窗口大小时缩放的网页?
- LeetCode 1839. 所有元音按顺序排布的最长子字符串(滑动窗口)
- 硬币找零问题,动态规划基础,百度面试题
- c语言acm测试数据,求数据帝帮忙测试一下代码,已被南洋理工大学的oj搞蒙..
- 每一个企业的供应商都有供应商
- ContestHunter暑假欢乐赛 SRM 03
- linux之tar使用技巧
- 剑指offer面试题[51]-数组中重复的数字
- 缓存系统在游戏业务中的特异性
- (一)Protobuf的Java使用
- 嵌入式硬件入门——EEPROM(AT24C02+I2C协议)
- 禅道下载与安装教程(完整版)
- 量化投资_期货日内交易的波动率思考
- 排序系列(代码c++版)
- 人类的终极目标是什么?
热门文章
- 微信小程序下拉刷新不执行 enablePullDownRefresh
- JUC学习 - 延迟队列 DelayQueue 详解
- cmd执行程序突然卡住解决办法
- python:实现EEMD算法(附完整源码)
- 自然语言处理算法-Max Match的python实现
- Cadence PSpice 仿真11:电感型低通滤波器最坏情况分析仿真实战图文教程
- BP神经网络——案例一
- 【NOIP2016模拟7.9】现世斩
- 全局路由守卫,独享路由守卫,组件内路由守卫
- python与机器人王国_【工业机器人】盘点日本最值得关注的工业机器人13大巨头!...