华为海思数字芯片设计笔试第四套

声明

下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。
这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨论。

题目

1、影响芯片成本的主要因素是 Die Size 和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响较大,因此低成本设计需要兼顾低功耗设计:()
A. 错误
B. 正确
正确答案:B

2、reg [31:0] big_vect; 那么 big_vect[0+:8] 是多少?()
A. big_vect[0:7]
B. big_vect[7:0]
正确答案:B
解析:
首先查看变量big_vect的大小端,记住一点,转化后的与原来的大小端是一样的定义方式
reg [31:0] big_vect;为大端,那么转化后的也一定是大端,形式不变
big_vect[0 +:8]转化后一定是 big_vect[较大的数值 : 较小的数值]
little_vect[0 +:8] 转化后一定是 little_vect[较小的数值 : 较大的数值]

3、generate 语句中的循环控制变量应该定义为 integer 类型()
A. 错误
B.正确
正确答案:B
解析:定义的类型是 genvar,for 才是 integer

4、o10 换算成十进制是多少?()
A. 8
B.16
C.10
D. 2
正确答案:A

5、哪些情况下不会产生 Latch 电路?()
A.组合逻辑中条件不全的 case 语句没有 default 赋值
B. 时序逻辑中 if 选择语句,没有 else 部分表达
C. 使用 if 选择语句的组合逻辑没有 else 部分表达
D. 使用 case 选择语句的组合逻辑没有 else 表达
正确答案:B
解析:时序逻辑不会生成锁存器

6、关于类的构造函数,以下说法中正确的有()
A. 函数体中必须有 new 语句
B. 返回类型是 void 类型
C. 函数名与齐类名完全相同
D. 不能有形参
正确答案:B
解析:
A. 函数体中必须有 new 语句:这个说法不准确。构造函数本身就是用来创建和初始化类的实例的特殊函数,称为new。它不是说函数体中必须包含new语句,而是这个特殊的函数本身就叫做new。
B. 返回类型是 void 类型:这是正确的。构造函数没有返回类型,即使在其他编程语言中,构造函数也不会有返回值。在SystemVerilog中,构造函数new的声明没有指定返回类型,因此可以认为它的“返回类型”是void。
C. 函数名与其类名完全相同:这个说法在SystemVerilog中不适用。在一些其他面向对象的编程语言中,如C++和Java,构造函数的名称确实与类名相同。但在SystemVerilog中,构造函数统一命名为new。
D. 不能有形参:这个说法是错误的。在SystemVerilog中,构造函数new是可以有参数的,这允许在创建类的实例时进行初始化操作。
综上所述,正确的说法是 B. 返回类型是 void 类型。其他选项在SystemVerilog中的类构造函数的上下文中不正确。

7、中断指示寄存器由实时告警的状态触发,是只读寄存器。()
A. 错误
B. 正确
.
正确答案:B
解析:中断状态寄存器是只读寄存器,只有软件经过处理之后,消除了这种告警状态,硬件就会对其自动清零

8、下面的选项中关于宏定义的说法不正确的是?( )
A. 宏定义文件最好放在一个文件中集中管理,防止出现不同项目需要修改为不同的宏定义值,但是却漏改了某些地方的情况出现。
B. 综合的时候,define 可以跨文件列表生效
C. 如果模块中有很多宏定义,在模块的文件列表最后需要 undef 掉使用的宏,防止和其他模块的宏定义冲突。
D. 仿真时如果出现宏定义冲突,后面的 define 值会覆盖前面的 define 值

正确答案:C
解析:这里 undef 宏定义的话,那么该宏定义就不生效了

9、在 systemverilog 中,函数(task)可以调用函数任务(function)。( )
A. 错误 B. 正确

正确答案:B
解析:systemverilog 中,函数可以调任务。verilog中,函数不能调任务

10.假设输入信号 X 位宽为 12bit,inA 位宽为 6 bit,inB 位宽为 17bit,实现 Y = X*inA + inB 功能,并要求不损失精度,那么输出信号 Y 位宽应不小于( )?
A. 17bit B. 12bit C. 18bit D. 19bit

