【不定期更新】FPGA/IC岗位常见笔试面试题总结(基础知识)

时间:2024-01-21 18:43:04

1 数字IC(ASIC)设计流程:

  IC设计分为前端和后端。前端设计主要将HDL语言-->网表,后端设计是网表-->芯片版图。

  前端主要有需求分析与架构设计、RTL设计、仿真验证、逻辑综合、STA、形式验证。后端主要包括DFT、布局规划、布线以及版图物理验证。

2 MCU结构:

  它是由CPU系统、程序存储器(ROM)、数据存储器(RAM)、各种I/O端口、基本功能单元(定时器/计数器等)组成。

3 低功耗技术:

  功耗可用公式描述:Power = KFCV^2,即功率等于常数系数*工作频率*负载电容值*电压的平方。

  故从以下几个方面降低功耗方式:

  a.控制工作频率:降低频率增大数据路径宽度,动态频率调整,门控时钟(时钟使能有效时钟才进入寄存器时钟输入引脚)

  b.减少电容负载:使用几何尺寸更小的逻辑门,其电容负载较小,功率也随之减少。

  c.降低工作电压:动态改变工作电压、零操作电压(直接关闭系统中一部分的电源)。

 4 MOS管基本概念及画图:

  MOS中文意思是金属氧化物半导体场效应管,由栅极(G)、漏级(D)、源级(S)组成。分为PMOS和NMOS两种类型,区别在于G级高电平时,N型管导通,P型管截止。两者往往是成对出现的,即CMOS。只要一只导通,另一只则不导通,现代单片机主要是采用CMOS工艺制成的。

  画图一般需要根据一个简单的逻辑表达式,画出CMOS电路图结构。需要掌握常用逻辑门的实现方式。

  总体来看还是挺好记的,与非门和或非门都是上下各两个MOS管,且上面是PMOS,下面是NMOS。不同之处在于与非是“上并下串”,或非是“上串下并”。

5 FPGA内部结构及资源:

  FPGA主要由可编程单元、可编程I/O单元及布线资源构成。

  可编程逻辑单元(可配置逻辑单元,CLB)由两个SLICE构成,SLICE主要包括实现组合逻辑的LUT和实现时序逻辑的触发器。FPGA内部还包含专用存储单元BRAM,运算单元DSP Slice,及专用内嵌功能单元,如:PLL、Serdes等。

6 FPGA内部LUT实现组合逻辑的原理:

  LUT相当于存放逻辑表达式对应真值表的RAM。软件将逻辑表达式所有可能结果列出后存放在RAM中,输入作为RAM地址,输出为逻辑运算结果。如使用LUT模拟二输入“与”逻辑。列出真值表:00 -- 0,01 -- 0,10 -- 0,11 -- 1。此时将00 01 10 11作为地址线,依次将结果0 0 0 1存放在RAM中。当输入00时及输出0&0=0.

7 常用逻辑表达式化简公式:

左右关系为*变+,+变*

  交换律:A*B = B*A         A+B = B+A

  结合律:(A*B)*C = A*(B*C)      (A+B)+C = A+(B+C)

  分配率:A(B+C) = AB+AC     A+BC = (A+B)(A+C)

特殊定律: 

 8 FIR滤波器与IIR滤波器函数表达式、特点及结构:

  FIR(有限冲激响应)滤波器:非递归,具有线性相位。IIR(无限冲激响应)滤波器:递归结构,非线性相位。相同阶数FIR和IIR滤波器,IIR滤波器滤波效果较好,但会产生相位失真。

FIR滤波器:

对N个采样数据进行加权和平均处理。

表达式:

结构图:

IIR滤波器:

包含递归部分也包含非递归部分。

表达式:(具有N个前馈系数和M-1个反馈系数)

结构图:

9 N位二进制数所能表示的数据范围,两个Nbit数相加相乘后需要多少bit?(多在计算题中间接提问)

  有符号数:(补码)-2^(N-1) ~ 2^(N-1)-1 如N = 8,则表示范围是:-128 ~ 127.

    无符号数:0~2^N-1 如N = 8,则表示范围是:0~255.

  定点数:3Q13 范围是:-4~4-2^(-13) 精度是:2^(-13)

  相加相乘后需要的数据位宽若无已知数据范围,按照基本规律:相加位宽+1,相乘位宽*2.若已知操作数范围,根据运算操作数所能表示数的绝对值最大值求出运算结果极限值。

问:例如两个8bit有符号数相乘,其结果需要的位宽是多少?

答:8bit有符号数补码所能表示的数据范围是:-128到127,具有最大绝对值的数是-128,所以极限情况下是-128*(-128) = 16384 = 2^14. 15bit有符号数所能表示范围是:-2^14到2^14-1,并不能表示2^14。综上,需要16bit位宽。正好位宽扩大一倍。

10 FPGA详细设计流程(面试提问)

  与数字IC设计流程类似,以xilinx vivado工具为例,主要有以下步骤:系统规划、RTL输入、行为仿真、逻辑综合、综合后仿真(可选)、综合后设计分析(时序及资源)、设计实现(包括布局布线及优化)、实现后设计分析(时序及资源)、板级调试、bitstream固化。

11 时序约束相关

有哪几种时序路径:

input paths:外部引脚到内部模块路径

