芯海科技2022数字芯片

时间2021.8.25

PS:答案为个人整理,抛转引玉,欢迎大家一起讨论!

一、单选题(共20题,每题3分,共60分)

1. D触发器:Tsetup=3ns,Thold=1ns,Tck2q=1ns,

该D触发器最大可运行时钟频率是(  )

A、1GHZ

B、500MHZ

C、250MHZ

D、200MHZ

解:C

1/4ns = 250M

2.下列电路属于时序电路的是(  )

A、编码器

B、译码器

C、数据选择器

D、计数器

解:D

3.以下不能提高验证环境的可重用性的是

A、使用宏定义

B、使用绝对路径索引文件

C、使用factory进行重载

D、使用intertface进行连接

解:B

相对路径

4.组合逻辑电路的冒险现象是由于(  )引起的

A、电路存在延时

B、电路有多个输出

C、电路未达到最简

D、逻辑门类型不同

解:A

5.关于Task与Function语句,以下正确的是

A、在Function中,可以调用Task

B、Function至少有一个输入变量

C、function必须要有返回值

D、Task可以有返回值

解:B

verilog中task与function语句的使用_耐心的小黑的博客-CSDN博客一、四位二进制全加器的function形式实现:module full_adder_4(A,B,CIN,S,COUT); input[3:0] A;input[3:0] B;input CIN;output[3:0] S;output COUT;wire[3:0] S0,S1,S2,S3; function signed[1:0] ADD;//port declaration input A; input B; input CIN;//intehttps://blog.csdn.net/qq_39507748/article/details/108764531

Verilog中任务(task)和函数(function)_在路上的少年的博客-CSDN博客_task函数https://blog.csdn.net/duhanting/article/details/10326405

如果程序中有一段语句需要执行多次,则重复性的语句非常多,代码会变得冗长且难懂,维护难度也很大。任务和函数具备将重复性语句聚合起来的能力,类似C语言的子程序。通常任务和函数来代替重复性语句,也有效简化程序结构,增加代码的可读性。因此,task和function都是可综合的,不过综合出来的都是组合逻辑电路。

任务(task)
任务就是封装在task-endtask之间的一段语句。任务是通过调用来执行的,也只能通过调用来执行,如果定义了任务,但整个过程都没有调用它,它是不会执行的。调用任务时可能需要它来处理某些数据并返回操作结果,所以任务应当有接受数据的输入端和返回数据的输出端。另外,任务可以彼此调用,任务还可以调用函数。
任务定义
task task-id;
[declaration]
procedural-statement
endtask
其中,task和endtask将它们之间的内容标志成一个任务定义,task标志着一个任务定义结构的开始;task-id是任务名,可选项declaration是端口声明语句和变量声明语句,任务接受数据和返回数据就是通过此处声明的端口进行的。
在定义任务时,有下列六点需要注意:
1、在第一行task语句中不能列出端口名称。
2、任务的输入、输出和双向端口数量不受限制,甚至可以没有输入、输出和双向端口。
3、在任务定义的描述语句中,可以出现不可综合操作符合语句,但这样会造成任务不可综合。
4、在任务中可以调用其他的任务或函数,也可以调用自身。
5、在任务定义结构中不可出现initial和always语句。
6、在任务定义中可以出现“disable中止语句“,将中断正在执行的任务,但其是不可综合的。当任务被中断后,程序流程将返回调用任务的地方继续执行。
任务调用
虽然任务中不可以出现initial和always语句,但任务调用语句可以在initial和always语句中使用,其语法形式如下
task-id[(端口1,。。。端口N)];
其中task-id是要调用的任务名,端口N是参数列表。参数列表给出传入任务的数据和接受返回数据的变量。任务调用语句中,参数列表的顺序必须与任务定义中的端口声明顺序声明。任务调用语句是过程性语句,所以任务调用中接收返回数据的变量必须是寄存器类型。
在调用任务时,需要注意一下几点:
1、任务调用语句只能出现在过程块中
2、任务调用语句和一条普通的行为描述语句的处理方法一致
3、当被调用输入、输出和双向端口时,任务调用语句必须包含端口名列表,且信号端口顺序和类型必须和任务定义结构中的顺序和类型一致。需要说明的是,任务的输出端口必须和寄存器类型的数据变量对应。
4、可综合任务只能实现组合逻辑,也就是说调用可综合任务的时间为0;