正确答案:D
详细解析:这是数值计算导致的位宽扩大
对于乘法,结果的位宽是二者之和,对于加法,结果的位宽是最大位宽加一,综上,12 + 6 + 1 = 19

11、reg [7:0] mem [1:256];initial $readmemh(“mem.data”,mem,128,1);对于mem行为正确的描述是( )?
A. 从地址128开始,写到地址1
B. 从地址128开始,写1个地址
C. 从地址1开始,写128个地址
正确答案:A
详细解析:主要考察数组的定义和写法,这里,128 表示起始地址,1 表示最终地址

12、九进制数 16 与九进制数 27 相加的结果用九进制表示为( )?
A.45.0 B.46.0 C.43.0 D. 44.0
正确答案:D
新芯设计:这种题目跟高考类似,实际用不到,但是考察答题者的应变能力
9 进制,那么 16 就是 10 + 6,这里的 10 表示 9,因此 16 就是 'd15,同理,27 就是 'd25,二者之和十进制是 'd40,转换成九进制就是 44
十进制是40,40对于9进制代表36,那么加上4,所以9进制44代表40

13、有关 DFT,以下说法不正确的是( )?
A. scan 的设计规则,需保证时钟复位可控
B. ECO 时无须关注 DFT 网表
C. 主流的 scan 方式采用 MUX-DFF
D. MBIST 指的是对 memory 的 BIST 测试

正确答案:B
详细解析:ECO 表示 RTL Final 之后,在后端综合和物理实现流程中对电路进行修改,DFT 网表也是需要关注的

14、对芯片性能影响最大的三个因素是 PVT,分别是指?( )
A. package,voltage,temperature
B. process,voltage,temperature
C. process,verification,temperature
D. process,voltage,test
正确答案:B
详细解析:
Process:制造工艺
Voltage:电压,电压越高,延时越小
Tempurature:温度,温度越高,延时越大

15、下面这段代码,说法错误的是( )?
always @(posedge clk)begin
din_dly <= din;
end
A. din_dly 用来当控制信号是安全的
B. din_dly不受复位影响
C. 数据寄存推荐这样的写法
D. din 的不定态会传递到 din_dly
正确答案:D
详细解析:D:肯定会传递的

16.下列不属于动态数组内建函数的是()?
A.delete B.new[] C.size() D.length()
解析:D

17.关于功耗,以下描述不正确的是():
A.改变芯片的供电电业和时钟频率都会对芯片功耗产生影响
B.设计者需要关注平均功耗、峰值功耗和功耗跳变
C.芯片的功耗会受实际信号的影响,所以功耗测试需要结合业务来开展
D.对于可关断的模块,使用时钟门控即可降低功耗
解析:D,要用电源门控

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
三分频占空比50%的时钟,先采上升沿实现占空比1/3的分频时钟A,
再采下降沿实现占空比1/3的分频时钟B,两者相或即可。

19.关于冯诺依曼结构和哈佛结构的描述中,错误的是()?
A.冯诺依曼接口中程序计数器负责提供程序执行所需要的地址
B.哈佛结构中取指令和执行不能完全重叠
C.冯诺依曼结构的计算机中数据和程序共用一个存储空间
D.哈佛结构的计算机在一个机器周期内科同时获得指令和操作数
解析:B
哈佛结构由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠
哈佛结构与冯诺依曼结构的区别就是哈佛结构中数据与指令分开存储,可以同时获取。

20.状态机必须有1个缺省状态?
A.正确 B.错误
答案:B

22.以下关于flase-path,正确的是()?
A.一般模拟IP和系统的互联接口都可以设置为flase-path。
B.一般异步电路可以设置为flase-path。
C.一般异步复位可以设置为flase-path。
D.两个不同频率之间的接口一定可以设置为flase-path。
答案:B

23.在verilog中,比算数运算符+优先级高的是?
A.& B.% C.> D.!==
答案:B
在这里插入图片描述

