华为2019数字芯片设计笔试题目及解析(单选第一部分)
1.通称为“a = 1’b 1;b = 3 ' b 001;",那么{a,b}=()
A3'b001
B3'b101
C4 ' b 0011d 4 ' b 1001
解析:比特拼接运算符{},用它可以将两个或两个以上信号的某些比特拼接起来进行运算。通称为“a = 1’b 1;b = 3 ' b 001;"则{a,b} = 4' b1001,{b,a} = 4' b0011,{4 {a}} = 4' b1165438。
正确答案:d。
2.在描述组合逻辑时,如果语句不需要else分支,可以通过不写else分支来节省area()。
a是正确的,b是错误的。
分析:描述组合逻辑时,only if without else会产生锁存器,不会节省面积。
正确答案:b
3 . reg[255:0]mem[31:0];这个声明定义了一个位宽为32位、深度为256的内存()。
a是正确的,b是错误的。
Parse:这个声明定义了一个位宽为256位、深度为32的内存。
正确答案:b
4.现有表达式expr=cond_expr?Expr1:expr2,如果cond_expr为X或Z,则expr 1 = 1001;Expr2=1010,那么Expr应该是()。
A1010
B10xx
c 1001d 101x
解析:如果cond_expr是1,expr = expr 1;如果cond_expr为0,则expr = expr2;如果cond_expr为x或z,那么使用下表将expr1和expr2的结果逐位合并,计算出最终结果。结果是10xx。
?(图片取自IEEE verilog硬件描述语言标准)
正确答案:b
5.同步时序电路的状态在统一时钟脉冲的控制下同一时间只改变一次。如果时钟脉冲没有到来,即使输入信号改变,电路的状态也不会改变()。
a是正确的,b是错误的。
分析:时序逻辑电路有两种形式:一种是同步时序电路,电路的状态在一个统一的时钟脉冲控制下只改变一次。如果时钟脉冲没来,即使输入信号改变,电路的状态也不会改变;二、异步时序电路,电路状态变化不是同时发生的,它没有统一的信号脉冲,输入信号的变化会引起状态变化。
正确答案:a
6.在下面的分频电路中,触发器DIV_FF的建立时间为2ns,保持时间为2ns,逻辑延迟为6ns,反相器INV_1和INV_2的逻辑延迟为2ns,连接延迟为0。那么电路正常工作的最高频率是多少?()
分析:最小时钟周期= div _ ff的逻辑延迟inv _ 2的逻辑延迟+div _ ff的建立时间=10ns,所以最高频率为100MHz。
正确答案:100MHZ
7.循环表达式的循环次数必须是常数()
a是正确的,b是错误的。
Parse:循环表达式的循环次数必须是常量、变量或表达式!
正确答案:b
8.以下哪种异步处理方法是完全正确的()
a异步处理前先把数据总线转换成格雷码,然后打一下,同步后再转换成原码。
b在模块a中,有两个控制信号通过正确的同步方法将两个信号同步到b时钟域,但是在b时钟域中,将两个同步的信号进行逻辑运算得到另一个信号。
C实现异步FIFO时,地址跨时钟域前转换成格雷码的单比特信号在跨时钟域前不需要寄存器输出。
分析;数据总线异步处理时,不能转换成格雷码再拍。比如4' 0001和4' 0100分别在两个时钟周期内传输,转换成格雷码分别是4' b0001和4' b010。选项B,先进行逻辑运算,然后通过正确的同步方法将结果同步到B时钟域;c选项正确;d选项,应该在跨时钟域之前注册一个节拍。
正确答案:c。
9.以下哪项措施可以降低峰值功耗()
大大提高HVT比率。
b内存关闭
CPower gatingD和静态模块级时钟门控
分析:内存关闭,电量聚集是关闭暂时不用的那部分电量,主要是减少静态功耗;时钟门控是切断时钟暂时不用的部分,切断时钟后信号不会翻转,所以会降低信号翻转率,主要是降低动态功耗;峰值功耗是指最大功耗。可以想象,当所有模块都在工作,刚好翻转到NMOS和PMOS的导通状态(即短路状态)时,芯片的功耗最大,阈值电压高的器件组成的电路的短路电流比阈值电压低的器件组成的电路的短路电流小,所以HVT的比例大大增加,峰值时的电流可以降低,所以
正确答案:a
10.以下Modelsim命令在Testbench中按照正确的顺序执行()。
Avlib、vmap、vsim、vlog
Bvlog、vlib、vmap、vsim
Cvlib、vmap、vlog、vsimDvlib、vlog、vmap、vsim
解析:vlib是构建库的命令,vmap是映射库的命令,vlog是编译的命令,vsim是启动仿真器的命令。示例:
vlib工作?
//建立工作库
vmap工作工作?
//映射库
vlog cnt_tb.v cnt.v?
//编译cnt_tb.v?cnt.v
vsim cnt_tb/vsim cnt
//启动模拟器并运行模拟。
正确答案:c。