华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题——(共九套)(每套四十题)

news2024/9/20 22:23:50

华为海思招聘-芯片与器件设计工程师-数字芯片方向- 机试题-题目分享——共九套(每套四十题)

岗位——芯片与器件设计工程师
岗位意向——数字芯片

真题题目分享,完整版带答案(有答案和解析,答案非官方,未仔细校正,仅供参考)(共9套)
实习岗位和秋招的题目是一样的
didadidadidida313
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

**

单选

**
1.以下低功耗措施中,哪种不是降低电路翻转率的方法?
A.在不进行算术运算的时候,使这些模块的输入保持不变,不让新的操作数进来
B.采用 Gray 码或 One‐hot 码作为状态机编码
C.减少电路中的 glitch
D.重新安排“if‐else”表达试,可将毛刺或快变化信号移至逻辑锥体的前部

2.以下 Verilog 代码中,a=12,b=10.则 z 的运算结果为:
Input [3:0]a;
Input [3:0] b;
output signed [7:0] z;
wire signed [3:0]c;
assign c= a[3:0]*b[3:0];
assign z=c;
A.120
B.‐8
C.8
D.‐120
解析:
补位用符号位补上。c=4’b1000‐‐>z=8’b11111000(最高位为符号位)
考察:有符号数的位宽转换
有符号数的位转换关键在于符号位(首位)
1)有符号数位宽小到位宽大(4 位转换为 8 位)
关键操作:转换时,高位补原符号位!!!(区别于无符号数的高位补零)
例如:将 4 位有符号数 1100,转换为 8 位有符号数。
2)有符号数位宽大到位宽小(8 位转换为 4 位)
有符号数位宽大到位宽小的转换就很简单了,直接截取低 n 位即可。
例如:将 8 位有符号数 1111 1100,转换为 4 位有符号数。
因此,对于短位宽赋值给长位宽的情况,需要对高位进行位扩展,具体是扩展 1 还是扩展 0,
记住:完全依据右操作数!,具体如下:
1)右操作数是无符号数,则无论左操作数是什么类型,高位都扩展成 0;
2)右操作数是有符号数,则要看右操作数的符号位,按照右操作数的符号位扩展,符号位
是 1 就扩展 1,是 0 就扩展 0;
3)位扩展后的左操作按照是无符号数还是有符号数解析成对应的十进制数值,如果是无符
号数,则直接转换成十进制数值,如果是有符号数,则看成 2 的补码解析成十进制数;
4)从上面 4 种情况看出,有符号数赋值成无符号数会出现数据错误的情况,因此要避免这
种赋值,而其他情况都是可以保证数据正确的。

3.constraint c_0{
src dist {0:=30, [1:3]:=90};
请问如上表达式约束,src 数值为 0 的概率为多大:( )
A. 0.2
B. 0.25
C. 0.1
D. 0.6
解析:
Systemverilog 中权重分布由操作符 dist 实现,有两种形式:“:=”或“:/”。
“:=”表示值的权重是相等的,“:/”表示值的权重是均分的。
权重不用百分比表示,权重和也不一定是 100.
例如:
src dist {0:=40; [1:3]:=60;};
即 src=0 的概率是 40/220,src=1 的概率是 60/220,是 2 的概率是 60/220,是 3 的概率是
60/220.
再例如:
dst dist {0:/40; [1:3]:/60;};
即 dst=0 的概率是 40/100,dst=1 的概率是 20/100,是 2 的概率是 20/100,是 3 的概率是
20/100.
综上:src dist {0:=30; [1:3]:=90;}; dst=0 的概率是 30/(90*3+30)=30/300=0.1

4.分析下面的一段程序,正确的打印结果是:
fork
begin
#20
$ display(“A”);
end
begin
#10
$ display(“B”);
end
join_none
#5
$ display(“C”);
A.CBA
B. BCA
C.ABC
D.C
解析:
https://blog.csdn.net/qq_31348733/article/details/100382377
1)join:The parent process blocks until all the processes spawned by this fork complete.
简单来说:fork…join 内的所有语句都是并发执行(对于 begin…end 内部是顺序执行)
2)join_any:The parent process blocks until any one of the processes spawned by this fork
completes.
简单来说:一旦 fork…join_any 内任何一个线程完成,父线程就会继续运行
3)join_none:The parent process continues to execute concurrently with all the processes spawned
by the fork. The spawned processes do not start executing until the parent thread executes a
blocking statement or terminates.
简单来说:子线程和父线程会同时执行。

