最近收到诸多粉丝的来信,要求出一版《数字 IC 设计、FPGA 设计秋招笔试题精讲》,于是,通过几天几夜的加班加点,终于出了这一版《2021 华为海思秋招笔试题目、答案、解析》,以后每隔 7 天就会出好几套卷,助各位数字 IC 设计者斩获大厂的高薪 Offer!!!
PS:纯题目的 PDF 版本可联系博主获取~
1、影响芯片成本的主要因素是 Die Size 和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响较大,因此低成本设计需要兼顾低功耗设计:()
A. 错误
B. 正确
- 正确答案:B
- 详细解析:题目里已经说明了,“影响芯片成本的主要因素是 Die Size 和封装”,那么封装成本和什么有关呢,当然是散热了,功耗越大,散热装置要求越高,封装难度更大,成本要求更高,所以,功耗是和成本相关的。
2、reg [31:0] big_vect; 那么 big_vect[0+:8] 是多少?()
A. big_vect[0:7]
B. big_vect[7:0]
- 正确答案:B
- 详细解析:这道题不就是书上的内容嘛!需要对向量的抽取有着较深的掌握,对于抽取符号 +:,其左边 0 表示起始位置,其右边 8 表示向量抽取位宽或者 Length,然后定义的是从最高位到最低位,对应下来所以选择 B,A 只是干扰的
3、generate 语句中的循环控制变量应该定义为 integer 类型()
A. 错误
B. 正确
- 正确答案:B
- 详细解析:定义的类型是 genvar,有写过这个代码的应该都是了解的,for 才是 integer
4、o10 换算成十进制是多少?()
A. 8
B. 16
C. 10
D. 2
- 正确答案:A
- 详细解析:o07 表示 7,+1 就是进位了,即 o10 = 8
5、哪些情况下不会产生 Latch 电路?()
A. 组合逻辑中条件不全的 case 语句没有 default 赋值
B. 时序逻辑中 if 选择语句,没有 else 部分表达
C. 使用 if 选择语句的组合逻辑没有 else 部分表达
D. 使用 case 选择语句的组合逻辑没有 else 表达
- 正确答案:B
- 详细解析:等你入职就会经常用到 B 的这种写法,这是一种低功耗 CG 设计的写法,不会生成锁存器 Latch
6、关于类的构造函数,以下说法中正确的有()
A. 函数体中必须有 new 语句
B. 返回类型是 void 类型
C. 函数名与齐类名完全相同
D. 不能有形参
- 正确答案:C
- 详细解析:
- A:类可以认为是用户定义的一种数据类型,类的显式定义有new(),隐式定义无,new()的作用是进行初始化,没有new()时,类默认为null,A错;
- B:构造类可以没有返回值,也没有返回值类型,但是可以有参数(包括形参int a),D错;
- C:类名与函数名一样,C对;
- D:返回值类型不一定是void,void用于有返回值的数据类型,用来取消返回值,B错
7、中断指示寄存器由实时告警的状态触发,是只读寄存器。()
A. 错误
B. 正确
- 正确答案:B
- 详细解析:中断状态寄存器是只读寄存器,只有软件经过处理之后,消除了这种告警状态,硬件就会对其自动清零
后续答案更新中。。。
8、下面的选项中关于宏定义的说法不正确的是?( )
A. 宏定义文件最好放在一个文件中集中管理,防止出现不同项目需要修改为不同的宏定义值,但是却漏改了某些地方的情况出现。
B. 综合的时候,define可以跨文件列表生效
C. 如果模块中有很多宏定义,在模块的文件列表最后需要undef掉使用的宏,防止和其他模块的宏定义冲突。
D. 仿真时如果出现宏定义冲突,后面的define值会覆盖前面的define值
- 正确答案:C
- 详细解析:
9、在systemverilog中,函数(task)可以调用函数任务(function)。( )
A. 错误 B. 正确
- 正确答案:C
- 详细解析:
10、假设输入信号X位宽为12bit,inA位宽为6bit,inB位宽为17bit,实现Y = X*inA+inB功能,并要求不损失精度,呢么输出信号Y位宽应不小于( )?
A. 17bit B. 12bit C. 18bit D. 19bi
- 正确答案:C
- 详细解析:
11、reg[7:0] mem[1:256];initial $readmemh(“mem.data”,mem,128,1);对于mem行为正确的描述是( )?
A. 从地址128开始,写到地址1
B. 从地址128开始,写1个地址
C. 从地址1开始,写128个地址
- 正确答案:C
- 详细解析:
12、九进制数16与九进制数27相加的结果用九进制表示为( )?
A. 45.0 B. 46.0 C. 43.0 D. 44.0
- 正确答案:C
- 详细解析:
13、有关DFT,以下说法不正确的是( )?
A. scan的设计规则,需保证时钟复位可控
B. ECO时无须关注DFT网表
C. 主流的scan方式采用MUX-DFF
D. MBIST指的是对memory的BIST测试
- 正确答案:C
- 详细解析:
14、对芯片性能影响最大的三个因素是PVT,分别是指?( )
A. package,voltage,temperature
B. process,voltage,temperature
C. process,verification,temperature
D. process,voltage,test
- 正确答案:C
- 详细解析:
15、下面这段代码,说法错误的是( )?
always @(posedge clk)begin
din_dly <= din;
end
A. din_dly 用来当控制信号是安全的
B. din_dly不受复位影响
C. 数据寄存推荐这样的写法
D. din的不定态会传递到din_dly
- 正确答案:C
- 详细解析:
17、关于功耗,以下描述不正确的是( )
A. 改变芯片的供电电业和时钟频率都会对芯片功耗产生影响
B. 设计者需要关注平均功耗、峰值功耗和功耗跳变
C. 芯片的功耗会受实际信号的影响,所以功耗测试需要结合业务来开展
D. 对于可关断的模块,使用时钟门控即可降低功耗
- 正确答案:C
- 详细解析:
18、为实现占空比50%三分频时钟,下面描述的电路,正确的是( )?
A. 用待分频时钟上升沿采样计数,产生占空比1/3的分频时钟A;用待分频时钟上升沿采样计数,产生1个占空比2/3的分频时钟;把A与B相或得到50%占空比时钟
B. 用待分频时钟上升沿采样计数,产生占空比1/3的分频时钟A;用待分频时钟下降沿采样计数,产生1个占空比1/3的分频时钟;把A与B相与得到50%占空比时钟
C. 用待分频时钟上升沿采样计数,产生占空比1/3的分频时钟A;用待分频时钟下降沿采样计数,产生1个占空比1/3的分频时钟;把A与B相或得到50%占空比时钟
D. 用待分频时钟上升沿采样计数,产生占空比1/3的分频时钟A;用待分频时钟上升沿采样计数,产生1个占空比2/3的分频时钟;把A与B相与得到50%占空比时钟
- 正确答案:C
- 详细解析:
19、关于冯诺依曼结构和哈佛结构的描述中,错误的是( )?
A. 冯诺依曼接口中程序计数器负责提供程序执行所需要的地址
B. 哈佛结构中取指令和执行不能完全重叠
C. 冯诺依曼结构的计算机中数据和程序共用一个存储空间
D. 哈佛结构的计算机在一个机器周期内科同时获得指令和操作数
- 正确答案:C
- 详细解析:
20、状态机必须有1个缺省状态?( )
A. 正确 B. 错误
- 正确答案:C
- 详细解析:
21、a1和a2的检查效果完全一样? ( )
property p1;
@(posedge clk) a|=>b|=>c;
endproperty
a1:assert property(p1);
property p2;
@(posedge clk) a##1 b##1 |->c;
endproperty
a2: assert property(p2);
A.正确 B. 错误
- 正确答案:C
- 详细解析:
22、以下关于flase-path,正确的是( )?
A. 一般模拟IP和系统的互联接口都可以设置为flase-path
B. 一般异步电路可以设置为flase-path
C. 一般异步复位可以设置为flase-path
D. 两个不同频率之间的接口一定可以设置为flase-path
- 正确答案:C
- 详细解析:
23、在verilog中,比算数运算符+优先级高的是? ( )
A. & B. % C. > D. !==
- 正确答案:C
- 详细解析:
24、有关功耗,以下说法不正确的是( )?
A. 电压越大,工作频率越高,其动态功耗越高
B. 低功耗设计的目标就是采用各种优化技术和方法,在各个设计目标之间找到最佳的结合点
C. 设计层次越高,功耗优化所能达到的效果越好
D. 芯片单位面积的动态功耗和静态功耗随着工艺的发展呈下降趋势
- 正确答案:C
- 详细解析:
25、generate for 循环语句中使用的标尺变量可定义为integer?( )
A. 错误 B. 正确
- 正确答案:C
- 详细解析:
26、在时钟上升沿时采样到start有效开始,两个时钟周期后,信号“a”连续或者间断地出现3次为高电平,紧接着信号“stop”在下一周期为高的是哪个?( )
A. property p0;
@(posedge clk)$rose(start1) |-> ##2(a[=>3]) ##1 stop;
endproperty
a0:assert property(p0);
B. property p0;
@(posedge clk)$rose(start1) |-> ##2(a[*3]) ##1 stop;
endproperty
a0:assert property(p0);
C. property p0;
@(posedge clk)$rose(start1) |-> ##2(a[->3]) ##1 stop;
endproperty
a0:assert property(p0);
D. property p0;
@(posedge clk)$rose(start1) |-> ##2(a[=3]) ##1 stop;
endproperty
a0:assert property(p0);
- 正确答案:C
- 详细解析:
27、ASIC开发流程中,如下环节的先后顺序是?( )
A. synthesis->P&R->RTL
B. RTL-> P&R-> synthesis
C. RTL-> synthesis-> P&R
D. synthesis-> RTL-> P&R
- 正确答案:C
- 详细解析:
28、以下关于flase-path,正确的是( )?
A. 一般模拟IP和系统的互联接口都可以设置为flase-path
B. 一般异步电路可以设置为flase-path
C. 一般异步复位可以设置为flase-path
D. 两个不同频率之间的接口一定可以设置为flase-path
- 正确答案:C
- 详细解析:
29、有关综合的说法,一下哪个选项是错误的?( )
A. 综合网表可用于EDA功能仿真
B. 时序逻辑always语句中,if-else如果else的分支缺乏,会综合成latch
C. casez是不可综合的
D. 相同的RTL代码,每次综合出来的网表可能是不一样的
- 正确答案:C
- 详细解析:
30、下面是一个什么电路( )?
Always @(posedge clk)begin
If(rst_n == 1’b0)
a<=2’b0;
else if (b>2’b0)
a<= b;
end
A. 综合成latch B. 带异步复位的D触发器
C. 组合逻辑 D. 带同步复位的D触发器
- 正确答案:C
- 详细解析: