FPGA/数字IC(芯海科技2022)面试题 2(解析版)

2023-09-17 17:31:38

以下仅为学习参考(非原创),如有疑惑欢迎评论区指出!

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

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

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

A、1GHZ

B、500MHZ

C、250MHZ

D、200MHZ

解:C

最大可运行时钟频率与保持时间无关, 1/(Tsetup + Tck2q) = 1/4ns = 250Mhz

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

A、编码器

B、译码器

C、数据选择器

D、计数器

解:D,计数一般是对时钟个数进行计数。

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

A、使用宏定义

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

C、使用factory进行重载

D、使用intertface进行连接

解:B 

验证环境的可重用性:在项目管理,测试平台架构,验证计划,测试案例创建和脚本编写等方面的不改动或稍加改动就可以重复使用过的能力。

C. 推荐学习UVM当中的factory的重载函数

D. 更简便的接口连接方式

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

A、电路存在延时

B、电路有多个输出

C、电路未达到最简

D、逻辑门类型不同

解:A

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

A、在Function中,可以调用Task

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

C、function必须要有返回值

D、Task可以有返回值

解:B

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

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

\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]',能不能匹配汉字要视你的操作系统和你的应用环境而定

\s 匹配任意的空白符

\d 匹配数字

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

^ 匹配字符串的开始       $ 匹配字符串的结束

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

A、connect_phase的执行是自上而下

B、reset_phase在main_phase之前执行

C、可以在build_phase进行objection的raise

D、build_phase的执行是自下而上

解:B 

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

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

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

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

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

解:C 复位信号容易受到毛刺的影响,不利于时序分析。

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

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

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

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

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

解:C,队列不需要new[ ]。

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

A、360

B、1170

C、420

D、270

解: C ,当读数据的速率小于写数据的速率时,需要先将数据缓存下来,那么需要开多大的空间缓存这些数据就需要确认FIFO最小深度。

   FIFO_Depth >= Burst_length -Burst_length* (rd_clk/ wr_clk)*(rd_rate)

  此题未涉及rd_rate,为使FIFO_Depth最大,rd_rate = 1

      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

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

A、信号通路上插入isolation

B、使用FIFO

C、使用多级触发器缓冲

D、使用握手协议

解:A,isolation隔离是为了降低功耗。

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

A、SS_-40°C

B、FF_-40°C

C、SS_125°C

D、FF_125°C

解:B,

由于工艺偏差,即使在同一圆片上的芯片,就是不同位置的器件属性会有所不同。单一器件所测的结果为正态分布,均值为tt,最小最大限制值为ss与ff。温度低比温度高信号转递更快。

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

A、&,|&&,^,!

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

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

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

解:D,不确定时使用括号决定顺序。

18.下面哪个phase属于task phase(D)
A、connect phase

B、build phase

C、report_phase

D、reset phase

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

B、寄存器同步

C、FIFO

D、Dmux synchronizer

解:B, 寄存器同步只适用于单bit信号

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

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

B、都有三个参数

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

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

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

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

A、byte

B、logic

C、bit

D、integer

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

A、时钟源的抖动(jitter)

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

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

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

解:ACD,建立时间和保持时间影响的是传输数据的稳定性。

3. 以下逻辑能实现:输入三个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

解:A、B、C、D   归约与(&),归约与非(~&),归约或(|),归约或非(~|),归约异或(^),归约同或(~^)。

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时序不满足的问题?(ABC)

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

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

C、降低时钟频率

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

6.关于重载,下面描述正确的有()
A、函数、任务可以被重载

B、transaction可以被重载

C、sequence不能被重载

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

解:ABD

7.对改善亚稳态问题有效果的方法是(ABCD)
A、引入同步机制,如加两级触发器

B、降低时钟频率

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

D、用反应更快速的DFF

8.有关virtual sequencer描述正确的是(ABC)
A、virtual sequencer并不和任何driver相连

B、virtual sequencer可以控制其他sequencer

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

D、virtual sequencer自身可以传递transaction

9.下列哪些class派生来自uvm_component(ABD)
A、Sequencer

B、Monitor

C、Transaction

D、Driver

10.关于线程,以下描述正确的是(AB)
A、disable语句可以提前结束所有线程

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

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

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