函数(function)
函数的定义
函数通过关键词function和endfunction定义,不允许输出端口声明,但可以有多个输入端口。函数定义的语法如下:
function[range] function-id;
input-declaration
other-declarations
procedural-statement;
endfunction
其中,function语句标志着函数定义结构的开始;[range]参数指定函数返回值的类型或位宽,是一个可选项,若没有指定,默认为1比特的寄存器类型;function-id为定义函数的名称,对函数的调用也是通过函数名完成的,并在函数体内代表一个内部变量,函数调用的返回值也是通过函数名变量传递给调用语句;input-declaration用于对函数各个输入端口的位宽和类型进行说明,在函数体内至少要有一个输入端口;endfunction为函数结构体结束标志。
函数定义有几点需要定义:
1、函数定义只能在模块中完成,不能出现在过程块中
2、函数至少要有一个输入端口,不能包含输出端口和双向端口。
3、在函数体内,不能出现任何形式的时间控制语句,也不能使用disable中止语句
4、函数结构体中出现过程性语句
5、函数体内可以调用函数,但不能调用任务
函数调用
和任务一样,函数也是在被调用时才被执行的,调用语句的语句形式如下:
fu'nction-id(expr1,.....exprN);
其中,func-id是要调用的函数名,expr1,。。。exprN是传递给函数的输入参数列表,该输入参数列表的顺序必须与函数定义时声明其输入的顺序一致。
在函数定义时,有以下几点需要注意:
1、函数调用可以在过程块中完成,也可以在assigne这样的连续赋值语句中出现。
2、函数调用语句不能单独作为一条语句出现,只能作为赋值语句的右端操作数

任务和函数的深入理解
1、 根据Verilog DHL语言标准来看,task比always低一个等级,即task必须在always里面调用,task本身可以调用task,但不能调用module。module的调用是和always、assign语句并列的,所以在这些语句中均不能直接调用module,只能采用和module端口交互数据的方法达到调用的功能。
task语句是可综合的,但其中不能包含always语句,因此也只能实现组合逻辑。顺序调用task对于电路设计来说,就是复制电路功能单元。多次调用task语句就是多次复制电路,因此资源会成倍增加,不能达到电路复用的目的;同时用task封装的纯逻辑代码会使得电路的处理时间变长,最高频率降低,不能应用与高速场合。
综上所述,可以看出task语句的功能就是将代码中重复的组合逻辑封装起来简化程序结构,具备组合逻辑的所有有点和缺点,而对于时序设计,task语句无法处理,只能通过Verilog HDL语言中的层次化设计方法,将其封装成module,通过端口交换数据来达到简化程序结构的目的。
2、在面向综合的设计中,function是可综合的,但由于function语句中不支持使用always语句,因此无法捕获先好跳变沿,所以不能实现时序逻辑。和task一样,function拥有组合逻辑电路的所有优点和缺点。

6.数字电路设计中,下列哪些手段无法消除竞争冒险现象(  )

A、增加冗余项消除逻辑冒险

B、降低时钟频率

C、增加选通信号,避开毛刺

D、加滤波电容,消除毛刺

解:B

7.关于代码覆盖率,描述正确的是

A、代码覆盖率不包括toggle覆盖率

B、代码覆盖率包括line覆盖率

C、代码覆盖率包括功能覆盖率

D、代码覆盖率达到100%,表示验证足够完备,可以停止验证

解:B

8.关于正则匹配,描述错误的是

A、\w可以匹配a-z、A-Z以及0-9,无法匹配下划线

B、\s可以匹配任意空白符,包括换行符

C、^表示一行的开头

D、\d可以匹配0-9

解:A

PS:下面看下正则表达式 \w \s \d \b

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

\w能不能匹配汉字要视你的操作系统和你的应用环境而定

9. UVM中以下描述正确的是

A、connect_phase的执行是自上而下

B、reset_phase在main_phase之前执行

C、可以在build_phase进行objection的raise

D、build_phase的执行是自下而上

解:D 自上而下

UVM学习笔记--phase机制_wonder_coole的博客-CSDN博客_phase机制1.UVM phase 概览UVM采用phase机制来自动化运行testbench各个仿真过程。UVM phase支持显示或隐式的同步方案,运行过程中的线程控制和跳转。用户只要把代码填入对应的phase,这些代码就会自动在正确的时间执行。各个phase执行顺序如下图所示:相较于OVM,UVM新增了12个小的task phase,如下图:其中run_phase和uvm新增加的12...https://blog.csdn.net/wonder_coole/article/details/90443373

10.关于异步复位,描述错误的是

A、数字设计经常使用异步复位同步释放

B、异步复位可以节省资源

C、使用异步复位有利于进行时序分析

D、异步复位对毛刺很敏感,抗干扰能力差

解:C 没法时序分析

11.关于动态数组和队列,描述错误的是

A、动态数组需要调用delete函数释放空间

B、队列在扩大时,sv会自动分配空间

C、动态数组和动态队列实例化使用new[]

D、队列相关函数包括pop_front()、push_back()

解:C