5.下面有关 Cache 的说法哪一个是不正确的?
A. 设置 Cache 的理论基础,是程序访问的局部生原理
B. Cache 与主存统一编址,Cache 的地址空间属于主存的一部分
C. 设置 Cache 的目的,是解决 CPU 和主存之间的速度匹配问题
D. Cache 的功能匀由硬件实现,对程序员是透明的
解析:
A:使用 Cache 改善系统性能的依据是程序的局部性原理 [1]
B:cache 的地址与内存地址是两码事,不统一编址,也没有从属关系
C:Cache 是介于 CPU 和主存之间的小容量存储器,存取速度比主存快,接近 CPU。它能高
速地向 CPU 提供指令和数据,提高程序的执行速度。Cache 技术是为了解决 CPU 和主存之
间速度不匹配而采用的一项重要技术。
D:Cache 是主存的缓冲存储器,由高速的 SRAM 组成,所有控制逻辑全部由硬件实现,对
程序员而言是透明的。随着半导体器件集成度的不断提高,当前有些 CPU 已内置 Cache,并
且出现了两级以上的多级 Cache 系统。
Cache 通常采用相联存储器。Cache 又分为 L1Cache(一级缓存)和 L2Cache(二级缓存),
L1Cache 主要是集成在 CPU 内部,而 L2Cache 集成在主板上或是 CPU 上。

6.对于独立复位的模块,只需要考虑对后级模块的影响,无需考虑对前级模块的影响。
A.正确
B.错误
解析:B 考虑到可能会存在反馈电路,因此选择错误。

7.System Verilog 中,下面那种数组在使用前需要先执行 new 操作( )
A. Dynamic arrays
B. Associative arrays
C. packed array
D. 多维数组

8.System Verilog 中,下面哪种数组在使用前需要执行 new 操作( )
a.压缩数组
b.联合数组
c.动态数组
d.多维数组
解析:动态数组通过 new ( )函数预先分配存储空间。

9.下列哪个不是 Verilog 系统函数( )
A. $ finish
B. $ head
C. $ time
D. $ write
解析:
r e a d m e m b 和 readmemb 和 readmembreadmemh 用来从文件中读取数据到存贮器中。
$finish 的作用是退出仿真器,返回主操作系统,也就是结束仿真过程。
$write(p1,p2,…pn);输出信息,即将参数 p2 到 pn 按参数 p1 给定的格式输出。
$time 返回一个 64 位的整数来表示当前的仿真时刻值

10.以下 Verilog 运算符号中,优先级最高的是?
A.==
B.“
C.!
D.?:
解析:
11.模块只收敛做到 0.75V,提压到 0.85V 可以正常工作
A.正确
B.错误

12.异步电路都不需要 STA 进行约束检查
A.是
B.否
解析:STA 都是针对同步电路的

13.在设计状态机时,有两种常用的编码方式:one‐hot code、binary code,前者相对于后者
的优势主要体现在
A.实现电路的速度更快
B.实现电路的面积更小
C.编码方式简单
D.实现电路的功耗更低
解析:
独热码和二进制码的优缺点比较:
二进制码、格雷码使用最少的触发器,但是消耗较多的组合逻辑(用于译码) ;
独热码则正好相反,因为状态比较时仅需要比较一位,从而在一定程度上简化了译码逻辑。
虽然在表示同样的状态时,独热码占用较多的位,也就是消耗较多的触发器,但这些额外的
触发器占用面积可与译码电路省下来的面积相抵消。
在 CPLD 更多的提供组合逻辑,而 FPGA 提供更多的触发器资源,所以在 CPLD 中更多的使用
二进制、格雷编码,在 FPGA 中更多使用独热编码。
另一方面,对于小型设计 gray‐code 和 binary‐code 编码更有效。对于大型设计,one‐hot 编
码更高效。

14.对于相同位数输入的变量比较器,大于和小于的面积是一样的
A.对
B.错误
解析:需要考虑有无符号位,如果无符号,大小面积相同;有符号是不同

15.有关综合的说法,以下哪个选项是错误的?
A. 相同的 RTL 代码,每次综合出来的网表可能是不一样的
B. 综合网表可用于 EDA 功能仿真
C. casez 是不可综合的
D. 时序逻辑 always 语句中,if‐else 如果 else 的分支缺乏,会综合成 latch
解析:
在组合逻辑中,当缺少嵌套 if‐else 语句中的最后一个 else 子句时,它将推断一个锁存器,因
为寄存器必须记住原来的值。
在一个时序逻辑的 always 语句块中,如果最后的 else 语句丢失,仍然会继续推断出触发器。

16.在 Verilog 代码中,对有符号数进行比特选择或拼接,其结果是无符号数
A.正确
B.错误
解析:
(1)对于长位宽赋值给短位宽的情况,无论左操作数、右操作数是有符号数还是无符号数,
都是直接截断高位,而左操作数二进制所表示的实际十进制数据要看左操作数是无符号数还
是有符号数,如果左操作数是无符号数,直接转换成十进制即可,如果是有符号数,则看成
2 的补码解析成十进制数,这也是实际计算机系统中有符号数的表示方法。
(2)对于短位宽赋值给长位宽的情况,需要对高位进行位扩展,具体是扩展 1 还是扩展 0,
记住:完全依据右操作数!,具体如下:
1)右操作数是无符号数,则无论左操作数是什么类型,高位都扩展成 0;
2)右操作数是有符号数,则要看右操作数的符号位,按照右操作数的符号位扩展,符号位
是 1 就扩展 1,是 0 就扩展 0;
3)位扩展后的左操作按照是无符号数还是有符号数解析成对应的十进制数值,如果是无符
号数,则直接转换成十进制数值,如果是有符号数,则看成 2 的补码解析成十进制数;
4)从上面 4 种情况看出,有符号数赋值成无符号数会出现数据错误的情况,因此要避免这
种赋值,而其他情况都是可以保证数据正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2079379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天下通商城:数字时代的智能消费助手

随着数字经济的飞速发展,消费方式也在不断革新。天下通网络科技(海南)有限公司顺应这一趋势,推出了天下通商城,这一平台不仅简化了购物流程,还为用户提供了丰富的智能消费工具,成为现代消费者的…

解决国产手机wda不能联网问题

前言 国产手机在通过tidevice无线调试启动wda(webdriveragent)后,会有报错: request error:(‘Connectionaborted.’, SocketError(‘socket timeout’))AirtestIDE或者appnium inspector 无法连接手机显示模拟器界面&#xff0c…

音频导出后为什么效果变差了 FL Studio音频导出设置推荐

FL Studio是一款功能强大的编曲软件,除了可以编曲之外,FL Studio还支持各种音频格式导出。有的小伙伴在使用FL Studio导出音频后,会发现的导出的音频效果不理想,这很大的原因可能是导出设置不对造成的。下面给大家详细讲解&#x…

20240827让飞凌的OK3588-C核心板在Linux R4下通过rockit工具的VI功能获取SONY索尼8530机芯的YUV图

20240827让飞凌的OK3588-C核心板在Linux R4下通过rockit工具的VI功能获取SONY索尼8530机芯的YUV图 2024/8/27 19:40 缘起,我司使用飞凌的OK3588-C的核心板,系统是Linux R4版本。 机芯选用SONY索尼的HDMI OUT接口的8530,输出格式有BGR3/NV16。…

CMake之PUBLIC、PRIVATE、INTERFACE

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~ 个人主页: rainInSunny | 个人专栏: C那些事儿、 Qt那些事儿 文章目录 写在前面抽象版解释头文件和链接库传递测试代码结构PUBLIC传递PRIVATE传递INTERFACE传递 写在前面 使用CMake必然离不开target_include_dir…

LVGL从SD卡读取图片并显示到MCU LCD屏详细笔记教程

1、前言 在上一篇LVGL专题文章中已经讲解了如何将LVGL与FatFs链接起来,实现LVGL对SD卡中的数据进行读写操作。本文在上一文的基础上,将实现LVGL读取文件系统中的图片文件(BMP、PNG、JPG),并显示到MCU设备中的LCD屏中。…

转行软件测试必需要知道的知识

1前言 随着现在互联网行业的迅猛发展,越来越多的人想涌入进来,因为大家都觉得IT行业工资高,做测试门槛又低,是的,入门门槛确实比较低,但是要做好的话,还是有点难的,毕竟术业有专攻嘛…

网约车资格证考试攻略(必备宝典)

