【FPGA】面试八股

1.FPGA的底层资源有哪些

(1)可编程的逻辑资源
可编程的逻辑单元由查找表(LUT),数据选择器(MUX),进位链(Carry Chain)和触发器(Flip-Flop)
(2)可编程的IO资源
支持适配不同的电器标准。
(3)布线资源
包括全局布线资源、长线资源、短线资源、分布式的布线资源;
(4)Block RAM
支持高速、低功耗、大容量、分块存储;
(5)内嵌专用硬核
ARM-Cortex系列
DSP:用于数学运算。

2.时序约束

(1)时钟约束
时钟周期,上升沿时刻,下降沿时刻。(占空比)
(2)输入延迟
数据,相较于时钟出触发沿,延迟到达的时间。
约束:最大值和最小值
确定: 通过走线进行计算,或用示波器进行测量;
(3)输出延迟
数据,相较于时钟触发沿,提前到达的时间;
(4)异步约束
单bit数据打两拍跨时钟域处理:
set_false_path:禁止对指定路径进行时序分析;
async_reg:进行约束
异步fifo:
将读写时钟加入异步时钟组;
(5)时钟不确定性约束
时钟抖动:时钟触发沿提前到达、滞后到达;时钟周期发生变化;占空比发生变化;
时钟偏移:时钟通过不同路径到达不同寄存器延迟不同;
时钟不确定性:两者之和
(6)管脚约束
分类:管脚约束、电器属性约束和其他约束
管脚约束:约束管脚编号和端口的对应关系,输入输出方向;
电器属性约束:约束电器属性,采用的工艺、工作电压;
其他约束:管脚的上拉和下拉等。

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)异或门
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1556882.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

毕业设计——物联网设备管理系统后台原型设计

作品详情 主要功能: 通过构建数字化综合体,利用物联网技术、设备监控技术采集生产线设备等物对象的实时数据,加强信息汇聚管理和服务,多系统维度、多层次的清楚地掌握设施各系统的状态,提高厂房服务的可控性、安全性&…

算法剖析:双指针

文章目录 双指针算法一、 移动零1. 题目2. 算法思想3. 代码实现 二、 复写零1. 题目2. 算法思想3. 代码实现 三、 快乐数1. 题目2. 算法思想3. 代码实现 四、 盛水最多的容器1. 题目2. 算法思想3. 代码实现 五、有效三角形的个数1. 题目2. 算法思想3. 代码实现 六、 和为 s 的两…

出国必备神器!这5款中英翻译工具让你秒变外语达人

在这个全球化的时代,中英互译已然成为我们日常生活和工作中不可或缺的一环。面对众多的翻译工具,如何选择一款既高效又人性化的翻译助手呢?今天,就让我为大家揭秘几款热门的中英互译工具,并分享我的使用感受。 一、福昕…

中广核CGN25届校招网申SHL测评题库、面试流程、招聘对象,内附人才测评认知能力真题