12.有一个FIFO设计,输入时钟100MHz,输出时钟70MHz,输入数据模式固定,其中1000个时钟中有700个时钟写传输连续数据。为了避免FIFO下溢/上溢,FIFO最小深度是多少(  )

A、360

B、1170

C、420

D、270

解:C

背靠背

2*700-2*700*(70/100)=420

13.芯片中有关GPIO的叙述,不正确的是(  )

A、GPIO般只具有0态和1态,不具有高阻状态

B、GPIO的引脚般是多功能复用的

C、GPIO作为输入接口时具有缓冲功能

D、GPIO作为输出接口时具有锁存功能

解:A

14.下面关于AHB协议描述错误的是

A、Burst传输不能跨越1KB地址边界

B、HRESP[1:0]有OKAY、ERROR、SPLIT和RETRY

C、Burst传输包括single传输、定长传输和不定长传输

D、读写操作的地址相位只会维持1拍时钟

解:D

https://blog.csdn.net/qq_21842097/article/details/119169873

15.下面哪个不属于跨时钟域数据传递的基本方法(  )

A、信号通路上插入isolation

B、使用FIFO

C、使用多级触发器缓冲

D、使用握手协议

解:A

16.以下为文件后缀为某代工厂提供的库文件,合法的电压,环境温度范围内,以下哪种情况内部信号速度最快(  )

A、SS_-40°C

B、FF_-40°C

C、SS_125°C

D、FF_125°C

解:B

17.以下Verilog运算符优先级由高到低正确的是(  )

A、&,|&&,^,!

B、^,!,&,|,&&

C、!,|,&,&&,^

D、!,&,^,|,&&

解:D

18.下面哪个phase属于task phase

A、connect phase

B、build phase

C、report_phase

D、reset phase

解:D

UVM学习笔记--phase机制_wonder_coole的博客-CSDN博客_phase机制

19.以下不能对多bit的数据总线的时钟异步处理的是(  )

A、Gray-code

B、寄存器同步

C、FIFO

D、Dmux synchronizer

解:B

20.关于’uvm_do_on和’uvm_do_on_with,表述正确的是

A、在使用之前对应的对象需要进行实例化

B、都有三个参数

C、第二个参数可以是virtual sequencer

D、第一个参数必须是transaction指针或者sequence指针

解:不会验证 D

二、多选题(共10题,每题4分,共40分)

1.下面属于双状态数据类型的是

A、byte

B、logic

C、bit

D、integer

解:BD  AC

四值逻辑:wire reg logic integer time

2.在静态时序分析中计算时钟延迟需要考虑以下哪些因素( )

A、时钟源的抖动(jitter)

B、寄存器的建立和保持时间

C、时钟树不平衡引入的偏差(skew)

D、工艺特性造成的on-chip variation

解:ABC ABCD

D这玩意能考虑吗?能

静态时序分析——On-chip Variation_沧海一升的博客-CSDN博客_ocv效应

3. 以下逻辑(A,B,D)能实现:输入三个1bitA,B,C变量,若其中两个以上变量为1,则输出1:

A、x=(A&B)|(B&C)|(C&A)

B、x=(~A&B|~B&A)^C

C、x=(~A&B|~B&A)?C:A

D、x=(~A&B|~B&A)?C:B

解:ACD

(~A&B|~B&A)成立 推出AB = 01或者10

4.如下verilog描述中哪个或者哪几个会生成寄存器( )

A、always@(clk)

reg_a<=reg_b;

B、always@(negedge clk)

reg_a<= reg_b;

C、always@(posedge clk)

reg_a<=reg_b;

D、assign reg_a=reg_b;

解:BC

5.在不增加pipeline的情况下,如何解决一条critical path的setup时序不满足的问题?(  )

A、将部分组合逻辑电路搬移到前级path上

B、使用更先进工艺的工艺库

C、降低时钟频率

D、在这条path上插入寄存器

解:ABC

6.关于重载,下面描述正确的有

A、函数、任务可以被重载

B、transaction可以被重载

C、sequence不能被重载

D、UVM factory机制的重载要求重载的类必须派生自被重载的类

解:不会

7.对改善亚稳态问题有效果的方法是()

A、引入同步机制,如加两级触发器

B、降低时钟频率

C、改善时钟质量,用边沿变化快速的时钟信号

D、用反应更快速的DFF

解:ABCD

8.有关virtual sequencer描述正确的是

A、virtual sequencer并不和任何driver相连

B、virtual sequencer可以控制其他sequencer

C、sequence并不在virtual sequencer里产生和传递

D、virtual sequencer自身可以传递transaction

解:不会

9.下列哪些class派生来自uvm_component

A、Sequencer

B、Monitor

C、Transaction

D、Driver

解:不会

10.关于线程,以下描述正确的是

A、disable语句可以提前结束所有线程

B、fork...join、fork... join_none、fork...join_any语句块都是以并发方式执行