24.有关功耗,以下说法不正确的是()?
A.电压越大,工作频率越高,其动态功耗越高
B.低功耗设计的目标就是采用各种优化技术和方法,在各个设计目标之间找到最佳的结合点
C.设计层次越高,功耗优化所能达到的效果越好
D.芯片单位面积的动态功耗和静态功耗随着工艺的发展呈下降趋势
答案:D
随着工艺的上升,晶体管阈值降低,漏电流变大,静态功耗变大。

25.generate for 循环语句中使用的标尺变量可定义为integer?
A.错误 B.正确
答案:A
generate for中使用的标尺变量是genvar

27.ASIC开发流程中,如下环节的先后顺序是?
A.synthesis->P&R->RTL
B.RTL-> P&R-> synthesis
C.RTL-> synthesis-> P&R
D. synthesis-> RTL-> P&R
答案:C
先rtl设计,然后synthesis(综合),再布局布线(P&R)

28.以下关于flase-path,正确的是()?
A.一般模拟IP和系统的互联接口都可以设置为flase-path。
B.一般异步电路可以设置为flase-path。
C.一般异步复位可以设置为flase-path。
D.两个不同频率之间的接口一定可以设置为flase-path。
答案:B

29.有关综合的说法,一下哪个选项是错误的?
A.综合网表可用于EDA功能仿真
B.时序逻辑always语句中,if-else如果else的分支缺乏,会综合成latch
C.casez是不可综合的
D.相同的RTL代码,每次综合出来的网表可能是不一样的
答案:B
解析:casez是可以综合的

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触发器
答案:D
同步复位的D触发器,没啥可说的。

31.多bit信号跨时钟域同步常用的方式有()?
A.DMUX B.打三拍 C.乒乓buffer D.异步fifo
答案:AD

32、Formality是由synopsys公司开发的一种形式验证(Formal verification)工具,用于两个design之间的等价性验证,它可以支持如下哪些等价性验证( )?
A.RTL级对RTL级 B. RTL级对门级网表 C. 门级网表对门级网表
答案:ABC

33.下列表达式中,哪些可以使用一个或多个二输入与非门器件实现?
A.A&B B.常数1 C.~A D.A+B
答案:ABCD
与非门是通用门,可以实现任何组合逻辑。

35.DFT设计增加的电路一般包括()?
A.SCAN B.JTAG C.BIST D.MBIST
解析:ACD
A是边界扫描,C是自建内测试,D是存储器自建内测试,
B是下载通道,在dft里面的边界扫描大多是通过这个实现的。他是芯片自带的,不是DFT额外加的。

36.在STA分析中,下列选项中哪些属于时钟的时序特性()?
A.时钟频率 B.时钟占空比
C.时钟抖动 D.时钟偏移
解析:ABCD
时钟的时序特性包括时钟周期、时钟占空比、时钟转换时间、时钟延迟、时钟偏斜和时钟抖动。

37.不满足下列哪些时间要求,会产生时序问题()?
A.hold时间 B.recovery时间 C.setup时间
解析:ABC
B是复位信号要进行检查的

38.verilog语法关于任务和函数,描述正确的有()?
A.任务可以调用函数(function) B.函数可以调用任务
C.函数可以调用函数 D.任务(task)可以调用任务
解析:ACD
函数(function)就是块组合逻辑,任务(task)是个事件,函数不能调用函数和任务,
任务可以调用函数和任务,函数要有一个或多个输入且要有返回值,
任务可以有输入也可以没有输入,也没有返回值,函数不能有延时、事件触发,任务可以。

39.对于设计中所使用的的pipelin,说法正确的有()?
A.使用pipeline一定可以减少面积
B.使用pipeline可能会导致面积增大
C.使用pipeline会对时序有好处,STA更容易通过
D.使用pipeline会导致数据延时增加,但如果工作频率不变,系统的吞吐量不会改变
解析:BC
需要注意的是D选项,工作频率不变,系统的吞吐量也会变大。