考试分数详情及攻略如下: 一、理论部分:(电脑操作,鼠标勾选) 1、全国试题,满分50分,40分过关,每位学员要练习到45分才行; 2、地方试题,满分25分&#xff0c…

Vue3源码调试-第三篇

前言 上两篇已经调试完packages/runtime-dom/src/index.ts下的createApp函数的第一行了,接下来我们看下一行 injectNativeTagCheck 首先说下这个__DEV__估计也是定义在dev.js下,又或者是哪里的,这里控制台输出是true,那我估计是…

Nginx: 代理场景下Nginx接收用户请求包体的处理

Nginx 反向代理图 当用户发过来一个request body的时候,Nginx 是如何处理这样一个body这个body 它对应的就是我们客户请求的一些具体内容 1 )proxy_request_bufering 指令 接收包体的两种方式 接收完全部包体再发送一边接收包体一边发送 接收包体的两种…

前端项目部署到服务器上(nginx)

我这个之前已经部署过项目,所以要进行这个操作 docker imagedocker rm -f nginx //用于强制删除名为“nginx”的容器docker ps //用于列出当前正在运行的Docker容器docker volume -fdocker volume prune //用于删除所有未使用的Docker数据卷,‌释放存…

day11JS-面向对象和js中的设计模式

1. 面向对象 1.1 什么是面向对象 面向对象是一种编程思想,JS就是基于这个思想构建出来的一门编程语言,所以JS中存在对象、类、实例的概念。 对象:万物皆对象。 构造函数(类):把具有某一特征的内容可以划分…

穿梭虚实之间:3DGS与NeRF如何辅助机器人遥控操作?

导读: 本研究介绍了一种用于机器人遥控操作的新型辐射场可视化技术,研究者提出了一种在线训练辐射场的方法,能够实时从多个摄像头获取数据,支持多种辐射方法,包括NeRF和3DGS。该系统与现有的ROS遥控操作系统集成&#…

惠海H6501 DCDC降压恒压ic 60V72V80V100V转24V36V48V实地架构低功耗 仪表仪器供电 兼容XX9487

H6501是一款高压降压型开关稳压器,可输出高达1A的持续电流至负载。它集成了一个 高压高端MOSFET,提供2.5A的典型峰值电流限。其4.5V至48V的宽输入电压范围可适用于各种降压应用,是汽车、工业和照明应用的理想之选。采用滞环电压控制模式&…

行为识别实战第二天——Yolov5+SlowFast+deepsort: Action Detection(PytorchVideo)

Yolov5SlowFastdeepsort 一、简介 YoloV5SlowFastDeepSort 是一个结合了目标检测、动作识别和目标跟踪技术的视频处理框架。这一集成系统利用了各自领域中的先进技术,为视频监控、体育分析、人机交互等应用提供了一种强大的解决方案。 1. 组件说明: Y…

golang笔记——Go堆内存管理

前言 本文主要记录个人学习Golang堆内存管理,涉及到的相关内容,算是对个人所学知识点的梳理与总结。从非常宏观的角度看,Go的堆内存管理就是下图这个样子 学习内存管理,肯定首先需要了解内存管理的基本知识,我会按照 内…

C++笔记10•容器适配器:stackqueue priority_queue•

从C中看stack&queue&priority_queue 1.stack的介绍 官方stack实现: 本质是一个数组 1. stack 是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack 是作为容器适…

【C/C++】typedef用法

typedef用法讲解&#xff0c;时隔半年&#xff0c;再看typedef。 &#x1f381;typedef可以简化结构体关键字 #include<iostream> using namespace std;struct Person {char name[64];int age; };void test01() {struct Person p { "张三",18 };//不用type…

【设计模式-代理】

定义 代理模式是一种结构型设计模式&#xff0c;它提供了对象的替代者或占位符&#xff0c;用来控制对这个对象的访问。通过代理模式&#xff0c;一个类可以代表另一个类来执行某些操作。这种模式常用于增强对象的功能或控制对对象的访问。 特点 控制访问&#xff1a;代理模…

day01 1.c++对c的扩充

#include <iostream>using namespace std;int main() {string s1;cout << "请输入一个字符串&#xff1a;";getline(cin,s1);int count10,count20,count30,count40;int len s1.length();for(int i0;i<len;i){if((s1[i]>a&&s1[i]<z) ||…