海思·联发科·大疆 大厂数字IC笔试模拟题(九)【带答案】
此系列模拟试卷综合了海思,联发科,紫光等多达十家公司的历年常见笔试题并附上了答案,是数字IC笔试的精华部分。目的不仅仅是帮助应聘者检验前面知识点的学习成果,加深对笔试题目的理解,还致力于助力应聘者都能顺利通过笔试。欢迎大家查漏补缺。
对于有符号的4位二进制数运算0101+1000,其十进制结果为( )
A. 12
B. -3
C. 13
D. -4
解析1000在数电中不表示-0,而是用来表示-8的补码,1111表示-8的反码.因此此题答案为5-8 = -3。
关键知识点:对原码,补码和反码的掌握和转化能力
29:
时序逻辑电路不仅与输入有关,还与原来的状态有关?
A. 正确
B. 错误
解析在组合逻辑电路中,输出仅仅与输入有关;而在时序逻辑电路中,输出不仅与输入有关,还与之前的状态有关。
关键知识点:对组合逻辑电路与时序逻辑电路概念与差别的掌握。不难,但是常考。
30:
下列说法错误的是()
A. 条件语句,如果无优先级关系,尽量采用case,避免多级else if,影响时序。
B. If/else语句配对使用,case语句加default项;组合逻辑中在所有条件下都要对信号赋值,如果要保持步便用a=a方式赋值。
C. 两个向量进行比较操作或加减操作或赋值操作时,两个向量的位宽要相等,避免隐式扩展。
D. 可综合代码中,除了for语句中的循环变量可以定义为integer型以外,所有变量和信号都只能为wire或reg型,不能定义为整型,实数型,无符号型,realtime型和time型。
解析A正确。优先级条件语句会综合成串联的选择逻辑,时序较差,而case可以综合成并行的选择逻辑。
B正确。一般情况下if/else要配对使用,case语句要加default,避免综合成latch,个别情况下不需要,小编认为题干应该加上“建议”这个词更为精确。组合逻辑在所有条件下都要对信号进行赋值,否则会综合成latch。
C正确。两个向量位宽不匹配会隐式拓展高位,如果有操作数定义为wire类型但是作为有符号数使用,隐式拓展会错误高位补0,拓展成无符号数。
D错误。integer可以被定义成信号,会综合出32bit的register。但因为位宽固定,一般不这么使用。另外在verilog-2001中加入了无符号型和有符号型的reg/wire定义,也属于可综合类型。