华为2022硬件逻辑提前批
时间2021.7.28
题目来自于@数字IC打工人
部分解析参考:
华为2022硬件逻辑笔试题_狗哥天下第一的博客-CSDN博客_华为逻辑岗笔试题
单选题(每道2分)
1.以下关于过程赋值的描述,不正确的是(D)
A在非阻塞性过程赋值中,使用赋值符号“< =”
B赋值操作符是“=”的过程赋值是阻塞性过程赋值
C在非阻塞性过程赋值中,对目标的赋值是非阻塞的(因为时延),但可预定在将来某个时间步发生(根据时延:如果是0时延,那么在当前时间步结束)
D非阻塞性过程赋值在其后所有语句执行前执行
*非阻塞赋值在当前时间步结束时才进行赋值,在当前时间步开始时计算右值。
2.芯片的功耗和下列哪种不强相关______C_______。
A资源利用率
B核电压
C组合逻辑级数
D翻转率
*资源利用率事实上影响翻转率,通过toggleRate*C*V^2*freq来看,组合逻辑级数本身不强相关。
3.下列说法错误的是( C )
A Clock Buffer Enable使能率越大,功耗越大
B电路时钟频率越高,则电路的动态性越高,功耗越大
C输入并联终结电阻越大,功耗越大
D Fanout越大,驱动的负载越多,负载电容越大,功耗越大
*排除法来看是C,又有说法称P=U^2/R来计算,可以说明R越大P越小。
4.关于状态机的描述,如下错误的是( B)
A 不同状态机之间的相互关系要明晰,避免状态异常导致配合关系异常。
B 状态机的安全完全取决于RTL编码方式和风格,推荐使用“独热码”作为状态机的状态。
C 状态机中有异常保护、防挂死处理,确保每个状态都能在异常情况下能恢复。
D 在状态机轮转中作为跳转条件的两个互斥信号应用一个信号表示。
*B过于绝对,后半句的独热码也是有限定条件的,例如FPGA中独热码不应超过24位等。
5.下列电路中不属于时序逻辑电路的是_____A_____
A全加器
B 加法器
C 分频器
D 计数器
*B的加法器可能是带FF的那种。
6.以下关于TESTBENCH的描述,错误的是( C )
A TESTBENCH采用分层结构,通常包括测试用例层、数据交换层及待测模块层
B TESTBENCH是为了完成对逻辑的验证而搭建的仿真环境
C TESTBENCH编码设计对可测试性没有要求
D TESTBENCH用来发送激励数据、控制仿真执行,并完成输出结果比较
*C这种明显违背常理。
7.以下哪种匹配方式的匹配器件是紧靠驱动端布局的 ( D )
A Thevenin等效匹配
B 并联匹配
C AC匹配(RC匹配)
D 串联匹配
*ABC为接收端并联匹配,D为发射端(驱动端)串联匹配
8.表达式Xn+1(t+T)=Xn(t),其中T为时钟周期,描述的是____A____。
A T触发器
B SR触发器
C D触发器
D JK触发器
*虽然这个表达式似乎不太对,不过也只能选A了
9.
main(){
int i=8;
printf("%d\n",++i);
printf("%d\n",i--);
}
上面代码的打印输出分别为:( A )
A 9 9
B 8 8
C 9 8
D 8 9
*++i,运算前先增,i++,运算后增。
10.寻址容量为15k*8bit的RAM需要( A )根(地址和数据线不复用)地址线和数据线。
A 22
B 17
C 23
D 18
*(4+10)+8=22
11.下列哪项不是导致信号完整性问题的原因( C )
A 信号电平越来越低,噪声裕量小
B 信号频率越来越高
C 信号接收端获取到了错误的电平值。
D 波形01变化斜率要求高爬坡时间短
*C看起来是结果一些。
12.下面关于异步信号同步化描述正确的是 ( C )
A RAM端口信号如果已经做了多时钟周期约束,则不需要再考虑异步信号同步化处理。
B 在跨时钟域同步化处理时,使用两级寄存器结构可以完全消除亚稳态。
C多bit信号同步化可以使用可靠的握手电路、格雷码或FIFO实现。
D 在跨时钟域之间不要使用组合逻辑,防止出现亚稳态。
*A这个可能是指控制信号同步吧,B不能完全消除,D对于准静态信号应该不适用。
13.下列哪个不是解决跨时钟域多位信号同步的方法____B____。
A 握手通信方式
B 同步FIFO隔离
C 双端口RAM通信方式
D 格雷码输出
*B同步就不存在跨时钟域了。
14.若一模拟信号为带限,且对其抽样满足奈奎斯特条件,则只要将抽样信号通过____B____即可完全不失真恢复原信号。
A 理想带通滤波器;
B 理想低通滤波器;
C理想带阻滤波器;
D理想高通滤波器;
*奈奎斯特条件是Fs>2Fmax,低通能通Fs即可。
15.测量一个时钟的频率准确度,合适的仪器是 ( D )
A 示波器
B 晶体振荡器
C 频率合成器
D 频率计
*一眼D,毕竟别的字面就不太合适。
16.在Verilog HDL中,定义变量并进行运算如下:
wire [5:0] .memo mem1 ,mem2;
wire [2:0] data_out;
assign mem0 = 0x29;
assign mem1 = 0x1B;
assign mem2 = 0x34;
assign data _out = mem0[5: 3]+mem1[4:2] + mem2[3:1];
请问data_ out的输出值为( D )
A 0x7
B0xD
C 0x3
D 0x5
*mem0=101001,mem1=011011,mem2=110100,从而
mem0[5:3]=3'b101,mem1[4:2]=3'b110,mem2[3:1]=3'b010,则结果截位前为4'b1101,高位截掉为3'b101,即0x5
17.卡诺图上变量的取值顺序是采用:(B)
A ASCII码
B 循环码
C 自然二进制数
D 二进制码
18.DDR3芯片的接口电平是(D)
A SSTL-1.8。
B CML。
C HSTL-1.8。
D SSTL-1.5。
19.下面关于$display. $strobe, $monitor的区别描述正确的是 (C)
A $strobe直接立刻输出,$display是等稳定后输出,$monitor是发生变化时输出
B $display直接立刻输出,$monitor是等稳定后输出,$strobe是发生变化时输出
C $display直接立刻输出,$strobe是等稳定后输出,$monitor是发生变化时输出
D $strobe直接立刻输出,$monitor是等稳定后输出,$display是发生变化时输出
20.在有符号数的乘法运算中,8比特有符号数乘以12比特有符号数,运算结果用多少比特的有符号数表式则既不会溢出也不会浪费__________(A)
A 20
B 18
C 21
D 19
*8+12
21.组合逻辑电路消除竞争冒险的方法有_____D_____。
A 后级加驱动电路
B 输入端加滤波电路
C 屏蔽输入信号的尖峰干扰
D 在输出端接入滤波电路
*A、B、C并不能消除竞争。
22.对于代码覆盖率,以下说法错误的是:(D)
A 这可以帮助发现是否存在冗余代码
B 可以帮助确定代码行是否被完全执行
C 可以帮助发现状态机跳转路径是否覆盖
D 可以帮助确定功能需求是否完全实现
23.一个八位二进制减法计数器,初始状态为00000000,问经过268个输入脉冲后,此计数器的状态为_____C____。
A 11110101
B 11001111
C 11110011
D 11110100
*268-256=13=1101,0-13=-13,-13=10001101(原码)=11110010(反码)=11110011(补码)
24.对于一般的逻辑电平,各参数需满足如下____C____的关系。
A Voh>Vih>Vt>Vol>Vil;
B Vih>Voh>Vt>Vol>Vil;
C Voh>Vih>Vt>Vil>Vol;
D Vih>Voh>Vt>Vil>Vol;
25.提高同步设计的工作频率的原则中,可行的措施是(D)。
A 打平设计的层次结构,使得模块边界充分优化
B 打开综合器资源共享选项
C 复杂状态机采用二进制编码或者格雷码
D 减少组合逻辑级数
26.对于一般的逻辑电平,各参数需满足如下的关系 (考的时候确实是和24一样)(C)
A Vih>Voh>Vt>Vil>Vol
B Vih>Vol>Vt>Vol>Vil
C Voh>Vih>Vt>Vil>Vol
D Voh>Vih>Vt>Vol>Vil
27.下列关于寄存器等价优化错误的是(D)
A通过显式的综合约束代码可以阻止工具进行等价寄存器优化
B综合工具会自动优化等价寄存器
C通过综合工具选项设置可以阻止工具进行等价寄存器优化
D综合工具等价寄存器优化不会跨越代码一级模块
*排除法选D
28.在两个方向上交替的传输为:(D)
A全双工
B单工
C串行
D半双工
29.下列关于initial和always的说法错误的是(D)
A initial只能执行一次;
B initial和always的区别是前者不可以综合,后者可以综合;
C always始终循环执行;
D initial和always不能同时执行;
30.未施加外部电压时,PN结中电流(C)
A从N区到P区
B不确定
C等于零
D从P区到N区
31.FPGA中的BRAM使用的ECC的特性有哪些(B)
A只能可以发现1或者2bit错误
B可以纠正1bit错误
C可以发现2bit以上的错误
D可以纠正2bit错误
*“ECC主要作用是单bit纠错,双bit检错”,当然不包括2bit以上了。
多选题(4分)
32.要把10M时钟域下的一个模10计数器的值,传递到异步的100M时钟域下。以下说法正确的有____B\C_____。
A可以把计数值转换成格雷码,再用100M时钟采样
B可以通过异步fifo传递计数值
C可以用计数值+握手信号的方式传递
D可以先用100M时钟把计数值打2拍,再采样
*D不能多bit直接打拍。A转换成格雷码只有1bit跳变,理论上是可以,但从题目描述风格来看缺了打拍两字,故不能选。
33.为保证器件接口的可靠性,哪些因素我们需要关注(A\B\C\D)?
A温度漂移
B时钟抖动
C电源噪声
D器件参数离散性
*虽然没什么根据,从直觉来看是都要选的,毕竟是可靠性这种玄学嘛。
34.在Verilog HDL中,下列关于表达式的描述正确的是(A\B\C\D)
A表达式中可使用函数调用
B表达式由操作数和操作符组成
C表达式中的整数值可被解释为有符号数或无符号数
D表达式可以使用数值
35.下面关于always语句描述正确的是____A\B\D____。
A阻塞赋值按照顺序执行,非阻塞赋值并发执行。
B时序逻辑always中敏感表中必须标明时钟信号和复位信号(如果使用异步复位)。
C在时序逻辑语句块中非阻塞赋值和阻塞型赋值都可以使用
D组合逻辑always中敏感表可以标明敏感变量,也可以使用*替代。
*A的并发执行,实际上与begin...end块的顺序执行概念不同?不然要fork干什么呢。C是一个争议点,语法上当然是能用的,但可能会导致设计的困难,所以可以认为不能用。
36.二进制减法遵循下面哪些规则(A\B\C\D)
A 0-1=1
B 1-0=1
C 1-1=0
D 0-0=0
37.以下属于常用逻辑电平的有(A\B\C\D)
A PECL
B LVTTL
C LVDS
D LVCMOS
*没见过PECL这是可以说的吗(
TTL、CMOS、LVTTL、LVCMOS;
RS232、RS422、RS485(12V,5V,3.3V);
ECL(Emitter Coupled Logic)、PECL(Pseudo/Positive Emitter Coupled Logic)、LVDS(Low Voltage Differential Signaling)、GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced transceiver logic)、GTLP(Gunning Transceiver Logic Plus);
38.下列方法对提升系统时钟频率有帮助的有___A、C、D_____。
A采用pipeline设计
B升高器件环境温度
C减少组合逻辑级数
D使用全局的时钟资源
*全局时钟skew和jitter一般小点,uncertainty就小些,这样timing的时候setup的slack就多点了,有余地以供提高clk_freq.
39.如下属于差分电平的是____A、C、D_____。
A LVPECL
B LVTTL
C CML
D LVDS
*“常用的差分逻辑电平,包括LVDS、xECL、CML、HCSL/LPHCSL、TMDS等”,反正就TTL、CMOS不是呗(
40.下列关于initial和always的说法正确的是_____A\B\C_____。
A initial只能执行一次
B initial不可以综合,always可以综合
C always只要条件符合即可执行
D initial和always不能同时执行
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
在Ruby中,是否有一种简单的方法可以将n维数组中的每个元素乘以一个数字?这样:[1,2,3,4,5].multiplied_by2==[2,4,6,8,10]和[[1,2,3],[1,2,3]].multiplied_by2==[[2,4,6],[2,4,6]]?(很明显,我编写了multiplied_by函数以区别于*,它似乎连接了数组的多个副本,不幸的是这不是我需要的)。谢谢! 最佳答案 它的长格式等价物是:[1,2,3,4,5].collect{|n|n*2}其实并没有那么复杂。你总是可以使你的multiply_by方法:c
我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0
我正在构建一个小部件来显示奥运会的奖牌数。我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,以及奖牌计数的“金”、“银”、“铜”。列表应该排序:1.首先是奖牌总数2.如果奖牌相同,按类型分割(金>银>铜,即2金>1金+1银)3.如果奖牌和类型相同,则按字母顺序子排序我正在用ruby做这件事,但我想语言并不重要。我确实找到了一个解决方案,但如果感觉必须有更优雅的方法来实现它。这是我做的:使用加权奖牌总数创建一个虚拟属性。因此,如果他们有2个金牌和1个银牌,加权总数将为“3.020100”。1金1银1铜为“3.010101”由于我们希望将奖牌数排序为最高的,因此列表按降序排
我想为名字验证编写一个正则表达式。正则表达式应包括所有字母(拉丁/法语/德语字符等)。但是我想从中排除数字并允许-。所以基本上它是\w(减)数(加)-。请帮忙。 最佳答案 ^[\p{L}-]+$\p{L}匹配anykindofletterfromanylanguage. 关于ruby-on-rails-rails中的正则表达式匹配[\w]和"-"但不匹配数字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c
在我的应用程序中,我有一个文本字段,用户可以在其中输入类似这样的内容"1,2,3,4"存储到数据库中。现在,当我想使用内部数字时,我有两个选择:"1,2,3,4".split(',')或string.scan(/\d+/)do|x|a两种方式我都得到一个像这样的数组["1","2","3","4"]然后我可以通过在每个数字上调用to_i来使用这些数字。有没有更好的方法可以转换"1,2,3"to[1,2,3]andnot["1","2","3"] 最佳答案 str.split(",").map{|i|i.to_i}但是这个想法对你来说
我有一个随机大小的散列,它可能有类似"100"的值,我想将其转换为整数。我知道我可以使用value.to_iifvalue.to_i.to_s==value来做到这一点,但我不确定我将如何在我的散列中递归地做到这一点,考虑到一个值可以是一个字符串,或一个数组(哈希或字符串),或另一个哈希。 最佳答案 这是一个非常简单的递归实现(尽管必须同时处理数组和散列会增加一些技巧)。deffixnumifyobjifobj.respond_to?:to_i#IfwecancastittoaFixnum,doit.obj.to_ielsifobj