IC笔试:2022数字芯片 | 您所在的位置:网站首页 › 数字电路中以下哪个不是常见的逻辑门 › IC笔试:2022数字芯片 |
1.以下低功耗措施中,哪种不是降低电路翻转率的方法?
A.在不进行算术运算的时候,使这些模块的输入保持不变,不让新的操作数进来 B.采用Gray码或One-hot码作为状态机编码 C.减少电路中的glitch D.重新安排“if-else”表达试,可将毛刺或快变化信号移至逻辑锥体的前部 解释:D,应该将毛刺或快变信号移至逻辑椎体的后部,if-else越往后,被选择的概率越小。可以把逻辑延迟大的部分移至逻辑椎体的前部,来减小总的最大延迟,因为在前部意味着最小的选择路径长度。 2.以下Verilog代码中,a=12,b=10.则z的运算结果为:Input [3:0]a; Input [3:0] b; output signed [7:0] z; wire signed [3:0]c; assign c= a[3:0]*b[3:0]; assign z=c; A.120 B.-8 C.8 D.-120 解释:B,120的二进制为01111000,c=1000;a=11111000;a为signed,-8 3.constraint c_0{src dist {0:=30, [1:3]:=90}; } 请问如上表达式约束,src数值为0的概率为多大:( ) A. 0.2 B. 0.25 C. 0.1 D. 0.6 解释:考察随机约束中权重分配,:=表示每个元素相同权重,:=表示集合元素平分权重。(30/300=0.1) 4.分析下面的一段程序,正确的打印结果是:fork begin #20 $ display(“A”); end begin #10 $ display(“B”); end join_none #5 $ display(“C”); A.CBA B. BCA C.ABC D.C 解释:考察fork join_none不等待直接执行后续命令的特性。 5.下面有关Cache的说法哪一个是不正确的? A. 设置Cache的理论基础,是程序访问的局部生原理 B. Cache与主存统一编址,Cache的地址空间属于主存的一部分 C. 设置Cache的目的,是解决CPU和主存之间的速度匹配问题 D. Cache的功能匀由硬件实现,对程序员是透明的 解释:cache的地址空间和主存的地址空间是映射关系,cache和主存不统一编址,cache的地址空间也不是主存的一部分。 Cache是介于cpu处理器和主存储器之间的高速小容量存储器,因此它不属于主存的一部分。 A:使用Cache改善系统性能的依据是程序的局部性原理 [1] B:cache的地址与内存地址是两码事,不统一编址,也没有从属关系 C:Cache是介于CPU和主存之间的小容量存储器,存取速度比主存快,接近CPU。它能高速地向CPU提供指令和数据,提高程序的执行速度。Cache技术是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。 D:Cache是主存的缓冲存储器,由高速的SRAM组成,所有控制逻辑全部由硬件实现,对程序员而言是透明的。随着半导体器件集成度的不断提高,当前有些CPU已内置Cache,并且出现了两级以上的多级Cache系统。 Cache通常采用相联存储器。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。 6.对于独立复位的模块,只需要考虑对后级模块的影响,无需考虑对前级模块的影响。A.正确 B.错误 解释:B考虑到可能会存在反馈电路,因此选择错误。 7.System Verilog中,下面那种数组在使用前需要先执行new操作( )A. Dynamic arrays B. Associative arrays C. packed array D. 多维数组 8.System Verilog中,下面哪种数组在使用前需要执行new操作( )a.压缩数组 b.联合数组 c.动态数组 d.多维数组 9.下列哪个不是Verilog系统函数( )A. $ finish B. $ head C. $ time D. $ write 10.以下Verilog运算符号中,优先级最高的是?A.== B.“ C.! D.?: 解释:非 乘加 移位 比较(等于较低) 位逻 逻 条件 11.模块只收敛做到0.75V,提压到0.85V可以正常工作A.正确 B.错误 12.异步电路都不需要STA进行约束检查A.是 B.否 13.在设计状态机时,有两种常用的编码方式:one-hot code、binary code,前者相对于后者的优势主要体现在A.实现电路的速度更快 B.实现电路的面积更小 C.编码方式简单 D.实现电路的功耗更低 解释:A 触发器资源换组合逻辑资源,并且comb_delay变小,速度更快。 独热码和二进制码的优缺点比较: 二进制码、格雷码使用最少的触发器,但是消耗较多的组合逻辑(用于译码) ; 独热码则正好相反,因为状态比较时仅需要比较一位,从而在一定程度上简化了译码逻辑。虽然在表示同样的状态时,独热码占用较多的位,也就是消耗较多的触发器,但这些额外的触发器占用面积可与译码电路省下来的面积相抵消。 在CPLD更多的提供组合逻辑,而FPGA提供更多的触发器资源,所以在CPLD中更多的使用二进制、格雷编码,在FPGA中更多使用独热编码。 另一方面,对于小型设计gray-code和binary-code编码更有效。对于大型设计,one-hot编码更高效。 14.对于相同位数输入的变量比较器,大于和小于的面积是一样的A.对 B.错误 15.有关综合的说法,以下哪个选项是错误的?A. 相同的RTL代码,每次综合出来的网表可能是不一样的 B. 综合网表可用于EDA功能仿真 C. casez是不可综合的 D. 时序逻辑always语句中,if-else如果else的分支缺乏,会综合成latch 16.在Verilog代码中,对有符号数进行比特选择或拼接,其结果是无符号数A.正确 B.错误 解释:B结果是有符号或者无符号取决于左操作数,扩展取决于右操作数 1、对于长位宽赋值给短位宽的情况,无论左操作数、右操作数是有符号数还是无符号数,都是直接截断高位,而左操作数二进制所表示的实际十进制数据要看左操作数是无符号数还是有符号数,如果左操作数是无符号数,直接转换成十进制即可,如果是有符号数,则看成2的补码解释成十进制数,这也是实际计算机系统中有符号数的表示方法。 2、对于短位宽赋值给长位宽的情况,需要对高位进行位扩展,具体是扩展1还是扩展0,记住:完全依据右操作数!,具体如下: 1)右操作数是无符号数,则无论左操作数是什么类型,高位都扩展成0; 2)右操作数是有符号数,则要看右操作数的符号位,按照右操作数的符号位扩展,符号位是1就扩展1,是0就扩展0; 3)位扩展后的左操作按照是无符号数还是有符号数解释成对应的十进制数值,如果是无符号数,则直接转换成十进制数值,如果是有符号数,则看成2的补码解释成十进制数; 4)从上面4种情况看出,有符号数赋值成无符号数会出现数据错误的情况,因此要避免这种赋值,而其他情况都是可以保证数据正确的。 17.reg [0:31] little_vect; little_vect[0+:8]是多少?A. little-vect[0 : 7] B. 1ittle_vect[7: 0] 解释:A取决于定义的little是高到低还是低到高 举例说明: reg [31:0] big_vect; reg [0:31] little_vect; 问题: big_vect[0 +:8] 转化后一定是big_vect[较大的数值 : 较小的数值] little_vect[0 +:8] 转化后一定是little_vect[较小的数值 : 较大的数值] reg [31:0] big_vect;为大端,那么转化后的也一定是大端,形式不变 big_vect [0+: 8] 从0 开始,升序,位宽为8 ======》》》》》big_vect [7 :0] little_vect [0 +: 8] 从0 开始,升序,位宽为8 ======》》》》》little_vect [0 :7] big_vect [15 -: 8] 从15开始,降序,位宽为8 ======》》》》》big_vect [15 :8] little_vect [15 -: 8] 从15开始,降序,位宽为8 ======》》》》》little_vect [8:15] 18.时序逻辑always语句中,if-else如果else的分支缺乏,会综合成latchA.正确 B.错误 19.关于功耗,以下描述不正确的是:A.设计者需要关注平均功耗、峰值功耗和功耗跳变 B.改变芯片的供电电压和时钟频率都会对芯片功耗产生影响 C.对于可关断的摸块,使用时钟门控即可降低功耗 D.芯片的功耗会受实际信号的影响,所以功耗测试需要结合业务来开展。 20.一个D触发器, 其数据Tsu=2ns,Tcq=3ns,Thd=1ns,则此触发器的最高工作频率为: (注:Tsu数据相对时钟的建立时间,Thd数据相对时钟的保持时间,Tcq输出相对时钟的延迟)A.200MHz B.500MHz C.100MEz D.333MHz Tcq + Tsu |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |