【FPGA】面试八股

1.FPGA的底层资源有哪些

(1)可编程的逻辑资源

可编程的逻辑单元由查找表(LUT),数据选择器(MUX),进位链(Carry Chain)和触发器(Flip-Flop)

(2)可编程的IO资源

支持适配不同的电器标准。

(3)布线资源

包括全局布线资源、长线资源、短线资源、分布式的布线资源;

(4)Block RAM

支持高速、低功耗、大容量、分块存储;

(5)内嵌专用硬核

ARM-Cortex系列

DSP:用于数学运算。

2.时序约束

(1)为什么要进行时序约束

为了满足时序要求,为了满足寄存器的建立时间和保持时间;

(2)常见的时序约束

A 时钟约束

时钟周期,上升沿时刻,下降沿时刻;(占空比)

c 复制代码
	create_clock -name  时钟信号名 -period 周期 -waveform {上升沿时刻 下降沿时刻} [get_ports 端口名]

B 输入延迟约束

定义:输入数据,相较于时钟触发沿,延迟到达的时刻;

代码:

c 复制代码
    //最小值约束
	set_input_delay -clock sysclk -min 延迟值[get_ports 端口名]
	//最大值约束
	set_input_delay -clock sysclk -max 延迟值[get_ports 端口名]

确定方法:通过走线进行计算,通过示波器进行观察;

C 输出延迟

输出数据,相较于时钟触发沿,提前到达的时间;

D 异步时序约束

a 对于单bit信号

可以使用set_false_path,在综合时,终止对对应路径进行时序分析和优化;

c 复制代码
set_false_path  -from  [get_clocks clka]  -to [get_clocks  clkb]

b 对于异步fifo

将读写时钟,加入异步时钟组;

c 复制代码
set_clock_groups -name 时钟组名字 -asynchronous -group {时钟1} -group {时钟2}

c 格雷码地址的约束

E 时钟不确定性的约束

时钟抖动:时钟触发沿提前到达、滞后到达;时钟周期发生变化;占空比发生变化;

时钟偏移:时钟通过不同路径到达不同寄存器延迟不同;

时钟不确定性:两者之和

F管脚约束

分类:管脚约束、电器属性约束和其他约束

管脚约束:约束管脚编号和端口的对应关系,输入输出方向;

电器属性约束:约束电器属性,采用的工艺、工作电压;

其他约束:管脚的上拉和下拉等。

3.低功耗设计

(1)功耗的分类

静态功耗:FPGA还没有启动前,晶体管泄露的漏电流引起的功耗,维持I/O,时钟管理等引起的功耗;

动态功耗:FPGA还没有启动后,逻辑门开关活动时的功耗;

(2)降低功耗的方法

A体系结构降低功耗

采用区域电压;

动态电压频率调节:保证电路正常工作情况下,尽可能降低时钟频率;

保持寄存器:寄存器工作完成,输出保持不变,而不是清零;

门控电源:芯片区域正常工作时,打开电源;芯片区域不工作时,关闭段元;

提高阈值电压:减少漏电流。

BRTL级

状态编码:采用格雷码,状态翻转减少;

门控时钟:电路区域工作,提供时钟;电路区域不工作,关闭时钟;

模块复用:功能实现相同的电路,进行复用;

逻辑优化:优化算法。

C其他

优化布局布线

优化采用的工艺

行波计数器

禁用逻辑云

4.FPGA资源

(1)项目

LUT: 43万,使用近80%;

FF:86万个,使用近50%

BRAM:1400,用了20%

5.二进制码变为格雷码

//每一位异或其左边那位,最高位不变

6.FPGA实现频率计

(1)方法分类

周期测量发:先测被测信号的周期,然后根据f=1/T得到;

会存在一个测量时钟周期的误差,适用于被测时钟频率较低;

频率测量法:测量一定时间内的脉冲数,然后计算单位时间内的脉冲数即为频率;

会存在一个被测时钟周期的误差,适用于被测时钟频率较高。

门控测量法:一定被测时钟脉冲周期内,利用被测时钟和基准时钟的对应关系;

等精度测量法:在一定时间门控信号内,利用被测时钟和测量时钟的对应关系进行测量;

(2)实现

门控信号产生;