register-to-register paths:系统内部寄存器到寄存器路径

output paths:内部模块到外部引脚的路径

port to port paths:FPGA输入端口到输出端口路径(不常用)

创建时序约束的关键步骤:

a baseline约束:create clocks  define clocks interactions  b I/O约束:set input and output delays  c 例外约束:set timing execptions(set_max_delay/set_min_delay、set_multicycle_path、set_false_path)

设计初期可先不加I/O约束,但baseline约束要尽早建立。

input delay和output delay计算:

input delay:

a 系统同步:min_delay  Tco min + Trce min

        max_delay      Tco max + Trce max

b 源同步:  min_delay    Tco min

        max_delay    Tco max

output delay:

min_delay  Trce min - Th

max_delay    Trce max + Tsu

 其中input delay的源同步模式下,DDR采样多采用示波器测量延迟的方式。

Tsu和Th与Tco T Tdata的关系:

T≥Tco+Tdata+Tsu

Th≤Tco+Tdata

12 异步信号同步方式

单比特数据,打两拍后检测打拍后信号变化沿。若快时钟域信号进入慢时钟域,则先扩展位宽再打两拍。

多比特数据,使用异步FIFO桥接。在数据量不大,带宽要求不高的场合可以采用握手同步方式(利用单比特握手信号打两拍同步方式找到数据稳定时刻,保证上游握手信号拉高时数据稳定不变)。

13 SRAM和DRAM的区别

  SRAM是静态随机访问存储器,由晶体管存储数据,无需刷新,读写速度快。DRAM是动态随机访问存储器,由电容存储数据,由于电容漏电需要动态刷新,电容充放电导致读写速度较SRAM低。但DRAM成本较低,适合做大容量片外缓存。

14 逻辑设计中竞争与冒险概念,如何识别和消除?

  竞争:在组合逻辑电路中,信号经过多条路径到达输出端,每条路径经过的逻辑门不同存在时差,在信号变化的瞬间存在先后顺序。这种现象叫竞争。

  冒险:由于竞争而引起电路输出信号中出现了非预期信号,产生瞬间错误的现象称为冒险。表现为输出端出现了原设计中没有的窄脉冲,即毛刺。

  常见的逻辑代数法判断是否有竞争冒险存在:只要输出逻辑表达式中含有某个信号的原变量A和反变量/A之间的“与”或者“或”关系,且A和/A经过不同的传播路径,则存在竞争。解决办法一是修改逻辑表达式避免以上情况,二是采样时序逻辑,仅在时钟边沿采样,三十在芯片外部并联电容消除窄脉冲。

15 格雷码特点及其应用

  连续的格雷码之间只有单比特信号变化,多用在异步时钟域处理上,如异步FIFO中地址指针的索引就采用格雷码编码。

  分析:只有单比特信号跨时钟域时,我们能通过双触发器构成的同步器在另一个时钟域内得到有效脉冲,但多比特信号若采用同样的方法,会出现各个比特更新时刻不一致导致数据错误的情况。而在异步FIFO设计中,两侧信号属于不同时钟域,FIFO必须通过对比来自不同时钟域的读写地址指针数值给出空满指示信号,地址指针需要多个比特信号才能代表FIFO深度。格雷码的单比特变化特性正好适用于这一场合,使用单比特信号同步策略完全适用于格雷码。

16 亚稳态的产生原因及消除方式

  在异步系统中,寄存器建立保持时间不满足引起亚稳态。典型的场合为数据跨时钟域传输和异步复位电路。在异步传输过程中,通过单比特信号双寄存器同步,多比特信号FIFO桥接的方式消除亚稳态(实际上异步信号同步方式即为异步传输过程中亚稳态的消除方式)。通过异步复位,同步释放可消除异步复位引起的亚稳态。

17 如何利用C语言编写带有多个返回值的子函数

  常见的有两种方式:一是利用全局变量,子函数在执行过程中修改多个全局变量即可达到与多个返回值同样的效果。二是利用数组指针作为函数参数,通过地址传递改变多个实参本身。

18 时钟抖动和时钟偏移的概念及产生原因,如何避免?

  时钟抖动jitter:指时钟信号的跳变沿不确定,故是时钟频率上的不一致。

  时钟偏移Skew:指全局时钟产生的各个子时钟信号到达不同触发器的时间点不同,是时钟相位的不一致。

  jitter主要受外界干扰引起,通过各种抗干扰手段可以避免。而skew由数字电路内部各路径布局布线长度和负载不同导致,利用全局时钟网络可尽量将其消除。

19 CMOS和TTL电路区别是什么?

两者区别主要体现在三个方面:

  a.结构:CMOS电路由场效应管构成,TTL由双极性晶体管构成。

  b.电平范围:CMOS逻辑电平范围大(5~15V),TTL只工作在5V以下,因此CMOS噪声容限比TTL大,抗干扰能力强。

  c.功耗与速率:CMOS的功耗比TTL小,但工作频率低于TTL。

20 信号3dB带宽的意义是什么?

  3dB带宽通常指功率谱密度的最高点下降到1/2时界定的频率范围。

21 JTAG接口信号及功能

  JTAG实际上使用的只有四个信号:时钟TCK、状态机控制信号TMS、数据输入信号TDI、数据输出信号TDO。