泰凌微电子2022数字IC笔试
单选(2分)
1/38.#UDLY语句可以被综合成延时电路
A.正确
B.错误
解:B
2/38.以下verilog变量名合法的是
A. 3sum
B. a/b
C. ab@cd
D. subSme_
解:D
3/38.如下对于procedural block说法错误的是
A.代码中的procedural block是同时执行的
B. initial和always procedural block可以嵌套
C. initial procedural block只执行一次
D. always procedural block可以循环执行
解:B
4/38.下面那个不是IC设计前端的FLOW
A.RTL设计
B.综合
C.门级验证
D.布局布线
解:C D
5/38.下面哪种不属于Vim编辑器的工作模式
A.命令模式
B.插入模式
C.底行横式
D.列操作模式
解:C
D
Vim编辑器基本上可以分为3种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),下图所示为Vim各种模式相互转换的关系图。
命令模式:控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作(不使用[Del]键和[Backspace]键)以及进入插入模式,或者回到底行模式。
上下左右键:移动光标 yy:复制当前所在行 n+yy:复制当前所在行以及以下n行的内容 例:3yy p:在光标所在的下一行进行粘贴 dd:删除所在行 n+dd:删除当前所在行以及以下n行的内容 例:3dd gg:快速跳转到文件的头部所在行的首字符 G:快速跳转到文件的尾部所在行的首字符 n+G:快速跳转到文件的尾部所在第n行的首字符 $:快速到光标所在行的行尾字符 n+$:快速到光标所在行的行尾字符 u:撤销操作 注:按几下就撤销几次
插入模式:只有在插入模式下,才可以输入文字。按[Esc]键可回到命令行模式。很多Vim编辑器使用者希望一打开Vim就可以输入内容,但这是不能成功的,因为刚打开Vim编辑器时处于命令模式。
i:从当前光标处开始插入文本 I:从当前光标所在行,行首开始插入文本 a:从当前光标处下一个字符开始插入文本 A:从当前光标所在行,行尾开始插入文本 o:从当前光标处下一行,开始插入文本 O:从当前光标处上一行,行首开始插入文本
底行模式:保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号、寻找字符串等。
set nu:显示行号 wp:保存退出 w:保存数据 q:退出文件 q!:强制退出,文件不保存 %/old/new/%:查找替换关键词
有的书中把Vim编辑器简化成两个模式,将底行模式也算作命令行模式。
6/38.下面哪个是最简单的逻辑门
A.与门
B.成门
C.非门
D.与非门
解:C
7/38.如下的几个Verilog描述层次中,我们常用的是哪个层次
A. Gate Level
B. Algorithmic
C. Register Transfer Level
D. Switch Level
解:C
Verilog描述语言4个层次 - 百度文库https://wenku.baidu.com/view/8fe8f90b763231126edb112f.html
8/38.在systemverilog中声明随机变量的关键词为
A. randa
B. randc
C. tandomize
D. urandom_range
解:B
9/38.linux常用命令中,下列哪个命令用于修改文件的所属群组
A. cat
B. cbgrp
C. chown.
D. chmod
解:C D
Linux cat 命令 | 菜鸟教程
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
10/38.在systemverilog中,可以在哪里定义类
A. program
B. module
C. package
D.以上都可以
解:A
【SV】systemverilog类的使用,需弄懂的“两个问题” - 百度文库
11/38.正确描述FIFO特性的为
A.将满信号(almost_full)和将空信号(almost_empty)是必须使用的
B.FIFO可以作为数据缓冲模块
C.满信号在读时钟域产生
D.FIFO可以通过写入地址直接访问
解:B
A、不是吧,一般异步才用这俩信号
B、对的
C、在写时钟领
D、不可以,地址得连续的
12/38.以下哪个不属于面向对象编程(OOP)特性
A.封装
B.继承
C.多态
D.重载
解:D
封装、继承、多态是面向对象的三大特性。类本身不是特性
13/38. systemverilog中以下语句中哪一个表示等待至少一个进程完成,然后再执行后继的语句
A. fork_join
B. fork_join_none
C. fork_join_any
D. fork_join_one
解:C
SystemVerilog中fork-join三种形式的应用_weixin_34380296的博客-CSDN博客
在Verilog/SystemVerilog中使用fork/join的注意事项 - 灰信网(软件开发博客聚合)
14/38. systemverilog中能够从当前for循环或者while程序块中跳出并运行下一段程序的语句是
A. continue
B. break
C. stop
D. finish
解:B
15/38.用补码方式表示的有符号二进制数1011.10换算成十进制为多少
A.-4.5
B.4.5
C.-5.5
D.5.5
解:C
16/38.下列哪种常用电平标准是单端的()
A.PECL
B.LVDS
C.RS485
D.RS232
解:A
LVDS是一种低压差分信号技术接口,LVDS接口电路包括两部分,即驱动板侧的LVDS输出驱动电路(LVDS发送器),和液晶面板侧的LVDS输入接口电路(LVDS 接收器),属于双端口;RS-232/485属于双端口高速接口
17/38.以下的哪个timescale directive定义下,#1.23表示1.23ps
A. timescale1ps/10fs
B. timescale 1ps/100fs
C. timescale 1ns/1ps
D. timescale 1ns/10ps
解:BA
18/38.修改文件夹"test"以及其下面的所有文件权限为User自己可读可写可执行,Group和Other设定为仅仅可读
A. chmod-R 755 test
B. chmod-R 744 test
C. chmod-R 722 test
D. chmod 755 test
解:B
可以使用 chmod 命令来对目录设置权限:
chmod 可以用3个数字来表达 用户,用户组,其他用户:
如 chmod 777 /test (数字的第一个7代表的是用户权限
数字的第二个7代表的是用户组的权限
数字的第三个7代表的是其他用户的权限)
而数字7是特定用户的 读,写 , 执行 权限:
[读取--用数字 4 表示]
[写--用数字 2 表示]
[执行--用数字 1 表示]
用这些数字相加得到权限:
如你想设置/test目录的权限为:
对用户可读可写, 4(读取)+ 2 (写入) = 6
对用户组可读可执行, 4(读取) + 1 (执行) = 5对其他用户仅仅可读; 4(读取)
这样就可以用命令: chmod 654 /test 来设置权限~
!!!提示如果是设置目录,没有执行权限是不可以读取目录的。
19/38.下面哪个phase在UVM tree中是按照自上而下的顺序执行
A. build_ phase
B. connect_ phase
C. end_ of_ elaboration_ phase
D. start_ of_ simulation_ phase
解:A
UVM学习笔记--phase机制_wonder_coole的博客-CSDN博客_phase机制
20/38.下面那些systemverilog数据类型不是双状态数据类型
A. bit
B. int
C. real
D. byte
解:不懂 感觉都是啊
1、四状态数据类型
四状态(4-state)默认值为x,但是线网在没有驱动的时候输出的是z,这一点特殊要记住!四状态数据类型:
wire/reg/logic
integer:32比特有符号数
time:64比特无符号数
注意事项:logic:logic类型只能有一个驱动,所以可以用它来查找网表中的漏洞。但有些信号如果本来就希望它有多个驱动,如双向总线,那么久需要定义为线网类型(Net),如wire。
四值状态的变量可以赋值为二值状态的变量,但需要注意 x 和 z 会转换成0
2、双状态数据类型
双状态(2-state)默认值为0。双状态数据类型:
bit:1比特无符号
byte:8比特有符号
shortint:16比特有符号
int:32比特有符号
longint:64比特有符号
real:双精度浮点数
多选题(共15题,每题2分,共30分)
21/38.下列哪些方式可以减少亚稳态问题的影响
A.提升系统时钟频率
B.用反应更快的FF
C.架构上增加data toggle rate
D.改善时钟质量
解:BCD
降低系统时钟
22/38.芯片中设计***耗密度过大,会产生什么不良影响
A. hot-spot
B.电压下降
C.不满足时序约束
D.封装成本安高
解:ACD
不知道B对不对
23/38.下列数据类型中属于四状态类型的有哪些
A. int
B. logic
C. bit
D. time
解:D
24/38.关于systemverilog中new操作的下列描述中,错误的是
A.它可以用来动态创建对象和对象数组
B.使用它创建对象时要调用构造函数
C.new操作被定义成一个需要有返回类型的函数
D.使用它创建对象数组时必须指定对象的初始值
解:D
25/38.数字电路的验证维度有哪些
A.完备性
B.复用性
C.高效性
D.满足性能
解:ABCD
26/38.下面哪个选项不可以消除hold time violation
A.插入buff
B.提高时钟频潮
C.降低时钟频率
D.提高电压
解:不可以 所以选BCD
27/38.以下同步逻辑电路和异步逻辑电路描述正确的是
A.同步逻辑电路是时钟之间没有同定的因果关系。异步逻辑电路是各时钟之间有固定的因果关系
B.同步逻辑是由时序电路(寄存器机各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时序下完成的
C.异步逻辑电路不同时钟域之间不需要进行时钟同步
D.异步逻辑可能存在多个时钟信号,或者不存在时钟信号,电路中一个逻辑的变化就可能引起整个电逻辑的变化
解:BD
A说反了
C需要
28/38.下面那些是基于Systemverilog的验证方法学?
A. VMM
B. OVM
C. UVM
D. AVM
解:ABC
29/38.在验证中下列关于代码覆盖率描述错误的是
A.代码覆盖率包括语句覆盖率
B.代码覆盖率包括条件覆盖率
C.代码覆盖率包括功能
D.代码覆盖率达到100%说明所有Bug已消除
解:CD
验证方法学覆盖率(一):代码覆盖率_摩德里奇的博客-CSDN博客_验证覆盖率包括哪些
代码覆盖率
代码覆盖率是衡量验证进展的最简易的方式。它的作用是检查代码是否冗余,设计要点是否遍历,被检测的对象是RTL代码,而代码覆盖率的检测一般由工具自动生成的,不需要自定义收集条件。代码覆盖率主要包括以下几种:1.行覆盖率(Line coverage)
行覆盖率度量的是多少行代码已经被执行过。比如,你有100行代码,执行了90行,那么覆盖率就是90%。2.分支覆盖率(Branch coverage)
分支覆盖率衡量的是代码中的分支覆盖的情况,包括:
if-else语句覆盖情况
case语句覆盖情况
三元操作符("?:")覆盖情况3.路径覆盖率(Path Coverage)
路径覆盖率衡量的是在穿过代码和表达式的路径中有哪些已经被执行过,表明代码中数据通路的覆盖情况。4.条件覆盖率(Conditional coverage)
判定式中有多个条件时,要求每个条件的取值均得到验证。这里的条件覆盖率很容易与分支覆盖率产生混淆,为了方便大家区别,下面举一个例子:if ((test1() || test2()) {//在只有test1()为false的情况下,这个地方有一个BUG } else {do_something_benign; }
假设我们有如下两种情况:
test1()为true
test1()和test2()都为false
如果只是为了验证分支覆盖率,以上的两种情况就足够了,因为if语句中两种分支条件都有了,但是对于第一条分支中的只有在test1()为false情况下的BUG,这里并没有覆盖到。而在条件覆盖率下,还需要验证test1()为false且test2()为true这种情况,只有这三种情况都验证到了,才算是满足了条件覆盖率。
5.翻转覆盖率(Toggle coverage)
翻转覆盖率衡量的是哪些单比特变量的值为0或1,表明代码中信号的0到1和1到0的翻转情况。6.有限状态机覆盖率(FSM coverage)
有限状态机覆盖率衡量的是状态机中哪些状态和状态转换已经被访问过。表明状态机中各个状态的覆盖情况。
30/38.低功耗电路实现的方法有
A.降低工作电压
B.增加负载电容
C.降低电路面积
D.尽可能提高电路性能
解:AC
31/38.下面哪种方式可以对时序进行检查
A.即时断言
B.并发断言
C.建立时间约束
D.用保持时间约束
解:ACD
BCD 因为即时断言是基于事件的,不能用于时序
建立时间检查:建立时间检查会验证触发器时钟和数据引脚之间的时序关系,从而满足建立时间要求。
保持时间检查:保持时间检查可确保正在变化的触发器输出值不会传递到捕获触发器、并在捕获触发器有机会捕获其原始值之前重写(overwrite)其输出。
多周期路径:在某些情况下,两个触发器之间的数据路径可能需要一个以上的时钟周期才能传播通过逻辑。在这种情况下,这条组合逻辑路径会被定义为多周期路径(multicycle path)。
伪路径检查:当设计的功能运行时,某些时序路径可能不真实(或不可能)存在。在执行STA时可以将这些路径设置为伪路径(false path),这样就可以关闭这些路径。
半周期路径:如果设计中同时具有负边沿触发的触发器(有效时钟沿为下降沿)和正边沿触发的触发器(有效时钟沿为上升沿),则设计中可能存在半周期路径(half-cycle path)。
撤销时间检查(removal timing check)可确保在有效时钟沿与释放异步控制信号之间有足够的时间。
恢复时间检查(recovery timing check)可确保异步信号变为无效状态的时刻与下一个有效时钟沿之间的时间间隔大于一个最小值。
跨时钟域检查;多时钟检查。
断言的作用:易于调试,提供功能覆盖和模拟速度更快,确保验证完整性。
并发断言:基于时钟的,调度区间按assertion的调度区间,可以在过程块(always initial),模块(module),接口(interface),程序(program)中定义。
即时断言:基于事件的,本质不是时序关系,会立刻求值。进行检查。
32/38.超大规模集成电路设计中,为了高速设计,采取以下哪些措施
A.流水线设计
B.并行化设计
C.资源共享
D.串行化设计
解:AB
33/38.竞争冒险现象怎样可以消除
A.加入滤波电容
B.引入同步机制
C.不加选通信号
D.增加冗余逻辑
解:ABD
34/38.下列关于Setup/Hold Time说法正确的是?
A.如果DFF的Hold时间不满足,通常可以通过增加数据路径延时来解决
B.如果DFF的Setup时间不满足,通常可以通过增加数据路径延时来解决
C.如果DFF的Hold时间不满足,通常可以通过增加时钟路径延时来解决
D.如果DFF的Setup时间不满足,通常可以通过增加时钟路径延时来解决
解:AD
35/38.请找出以下总线中的串行总线
A.AXI
B.SDIO
C.UART
D.IIC
解:BCD
简答题(共3题,共30分)
36/38.一个好的验证流程可以在一定程度上保证验证的质量和效率,假设当你要验证一个DUT的时候。你会按照怎样的流程进行验证?请列出每个step并给出详细说明
37/38.请尽量多的陈列数字芯片设计时降低芯片功耗的方法
UNISOC-数字电路设计工程师-几道笔试题整理_weixin_43343190的博客-CSDN博客_数字电路笔试题
解析:芯片功耗分为动态功耗和静态功耗两大部分。
动态功耗是电路在工作时(翻转时)所消耗的能量。对于CMOS电路来说,它又分为开关功耗和短路功耗。开关功耗为电路翻转时对负载电容充电的功耗,短路功耗为输入翻转时,PMOS和NMOS同时打开的瞬间电流形成的功耗。用公式描述可写为:
Pdyn = (CL * Vdd2 * Ptran * F) + (ttran * Vdd * Ipeak * F)
其中,CL为电路总负载电容;Vdd为工作电压;Ptran为工作电路所占比例;F为工作时钟频率;ttran为PMOS,NMOS同时导通时间;Ipeak为短路电流。
公式中第一部分为开关功耗,第二部分为短路功耗。一般来说,只要gate的slew足够小,也就是ttran足够快,短路功耗一般可以忽略。
从公式中可以看到降低动态功耗的思路,可以从Vdd、F、CL和降低gate翻转次数等方面来设计降低功耗的方案。
静态功耗是电路在没有翻转时,晶体管中漏电流造成的功耗。根据重要性可以分为以下四个部分:
1、亚域值漏电流Isub: 从Drain经过弱反形层流向Source的电流
2、栅电流Igate:由于隧道效应和热载流子效应,由Gate经薄栅氧流向Sub的电流
3、由Gate引起的Drain电流IGIDL:由于Drain端的强电场引起的由Drain流向Sub的电流
4、结反偏电流Irev:反偏结耗尽区少子漂移和电子空穴对产生形成的由Drain、Source到Sub的电流。在数字IC设计中,我们常见的降低功耗的方法有哪些呢?方法如下:
1、clock gating 门控时钟技术
众所周知,在数字IC设计中,时钟信号的翻转率是比较高的,因此它的功耗约占整个芯片功耗的20-30%。传统的设计方法是时钟信号一直是存活着的(常开),门控时钟技术就是根据设计,将暂时不用的模块的时钟信号通过一个控制信号gating住,降低这个模块的时钟信号翻转率,从而降低芯片功耗的一种技术。clock gating的加法也有很多,有在rtl级就例化进来的gating(往往是比较root的gating),也有综合阶段工具自动加进来的。从数字前端设计的角度,clock gating是想越靠近root端越好(因为一个gating可以控制更多的寄存器或者时钟单元),一旦将某个gating关掉,能够节省较多的功耗。因此,在数字后端实现过程中,经常会碰到到gating使能端E pin的setup比较难meet,主要原因是这类gating比较靠近root导致的。关于如何fix clock gating使能端的setup会在后续更新文章中做详细的分析。
2、power gating
在数字IC后端设计中,经常采用这个策略降低功耗。在后端实现过程中,加入MTCMOS来控制标准单元的开关。
3、Multi vt cells
这个就是在数字IC后端设计实现过程中,将某些不是critical path的地方尽量用HVT或者RVT,降低leakage。当然这个需要与performance,area做一个tradeoff。因为用HVT或者RVT,由于timing不好meet,工具优化的比较困难,可能反而会导致面积越优化越大。
4、DVFS技术
DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节本质上是一种低功耗技术,目的是根据的芯片当时的实际功耗需要设定工作电压和时钟频率,这样可以保证提供的功率既满足要求又不会过剩,从而可以降低功耗。比如数字芯片中,CPU模块(比如8核cpu),在需要跑分的时候,将给cpu供电的电压通过软件调节到更高的电压(overdrive),获得一个更高的频率。在实际某个应用场景下,可能cpu只需要一个较低的频率时,可以将电压调节成一个较低的电压(underdrive)来实现。
一味的降频降压当然是不能降低功耗的,因为低频下运行可能使系统处理任务的时长增加,从而整体上可能反而增加了功耗。所以DVFS的核心是动态调整的策略,其目的是根据当时的系统负载实时调整,从而提供满足当时性能要求的最低功率,也就达到了最低功耗。制定调整策略前,先找出系统中的耗电大户即CPU GPU这些模块。需要统计出这些模块的负载情况,基本的策略当然是工作负载增加则升频升压,工作负载降低则降频降压。
5、Well bias
这个方法可以动态调整偏置电压,从而实现降低功耗的目的。
38/38.在一个CPU系统中,如果有两个模块UART和TIMER可以向CPU发送中断(电平),由CPU进行控制中断清除,如何完备的验证中断
笔试——紫光展锐_我是苏~格~拉的博客-CSDN博客_数字电路的验证维度有哪些
泰凌微电子2022数字IC笔试相关推荐
- verilog基础设计8-小米2022数字ic笔试编程题 16bit数除以8bit数 rtl实现
目录 1.除法器原理 2.无符号的除法器的实现 3.书写tb 4.仿真结果分析 题目:除法器的verilog实现,16bit A,8bit B.C = A/B: 1.除法器原理 摘自别的博客,这里除法 ...
- [笔试补完计划]澜起科技2022数字验证笔试
澜起科技2022数字验证笔试 时间2021.8.11 简答题(共11题) 1.[简答题]Please provide Linux shell command(s)to find all files w ...
- 数字 IC 笔试面试必考点(3)数字 IC 前端设计 + 后端实现
前言 该资源是博主花了十多天自己整理的,IC 前端设计流程在文中给出,IC 后端设计流程除了在文中给出之外还附加了总共六十页的 PDF 详细流程文档,简直是满满的爱啊,完整展示了 IC ...
- 数字IC笔试面试题目总结1_同步异步、竞争冒险
数字IC笔试面试题目总结1 同步和异步 竞争.冒险与亚稳态 格雷码与Latch 大部分内容均来自网络公开资料,如有侵权,请联系删除! 同步和异步 同步电路和异步电路最主要的区别是什么 异步电路主要是组 ...
- 艾为数字ic面试题_秋招 应聘FPGA/数字IC笔试面试经验分享(简单列举FPGA/数字IC公司)...
1.自我介绍 我是一名二本院校的电气自动化专业的本科生,因为自己的爱好,喜欢FPGA开发,两年的开发经验,用FPGA开发并完成三个省级科研立项并获得一个A类竞赛国家一等奖.目前签约上海艾为电子,数字I ...
- 组合逻辑竞争冒险,时序逻辑亚稳态【0型冒险】【1型冒险】【消除方法】【数字IC笔试】【数字电路】
(大疆2020芯片工程师校招)组合逻辑电路中的冒险是由于( )引起的. A.电路有多个输出 B..电路未达到最简 C.逻辑门类型不同 D.电路中的时延 答案:D 解析: 什么是竞争和冒险? (1)竞争 ...
- 数字IC笔试面试常考问题及答案
来源:知乎 链接:https://zhuanlan.zhihu.com/p/261298869 基础知识 原理务必理解透彻. 锁存器的结构-DFF的结构-建立保持时间-亚稳态-STA-CDC. 亚稳态 ...
- MPS芯源2022数字IC
答案为个人整理,欢迎指正 1.Please code the divider by 3 with Verilog(50% duty cycle).用Verilog设计一个3分频器,要求50%占空比. ...
- 数字ic笔试2022小米提前批
单选题 (3分) 1.当一个乘法器需要10个cycle才能完成计算任务,对其需要设置multicycle,setup会设置为10,hold设置为() A.9 B.不需要设置 C.10 D.1 解.A ...
最新文章
- 有什么类方法或是函数可以查看某个项目的Laravel版本的?
- C#高性能大容量SOCKET并发(十):SocketAsyncEventArgs线程模型
- CentOS-6.4 minimal - 安装VMware Tools(linux)
- 04CDatabase类
- CS184.1X 计算机图形学导论 第8讲 学习笔记
- SpringMVC的响应JSON数据和过滤静态资源
- Android中发现java代码设置的字体过大
- java中判斷主鍵重複
- 试试这个AI实验:把2D图像转换成3D
- 融新聚力,筑梦畅行|云畅科技“融云计划”第一期集训营圆满结营
- 导致ImportError: No module named 'xxx'问题的两种原因以及解决方案
- 谷歌借Google Play重返中国,这次能成功吗?
- 网络工程师学习路线?
- 已解决selenium.common.exceptions.WebDriverException: Messag: ‘geckodriver‘ executable needs to be in PA
- 腾讯云直播功能(云直播为例)
- java生成word文档(最简单)
- java根据前序和中序建树_(Java实现)二叉树---根据前序、中序、后序数组还原二叉树...
- 什么是导航?导航具有什么样的作用?
- 人工智能对客服职业的影响
- 【20210805】【数据分析】标称型数据和数值型数据
热门文章
- 有道云笔记丢失解决方案(PC端)
- 高通骁龙处理器排行榜_一加9系列手机将于明年3月发布 搭载高通骁龙875处理器...
- (Realx dijkstra1.1)POJ 1797 Heavy Transportation(使用dijkstra来解决最大生成树问题)
- 给小孩普及计算机知识,神武4端游写给新手不懂孩子的玩家普及型知识
- ajax跨域请求及传递cookie
- 深交所、顺丰、斗鱼……新云原生企业乘风破浪而来
- `英语` 2022/8/15
- 阿尔巴尼的计算机科学,纽约州立大学阿尔巴尼分校计算机科学研究生语言及申请要求-费用-课程设置...
- 支持java语言的虚拟主机_虚拟主机 支持java吗
- 《禅与计算机程序设计艺术》 / 陈光剑