40.下列说法不正确的是()?
A.设计异步FIFO时采用格雷码的原因主要是为了省功耗
B.对单比特控制信号采用双寄存器法打拍就可以消除亚稳态
C.异步处理需要考虑发送和接收时钟之间的频率关系
D.尽量将异步逻辑和同步逻辑剥离开,分别在不同的模块中实现
解析:ABD
A,是为了防止亚稳态 B单比特信号快到慢打拍没用。
这里D选项:在实际设计中,异步和同步逻辑可能需要紧密协作,特别是在处理信号同步和通信接口时。正确的做法是通过适当的同步策略和设计技巧来管理异步和同步逻辑之间的交互,而不一定是完全剥离它们。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

L1-041 寻找250

对方不想和你说话&#xff0c;并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。 输入格式&#xff1a; 输入在一行中给出不知道多少个绝对值不超过1000的整数&#xff0c;其中保证至少存在一个“250”。 输出格式&#xff1a; 在一行中输出第一次…

【架构-8】Lambda和Kappa架构

Lambda架构&#xff1f; Lambda架构&#xff08;三层架构&#xff09;&#xff1a; &#xff08;1&#xff09;将数据处理分为实时和离线两部分。离线部分通过批量计算处理数据&#xff0c;实时部分则通过增加追加方式将数据合并到批处理中。 &#xff08;2&#xff09;批处理…

js canvas实现裁剪图片并下载

简历上给自己挖的坑&#xff0c;面试被拷打&#xff0c;早就该填了T.T 参考&#xff1a;【js canvas实现图片裁剪】 https://www.bilibili.com/video/BV1QK411d7n1/?share_sourcecopy_web&vd_sourcebf743b20b76eab11028ba2fb05f056b4 效果 思路 组成&#xff1a; 上传文…

基于Springcloud可视化项目:智慧工地可视化大数据云平台源码

目录 技术架构 智慧工地系统在实际推行过程中遇到的问题 智慧工地接纳程度较低 基础设施条件有待完善 智慧工地整体生态尚未完善 智慧工地平台各功能模块 施工过程工信程息信管息理管模理块 人员管理模块 生产管理模块 技术管理模块 质量管理模块 安全管理模块 绿…

记录一个Kafka客户端Offset Explore连不上的问题

我昨天把集群重装了一下&#xff0c;再连这个工具就连不上了&#xff08;你先把zk和kafka在集群启起来&#xff09;&#xff0c;报错截图如下&#xff1a; 英文翻译过来大概就是说遍历zk指定路径不存在&#xff0c;我还以为zk的问题&#xff0c;回去又把zk的文档翻了一遍&#…

多线程代码案例之阻塞队列

目录 1.生产者消费者模型 2.使用标准库中的阻塞队列 3.模拟实现阻塞队列 在介绍阻塞队列之前&#xff0c;会先介绍一些前置知识&#xff0c;像队列&#xff1a;有普通队列、优先级队列、阻塞队列、和消息队列。前面两个是线程不安全的&#xff0c;而后面两个是线程安全的。本…

FFmpeg: 自实现ijkplayer播放器--03UI界面设计

文章目录 UI设计流程图UI设计界面点击播放功能实现 UI设计流程图 UI设计界面 主界面 控制条 播放列表 画面显示 标题栏 设置界面 提示框 点击播放功能实现 槽函数实现&#xff1a; connect(ui->ctrlBarWind, &CtrlBar::SigPlayOrPause, this, &Main…

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

InnoDB中高度为3的B+树最多可以存多少数据?

参考&#xff1a; &#x1f525;我说MySQL每张表最好不超过2000万数据&#xff0c;面试官让我回去等通知&#xff1f; - 掘金 考虑到磁盘IO是非常高昂的操作&#xff0c;计算机操作系统做了预读的优化&#xff0c;当一次IO时&#xff0c;不光把当前磁盘地址的数据&#xff0c;…

QtCreater 使用

QtCreater 创建项目 1.刚进入 QtCreater 的界面是这样的一个界面 ① 创建一个新的文件&#xff0c;那么我们就选择左上角的 “文件” ② 点击新建文件&#xff0c;或者也可以直接使用快捷键 CtrlN 此时就会弹出对话框&#xff0c;让我们选择想要创建的文件&#xff1a; Appli…

