FPGA/IC秋招面试题 1(解析版)

分享个人觉得遇到还不错的题,后续有会继续补充。。。

以下题目均来自网络平台,用于学习交流如有侵权立马删除!!!

  1. Verilog语言中,下面哪些语句不可被综合()

A. #delay语句 B. initial语句

C. always语句 D. 用generate语句产生的代码

考察可综合和不可综合语句。

答案AB, 可综合是指通过语句描述出对应的电路,所有综合工具都不支持的结构 time,defparam,$finish,fork,join,initial,delays,UDP,wait

容易认为不可综合的:for,generate,function(函数),在IP核中有使用

2.`timescale 1ns/100ps,下面正确的是()

A. 时间单位是ps B. 时间单位是100ps

C. 时间精度是1ns D. 时间精度是100ps

考察:时间尺度预编译指令timescale。

答案D, 前面是单位, 后面是精度

  1. 假设输入信号X位宽为12bit,A位宽为6bit,B位宽为17bit,实现 Y=X*A+B 的功能,并要求不损失精度,那么输出信号Y的位宽应该不小于()

A. 29bit B. 24bit

C. 19bit D. 15bit

考察数据位宽的合理分配。

答案C, 注意这里不损失精度的含义是指数据没有溢出,需要使用足够的位数来存储运算的结果。X位宽为12bit,A位宽为6bit,假设A的值为最大值(所有位都为1)。X和A相乘需要将X的值左移5位,得到乘积的结果为18位,加上17bit的B(假设全为1),故至少需要19bit来保存结果。

  1. 以下关于Latch与Flip_flop特性描述正确的是()

A. Latch与Flip_flop, 都属于时序逻辑

B. Flip_flop只会在时钟触发沿采样当前输入, 产生输出

C. Latch无时钟输入

D. Latch输出可能产生毛刺

考察:锁存器和寄存器特性

答案A、B、D,

Latch: 锁存器, 是一种对脉冲电平敏感的存储单元电路, 它们可以在特定输入脉冲电平作用下改变状态。锁存, 就是把信号暂存以维持某种电平状态。

Flip-flop: 触发器, 是时钟边沿触发, 可存储1bit数据, 是register的基本组成单位。

A.门电路是构建组合逻辑电路的基础, 而锁存器和触发器是构建时序逻辑电路的基础。

B.锁存器能根据输入端把结果自行保持;触发器是指由时钟边沿触发的存储器单元, 同步设计, 不容易受毛刺的影响。

D.锁存器是电平触发, 非同步设计, 受布线延迟影响较大, 很难保证输出没有毛刺产生

  1. 假设一个3bit计数器(计数范围为0~6)工作在38M时钟域下,要把此计数器的值传递到另一个异步100M时钟域,以下不正确的是()

A. 使用异步FIFO

B. 锁存+握手信号

C. 使用格雷码

D. 使用DMUX电路解析

考察处理跨时钟域时数据传递的常用方法:握手、打两拍、转为独热码或格雷码、异步FIFO

答案:C

A.异步FIFO:在读写时钟不相同的情况下,进行数据处理。

B.握手: 在数字电路中(如计算机),设备甲和设备乙交换信息(通讯)双方采用某个通讯规范(协议)来交换数据,它们的联络过程就叫"握手",用来联络的信号就叫"握手信号"。

C. 格雷码: 在一组数的编码中, 若任意两个相邻的代码只有一位二进制数不同的数。本题的计数器计数范围为0~6, 当数值6跨越至0时变换了2bit, 因此不能形成闭环,所以该题不能使用格雷码进行跨时钟域。如果计数范围为0~7则可以形成闭环( 直接使用格雷码做跨时钟域需要2n个连续的计数才可以)

  1. 二输入与非门当输入变化为()时,输出可能有竞争冒险?

A.00→10 B.10→00

C.01→10 D.11→01

答案:C

2输入我们假设为AB, AB变化过程分析如下:

二输入与非情况如下所示:

|---|---|----------|
| A | B | ~(A&B) |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |

A: 00→10变化的过程中, 只有A发生变化

如果A正常变化为1, A为1, B为0, 则输出为1。

如果A变化有延迟则会出现, A为0, B为0, 则输出为1。

B: 10→00变化的过程中, 只有A发生变化

如果A正常变化为0, A为0, B为0, 则输出为1。

如果A变化有延迟则会出现, A为1, B为0, 则输出为1。

C: 01→10变化过程中, A和B都发生变化

如果AB均正常变化, A的值为1, B的值为0, 则输出为1。

如果A, B在变化过程中有延迟, 就会出现

01、 00、 10、 11四种状态, 输出本应该为1,

但是以上情况会有输出为0的情况, 输出冒险。

D: 11→01变化过程中只有A发生变化

如果A正常变化, 则A的值为0, B的值为1, 输出结果为1。

如果A变化过程中有延时会出现

11、 01两种状态, 不会有中间态产生。

7.下列关于FIFO的描述正确的是()

A. 外部可以直接操作FIFO的读写地址

B. FIFO可以分为同步FIFO和异步FIFO

C. 空信号是在写时钟域产生的, 满信号是在读时钟域产生的

D. FIFO是先进先出的存储器

考察FIFO功能

答案:B、D

A.FIFO与普通的存储器的区别是没有外部读写地址 , 用起来很方便, 但是缺点是只能顺序写入和读出, 数据地址由内部写指针自动加1 完成

B.FIFO按工作时钟域的不同分为: 同步FIFO和异步FIFO, 同步FIFO的读写时钟为同一时钟,FIFO内部所有逻辑都是同步逻辑, 常用于数据缓冲; 异步FIFO读写时钟为异步时钟,FIFO内部的读写逻辑需要异步处理, 常用于跨时钟域交互。

C.空信号是在读时钟域产生的; 满信号是在写时钟域产生的。

  1. 状态机有冗余状态时,必须有default ()

考察状态机工作条件

答案:对

状态机复位之后每个时刻都处于某个明确的状态。

如果one-hot或者binary状态没用满, 甚至就算用满, 也需要一个default状态,用来保证预期之外的错误状态转移( 比如亚稳态) 时, 能回到一个稳定已知的状态。

  1. 无符号数二进制除法1110111B/1001B 的结果()

A. 商: 1101B, 余数: 110B B. 商: 110B, 余数: 110B

C. 商: 1101B, 余数: 10B D. 商: 101B, 余数: 10B

考察码制运算

答案:C, 法一 如下图,法二转为十进制在除:1110111B→119D 1001B→9D 商13D, 余数2D

10.在verilog中执行以下代码,assign din[31:0]=32'hFF00ABC4; assign dout[31:0]=(din<<2)>>4, 最后dout的值为多少 ()

A. 32'h03C02AF1

B. 32'h0FC02AF1

C. 32'h00FF00AB

D. 32'hFFFF00AB

考察数据移位

答案: B, 不能单纯的认为左移两位, 右移四位的实质为右移两位。

  1. 表达式Y=C?A:B ; 如果C=x或z ,A=1010,B=1100时, Y为 ( )

A. 1010 B. 1xx0 C. 1100 D. x11x

考察三目运算符

答案B: Y=C?A:B;

如果C为真, 则选择A;

如果C为假, 则选择B;

如果C为x或z, 将按以下逻辑A和B按位操作的值: 0与0得0,1与1得1, 其余情况为x。

1010

1100


1xx0

  1. 同步电路时序模型如下: T1为触发器的时钟端到数据端的延时, T2和T4为连线延时, T3为组合逻辑延时, T5为网络时钟延时,时钟周期为Tcycle,触发器的建立时间和保持时间为Tsu和Thd,那么为了保证数据正确采样, Tsu和Thd要满足?

  2. 如何消除竞争冒险()

A. 发现并消去互补相乘项

B. 降低时钟频率

C. 增加乘积项以避免互不项相加

D. 输出端并联电容

考察消除竞争冒险得方法:接入滤波电容、引入选通信号、增加冗余项

答案:ACD

信号由于不同路径传输达到某一汇合点的时间有先有后的现象(理想状态是两路信号同步进行传输),就称之为竞争,由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险。

A.C 发现并消去互补相乘项(F = A + A非),适当的逻辑表达式中增加一些冗余项, 它们的增加不改变逻辑功能,但是可以消除互补信号产生的竞争-冒险现象。

例如

B=C=1时

有竞争-冒险现象, 但是增加冗余项BC

就可以消除竞争冒险, 因为当B=C=1时无论A如何变化, 输出都是1。

冗余项是怎么来的呢?

增加冗余项:BC

F = AB + AC + BC

D, 利用电容通高频阻低频的特性,尖脉冲直接对地短路, 消除了尖脉冲, 稳定了输出。

引入选通信号

在输入信号变化, 并有可能出现竞争冒险, 选用一个选通信号将输出门封锁,等到所有输入信号都变为稳态后, 再去掉封锁输出信号。

  1. 下图所示4bit右移位寄存器, 0时刻ABCD初始状态为0111,请写出5个时刻之后的ABCD输出()

考察常用逻辑门符号识别及功能。

答案:0010 ,或非门:有1出0,全0出1;

  1. 有四种复用方式,频分多路复用,写出另外三种?

四种复用方式:

频分多路复用( FDMA)

时分多路复用( TDMA)

码分多路复用( CDMA)

波分多路复用( WDMA)

  1. 时序收敛的PLL 3分频的输入时钟与分频后的输入时钟关系是异步时钟。(对or错)

错,同步关系,因为是同一时钟。

17.以下verilog代码中, a=12,b=10,则z的运算结果为()

input [3:0]a;

input [3:0]b;

output signed[7:0] z;

wire signed[3:0]c;

assign c= a[3:0]*b[3:0]

assign z = c;

考察带符号位的数据运算

答案:-8, a*b = (120)D=(01111000) B,C的位宽为4位 C= 4'b1000。 对于不满一个字节的数据(8位),在计算时系统一般是补全,最高位为1,则补1,最高位为0,则补0。例如1000,系统默认补全是:1111 1000;如果是0100,补全为0000 0100;则z= 8'b11111000;则Z= 8'b1111 1000,这是补码(最高位是符号位不动表正负),对其进行求原码得 1000_1000,故Z = -2。

  1. Short-Current功耗(内部短路功耗)属于动态功耗?

答案:是

功耗的组成: 动态功耗、 静态功耗

动态功耗:

翻转功耗( 电路在开关过程中对输出节点的负载电容充放电所消耗的功耗)

短路功耗( PMOS和NMOS同时导通所消耗的瞬态功耗)

静态功耗:

亚阈值漏电功耗、 栅极漏电功耗、 栅极感应漏电功耗、 反向偏置结泄露功耗

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

A.

always@(clk)

b <= a;

B.

always@(negedge clk)

b <= a;

C.

always@(posedge clk)

b <= a;

D.

assign a = b;

考察verilog语句功能。

答案:BC,

A: 虽然有clk, 但是不是边沿触发, 而是always块实现的组合逻辑

  1. 芯片制造中,工艺节点28nm,12nm,7nm。其中28,12,7含义为: ()

A. 沟道深度 B. 走线间距

C. 器件带宽 D. 栅极宽度

答案:D

21.表示任意两位无符号十进制数需要() bit二进制数

考察进制转换

答案: 7位,99(d)=1100011(b)

22.下面是什么电路:()

always@(posedge clk or negedge rst_n)

begin

if(rst_n == 1'b0)

b <= 0;

else

b <= a;

end

A. 综合为latch

B. 带同步复位的D触发器

C. 带异步复位的D触发器

D. 组合逻辑

考察verilog语句功能

答案: C, rst_n == 1'b0带异步复位。

23.常用的嵌入式硬件通信接口协议有:

答案:UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA

  1. 时序检查中对异步复位电路的时序分析叫做()和()?

removal time: 去除时间 ( 不要影响上一个有效时钟沿)

removal time: 去除时间 ( 不要影响上一个有效时钟沿)

  1. System Verilog中,下面哪种数组在使用前需要执行New ()?

A.压缩数组 B.联合数组

C.动态数组 D.多维数组

new()为一个对象分配空间, 初始化变量, 并返回保存变量的地址。动态数组通过new函数预先分配存储空间。

答案:C

26.下面表达式正确的是() ?

A. A=4'df B. C=3'd8

C. B=5'h1 D. D=3'b2

答案: C

A: d为十进制, 十进制没有f

B: 3bit最多为7( 0~7)

C: h为十六进制, 而且数值没超范围, 表示合理。

D: 二进制没有2, 只有0、 1

27.异步时钟数据采样的方法错误的是()?

A. 单bit高频时钟脉冲展宽后给低频时钟进行采样。

B. 捂手信号后再采样

C. 使用FIFO隔离进行多bit的采样

D. 高频时钟直接采样低频时钟的多bit数据

答案:D, 多bit数据存在各bit到达采样点的时刻不同的问题, 直接采样可能会采集到错误的数据。

要通过捂手或者fifo或者格雷码转换单bit等方式进行多bit数据传输。

28.verilog中10%(-3)的结果是() ?

A. 3

B. -3

C. 1

D. -1

答案:C

verilog中的取余运算:

先把各自的符号位去掉,

进行取余运算,

然后取第一个运算数的符号位。(建议编写代码验证一下)

  1. 如果线网类型变量说明未赋值,其缺省值是()?

答案: D

线网型未赋值为z("Z"表示高阻状态)

寄存器类型未赋值为x (X"用作信号状态时表示未知)

  1. 代码$display("%h",14bx0_1010)的输出结果是()

A. xxxa

B. xxXa

C. XXXa

D. XXxa

考察:$display 用于输出、打印信息

答案:B, 14'bx0_1010,按16进制4个一组补成16'bxxxx_xxxx_xxx0_1010,部分比特x态为大写X, 全部比特x态为小写x也就是16'hxxXa。

%h 或%H //以十六进制的形式输出

%d 或%D //以十进制的形式输出

%o 或%O //以八进制的形式输出

%b 或%B //以二进制的形式输出

  1. 下列不属于静态时序分析的时序路径是()?

A. 模块外部输入→第一级寄存器输入

B. 寄存器的时钟引脚→模块外部输出

C. 模块外部输入→模块外部输出

D. 寄存器数据输出→模块外部输出

答案:D ,静态时序分析主要是在动态仿真和验证工作之外,来检查这两个触发器是不是满足我们给出的时序约束。

路径中的起点是一个时序元件的时钟引脚或者设计的输入。

终点则是时序元件的数据输入引脚或者设计的输出。

  1. 在verilog中,关于函数不正确的是()

A. 函数可以调用其他函数

B. 函数只能返回一个值

C. 可以包含时延或者时序控制

D. 函数必须带有至少一个输入

考察函数功能:①:不含有任何延迟, 时序或时序控制逻辑。

②:至少有一个输入变量。

③:只有一个返回值, 且没有输出。

④:不含有非阻塞语句。

⑤:函数可以调用其他函数, 但不能调用任务; 任务可以调用函数。。

答案:C

  1. FPGA的基本单元组成包括()?

A. 可编程输入输出单元

B. 基本可编程逻辑单元

C. 可编程连线资源

D. 时钟管理模块

考察 FPGA芯片组成部分。

答案:ABC D,

目前主流的FPGA芯片仍是基于查找表。 FPGA芯片主要由一下6部分组成。

①:可编程输入输出单元( IOB)

②:基本可编程逻辑单元( CLB)

③:完整的时钟管理模块

④:可编程连线资源

⑤:嵌入式块RAM

⑥:内嵌的底层功能单元和嵌入式专用硬核

  1. 下列哪些为方法是进行面积优化()

A. 寄存器配平 B. 逻辑优化 C. 资源共享

D. 串行化 E. 流水线设计 F. 关键路径优化

答案:BCD

面积优化手段:

逻辑优化、

资源共享、

串行化。

时序优化手段:

寄存器配平、

流水线设计、

关键路径优化。

35.关于FPGA,那个说法不正确()?

A.slice不能用作分布式RAM

B.分布式RAM不能用作真双口RAM

C.slice是Xilinx FPGA内部可编程资源的名称

D.DSP可以用作加法的用途

答案:A

Xilinx的7系列FPGA内部有CLB可编程配置块, 每个CLB里面有两个Slice。

Slice36.有两种

SliceL: ( Logic逻辑)

SilceM: ( Memory存储)

SliceM比SliceL多出的功能在于可以配置成 Distribute RAM( 分布式RAM)、多了做存储器和移位的功能和含有能够把LUT资源重新整合为RAM和ROM的逻辑。

DSP(数字信号处理技术)主要用于乘法、 除法和快速的加法。

  1. 1个16k×8位的存储器,其地址线和数据线总和是()

答案:22 ,

地址线:

16k = 16×1024 = 2^4×2^10 = 2^14, 需要14根地址线

数据线:

8位数据线需要8根数据线,一共需要22根数据线。

  1. 简述Clock Jitter和Clock Skew的区别?

答案:

Jitter是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响;

Skew是由不同布线长度导致的不同路径的时钟上升沿到来的时延不同。

  1. 一个八位二进制减法计数器,初始状态为00000000,问经过268个输入计数器的状态为()

答案:1111_0100

8为二进制, 计数周期为2^8, 即256次。

所以256个脉冲从00000000回到00000000

剩余268-256=12个脉冲

因为是减法计数器

1个脉冲计数器值为11111111

1111111为十进制的255( 8bit的范围为( 0~255) )

还剩11个脉冲

255-11=244

转换为二进制 1111_0100

  1. 当一根到县上的部分信号能量传输带相邻导线上时就出现了()情形?

A.扇出 B.互调

C.串扰 D.耦合

答案: C

扇出: 扇出时一个输出端连接/驱动的后级资源的个数,比如驱动10个LUT查找表。

互调: 不同频率的信号相互调制, 形成新频率信号。

串扰: 一个信号的部分能量传输到相邻的导线上。

耦合: 两个或以上的电路彼此有依赖, 相互作用影响。

  1. 异步控制信号在有效的时钟沿到达之前必须保持稳定的最短时间指的是()

A.recovery时间

B.Tsu

C.removal时间

D.Th

答案:recovery时间:

对于时钟和数据信号, 分析setup建立时间和hold保持时间

setup建立时间:

在有效的时钟沿来临之前, 数据需要保持稳定的最短时间。

hold保持时间:

在时钟有效沿来临之后, 数据需要保持稳定的最短时间

recovery时间:

在有效时钟沿( 下图第二个时钟沿) 来临之前, 异步复位信号保持稳定的最短时间( 不能影响下一个时钟沿)

removal移除时间:

在有效时钟沿( 下图第一个时钟沿) 来临之后, 异步复位信号保持稳定的最短时间( 不能影响上一个时钟沿)

  1. a=1'b1 ,b=5'h10,那么{a ,b}的值为()?

A.6'b11000 B.6'h110

C.6'h30 D.5'h30

答案:C,b=5'h10 = 5'b10000= 5'd16,故{a ,b} = 6'b11_0000 = 6'd48 = 6'h30。

  1. systemverilog说法错误的是()?

A.Class中的变量和程序默认是automatic, program默认是static

B.Continue和break只能在循环语句当中

C.Return只能用在任务中或函数中

D.Module和program中都可以使用always语句

答案:D, program里面不使用always语句, 只是使用initial语句。

  1. 16bit有符号数0xc6的十进制数是()?

A.-57 B.-56

C.-59 D.-58

答案:D, 16bit 0xc6转换为二进制为1100_0110,补码1111_1111_1100_0110

因为是有符号数, 高位为1, 所以为负数

求其原码:

取反, 加1, 得到(1011_1010)b = (58)d

  1. 以下二进制数字序列,满足偶校验条件的是()

A.1010 1101 1 B.0101 0001 0

C.0110 1111 1 D.0011 1011 0

答案: A

奇校验:

原始码流 + 校验位 总共有奇数个 1

偶校验:

原始码流 + 校验位 总共有偶数个 1

  1. 某个状态下,不关心某个寄存器的输出值,最优的低功耗设计方法是将其设置为0,可以降低动态功耗?

答案: 错

保持输出, 减少翻转才能降低功耗

46.下面降低功耗的方法中,属于降低静态功耗的有()

A:门级电路的功耗优化

B:多阈值电压

C:门控时钟电路

D:操作数分离

E:多个供电电压

答案: A、B

静态功耗:

亚阈值漏电功耗、 栅极漏电功耗、 栅极感应漏电功耗、 反向偏置结泄露功耗阈值电压不同的单元, 使用高阈值电压的MOS管可以放置NMOS和PMOS都处于开启状态, 降低导通功耗, 降低漏电。

  1. 未施加外部电压时, PN结中电流()

A. 不确定 B. 从N到P

C. 等于0 D. 从P到N

答案:C, 一个不加电压的PN结从外部看是没有任何电流的,但从内部看, 存在两个电流, 该两个电流方向相反, 互相抵消。

48.对于Intel(Altera)FPGA下面哪个速度等级最快()

A.-6 B.-8

C.-7 D.-9

答案: A

Intel( Altera) 的FPGA : -6/-7/-8, -6最快, -8最慢

Xilinx的FPGA: -1/-2/-3, -1最慢, -3最快

  1. 全加器包含()

A.加数 B.进位输入 C.被加数

D.进位输出 E.加和

答案: A、B、C、D、E

  1. 以下工艺器件中,电阻值的最大的是()

A.AA B.Contact

C.Poly D.VIA

答案:C

AA: 有源区

Contact: 接触孔

Ploy: 栅极

Via:通孔

  1. 以下叙述中不正确的是()

A.表达式 a&=b 等价于 a=a&b

B.表达式 a|=b 等价于 a=a|b

C.表达式 a!=b 等价于 a=a!b

D.表达式 a^=b 等价于 a=a^b

答案:C,a!=b含义为如果a不等于b,这个表达式的值是TRUE,如果a等于b,这个表达式的值是FALSE。

  1. 流水线设计的优点是()

A. 综合后电路的面积可以更小

B. 综合后电路的时钟频率可以更高

C. 综合后电路的复杂性更低

D. 综合后的功耗更低

答案:B、

PIEPLINE的实际就是将串行操作变成并行操作,把规模较大、层次较多的组合逻辑电路分为几级,在每一级插入寄存器组并暂存中间数据。

这样可以提高吞吐率,

提高时钟频率,

改善时序,

但同时会导致数据延时,

功耗增加,

面积可能会增大( 可能)

设计变复杂

53.一个RAM的大小为520*8bit,其地址需要多少位()?

A. 9

B. 8

C. 10

D. 11

答案:C, 2的9次方512,故至少需10位。

54.使用相同时钟沿的同步数字电路,以下因素和最高工作频率无关的是()

A. 逻辑块间互联布线长度

B. 触发器的建立/保持时间

C. D触发器之间最长的组合逻辑

D. 时钟低电平持续时间

答案:D, 同步数字电路的最高频率主要取决于关键路径是否能够收敛,与逻辑块之间的布线长度, 触发器建立/保持时间和D触发器之间最长的组合逻辑都有关。但是时钟的低电平持续时间主要影响到时钟信号的有效性。

  1. 关于亚稳态的描述错误的是()

A. 亚稳态在仿真时就是X态

B. 异步信号进入异步时钟域前先用该时钟同步几拍, 可减小出现亚稳态的概率

C. 亚稳态会造成同步逻辑进入不可预期的状态

D. 亚稳态英文名称meta state

答案: A

亚稳态: 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。可能是0,1, 即输出不能达到预期。

X态:当"X"用作信号状态时表示未知,仿真发生了不能解决的逻辑冲突。

56.报文长度为65bytes,FPGA处理位宽为64bit,采用250M工作时钟,包处理性能为( )M。 (华为)

A. 250/65 B. 250

C. 250/9 D. 250/64

答案:C

FPGA处理位宽为64bit = 8bytes( 可理解为一个处理单位),报文长度为65bytes处理65bytes需要的 65bytes/8bytes = 8.125 个处理单位, 向上取9包处理性能250/9。

  1. 在不影响逻辑功能的情况下, CMOS与非门的多余输入端可()(华为)

A. 接高电平

B. 接高接地均可

C. 接低电平

D. 悬空

答案:A, CMOS与非门, 只要有一个输入端为低电平, 与运算后均为低电平, 输出为高电平,影响了输出结果。

悬空的话,不是相当于低电平,因为稍微有外来的干扰就会造成输入端电平不断变化(输入阻抗太大,对输入电流阻碍作用很大),相应输出端也就不稳定。这和TTL电路不一样,TTL电路一般输入端开路是逻辑1,但也有内部下拉的情况,但是一般输出端的值是确定的。

  1. 封装的特性是借助以下哪个达到的()(华为)

A. 类 B. 函数

C. 对象 D. 指针

答案;A,类然后实例化成对象, 对象就可以使用类里面封装的函数。

  1. 使用DMA的好处不包括()(华为)

A. 使用DMA一定条件下可以降低CPU数据处理的负载

B. 一定条件下可以降低系统的功耗

C. 减少数据的传输延迟

D. 软件复杂度肯定会降低

答案:D(肯定)

DMA技术的出现, 使得外围设备可以通过DMA控制器<直接访问内存>, 与此同时, CPU可以继续执行程序。

  1. 在两个方向上交替的传输为()

A. 全双工

B. 单工

C. 半双工

D. 串行

答案: A

  1. 以下代码执行的结果为()(华为)

main()

{

int i = 5, j = 5, p, q;

p = (i++) + (i++) + (i++);

q = (++j) + (++j) + (++j);

}

A. 15,24

B. 24,15

C. 15,15

D. 24,25

答案: 自己不确定, 欢迎评论区讨论(有人说因为编译器不同结果也不同)

p = i++,这个运算的意思是先把i的值赋予p,然后在执行i=i+1;P= 5+6+7=18

p = ++i,这个的意思是先执行i=i+1,然后在把i的值赋予p; Q=6+7+8 = 21

  1. Verilog语言的层次高低对应()(华为)

A. 系统级, 行为级, 寄存器传输级, 数据流级, 门级

B. 系统级, 功能级, 行为级, 寄存器传输级, 门级

C. 系统级, 功能级, 寄存器传输级, 行为级, 门级

D. 系统级, 行为级, 数据流级, 寄存器传输级, 门级

答案:B, 由低到高:门级, 寄存器传输级, 行为级, 功能级, 系统级

  1. 逻辑内部的RAM资源,上电不进行初始化处理,则存储单元的值会默认为()

A. 全1 B. 高阻

C. 全0 D. 任意

答案:A,根据RAM的特性, MCU每次上电之后RAM里面的值是随机的。 也就是说RAM上电后的初始值可以是0xAA, 也可以是0x55,也可以是其它任何的值。

  1. 下面有关always语句说法错误的是()

A. always实现时序逻辑要将所有输入信号列入敏感表

B. always块内被赋值的每个信号都必须定义为reg型

C. always实现组合逻辑要将所有输入信号列入敏感表

D. 如果设计中不愿列举过多的敏感信号, 在综合工具和仿真工具的支持下, 可以使用always@(*)

答案:A, 在时序逻辑电路中列入敏感列表的信号是时钟信号和复位信号。

B. always块不管实现组合逻辑还是时序逻辑, 信号都必须定义为reg型

  1. 下列方法对于设计提升系统时钟频率有帮助的有()(华为)

A. 采用pipeline设计

B. 减小core供电电压

C. 升高器件工作温度

D. 减少组合逻辑级数

答案: ACD,

采用pipeline设计:面积换速度


减少组合逻辑级数:减少逻辑延时, 时序关键路径总延时减少, 时钟周期减小, 时钟频率增加。


温度和电压对应到管子上行为为:升温/升压: 单个管子电流增大, 相应的充放电时延减少, 时序关键路径总延时减少。

降温/降压: 单个管子电流减小, 相应的充放电时延增大, 时序关键路径总延时增大。

  1. FPGA中的BRAM使用的ECC特性有哪些()

A. 可以纠正1bit错误

B. 可以纠正2bit错误

C. 可以发现2bit以上错误

D. 只能可以发现1或2bit错误

答案:A、D。 ECC是一种能够实现"错误检查和纠正" 的技术, 有以下特性

只能修复1比特错误

当数据只有单比特错误时, ECC能够进行错误修复; 超过2比特的数据错误, 将无法修复, ECC只能输出多比特错误信号。

  1. 如下属于差分电平的是()(华为)

A. LVDS B. LVTTL

C. LVPECL D. CML

答案:AD.

  1. 关于异步设计的电路,下面说法正确的是()(华为)

A. 异步设计容易产生毛刺

B. 异步设计会带来很大的同步翻转噪声

C. 异步设计不能做时序约束, 又不能做时序分析

D. 信号的时延随着每次布局线的不同而不同, 随着PVT的改变而改变, 因此可靠性很差, 而且不容易移植

答案:ACD,

同步翻转噪声指大量触发器在同一时刻进行电平切换, 会在相邻管脚引入噪声, 因此同步翻转噪声, 需要同一时刻, 而异步电路有两个时钟源。

C, 异步设计结构的时序<通常很难或不可能用时序分配和约束来建模>。如果没有完整或准确的时序约束, 那么综合和布局布线工具使用的时序驱动算法可能无法执行最佳优化, 并且报告的结果可能不完整。

  1. 采用同步设计的好处()(华为)

A. 避免器件受温度, 电压, 工艺的影响, 易于节省功耗, 易于消除毛刺

B. 整个电路有一个确定的初始态, 且相对于异步逻辑节省实现面积

C. 易于运用流水线设计法

D. 便于运用静态时序分析等先进的设计工具

答案: ABCD.

B、同步电路比较容易使用寄存器的异步复位/置位端, 以使整个电路有一个确定的初始状。

  1. 在有符号数的乘法运算中, 8比特有符号数乘以12比特有符号数,运算结果用多少比特的有符号数表式则既不会溢出也不会浪费()

A. 20

B. 18

C. 21

D. 19

答案:A, 相加相乘后需要的数据位宽, 若无已知数据范围, 按照基本规律:相加位宽+1, 相乘位宽为N+M( 保证宽度足够)

  1. 对于代码覆盖率,以下说法错误的是

A 这可以帮助发现是否存在冗余代码

B 可以帮助确定代码行是否被完全执行

C 可以帮助发现状态机跳转路径是否覆盖

D 可以帮助确定功能需求是否完全实现

答案:D

代码覆盖率指的是设计代码的执行量, 它包括行覆盖率、 FSM状态机覆盖率、 分支覆盖率、条件覆盖率 和path路径覆盖率。 仿真工具将自动从设计代码中提取代码覆盖率代码覆盖率就算达到100%, 这并不意味着不存在bug.

B,行覆盖率: 检查某行代码是否被执行过

分支覆盖率: 检查条件分支是否都被执行过

条件覆盖率, 表达式覆盖率: 通过真值表分析表达式各种逻辑组合

C,有限状态机覆盖率: 检查每个状态是否被覆盖, 状态之间的跳转是否被执行

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

A. 电路有多个输出

B. 逻辑门类型不同

C. 电路未达到最简

D. 电路存在延时

答案: D

竞争: 在组合电路中, 信号经由不同的途径达到某一会合点的时间有先有后。

冒险: 由于竞争引起电路输出发生瞬间错误现象称为冒险。 表现为输出端出现了原设计中没有的窄脉冲, 常称其为毛刺。

竞争与冒险的关系: 有竞争不一定会产生冒险, 但有冒险就一定有竞争。

在组合逻辑中, 由于门的输入信号通路中经过了不同的延时, 导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。 如果布尔式中有相反的信号则可能产生竞争和冒险现象

  1. 下面有关SRAM和DRAM的叙述,正确的有()

A. DRAM比SRAM速度快

B. DRAM不需要刷新, SRAM需要刷新

C. DRAM比SRAM成本高

D. DRAM存储单元的结构比SRAM简单

答案:D

RAM随机存储器

存储单元的内容可按需随意取出或存入, 且存取的速度与存储单元位置无关的存储器。

这种存储器在 断电时将丢失其存储的内容 , 故主要用于存储段时间使用的程序。


SRAM( Static Random-Access Memory)

静态随机存取存储器: 只要供电它就会保持一个值。 一般而言SRAM要比DRAM快,这是因为SRAM没有刷新周期。 每个SRAM存储单元由6个晶体管组成, 而DRAM存储单元由一个晶体管和一个电容器组成。 相比而言, DRAM比SRAM每个存储单元的成本要高。 照此推理, 可以断定在给定的固定区域内DRAM的密度比SRAM 的密度要大。


DRAM ( Dynamic Random Access Memory)

动态随机存取存储器: 这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。 数据存储在电容器中。电容器会由于漏电而导致电荷丢失, 因而DRAM器件是不稳定的。为了将数据保存在存储器中, DRAM器件必须有规律地进行刷新。


SRAM常常用于高速缓冲存储器, 因为它有更高的速率;

而DRAM常常用于PC中的主存储器, 因为其拥有更高的密度。


SDRAM( synchronous dynamic random-access memory)

同步动态随机存储器: 意思是指理论上其速度可达到与CPU同步。


DDR SDRAM(Dual Date Rate SDRAM)

简称DDR, 也就是"双倍速率SDRAM"的意思。 DDR可以说是SDRAM的升级版本,

DDR在时钟信号上升沿与下降沿各传输一次数据, 这使得DDR的数据传输速度为传统SDRAM的两倍。

  1. 根据输出信号的特点,时序逻辑电路可以分为Moore型和Mealy型,其中Moore型的输出信号不仅取决于存储电路的状态,而且取决于输入(√ or ×)

答案:错误,

Moore型(摩尔型):

输出只由当前状态决定,即次态=f (现态。输入),输出=f (现态)

Moore型状态机的输出信号是直接由状态寄存器译码得到的。

Mealy型(米利型):

输出不但与当前状态有关,还与当前输入值有关,即次态=f(现态,输入),输出=f(现态, 输入)

Mealy型状态机则是以现时的输入信号结合即将变成次态的现态,编码成输出信号。

  1. C程序中定义一个全局数组,编译之后数组变量可能会分配在那个段()

A. text

B. bass

C. data

D. stack

答案:BC

bss段用来存放未初始化的全局变量;

data段用来存放已初始化的全局变量;

stack堆栈用来存放局部变量;

text段用来存放程序执行代码;

相关推荐
IM_DALLA11 小时前
【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21
学习·fpga开发
皇华ameya15 小时前
AMEYA360:村田电子更适合薄型设计应用场景的3.3V输入、12A输出的DCDC转换IC
fpga开发
千穹凌帝18 小时前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
一口一口吃成大V1 天前
FPGA随记——FPGA时序优化小经验
fpga开发
贾saisai1 天前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
redcocal1 天前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
思尔芯S2C2 天前
高密原型验证系统解决方案(下篇)
fpga开发·soc设计·debugging·fpga原型验证·prototyping·深度调试·多fpga 调试
坚持每天写程序2 天前
xilinx vivado PULLMODE 设置思路
fpga开发
redcocal2 天前
地平线内推码 kbrfck
c++·嵌入式硬件·mcu·算法·fpga开发·求职招聘
邹莉斯4 天前
FPGA基本结构和简单原理
fpga开发·硬件工程