更多推荐

【Java 基础篇】Java后台线程和守护线程详解

在Java多线程编程中,有两种特殊类型的线程:后台线程(DaemonThread)和守护线程(DaemonThread)。这两种线程在一些特定的场景下非常有用,但也需要谨慎使用。本文将详细介绍后台线程和守护线程的概念、特性、用法,以及注意事项。什么是后台线程和守护线程?后台线程(DaemonThread)后台线程是一种

数组和指针笔试题解析之【指针】

目录🍂笔试题1:🍂笔试题2:🍂笔试题3:🍂笔试题4:🍂笔试题5:🍂笔试题6:🍂笔试题7:🍂笔试题8:🍂笔试题1:intmain(){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));return0;}运行结

CTF 全讲解:[SWPUCTF 2022 新生赛]webdog1__start

文章目录参考环境题目learning.php信息收集isset()GET请求查询字符串全局变量$_GETMD5绕过MD5韧性脆弱性md5()弱比较隐式类型转换字符串连接数学运算布尔判断相等运算符MD5绕过科学计数法前缀0E与0e绕过start.php信息收集头部检索f14g.php信息收集探秘F1l1l1l1l1lag

【NLP入门教程】二十三、循环神经网络(RNN)| 小白专场

本教程旨在为初学者提供一份全面而系统的NLP入门指南,探索NLP的核心概念、方法和技术。无论你是计算机科学的新手,还是对自然语言处理领域感兴趣的研究人员,本教程都将为你提供所需的基础知识和实用技能。专栏地址:📕【NLP入门教程】当谈到自然语言处理(NLP)时,深度学习已经成为一种强大而广泛应用的技术。深度学习是一种机

Redis从入门到精通(二:数据类型)

数据存储类型介绍Redis数据类型(5种常用)stringhashlistsetsorted_set/zset(应用性较低)redis数据存储格式redis自身是一个Map,其中所有的数据都是采用key:value的形式存储数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串string

汇编基础(2) -- ARM64

简介ARM架构中,ARM64(也称为AArch64)是一种64位处理器架构,它是ARMv8指令集的一部分。与之前的32位ARM架构相比,ARM64提供了更大的寄存器容量、更广阔的地址空间和更高的计算能力。64位版本的指令集和32位版本的指令集有一些区别,这些区别主要涉及到以下几个方面:寄存器:ARM64架构提供了31个

[ 云计算 | AWS ] IAM 详解以及如何在 AWS 中直接创建 IAM 账号

本章节主要介绍IAM相关知识点以及在AWS控制台窗口如何创建一台AmazonIAM账号。文章目录一、什么是IAM?二、IAM常见种类2.1EIAM2.2CIAM2.3云厂商IAM三、账号(Account)三户模型四、认证(Authentication)4.1认证场景4.2认证方式4.3认证协议4.4认证源五、授权(Au

自然语言处理之北大词性标注集

最近在做人工智能相关技术的学习,在自然语言处理这里发现了词标注标准,顺带分享给小伙伴们词性是词汇基本的语法属性,通常也称为词类。词性标准是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。例如名词、动词、形容词等。中文领域尚无统一的标注标准,较为主流的为北大的词性标注集和宾州词性标注集两大类。下面分享北大的

Python爬虫(二十一)_Selenium与PhantomJS

本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南SeleniumSelenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可

MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])

MongoDB使用配置文件启动、添加为系统服务及设置自启动1.是什么2.下载安装启动配置2.1下载2.2安装2.3配置2.4使用配置文件启动3.设置系统服务及自启动3.1设置为系统服务3.2自启动1.是什么【以下内容来自ChatGPT3.5】MongoDB是一个流行的开源文档型数据库管理系统,广泛用于构建高度可扩展、灵

JVM 程序计数器

Java虚拟机(JVM,JavaVirtualMachine)是一个能够执行Java字节码的虚拟机。在JVM的架构中,程序计数器(ProgramCounter,PC)是一个关键的组成部分。程序计数器用于存储当前正在执行的Java字节码指令的地址。每个线程在JVM中都有自己的程序计数器。每条线程都需要有一个独立的程序计数

热文推荐