stm32f103---按键控制LED---代码学习

目录 一、总体代码 二、LED端口初始化分析 ​编辑 三、LED灭的控制 四、LED亮 五、按键初始化 ​ 六、按键控制LED的功能 一、总体代码 这里使用到了LED灯和按键&#xff0c;实现效果是当按键按下时灯的亮灭转化 #include "stm32f10x.h" #include "bsp_led…

Notion2024年最新桌面端安装+汉化教程,支持MAC和WIN版本

Notion 是一个多功能的协作工具&#xff0c;可以用于个人和团队的知识管理、项目管理、笔记记录和协同编辑等。它提供了灵活的页面和数据库功能&#xff0c;可以根据不同需求进行自定义和组织。Notion 能够帮助用户更高效地组织和共享信息&#xff0c;提升工作效率和团队合作。…

ThingsBoard通过服务端获取客户端属性或者共享属性

MQTT基础 客户端 MQTT连接 通过服务端获取属性值 案例 1、首先需要创建整个设备的信息&#xff0c;并复制访问令牌 ​2、通过工具MQTTX连接上对应的Topic 3、测试链接是否成功 4、通过服务端获取属性值 5、在客户端查看对应的客户端属性或者共享属性的key 6、查看整个…

改进YOLOv8系列:结合自研注意力模块MultiScaleAttentiveConv (MSAConv)

改进YOLOv8注意力系列七:结合空间关系增强注意力SGE、SKAttention动态尺度注意力、全局上下文信息注意力Triplet Attention 代码MultiScaleAttentiveConv (MSAConv)本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更…

蓝桥杯嵌入式(G431)备赛笔记——DMA+ADC(单通道+多通道)

单通道&#xff1a; 开启循环模式&#xff0c;两个参数设为word u32 adc_tick0; u32 r37_value0; u32 r38_value0; float r37_volt0; float r38_volt0;//DMAADCvoid DMA_ADC() {if(uwTick-adc_tick<100) return;adc_tick uwTick;HAL_ADC_Start_DMA(&hadc2, &r37_v…

vivado ila 运行触发器、停止触发器、使用自动重新触发

运行触发器 您可在 2 种不同模式下运行或装备 ILA 核触发器 &#xff1a; • “ Run Trigger ” &#xff1a; 选择要装备的 ILA 核 &#xff0c; 然后单击“ ILA 仪表板 (ILA Dashboard) ”窗口或“硬件 (Hardware) ”窗口 工具栏上的“ Run Trigger ”按钮即可装备 IL…

013:vue3 Pinia详解使用详解

文章目录 1. Pinia 是什么2. Pinia 功能作用3. 手动添加Pinia到Vue项目4. Pinia基础使用5. getters实现6. action异步实现7. storeToRefs工具函数8. Pinia的调试9. 总结 1. Pinia 是什么 Pinia 是 Vue 的专属的 最新状态管理库是 Vuex 状态管理工具的替代品和 Vuex 一样为 Vue…

Django处理枚举(枚举模型)以及source的使用

Django处理枚举-枚举模型 1、定义模型类、序列化器类2、对上面这些场景使用source参数3、支持连表查询4、自定义序列化输出方法5、案例5 1、定义模型类、序列化器类 定义模型类models.py&#xff1b;项目模型类、接口模型类、用例模型类 from django.db import modelsclass T…

选择自动化工具是一个关键的决策过程

好的自动化软件测试工具&#xff0c;不仅可以有效的缩短全生命周期的交付周期&#xff0c;还可以提高测试的有效性&#xff0c;还可以保证更好的高质量的交付。工具的选型是一项重要的决策过程&#xff0c;工具的采用涉及到企业的效率、成本和长期发展。 1、需求分析 确组织希…

08 Php学习:if语句、Switch语句

PHP 条件语句 当您编写代码时&#xff0c;您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。 在 PHP 中&#xff0c;提供了下列条件语句&#xff1a; if 语句 - 在条件成立时执行代码 if…else 语句 - 在条件成立时执行一块代码&#xff0c;…