​中国广核集团校园招聘在线测评攻略🚀 🎓 校园招聘对象 2024届、2025届海内外全日制应届毕业生,大专、本科、硕士、博士,广核集团等你来! 📈 招聘流程 投递简历 简历筛选 在线测评(重点来啦…

用java编写飞机大战

游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态:READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换:点击开始游戏(从READY变为RUNNING&am…

详解Redis分布式锁在SpringBoot的@Async方法中没锁住的坑

背景 Redis分布式锁很有用处,在秒杀、抢购、订单、限流特别是一些用到异步分布式并行处理任务时频繁的用到,可以说它是一个BS架构的应用中最高频使用的技术之一。 但是我们经常会碰到这样的一个问题,那就是我们都按照标准做了但有时运行着、…

JavaEE之多线程进阶-面试问题

一.常见的锁策略 锁策略不是指某一个具体的锁,所有的锁都可以往这些锁策略中套 1.悲观锁与乐观锁 预测所冲突的概率是否高,悲观锁为预测锁冲突的概率较高,乐观锁为预测锁冲突的概率更低。 2.重量级锁和轻量级锁 从加锁的开销角度判断&am…

【Docker】03-自制镜像

1. 自制镜像 2. Dockerfile # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["ja…

【强训笔记】day26

NO.1 思路&#xff1a;只需判断长度为2和3的回文子串。 代码实现&#xff1a; #include<iostream> #include<string>using namespace std;string s;int main() {cin>>s;int ns.size(),ret-1;for(int i0;i<n;i){if(i1<n&&s[i]s[i1]){ret2;}i…

笔试题总结

1.对于线性表的描述&#xff1a;存储空间不一定是连续&#xff0c;且各元素的存储顺序是任意的 2.虚函数的定义&#xff1a;函数的返回值参数不定&#xff0c; 声明&#xff1a; 类型&#xff0c;返回这类型 名字&#xff08;&#xff09;&#xff1b; 例如声明一个虚函数&a…

57.对称二叉树

迭代 class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull){return true;}Deque<TreeNode> denew LinkedList<>();TreeNode l,r;int le;de.offer(root.left);de.offer(root.right);while(!de.isEmpty()){lde.pollFirst();rde.pollLast();if(…

二、图解C#教程

一、方法 {}块&#xff0c;里面的是方法体 二、Var关键字 推断出等号右边的实际类型 三、局部常量 1、声明时必须初始化 2、声明后不能改变

高效医疗:Spring Boot医院管理解决方案

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

【Nacos入门到实战十四】Nacos配置管理:集群部署与高可用策略

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

代码随想录 | Day29 | 回溯算法:电话号码的字母组合组合总和

代码随想录 | Day29 | 回溯算法&#xff1a;电话号码的字母组合&&组合总和 关于这个章节&#xff0c;大家最好是对递归函数的理解要比较到位&#xff0c;听着b站视频课可能呢才舒服点&#xff0c;可以先去搜一搜关于递归函数的讲解&#xff0c;理解&#xff0c;再开始…

黑神话悟空盘丝洞

《黑神话悟空》第四章盘丝岭地图包含盘丝洞、黄花观等地图&#xff0c;其中包含很多的隐藏要素。下面请看由“oklaoliu13”带来的《黑神话悟空》第四章全收集跑图路线指引&#xff0c;希望对大家有用。 盘丝洞1①兰喜村朱家大院&#xff08;搜刮&#xff09;→②打Boss二姐 &a…

win10服务器启动且未登录时自动启动程序

场景&#xff1a;公司服务器安装了几个程序&#xff0c;当服务器断电重启之后希望程序能自动打开&#xff0c;而不需要手动登录服务器打开。 因为软件是自己开发的所以安全方面这里没有考虑。 1.打开服务器管理器&#xff0c;点击工具&#xff0c;选择任务计划程序 2.在任务计…

OJ在线评测系统 微服务技术入门 单体项目改造为微服务 用Redis改造单机分布式锁登录

单体项目改造为微服务 什么是微服务 服务&#xff1a;提供某类功能的代码 微服务&#xff1a;专注于提供某类特定功能的代码 而不是把所有的代码放到同一个项目里 会把一个大的项目按照一定的功能逻辑进行划分 拆分成多个子模块 每个子模块可以独立运行 独立负责一类功能 …

UDP协议【网络】

文章目录 UDP协议格式 UDP协议格式 16位源端口号&#xff1a;表示数据从哪里来。16位目的端口号&#xff1a;表示数据要到哪里去。16位UDP长度&#xff1a;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的长度。16位UDP检验和&#xff1a;如果UDP报文的检验和出错&…

代码随想录--字符串--重复的子字符串

题目 给定一个非空的字符串&#xff0c;判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母&#xff0c;并且长度不超过10000。 示例 1: 输入: "abab" 输出: True 解释: 可由子字符串 "ab" 重复两次构成。示例 2: 输入: "…