白话微机:8.解释FPGA以及一些考研面试问题
一. 前言(更新世界观)
在“微机世界”,普通的城市(单片机)里,人又有一个别的名字叫做“数据”,人有0有1;人们也有住房,这些住房在这个世界叫做“存储器”;地上有路,这些路叫做“数据总线”,交通系统则统称为总线;这里也有行政部门,比如公安局之类的,又有个名字叫“寄存器”;有中央政府,政府又叫做“中央处理器(CPU)”,这里也会发生的一些自然灾害(内部中断)和人为活动(外部中断), I/O接口是城市(单片机)的城门和检查站,串行接口是连接城市与乡村的小路。
随着科学技术的进步,诞生了一种现代化城市诞生:RTOS(实时多任务操作系统),它有一个高效的城市管理系统:一整套完善的任务管理、调度和资源管理机制,能够同时处理多个任务,并根据任务的优先级和需求进行合理的调度和分配资源。除此以外,还诞生了一种专门的高科技工业园区——DSP(数字信号处理器),这个园区专注于处理和改造一种特殊的资源——“信号”。这个工业园区配置有高效的专用机械,能够快速、精确地处理来自各地(输入设备)的原始信号材料,这些原始信号就是未经加工的天然资源,比如矿石或原油,它们需经过这个园区内的精炼和加工,才能转化为有用的材料或产品。
而本篇文章介绍的是在科技更加发达的时代,诞生的一座可变式城市——FPGA(现场可编程门阵列),在这座城市里,所有设施都是由许多可变换形态的机器人组成的,在同一块土地上这些“变形金刚”能够接受特定的设计蓝图(配置文件),然后自己重组内部结构(逻辑门和布线),从而组成住宅区、商业区、工业区等不同功能的区域,并且随意更改。有一点抽象,三种城市概念图对比如下所示。
二. FPGA(可变式城市)
[1]FPGA/CPLD有什么特点?各包含几个基本组成部分?二者在存储逻辑信息方面有什么区别?在实际使用中什么时候选用FPGA?什么时候选用CPLD?
(1)结构上:
FPGA(现场可编程门阵列)是一座灵活且功能强大的可变式城市,用于大规模、复杂的逻辑设计,因为其内部有大量的可编程逻辑单元和连线,能够实现复杂的功能和高性能由三个基本组成部分构成:
- 可编程逻辑单元(PLU):这些相当于小型、灵活的“变形金刚”式住宅,(组成单元小,可以组成更复杂的建筑,类似于搭积木中的每一块积木很小)可以根据居民(数据和逻辑功能)的需求进行重建和配置。
- 可编程输入/输出单元(I/O):即城门(同普通的单片机),是城市与外界交流的门户,可以根据外部的路径和需求进行调整。
- 可编程连线:这些是城市内部的道路,可以根据交通流量的变化进行重新布线,以确保数据流动的高效和灵活。
CPLD(复杂可编程逻辑设备)则是相对简单的城市区域,也有三个基本组成部分,通常用于简单或中等复杂度的逻辑设计,生产量不大的项目。因为其结构较为简单,编程较为方便,通常拥有较快的固定传输延迟(搭积木搭得快):
- 可编程逻辑宏单元(PLM):是预置的大型“变形金刚”,(组成单元大,可操作性较小,类似于搭积木中的每一块积木很小),可以进行一定程度的自定义和编程。
- 可编程输入/输出单元(I/O):同上。
- 可编程连线:同上
(2)存储信息上:
- FPGA城市的机器人数量多、体积小、密度大(有更高的密度和更多的逻辑单元),所以可以搭建的房屋数量也多(可以存储更多的逻辑信息),掉电后会丢失配置信息,因此需要在上电时从外部存储器(如ROM)重新加载配置。
- CPLD城市的机器人数量小、体积大、密度小,所以可以搭建的房屋数量也少且结构简单,但搭得快(存储的逻辑信息较少,但其结构简单,通常掉电后依然保留配置信息,这使得它们在上电时启动更快)。
(3)实际使用中:
- 选择FPGA通常是因为需要高度灵活性和处理复杂逻辑功能的能力,或者项目的设计经常更改。
- 选择CPLD更适合于较小规模、逻辑简单、启动速度要求快、生产批量不大的应用场景。
[2]ASIC与FPGA在概念上有什么区别?
(1)ASIC城市可以理解为早期发展的FPGA城市,城市里也有许多可变化的“变形金刚”式的住房,但是这里的机器人只听一次命令,即城市在建造之初规划的住房功能和结构,一旦建成,道路、建筑和设施就固定下来,无法更改。
(2)FPGA城市里的机器人(可编程逻辑单元)可以按照特定需求配置和编程随时更改。
[3]在FPGA和CPLD的应用开发中应该考虑哪些因素?
-
器件的逻辑资源量的选择: 即选择一个城市建设用地的面积,你需要确保城市(器件)有足够的土地(逻辑资源)来建造所有必要的建筑(实现所需的逻辑功能)。如果逻辑复杂,你就需要更多的土地(FPGA),而对于简单的功能,一个小型的地块(CPLD)就足够了。
-
芯片速度的选择: 即规划城市的交通系统。一个现代化的大都市(高速FPGA)需要快速的公路和交通网络来保证数据流动和处理速度,而小城镇(低速CPLD)的道路就不需要那么发达,因为交通(数据流)不那么繁忙。
-
器件功耗的选择: 在确定一个城市的电力需求时,一个大都市(高功耗FPGA)会需要一个大型的电站,而小城镇(低功耗CPLD)则可能只需要一个小型发电机。功耗直接影响着运营成本和能源效率,这在电子产品设计中尤为关键。
-
FPGA/CPLD的选择(看开发项目本身的需要): 根据项目需求,就像规划城市一样,如果需要快速建设和灵活性(FPGA),或者是预算有限并且对性能要求相对较低(CPLD),选择合适的器件就如同选择建设一个大都市或小镇。
-
FPGA和CPLD封装的选择: 即建筑设计中选择正确的建筑材料和风格,封装决定了器件在物理空间中的占用和与其他器件的互连方式。其中包括封装的大小、引脚数以及热管理等因素。
-
其它因素的选择(各家公司产品各不相同): 即选择建筑承包商,不同的产品供应商可能会提供不同的服务和产品特性。这包括技术支持、成本、交付时间、器件的性能和易用性等。你会选择最适合你的城市(项目)需求的合作者。
[4]现代EDA技术的特点有哪些?
现代EDA(电子设计自动化)技术是一种高效的城市规划和管理工具,它帮助城市(电子系统)规划者和管理者(设计工程师)创建、测试、优化并实现复杂的城市结构(电路设计)。主要有以下四个特点:
-
采用硬件描述语言(HDL) 进行设计: 即城市规划师使用特定的蓝图语言来详细描绘建筑设计,硬件描述语言(HDL)允许工程师以文本形式描述电子系统的硬件功能和结构,从而指导“变形金刚”(FPGA等可编程硬件)如何根据这些描述改变它们的结构。HDL使得设计可以在高层次进行抽象,而不是仅仅在物理层面上操作。
-
逻辑综合与优化: 即将城市蓝图转化为实际的建筑物,并进行优化以确保效率和成本效益,逻辑综合工具将HDL描述转化为可以在实体硬件上实现的逻辑网表。这包括选择最适合的逻辑元件、布局和连接方式,以确保电路在速度、资源使用和功耗方面是优化的。
-
开放性和标准化: 建筑标准和城市规划准则确保不同建筑师设计的结构能够和谐共存,EDA工具的开放性和标准化确保了不同设计师和团队可以共享、理解和重用彼此的设计。标准化的设计和模块化方法促进了更广泛的协作和兼容性,同时也加速了创新。
-
更完备的库(Library): 一个城市拥有各种公共设施和服务库,以便居民和建筑师可以利用,EDA工具提供了一个丰富的组件库。这些库包含了许多预先设计和优化的模块,如标准的逻辑门、寄存器、存储器元素等,设计师可以调用这些模块来快速构建复杂的系统,而不需要从头开始设计每个部分。
相关文章:

白话微机:8.解释FPGA以及一些考研面试问题
一. 前言(更新世界观) 在“微机世界”,普通的城市(单片机)里,人又有一个别的名字叫做“数据”,人有0有1;人们也有住房,这些住房在这个世界叫做“存储器”;地上有路,这些路…...
Kubernetes基础(十八)-k8s存储对象Persistent Volume
1 什么是Persistent Volume? 在容器化应用中,Pod的生命周期是短暂的,当Pod终止时,其中的数据通常也会被销毁。为了解决这个问题,Kubernetes引入了Persistent Volume(PV)的概念。PV是集群中的一…...
用linux命令将文本格式文件转换为csv文件
文章目录 前言例: 总结 前言 用到linux命令awk 使用 awk 命令来将文本文件转换为 CSV 格式。假设你有一个以空格或制表符分隔的文本文件,以下是将其转换为 CSV 格式的命令: awk BEGIN { OFS"," } { print $1, $2, $3 } input.txt > outpu…...
C++中的binary_search函数详解
C中的std::binary_search函数详解 在C标准模板库(STL)中,std::binary_search是一个非常有用的函数,它可以在一个已排序的序列中查找一个特定的元素。这个函数的使用非常直观,但是了解其工作原理和一些注意事项可以帮助…...
程序员为什么不喜欢关电脑?我来回答
程序员为什么不喜欢关电脑? 主题: 你是否注意到,程序员们似乎从不关电脑?别以为他们是电脑上瘾,实则是有他们自己的原因!让我们一起揭秘背后的原因,看看程序员们真正的“英雄”本色!…...

波奇学Linux:动静态库
创建静态库 Makefile文件 mymath.c文件 mymath.h文件 编译main.c文件 gcc 编译时会把在系统目录中寻找头文件和库文件,文件不在系统目录中用参数 -I 头文件所在文件夹/ -L 库的地址文件夹 -l除去lib和后缀。 拷贝文件到系统目录即可不用参数 库的安装类似于把头文件…...
1723. 完成所有工作的最短时间
文章目录 题意思路代码 题意 题目链接 K个工人,一共jobs个任务,问怎样分配任务,最短的最长工人完成任务完成时间。 思路 DFS剪枝(最大单个工人jobs时间超过ans时间;有限空闲工人拿任务)模拟退火dp 代码…...

初始HTTP协议
一、http协议 1、http相关概念 互联网:是网络的网络,是所有类型网络的母集因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。万维网:WWW(…...

C++ 位运算常用操作 二进制中1的个数
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n 。 第二行包含 n 个整数,表示整个数列。 输出格式 共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表…...
大数据领域的数据仓库
在大数据领域,数据仓库(Data Warehouse)是一个用于存储、管理和分析大量数据的集中式系统。它从多个异构数据源收集数据,对数据进行清洗、转换和整合,然后将其存储在一个集中的位置,以支持复杂的查询、报告…...

sentinel的资源数据指标是如何采集
资源数据采集 之前的NodeSelectorSlot和ClusterBuilderSlot已经完成了对资源调用树的构建, 现在则是要对资源进行收集, 核心点就是这些资源数据是如何统计 LogSlot 作用: 记录异常请求日志, 用于故障排查 public class LogSlot extends AbstractLinkedProcessorSlot<Def…...

算法刷题:找到字符串中所有的字母异位词
找到字符串中所有的字母异位词 .题目链接题目详情题目解析算法原理滑动窗口流程图定义指针及变量进窗口判断出窗口更新结果 我的答案 . 题目链接 找到字符串中所有的字母异位词 题目详情 题目解析 所谓的异位词,就是一个单词中的字母,打乱顺序,重新排列得到的单词 如:abc-&g…...

【Java EE初阶十九】网络原理(四)
4. 数据链路层 数据链路层也有很多种协议,其中一个比较常见常用的,就是“以太网协议”(通过网线/光纤, 来通信所使用的协议叫做以太网协议,以太网是横跨数据链路层 物理层); 4.1 以太网数据帧格式 帧头 载荷(IP 数据…...
12.23 校招 实习 内推 面经
绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、社招&校招 | 轻舟智航 社招 & 2024校招 社招&校招 | 轻舟智航 社招 & 2024校招 2、校招 | 成都精灵云科技2024校园招聘补录 校招 | 成都精灵云科技2024校园招聘补录 …...

FPGA转行ISP的探索之一:行业概览
ISP的行业位置 最近看到一个分析,说FPGA的从业者将来转向ISP(Image Signal Process图像信号处理)是个不错的选择,可以适应智能汽车、AI等领域。故而我查了一下ISP,对它大致有个概念。 传统的ISP对应的是相机公司&…...
Linux系统之部署网页小游戏合集网站
Linux系统之部署网页游戏合集网站 一、项目介绍1.1 项目介绍1.2 自定义配置方法二、本次实践介绍2.1 环境规划2.2 本次实践介绍三、检查本地环境3.1 检查操作系统版本3.2 检查当前yum仓库四、安装httpd软件4.1 检查yum仓库4.2 安装httpd软件4.3 启动httpd服务4.4 查看httpd服务…...

【白嫖8k买的机构vip教程】python(2):python_re模块
python之re模块 一、正则表达式 re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意…...

【CSS】display:flex和display: inline-flex区别
flex:将对象作为弹性伸缩盒显示 inline-flex:将对象作为内联块级弹性伸缩盒显示 DOM结构 <div class"main"><div></div><div></div><div></div><div></div></div>flex .main{…...

rpm安装gitlab
1.1 下载gitlab安装包 使用rpm包安装命令安装gitlab的rpm包,下载地址为https://packages.gitlab.com/gitlab/gitlab-ce社区版本; 推荐使用清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab安装包详见࿱…...

图论之dfs与bfs的练习
dfs--深度优选搜索 bfs--广度优先搜索 迷宫问题--dfs 问题: 给定一个n*m的二维迷宫数组其中S是起点,T是终点,*是墙壁(无法通过), .是道路 问从起点S出发沿着上下左右四个方向走,能否走到T点&a…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...