达尔闻求职笔试经,这不仅仅是题,而是你所不知的知识。
本期笔试经解析题目来源紫光展锐IC笔试题,共10道不定项选择题,涉及知识点包含:动态功耗、Verilog语言、二进制有符号数、仿真文件Testbench等。
今天解析的内容是紫光展锐数字IC岗不定项选择题的最后一部分。 16、如下哪种工作条件下,功耗最大( ) A 电压1.0V,温度85℃ B 电压0.9V,温度0℃ C 电压1.0V,温度0℃ D 电压0.9V,温度85℃ 解析: 本题目主要考察了对功耗的了解 电压主要是对动态功耗的影响较大,从动态功耗的公式也可以看出供电电压越高功耗越大。温度主要影响静态功耗,静态功耗主要有两种漏电流,一种是亚阈值电流,一种是pn结反向漏电电流。温度升高静态功耗主要受到亚阈值电流增大,高温让亚阈值电流大幅度提高,几乎是指数级别的,从而导致功耗的增加, 所以A选项正确 。 17、用以下哪个指令可以实现设置文件“test”以及其下面的所有文件权限为User自己可读可写可执行,Group和Other设定为仅仅可读( ) A chmod 755 test B chmod -R 755 test C chomd 744 test D chmod -R 744 test 解析: 本题目主要考察了Linux系统中文件权限与归属 在IC设计中很多EDA工具都是在Linux上运行的,有些EDA工具甚至都没有对应的Windows版本,这对用惯了Windows的同学来说很不友好。但公司做开发时常常在服务器上运行管理我们的工具和文件,这会大大提高开发的效率,所以对于未来想从事IC行业的同学来说一定要学会一些必要的Linux操作才行。 在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置来就不那么容易了。文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示,文件所有者,所属组及其他用户权限之间无关联。文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。例如,若某个文件的权限为7则代表可读、可写、可执行(4+2+1);若权限为6则代表可读、可写(4+2)。从下图可以找到本题所对应的值为:744,另外,在Linux中修改权限的命令用“chmod”,有这两个关键要素就可以知道 D选项正确 。 18、以下说法错误的是:( ) A 4’b1111&&4’b00x0的结果为1 B 设计中不要使用“===”运算 C &4’b1011的运算结果为1-bit D |运算的优先级别高于& 解析: 本题目主要考察了对Verilog语言基本运算符的了解 A选项是判断4’b1111和4’b00x0是否都为真,如果都为真则输出1bit的1,如果不都为真输出1bit的0。4’b1111显然为真,而4’b00x0中有x,所以不能准确判断是否为真, 所以A选项错误 。 B选项的三个等号的运算符我们很少见,没见过的以为是“==”多写了一个“=”号,其实“===”是合法的全等操作符,m === n是判断m和n全等吗,比较的结果为1bit,如果全等则为1,如果不全等则为0。另一个与之对应的全等操作符为“!==”,m !== n是判断m和n不全等吗,比较的结果为1bit,如果不全等则为1,如果全等则为0,“===”可以使用,所以B选项错误。 C选项的区别我们在秋招“笔试经”第三弹:华为硬件逻辑岗中重点讲解过,当“&”作为一元操作符时表示归约与。&m是将m中所有比特相与,最后的结果为1bit,&4’b1011 = 1 & 0 &1 & 1 = 1’b0。所以C选项正确。 D选项考察了Verilog运算符优先级的问题,如下图所示一目了然,可以轻易判断出D选项错误。 19、对于一个芯片而言,如下哪些参数的值越高越好:( ) A MTBF B ATE pattern count C Fault coverage D Yield 解析: 本题主要考察了IC设计中DFT相关的内容 MTBF(Mean Time Between Failure)为平均故障发生间隔时间,是衡量一个产品的可靠性指标,它反映了产品的时间质量,是体现产品在规定时间内保持功能的一种能力。具体来说,是指相邻两次故障之间的平均工作时间,也称为平均故障间隔,这个平均故障时间越久说明产品故障少的就是可靠性高, 所以A选项正确 。 ATE(Auto Test Equipment)pattern count为测试机台的测试pattern数量,pattern多意味着测试全面, 所以B选项正确 。 Fault coverage为故障覆盖率定义为在所有故障中检测到的故障的百分比,这个指标越高越好,100%是最好的效果, 所以C选项正确 。 Yield在IC中表示芯片的良率,即达到标称性能规格的器件或电路的百分比,这个指标是越高越好, 所以D选项正确。 20、在Verilog中,关于task和function描述正确的是( ) A task可以有时间延迟,function不可以 B function可以有时间延迟,task不可以 C task和function都不可以有时间延迟 D task和function都可以有时间延迟 解析: 本题主要考察了对Verilog任务和函数的理解 关于Verilog中的任务(task)和函数(function)的共同点和不同点在求职“笔试经”第十五弹:FPGA设计中复位用法(华为硬件逻辑岗)中做过详细的解释,其中不同点中的第三条就是本题的答案,描述为:函数一定不能包含任何延迟,事件或者时序控制声明语句;任务可以包含延迟,事件或者时序控制声明语句。 所以只有A选项正确 。 21、如下电路的逻辑功能为:( ) A F=A+B B F=(A+B)’ C F=(A+B)’ D F=(A·B)’ 解析: 本题主要考察了门级电路与逻辑表达式的转换 上图是CMOS构成的门电路,电路由两部分组成,左边的是一个反相器结构(上面的是PMOS,下面的是NMOS),右边的是一个传输门结构(上面的是NMOS,下面的是PMOS),我们要求得的F刚好在两部分电路的中间。我们可以列出输出为A、B,输出为F的真值表,如下所示: 可以看出输出F实现了异或门的功能, 所以答案选择A 。 22、对于有符号的4位二进制数运算0101+1000,其十进制结果为( ) A 12 B -3 C 13 D -4 解析: 本题主要考察了二进制有符号数的运算 这题最关键的就是有符号二进制数1000对应的十进制数是多少,很多同学会误以为是0,而算不出正确的结果。学过数电的同学应该有印象,规定用1000作为-8的补码,而不用来表示-0,则1111就作为-8的反码,1000就作为-8的源码。这样上式就等价于5 + (-8) = -3, 所以答案选择B 。 23、对于timing check,说法错误的是( ) A hold time可以是负数 B 用$setuphold可以检查setup和hold time C setup time不可以是负数 D hold time表示时钟有效沿到来之前多久,数据data就需要保持稳定的时间 解析: 本题主要考察了对建立保持时间以及timing check的认识 在时序分析中setup time是建立时间,hold time是保持时间。 首先A选项说保持时间可以是负数,这是不对的,我们一定要注意区别“保持时间”和“保持时间余量”,保持时间不能为负数,在理想情况下为0;而保持时间余量是可以为负数,这时说明保持时间违例。C选项同理, 所以A选项错误, C选项正确 。 在timing check描述设计要求的时序性能,所有的时序检查有一个参考事件(reference event)和一个数据事件(data event),它们通过一个布尔表达式相联接,还包括一个可选的notifier寄存器选项,这个寄存器用来打印错误信息或者传播X状态。检查时序窗口的稳定性所用的函数包括$setup和$hold。setup:$setup (data_event, reference_event, limit, notifier);当reference_event time - limit< data_event time < reference_event time时,就会报告setup time violations。hold:$hold (reference_event,data_event, limit, notifier);当reference_event time 所以B选项正确。 D选项是对建立时间的描述,保持时间的定义是时钟有效沿到来之后多久,数据data就需要保持稳定的时间。 所以D选项错误 。 24、如下逻辑门可以表示任何的布尔表达式的是:( ) A XOR B NOR C AND D NAND 解析: 本题主要考察了对基本逻辑门的了解 首先我们应该知道用选项中的字母所代表的门电路的意思以及其对应的布尔表达式可以是怎样的。设A、B为输入,Y为输出。 XOR(异或门):Y = AB’ + A’B = ((A + B)’ +(A’ + B’)’)’ = (A’B’)’ (AB)’ NOR(或非门):Y = (A + B)’ = ((A’B’)’)’ AND(与门):Y = AB = ((AB)’)’ = (A’ + B’)’ NAND(与非门):Y = (AB)’ = ((A’ + B’)’)’ 因为或非门和与非门都可以单独设计成非门,所以多余的非门都不用担心可以实现性,所以我们可以看出选项中的其他三个门都可以写成与非门或者或非门的形式, 所以答案选择B、D 。 25、如下代码中,OUT的延迟为多少?( ) `timescale 10ns/1ns assign #3.141 OUT=IN; A 3.141ns B 3.1ns C 31ns D 3ns 解析: 本题主要考察了仿真文件Testbench中的仿真时间参数 Verilog语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在Testbench仿真中使用的,使我们更方便的进行验证。 `timescale1ns/1ns //时间尺度预编译指令时间单位/时间精度 时间单位和时间精度由值1、10、和100以及单位s、ms、us、ns、ps和fs组成 时间单位:定义仿真过程所有与时间相关量的单位,仿真中使用 “#数字”表示延时相应时间单位的时间,例#10表示延时10个单位的时间,即10ns 时间精度:决定时间相关量的精度及仿真显示的最小刻度
`timescale1ns/10ps 精度0.01,#10.11表示延时10110ps
而下面这种写法就是错误的,因为时间单位不能比时间精度小 `timescale100ps/1ns 本题目设置的时间单位是10ns,时间精度是1ns,#3.141是延迟3.141个时间单位,也就是31.41ns,但是由于时间精度的控制,最终OUT的延迟为31ns, 所以C选项正确。END目前,我们正在通过大疆硬件岗和FPGA逻辑岗的题目,为大家带来笔试题的解析,以及知识的补充。如果有想要解析的题目,可以发给达尔闻安排。同时,欢迎加入达尔闻求职技术交流群,进群方式:添加妮姐微信(459888529),并备注求职,即可邀请进群。
达尔闻求职系列: 磁珠的用法、PCB布线3W规则