大疆芯片开发岗B卷
1.在UVM和SystemVerilog的基础知识中,描述错误的是(B
)
A、如果某个操作消耗仿真时间,那么这个操作不能定义在function中。
B、当仿真命令行中出现+UVM_VERBOSITY=MEDIUM时`uvm_info(“exam”,“DJI”,UVM_LOW)对应的message不会被打印出来
C、build_phase用于创建component而且是top down执行的。
D、sequence中定义dmac变量,此sequence的`uvm_do_with(tr,{tr.dmac == dmac;})语句中的约束不起作用。
解析:在打印信息之前,UVM会比较要显示信息的冗余度级别与默认的冗余度阈值,如果小于等于阈值,就会显示,否则不会显示。默认的冗余度阈值是UVM_MEDIUM,所有低于等于UVM_MEDIUM(如UVM_LOW)的信息都会被打印出来,冗余度UVM_HIGH则不打印出来。
2.如果只使用(2选1MUX)完成异或门逻辑,最少需要(2
)个MUX 。
解析:F = A’B +AB’,即:A=0时,F = B;A=1时,F = B’ 。
3.关于网表仿真描述正确的是(C
)
A、网表仿真不能发现实现约束的问题
B、仿真速度比RTL仿真速度更快
C、网表仿真可以发现电路设计中的异步问题
D、为了保证芯片正常工作,即使在时间和资源紧张情况下,也需要将所有的RTL仿真用例都进行网表仿真并且确保通过
解析:网表仿真通过网表反标sdf进行仿真,仿真速度较RTL仿真慢,由于sdf通过sdc约束和单元逻辑延时和线网延时而来,可以发现约束问题。设计大的话,网表仿真太耗时,常用采用形式验证手段来保证门级网表在功能上与RTL设计保持一致,配合静态时序分析工具保证门级网表的时序。门级仍真可以发现异步问题。。
4.关于“线与”逻辑描述错误的是:(D
)
A、“线与”逻辑是两个输出信号相连可以实现“与”的功能
B、可以用OD门来实现“线与”
C、可以用OC门来实现“线与”
D、“线与”逻辑必须在输出端加一个下拉电阻
解析:OD:open-drain,源级开漏输出(开漏),OC:open-collector,集电极开路。OD是对mos管而言,OC是对双极型管而言,两者实现线与需外加上拉电阻。
5.以下哪种异常可以使用逻辑分析仪测试(B
)
A、信号间串扰过大.
B、6个信号的异常组合
C、信号占空比超标.
D、信号上升沿缓慢
解析:逻辑分析仪用来检测的是逻辑错误
6.关于数字通信的特点,下面描述不正确的是(B
)
A、易于加密,保密性好
B、比模拟通信占据更窄的系统频带,系统设备简单,对同步要求更低
C、易于集成,使通信设备微型化
D、抗干扰能力强,且噪声不积累
解析:数字信号相比于模拟信号对同步的要求更高
7.集成电路芯片中,其最大输出低电平为0. 1V,最大输入低电平为1.5V,最小输出高
电平为4.9V,最小输入高电平为3.5V,则其低电平噪声容限为(B
)
A、2.0V
B、1.4V
C、1.2V
D、1.6V
解析:低电平噪声容限=VNL = VIL(max) - VOL(max)(输入-输出)= 1.5 - 0.1 = 1.4V
8.芯片制造中,工艺节点28nm,12nm,7nm。其中28,12,7含义:(D
)
A、沟道深度
B、走线间距
C、器件宽带
D、栅极宽度
9.以下哪些电路可以设置false_path:(A
)
A、异步电路
B、模拟和数字电路接口
C、不同频率之间电路
D、异步复位
解析:false_path用于设置异步路径,不同频率电路可以是同步电路。异步复位需要检查recovery time和removal time
11.某寄存器的地址为addr,现在要求将此寄存器的值取反,下列正确的C语言描述是(A
)
A、* (volatile unsigned int*(addr)=- (*(volatile unsigned int *)(addr)) ;
B、volatile unsigned int*)(addr)= (volatile unsigned int*)(adar):
C、(unsigned int **) (addr)= ~(volatile unsigned int *)(addr);
D、(volatie unsigned int*)(addr) = ~(*(volatile unsigned int *)(addr));
12.对连续信号进行均匀采样,采样频率为Ns,信号最高截止频率为Nc,折叠频率是(D
)
A、2Ns
B、Nc/2
C、2Nc
D、Ns/2
解析:取样定理:设取样频率为fs,输入模拟信号的最高频率为fmax,则有定理:fs>= 2fmax。折叠频率为采样频率的一半。采样间隔为dt=8ms=0.008s,采样频率为ft=1/dt=125Hz,折叠频率为fN=1/2ft=62.5Hz.也称为Nyquist频率
13.逻辑表达式A+BC=(A+B)(A+C)
。
14.时钟周期T,寄存器的时钟端到数据输出端的延迟为Tcq,时钟到第一级寄存器时钟端的延迟为Tcd1,时钟到第二级寄存器时钟端的延迟为Tcd2,两级寄存器之间组合逻辑延迟为Tpd,寄存器的建立时间为Tsetup。Tpd的最大延迟为(T-Tcq-Tsetup-(Tcd1- Tcd2)
)。
解析:reg2reg的STA setup分析:
Tlaunch+Tc2q+Tcomb<=Tcycle-Tsetup+Tcapture
15.假设一个cycle只能完成 个(8bits8bits) 或一个(17bits+ 17bits+ 17bits)操作,那么设计16bits16bits乘法最少可以多少个cycle完成(C
)。
A、2个cycles
B、4个cycles
C、3个cycles
D、1个cycle
16.如下图所示,当CLK1为100MHZ时,约束为set input_ delay -clocks CLK1 -max 5
sig_ a,如果CLK1变为50MHZ,那么需要保证约束的效果不变,此时input delay应该设
置为多少?(D
)
A、5ns
B、10ns
C、20ns
D、15ns
解析:set_input_delay是设置输入延迟用的命令,同样的set_output_delay就是设置输出延迟的命令;-clocks(约束语句中一般用-clock)后面紧跟的是时钟源的名字,可以来自时钟输入管脚,也可以是用户创建的虚拟时钟,题目图中给出的是CLK1;-max描述了用于建立时间分析的包含有板级走线和外部器件的延时(如果是-min则描述了用于hold分析的包含有板级走线和外部器件的延时,两者同时存在,往往分别设置) 这里设置的值为5ns(输入约束的时延值可以理解为有效数据沿相对于时钟的偏移,如果时延值为正说明数据相对于时钟向后偏移,时延为负说明数据相对于时钟向前偏移);最后是输入信号的名字,题目图中给出的是sig_a。这句话完整的解读是:设置输入延迟,输入信号sig_a相对于输入时钟CLK1的最大延迟为5ns。这个约束命令不是从内部延时的角度来约束端口时序,而是从系统角度来约束的。是告诉时序分析工具输入信号和输入时钟之间的延迟关系,不是调节输入信号的延迟。
100MHz的时钟,周期为10ns,除去input delay5ns,FPGA内部为5ns,要保证约束的效果不变,那么50MHz的FPGA内部延迟也应该5ns,而50MHz的频率对应周期20,约束效果不变的话,外部的延迟设置应为15ns
https://blog.csdn.net/weixin_43727437/article/details/105235857
17.下列说法正确的是(D
)
A.FPGA全称为复杂可编程门阵列
B.FPGA是基于乘积项结构的可编程逻辑器件
C.Altera的MAX7000系列属于FPGA结构
D.基于SRAM的FPGA器件,每次上电之后必须重新进行配置
解析:.FPGA全称为现场可编程门阵列;FPGA芯片基于
查找表的可编程逻辑结构,CPLD是基于乘积项结构的可编程逻辑器件;MAX7000是传统血统的CPLD,内部结构是基于乘积项,也就是与或阵列结构
18.图中所示唤醒振荡器,单个反相器延时为3us,稳定振荡后,输出的周期信号频率为多少(B
)。
A.60us
B.30us
C.15us
D.20us
解析:环形振荡器,由奇数个反相器输出端和输入端首尾相接构成,反相器的每一级都会进行一次取反。之所以使用奇数个反相器是因为偶数个(输入是什么输出就是什么)反相器会形成正反馈,会出现电路锁定问题,无法形成振荡。而奇数个(输出是输入的取反值)反相器形成负反馈,可以形成振荡。
环形振荡器的振荡周期=单个反相器延迟时间*反相器个数*2,所产生的方波频率=1/(单个反相器延迟时间反相器*2)
19.关于DFT(designfor test)的描述错误的是:(D
)
A. DFT的主要目的是发现芯片在生产过程中出现的缺陷
B. 寄存器扫描链是一种常用的DFT技术
C. DFT测试过程通常会消耗大量的动态功耗
D. DFT测试不能覆盖电路的时序问题
解析:DFT的at-speed test会采用芯片PLL高速时钟进行寄存器的setup和hold测试
1.随着IC电路设计工艺的进步,漏电功耗占比越来越大,不考虑温漂影响,以下哪些技术能够用于降低漏电功耗?(BC
)
A、clock gating
B、DVFS(动态电压频率调整)
C、power gating(电源门控)
D、DFS(动态频率调整)
解析:漏电功耗属于静态功耗。A、D为减少逻辑翻转,降低动态功耗。C降低静态功耗,B可降低静态功耗和动态功耗
2.关于电路亚稳态描述不正确的是(BC
)
A、亚稳态不能被消除,只能减小发生概率;
B、可以正常工作的数字电路芯片中一定不存在亚稳态;
C、亚稳态不存在于实际电路中,只是仿真的一种现象
D、增加同步拍数可以降低亚稳态发生的概率
3.一款芯片含有CPU,DDR控制器,BOOTROM,此芯片启动时初始化代码在跳到main函数之前通常会执行哪些操作(ACD
)
A、对DDR进行初始化
B、Reset Entry买 入跳转指令或者跳转地址
C、初始化stack指针寄存器
D、对MMU以及CACHE进行配置
4.下列关于代码覆盖率描述错误的是:(AB
)
A、代码覆盖率达到百分之一百说明代码bug已消除
B、代码覆盖率包括功能覆盖率
C、代码覆盖率包括条件覆盖率
D、代码覆盖率包括语句覆盖率
解析:覆盖率是衡量设计验证完成程度的指标,并不是验证的目的。任何覆盖率达到100%并不代表芯片bug已消除。代码覆盖率包括行覆盖率、条件覆盖率、状态机覆盖率和翻转覆盖率。功能覆盖率反映开发出来的需要覆盖的功能点覆盖的比例。断言覆盖率测量断言被触发的频繁程度。
5.、判断电路中是否存在冒险竞争的方法有哪些(AC
)
A、卡诺图法。
B、实验法
C、代数法
D、观察法
6.哪些手段可以降低SRAM的动态功耗(BCD
)
A、不访问SRAM时,将其Power down
B、不访问SRAM时关闭时钟
C、不访问SRAM时地址线不翻转
D、不访问SRAM时写数据线不翻转
解析:A选项不能作为降低SRAM的动态功耗的手段,断电(Power down)会导致数据的丢失。
7.、以下哪些是典型FPGA器件内部常用资源(BCD
)
A、时钟网络
B、DRAM
C、寄存器
D、LUT
解析:FPGA内有BRAM和DRAM两种存储资源,DRAM(Distributed RAM)指的是分布式RAM,为内部LUT拼成。BRAM(BlockRAM)是固定在FPGA内部的ram资源,无论使用与否都存在于那里,有较大的存储空间。
8.关于latch与Flip-Flop特性描述正确的是(ABC
)
A、都属于时序逻辑
B、latch输出可能产生毛刺
C、Flip-Flop只会在时钟触发沿采样当前输入,产生输出
D、latch无时钟输入
解析:latch信号不论是在latch based design还是clock gating cell中都是有时钟输入的
9.在芯片中某数字block支持单独上下电,那么下列说法正确的是:(AD
?)
A、此block下电时,需要依次关闭clock,使能isolation cell,使能复位信号,控制power gating使block 下电
B、此block需要在输入端加入isolation cell
C、此block需要在输出端加入level shift
D、此block重新上电时,需要等到模块完成上电后才能撤销isoIation
10.以下哪些活动属于DFT的内容:(ABCD
)
A.DC SCAN
B.MBIST
C.AC SCAN
D.Boundry SCAN
解析: 1.边界扫描测试,boundary scan test—测试IO pad;2.MBIST技术 – 测试mem;3.扫描测试又叫ATPG 技术– 测试std-logic;4. 全速测试at-speed-test,AC Scan就是at speed测试即实速测试,DC Scan就是normal scan test 即慢速测试。
11.根据约束关系set_ clock_ groups -async -group{CLK1 CLK3}{CLK2}, 下图中哪些路径会进行时序检查(ABD
)
A、PATH1
B、PATH2
C、PATH3
D、PATH4
解析:对于有多个时钟的设计中,可以用set_ clock_ groups这个约束把相关的时钟分成一个组,与其它不相关的时钟区分开。这样也避免timequest对相关的异步时钟进行时序分析而带来不必要的麻烦。约束命令把时钟分成了两组,CLK1 CLK3是一组,CLK2是一组,这样约束过后,timequest只对这两个组内的时钟域进行分析,两个组间的时钟(相当于跨时钟)路径将不会分析
12.关于异步处理,以下说法正确的是:(BD
)
A.异步FIFO采用格雷码的原因是为了提高电路速度。
B.异步处理需要考虑发送和接受时钟之间的频率关系
C.单比特信号打两拍后可以避免亚稳态的发生
D.静态配置信号可以不做异步处理
解析:异步FIFO采用格雷码的原因是为了避免多比特数据跳变时由于路径延迟而造成跳变错误;单比特信号打两拍后可以降低亚稳态的发生概率,并不能完全避免。
13.选择下列做法中对降低动态功耗效果最显著的两项(AD
)
A. RTL级电路设计优化
B.电源门控.
C.多电压阈值
D.门控时钟
解析:多电压阈值技术主要用来降低静态漏电功耗;电源门控可以同时有效地降低动态功耗和静态功耗,但是效果比起其他两项有所不如。
14.在不增加pipeline的情况下,如何解决一条critical path的setup时序不满足的问题?(ABC
)
A.将部分组合逻辑电路搬移到前级path上
B.降低时钟频率
C.使用更先进工艺的工艺库
D.在这条path上插入寄存器
解析:A为综合工具DC常用方法,B可加大时钟周期,C可减小传播延时和组合逻辑延时和建立时间,D实际上就是pipeline
1.用正则表达式"\s*(<.*>)" (注:双引号中为正则表达式,不包含双引号)来匹配字符串"
2.芯片管脚中,有些控制信号为了过滤输入信号的噪声,需要使用从高到低和从低到高有两种不同阈值的门电路来保证芯片的正常功能,具有此功能的门电路是?
施密特触发器
3.如下九宫格,每个小段相交,且电阻为R,则P,Q两点之间的电阻为?(5R/7
)
4.典型的5级流水线RSIC结构中,5级流水线的功能分别是?
取指(IF)、译码(ID)、执行(EX)、访存(MEM)和写回(WB)
1.FPGA相对于ASIC的优势是灵活可编程,不足是可实现的最高平频率有限,请介绍一下在FPGA开发中典型的时钟优化方法:
衡量FPGA设计的两个重要指标是吞吐率和延迟,时序优化是让FPGA设计获得更高的工作频率,也就是通常说的性能和吞吐率,常用的方法有如下:
1.插入寄存器(pipeline)
这种方式会增加设计的时滞(clock latency)。插入了几个寄存器,结果输出就会延长几个周期,在不违反设计规格(对clock latency有要求)以及功能没有影响的时滞情况之下可以这么做。
2.并行化设计
并行化设计的思想是将一个逻辑函数分解为几个小一些的逻辑函数并行计算,从而减少关键路径上的延迟 。
3.均衡设计
均衡设计的思想是把 Critical Path 上的组合逻辑拿出一部分放在 short path 上进行,从而缩短 Critical Path 的延迟。
4.优化路径
通过优化数据流的路径来缩短 Critical Path ,提升系统性能。重新布局和 Critical Path 在一起的路径,从而 Critical Path上的逻辑门可以更靠近目标寄存器。
2.用systemVerilog的contraint语句实现以下随机激励:
数组变量a(4个元素,每个成员都是6bit有符号数)和node(2bit)均为随机变量,约束如下:
(1)数组a的每个元素只能在[-16,16]的范围取值。(请使用16进制有符号数表达该取值范围)
(2) mode=2’b00时 数组a的所有成员之和等于8。
(3) mode为 其他值时,数组a的成员a[2]值最大。
请在如下代码框架下,各个约束对应的代杩
rand bit Signed[5:0] a[4];
rand bit [1:0] mode;
constraint reasonable_ a{
a inside [8'h30:8'h10]; //填入约束(1) 的代码 -16的原码11000,反码101111,补码110000,化为十六进制为8'h30
}
constraint valid_ a{
if(mode == 2'b00)
a.sum() == 8; //填入约束(2) 对应的代码
else
a[2] == a.max(); //填入约束(3) 对应的代码1,
}
3.设计一个电路,使用时序逻辑对一个单bit信号进行毛刺滤除操作,高电平或者低电平宽带小于4个时钟周期的为毛刺。用Verilog或VHDL写代码。