门控信号的跨时钟域处理;

门控信号的下降沿检测;

统计门控内时钟周期数;

计算最后的结果。

7.竞争冒险

(1)定义

竞争:逻辑电路中,信号由多条路径进行传输的延迟时间不同,到达逻辑汇合点的时间有先有后;

冒险:由于竞争导致输出尖峰脉冲的现象;
(2)如何识别竞争冒险
A 代数法

只有逻辑表达式可以化简为Y=AA'(1型冒险)或者Y=A+A'(0型冒险)的形式;

例子:

Y=AB+A'C,在B=C=1时,逻辑表达式可以化简为Y=A+A',存在0型冒险;
B 卡诺图法

两个卡诺圈相切,且相切处没有其他卡诺圈包围;
C 计算机辅助法
(3)如何消除竞争冒险

A 加入滤波电容;

B修改逻辑表达式,增加冗余项;

如图所示卡诺图可以化简为Y=B'C'+AC,存在竞争冒险,加入冗余项AB'就可以消除;

C对组合逻辑进行打拍

由于尖峰脉冲不满足建立保持时间,所以触发器对脉冲信号不敏感;

D使格雷码进行状态编码

相邻两个状态只有一位发生变化,可以有效避免竞争冒险;

8.亚稳态

(1)定义

由于不满足建立、保持时间,导致输出处于未知状态;
(2)产生的场景

跨时钟域数据处理;

异步复位;
(3)解决办法

A 复位信号采用异步复位、同步释放;

B 跨时钟域信号,采用fifo进行缓冲;

C 对异步信号进行同步处理;

D 采用响应更快的触发器;

9.异步复位的removal time和recovery time

(1)定义

removol time:撤销时间,为保证复位信号有效,时钟触发沿到来之后,复位信号必须保持有效的时间;

recovery time:恢复时间,复位信号释放时,在时钟触发沿到来之前,要保持无效状态的时间;

10.时序路径

(1)电路说明

Device A:是设计电路的上游器件;

Designed Unit:设计电路;

Device B:是设计电路的下游器件;

(2)时序路径

路径1:dina->FF2:D ,设计的输入端到第一级寄存器数据输入端;

路径2:FF2:cp->FF3:D, 设计电路中,时钟输入端到下一级寄存器的数据输入端;

路径3:FF3:cp->douta,设计电路中,最后一级寄存器时钟输入端到设计电路输出端;

路径4:dinb->doutb,设计电路输入端到设计电路输出端,纯组合逻辑电路;

11.D触发器的内部结构

(1)SR触发器

由4个"与非门"分两级构成;

第一级输入的S/R分别和时钟进行与非;

第二级中,第一级输出和第二级另一支路与非;

(2)D触发器

SR触发器,S输入接D,R输入接D';

12.数据选择器(2选1MUX)构成基本的门电路

(1)与门

(2)或门

(3)非门

13.CMOS构成基本的门电路

(1)非门

(2)与非门

(3)或非

(4)传输门

(5)异或门

相关推荐
吃饺子不吃馅14 分钟前
面试官:JWT、Cookie、Session、Token有什么区别?
前端·设计模式·面试
沐怡旸2 小时前
【底层机制】Android内存管理技术深度解析:PMEM、ION与DMA-BUF Heaps
android·面试
前端老宋Running2 小时前
React组件命名为什么用小写开头会无法运行?
前端·react.js·面试
YoungHong19923 小时前
面试经典150题[063]:删除链表的倒数第 N 个结点(LeetCode 19)
leetcode·链表·面试
Baihai_IDP3 小时前
如何提升 LLMs 处理表格的准确率?一项针对 11 种格式的基准测试
人工智能·面试·llm
Ekreke3 小时前
Go 隐式接口与模板方法
后端·面试
不说别的就是很菜4 小时前
【前端面试】前端工程化篇
前端·面试·职场和发展
绝无仅有4 小时前
大厂某里电商平台的面试及技术问题解析
后端·面试·架构
绝无仅有4 小时前
某里电商大厂 MySQL 面试题解析
后端·面试·架构
hygge9994 小时前
JVM 内存结构、堆细分、对象生命周期、内存模型全解析
java·开发语言·jvm·经验分享·面试