C、fork...join_none内部的任意一个语句块执行完成之后,父线程才能继续执行

D、fork...join_any内部的所有语句块执行完成之后,父线程才能继续执行

解:AB 不确定

芯海科技2022数字芯片笔试题相关推荐

  1. 华为海思2022数字芯片笔试题(节选)

    PS:答案是个人整理,抛转引玉,非常欢迎大家一起讨论交流! 单选2分 1.foo-(1<a)foo-1<a的结果一致 A.正确 B.错误 解:B 我不会 2.在verilog HDL描述语 ...

  2. 华为2022数字芯片笔试题

    单选 1.ASIC开发流程中,如下环节的先后顺序是? A. RTL-> Synthesis->P&R B. Synthesis->P&R->RTL C. Syn ...

  3. NV 英伟达2022数字芯片笔试题

    1.Single Choice: Given the following FIFO and rules, how deep does the FIFO need to be to prevent un ...

  4. 揭秘:卢国建是如何成就芯海科技“信号链芯片第一股”

    当前,很多本土IC公司在销售产品的时候喜欢打民族牌,其实,一款产品能不能被客户接受和采用,最关键的还是要看其自身的性能参数是否过硬,"系统厂商对本土IC要求更高,不但要价格上优势,更要性能突 ...

  5. 2022春招——芯动科技FPGA开发岗笔试题(原题以及心得)

    前言: 2022年3月在芯动科技官网投的FPGA岗,当天就过了简历筛选,拿了笔试机会.芯动的题目中规中矩,比较偏向于基础概念题.10道单选题,5道多选题,5道简答题. 目录 前言: 单选题(只记得4道 ...

  6. 禾赛科技2021数字IC笔试题

    笔试题A 1道单选,6道问答 单选1:八进制数657的16进制表示是什么? (1AF) 问答: 使用1个或非门搭建非门,有几种方法? 使用二输入MUX搭建与非门 化简逻辑表达式out=A+B((AB+ ...

  7. 艾为2022数字芯片设计笔试题

    1.已知八进制数:- (362) 8,求它的 十进制数是:   -(3*512+6*64+2*1)= -1922 -(3*64+6*8+2*1)=... 二进制原码是:   1111_1100_100 ...

  8. 数字IC笔试题,大疆校招16题(仅供参考)

    \\\插播一条: 自己在今年整理一套单片机单片机相关论文800余篇 论文制作思维导图 原理图+源代码+开题报告+正文+外文资料 想要的同学私信找我. 数字IC笔试题,大疆校招16题(仅供参考) 1.异 ...

  9. 试卷: 浩鲸科技2019校招算法类笔试题 原地去重

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成. 试卷: 浩鲸 ...

最新文章

  1. python转csv_python脚本如何将Excel文件转为csv文件(代码)
  2. (初学必看)deep graph library(dgl)库的入门引导
  3. 【Qt】Qt中QJsonValue类
  4. Linux系统服务之dhcp
  5. python网络爬虫的流程图_基于Python的网络爬虫的设计与实现
  6. JDK_Proxy_InvocationHandler_动态代理
  7. 思考,基于高密度闪存的存储系统未来到底是一个什么样子?
  8. matlab的电路仿真,Matlab电路仿真
  9. 龙门上下料样本程序,四轴。用台达AS228T和台达触摸屏编写
  10. 使用冷门装机助手/流氓软件导致被捆绑安装各种奇奇怪怪软件的问题
  11. JUCE框架教程(6)——通过AudioProcessorValuetTeeState链接数据和UI
  12. 详析百度“原创保护”使用规范,及如何推送原创文章链接?
  13. android 输入法更换_安卓手机怎么更换输入法-安卓手机切换输入法的方法 - 河东软件园...
  14. win8 配置IIS和添加网站
  15. 沈华伟:图神经网络及其应用 | 青源Talk第4期
  16. 【小小干货】如何寻找综述性论文?
  17. 中国计算机学会高级会员资格,高级会员
  18. r1音箱原生系统更改服务器,某讯R1音响——版本升级和安装DLNA细致教程
  19. paramiko的安装
  20. php 模拟数猴子数大王,猴子大王的问题

热门文章

  1. oracle 中触发器的作用是什么,oracle创建触发器及作用举例
  2. [源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型
  3. 协方差矩阵的几何解释
  4. 苹果电脑可以装windows系统吗_iPhone 可以装 windows 了,想不想试试?
  5. 使用Nodejs搭建一个简易的留言簿(完结)
  6. EEPROM存储芯片24C02
  7. OLAP引擎调研 —— OLAP引擎性能对比分析
  8. String#intern
  9. renqun_youhua=2004892,竞价推广链接后缀标识都是什么含义?
  10. SetContentView源码解析