华为2019数字芯片设计笔试题目和解析(单选第一部分)

1.单选

1.已知“a=1'b1;b=3'b001;”,那么{a,b}=()
【A】3'b001
【B】3'b101
【C】4'b0011【D】4'b1001

解析:位拼接运算符{},用这个运算符可以把两个或多个信号的某些位拼接起来进行运算操作。已知“a=1'b1;b=3'b001;”,那么{a,b}=4’b1001, {b,a}=4’b0011, {4{a}}=4’b1111, {b,4{a}}=7’b001_1111。

正确答案:D


2.描述组合逻辑时,当if语句不需要有else分支时,不写else分支,可以节省面积()
【A】正确【B】错误

解析:在描述组合逻辑时,只有if没有else,会生成锁存器,并不会节省面积。

正确答案:B


3.reg [255:0] mem [31:0];该声明定义了一个位宽为32bits,深度为256的memory()
【A】正确【B】错误

解析:该声明定义了一个位宽为256bits,深度为32的memory。

正确答案:B


4.现有表达式expr=cond_expr?expr1:expr2,如果cond_expr为x或者z,expr1=1001;expr2=1010,则expr应为()
【A】1010
【B】10xx
【C】1001【D】101x

解析:如果cond_expr为1,则expr=expr1;如果cond_expr为0,则expr=expr2;如果cond_expr为x或者z,那么使用如下表将expr1和expr2的结果逐位合并,计算最终结果。结果为10xx。

 (图片取自IEEE Standardfor Verilog Hardware Description Language)

正确答案: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】错误

解析:循环表达式的循环次数必须为常数、变量或者表达式!

正确答案:B


8.下面哪种异步处理的方法完全正确 ()

【A】在对数据总线进行异步处理前转化成Gray Code,然后打拍处理,同步后再转换成原码
【B】在模块A,有两个控制信号通过正确的同步方法把两个信号进行同步到B时钟域,但是在B时钟域,对这两个同步过来的信号进行了逻辑运算,得到另外一个信号
【C】实现异步FIFO时,在地址穿越时钟域前转化成Gray Code【D】单比特信号在跨越时钟域前不需要寄存器输出

解析;在对数据总线进行异步处理时不能转化成格雷码然后打拍处理,例如,先后两个时钟周期分别传过来4’0001,4’0100,转化为格雷码分别为4’b0001,4’b0110,这两个数据有3位不同,不能进行打拍处理(只有当相邻两个时钟周期最多变化1位的情况下才可以进行打拍处理)所以A错误;B选项,应该先进行逻辑运算,然后将结果通过正确的同步方法同步到B时钟域;C选项正确;D选项,在跨越时钟域之前应该先寄存一拍。

正确答案:C


9.下列降功耗措施哪个可以降低峰值功耗()
【A】大幅度提高HVT比例
【B】Memory shut down
【C】Power gating【D】静态模块级Clock gating

解析:Memory shut down,Power gating是将暂时不用的部分关闭Power,主要降低静态功耗;Clock gating是将暂时不用的部分切断时钟,切断时钟后信号不翻转,所以会降低信号翻转率,主要降低动态功耗;峰值功耗指的是最大功耗,可以想象,当各个模块都在工作时并且正好翻转到NMOS和PMOS都处于开启状态时(也就是短路状态下),芯片的功耗是最大的,而由HVT(高阈值电压)的器件组成的电路的短路电流是小于由LVT(低阈值电压)的器件组成的电路的短路电流的,所以大幅度提高HVT的比例,可以降低峰值时的电流,所以可以降低峰值功耗。

正确答案:A


10.如下Modelsim命令在Testbench中的执行顺序正确的是()
【A】vlib、vmap、vsim、vlog
【B】vlog、vlib、vmap、vsim
【C】vlib、vmap、vlog、vsim【D】vlib、vlog、vmap、vsim

解析:vlib是建库命令,vmap是映射库命令,vlog是编译命令,vsim是启动仿真器命令。例:

vlib work            

//建立work库

vmap work work         

//映射库

vlog cnt_tb.v cnt.v       

//编译cnt_tb.v cnt.v

vsim cnt_tb/vsim cnt      

//启动仿真器,运行仿真

正确答案:C

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容