前言:
出笔试题汇总,是为了总结秋招可能遇到的问题,做题不是目的,在做题的过程中发现自己的漏洞,巩固基础才是目的。
所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自与“数字IC打工人”公众号和网络。
保持更新(2023.2.25)文章内含16题
一、单选题
1.以下关于 System Verilog 的描述, 正确的是
A.sv 中可以用 logic 代替 Verilog 中的 wire 和 reg 类型
B.sv 中, 定义成 reg 的信号会被综合成触发器
C.sv 中的 function 语言不可被综合
D.其他都不正确
E.sv 是提供给验证使用的, 因此其不能被综合
答案:A,定义成组合逻辑的reg不会综合成触发器;funciton 可以被综合。
2.UVM 层次化结构中, 最顶层的部件类型是
A. uvm_test
B. uvm_root
C. uvm_top
D. uvm_component
答案:B,uvm_root是验证平台中所有UVM components的“隐含”的top-level和phase控制器。用户不需要直接实例化uvm_root,UVM会自动创建uvm_root单一实例,用户可以使用全局变量(uvm_pkg范围内)uvm_top来访问uvm_root,可参考下图左上角红色部分注解。
3.数字信号上采样时, 一般需要添加什么样的滤波器, 完成功能为?
A. 高通, 抗混叠滤波
B. 低通, 抗周期延拓
C. 低通, 抗混叠滤波
D. 高通, 抗周期延拓
答案:B,上采样时,会出现很多高频噪声,需要对其进行低通滤波,也因为上采样的原理是在原来序列两个点之间插入L个0,最后上采样后周期是变短了,所以是抗周期延拓。如果是下采样,那也是添加低通滤波器,下采样过后,周期被延拓了,导致信号在频谱上有交叠,所以就需要滤波将混叠部分去除,若题目为下采样,则选C。
参考内容:数字信号上下采样对频谱影响,以及如何添加相应滤波器_信号重采样对频域估计的影响_ddatalent的博客-CSDN博客 和 数字信号中的上采样和下采样_信号上采样和下采样_ReCclay的博客-CSDN博客
4.下列属于异步总线的是?
A. SPI
B. USB
C. UART
D. IIC
普及一点概念:
同步通信:一方发送,另一方应答,否则不进行下一次传输(带时钟信号传输)。
异步通信:一方发送,不考虑另一方是否收到,直接进行下一次传输(不带时钟同步信号)。
单工:单向通信,只能由一方发送数据,另一方接收。
半双工:双方都可发送数据,但同一时刻只能一方发送,一方接收。
全双工:双方都可发送数据,并且可同时发送数据。
(1) SPI——同步通信;串行通信;全双工;主从通信(某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机)。
(2) USB——同步通信;通用串行总线。
(3) UART——Universal Asynchronous Receiver/Transmitter,通用异步收发器;异步通信;串行通信;全双工; 对等总线,没有仲裁机制,所以只能挂载两个同时收发数据的设备,双方都可以发送和接收。
(4) I2C——同步通信;串行通信;半双工;主从通信(总线上支持多个主机和多个从机,总线上任何能够进行发送/接收数据的设备都可以占领总线。当然,任意时间点上只能存在一个主控。多主控,主器件同时争夺总线控制权时,可仲裁)。
答案:C
5.() 电路的逻辑功能特点是, 任意时刻的输出仅仅取决于该时刻的输入, 与电路原来的状态无关
A. 静态逻辑
B. 组合逻辑
C. 动态逻辑
D. 时序逻辑
答案:B
A:静态逻辑电路中靠稳定的输入信号使MOS晶体管保持导通或截止状态,从而维持稳定的输出状态。输入信号存在,对应的输出状态存在;只要不断电,输出信息可以长久保持;
C:动态逻辑电路中利用电容的存储效应来保存信息,即使输入信号不存在,输出状态也可以保持,但由于泄漏电流的存在,信息不能长期保持;
D:时序逻辑电路由存储电路和组合逻辑电路两部分组成,任何一个时刻的输出状态由当时的输入信号和电路原来的状态共同决定。
6.在芯片设计流程当中, 通常会进行后仿真(post-simulation) ,关于后仿的作用, 以下说法不正确的是
A. 抽检 netlist 是否和 RTL 功能一致
B. 抽检电路中是否出现有害的 glitch
C. 抽检时序是否有违规
D. 抽检电路中是否存在亚稳态
答案:后仿,是指综合后仿真,综合后用DC导出门级网表,网表Netlist带有时延信息,将网表和verilog文件结合在一起,用VCS编译仿真,就能得到带有时延的波形信息。所以A当然是后仿的作用,后仿主要是检查电路考虑时延后的各种时序是否出现违例,所以CD也正确,选B。
7.以下关于异步处理正确的是
A 信号经过两级触发器即可完成异步信号的传递‘
B 只要信号传递的两端时钟频率不相等, 即认为是异步信号
C 异步复位信号需要经过同步处理后再使用是安全的
D 异步 FIFO 中使用格雷码传递异步计数器可以保证每一拍传递的数据都是准确的
答案:C
A:信号分为单bit和多bits信号,若是多bits信号,就不能通过两级触发器传递;
B:错误的原因是不是没有考虑整数倍频率且相位差为0的两种时钟;
C:异步复位信号需要经过同步处理后再使用是安全的 (异步复位,同步释放)
D:使用格雷码如果出错只会有一位数据跟上一次数据不一样,应该不能保证每一拍都是正确的
8.关于跨时钟域电路的设计, 以下说法不正确的是
A 单 bit 信号经两级 D 触发器同步后即可进行跨时钟域传递
B 采用单一时钟的电路不会产生亚稳态
C 异步 FIFO 的两个时钟频率相同也可以正常工作
D 跨时钟域电路当中的亚稳态无法消除
答案:B,单一时钟电路,时钟频率高了也会出现时序违例,导致亚稳态发生。
4 种方法跨时钟域处理方法
(1)打两拍,两级触发器同步—单bit数据跨时钟域处理,适用于慢时钟域数据到快时钟域;
(2)异步FIFO—多bit数据跨时钟域处理;
(3)格雷码转换;
(4)加握手信号。
9.衡量数字通信系统传输质量的指标是
A 信噪比
B 噪声功率
C 语音清晰度
D 误码率
答案:D,衡量数字通信系统传输质量的指标分为两种:可靠性和有效性指标,有效性主要指标为传输速率,可靠性主要指标误码率或者说是误信率
10.以下代码片段实现的电路功能是
Input [3:0] in;
output [3:0] out;
wire [3:0] a,b;
assign a=in<<1;
assign b=in>>3;
assign out=a|b;
A 对输入信号 in 先右移 3 位, 再左移 1 位
B 对输入信号 in 循环左移 1 位
C 对输入信号 in 循环右移 3 位
D 对输入信号 in 先左移 1 位,再右移 3 位
答案:B
假设4bit输入信号in为[A,B,C,D],那么A=in<<1=[B,C,D,0],B=in>>3=[0,0,0,A];out=a|b,符号“|”是按位或,0||X=X,从而有out=[B,C,D,A],和输入相比循环左移了1位,选择B。
二、多选题
三、填空题
verilog 当中 a=4’b10x1;b=4’b10x1;那么逻辑表达式 a==b 为_______ a===b 为________
答案:x,1
相等运算符(==):参与比较的两个操作数必须逐位相等,其相等比较的结果才为 1, 如果某些位是不定态或高阻值,其相等比较得到的结果是不定值。
全等运算符(===):全等比较是对这些不定态或高阻值的位也进行比较,两个操作数必须完全一致,其结果才是 1,否则结果是 0
逻辑运算符可参考笔者其他文章:Verilog 逻辑与(&&)、按位与(&)、逻辑或(||)、按位或(|)、等于(==)、全等(===)的区别
2. 4bit 的信号输入和 8bit 的信号输入的乘法器内部计算输出信号至少需要______ bit 的位宽
答案:4bit信号的最大值为4'b1111 = 15, 8bit信号的最大值为8'b1111 1111 = 255;
乘积输出最大值为:255 * 15 = (2^4 - 1) * (2^8 - 1) = 2^12 - 2^8 -2^4 + 1,至少需要12bit位宽。
改一下题目:3bit信号输入和4bit信号输入的乘法器输出至少需要多少bit位宽?
max_output = 3'b111 * 4'b1111 = 7 * 15 = (2^3 - 1) * (2^4 - 1) = 2^7-2^4-2^3+1,用7bit即可描述,得出结论,X bit信号输入和 Y bit信号输入的乘法器输出信号至少需要(X+Y)bit。
3. 通常情况下, 芯片工作温度较________, 工作电压较_______ , 速度最快。
答案:电子迁移率主要受晶格散射影响,即随温度升高迁移率下降,芯片工作温度较低,则速度较快。芯片供电电压影响到电容充放电速度,电压降低时,芯片会变慢,电压升高时,芯片会变快。
4.以下代码的打印输出是___________
always@(posedge clk) begin
a=0;
a<=1;
$display(“%0b”,a);
end
答案:0,同一时刻阻塞赋值和非阻塞赋值发生,以阻塞赋值结果为准。
5. 全部使用组合逻辑实现 A, B, C 的运算实现|A*(B+C)|^2 共需使用_______ 个乘法器与_______个加法器
答案:6个乘法器,5个加法器
此题:设A = Ar + Ai*j, B = Br + Bi*j, C = Cr + Ci*j,
A*(B+C) = (Ar*(Br+Cr) - Ai*(Bi+Ci)) + (Ai*(Br+Cr) + Ar(Bi + Ci))*j,令Br+Cr = Dr, Bi+Ci = Di;
则,要求的是复数的模的平方,|A*(B+C)|^2 = 实部的平方 + 虚部的平方 = (Ar*(Br+Cr) - Ai*(Bi+Ci)) ^ 2 + (Ai*(Br+Cr) + Ar(Bi + Ci)) ^ 2
= Ar^2*(Dr^2 + Di^2) + Ai^2*(Di^2 + Dr^2) ,其中Br+Cr = Dr, Bi+Ci = Di;
乘法器使用:Ar*Ar;Ai*Ai;Dr*Dr;Di*Di;Ar^2*(Dr^2 + Di^2);Ai^2*(Di^2 + Dr^2);6个乘法器
加法器使用:Br+Cr;Bi+Ci; Di^2 + Dr^2;Ar^2*(Dr^2 + Di^2) + Ai^2*(Di^2 + Dr^2) ;4个加法器
四、简答题
setup time和hold time是否可以同时为负,为什么?