白话微机:8.解释FPGA以及一些考研面试问题

news2024/11/28 22:42:00

 一. 前言(更新世界观)

        在“微机世界”,普通的城市(单片机)里,又有一个别的名字叫做“数据”,人有0有1;人们也有住房,这些住房在这个世界叫做“存储器”;地上有路,这些叫做“数据总线”,交通系统则统称为总线;这里也有行政部门,比如公安局之类的,又有个名字叫“寄存器”;有中央政府,政府又叫做“中央处理器(CPU)”,这里也会发生的一些自然灾害(内部中断)和人为活动(外部中断), I/O接口是城市(单片机)的城门和检查站,串行接口是连接城市与乡村的小路

        随着科学技术的进步,诞生了一种现代化城市诞生:RTOS(实时多任务操作系统),它有一个高效的城市管理系统:一整套完善的任务管理、调度和资源管理机制,能够同时处理多个任务,并根据任务的优先级和需求进行合理的调度和分配资源。除此以外,还诞生了一种专门的高科技工业园区——DSP数字信号处理器),这个园区专注于处理和改造一种特殊的资源——“信号”。这个工业园区配置有高效的专用机械,能够快速、精确地处理来自各地(输入设备)的原始信号材料,这些原始信号就是未经加工的天然资源,比如矿石或原油,它们需经过这个园区内的精炼和加工,才能转化为有用的材料或产品。

        而本篇文章介绍的是在科技更加发达的时代,诞生的一座可变式城市——FPGA(现场可编程门阵列),在这座城市里,所有设施都是由许多可变换形态的机器人组成的,在同一块土地上这些“变形金刚”能够接受特定的设计蓝图(配置文件),然后自己重组内部结构(逻辑门和布线),从而组成住宅区、商业区、工业区等不同功能的区域,并且随意更改。有一点抽象,三种城市概念图对比如下所示。

 二. FPGA(可变式城市)

        [1]FPGA/CPLD有什么特点?各包含几个基本组成部分?二者在存储逻辑信息方面有什么区别?在实际使用中什么时候选用FPGA?什么时候选用CPLD?

        (1)结构上:

        FPGA(现场可编程门阵列)是一座灵活且功能强大的可变式城市,用于大规模、复杂的逻辑设计,因为其内部有大量的可编程逻辑单元和连线,能够实现复杂的功能和高性能由三个基本组成部分构成:

  1. 可编程逻辑单元(PLU):这些相当于小型、灵活的“变形金刚”式住宅,(组成单元小,可以组成更复杂的建筑,类似于搭积木中的每一块积木很小)可以根据居民(数据和逻辑功能)的需求进行重建和配置。
  2. 可编程输入/输出单元(I/O):即城门(同普通的单片机),是城市与外界交流的门户,可以根据外部的路径和需求进行调整。
  3. 可编程连线:这些是城市内部的道路,可以根据交通流量的变化进行重新布线,以确保数据流动的高效和灵活。

        CPLD(复杂可编程逻辑设备)则是相对简单的城市区域,也有三个基本组成部分,通常用于简单或中等复杂度的逻辑设计,生产量不大的项目。因为其结构较为简单,编程较为方便,通常拥有较快的固定传输延迟(搭积木搭得快):

  1. 可编程逻辑单元(PLM):是预置的大型“变形金刚”,(组成单元大,可操作性较小,类似于搭积木中的每一块积木很小),可以进行一定程度的自定义和编程。
  2. 可编程输入/输出单元(I/O):同上。
  3. 可编程连线:同上

        (2)存储信息上:

  • FPGA城市的机器人数量多、体积小、密度大(有更高的密度和更多的逻辑单元),所以可以搭建的房屋数量也多(可以存储更多的逻辑信息),掉电后会丢失配置信息,因此需要在上电时从外部存储器(如ROM)重新加载配置。
  • CPLD城市的机器人数量小、体积大、密度小,所以可以搭建的房屋数量也少且结构简单,但搭得快(存储的逻辑信息较少,但其结构简单,通常掉电后依然保留配置信息,这使得它们在上电时启动更快)。

        (3)实际使用中:

  • 选择FPGA通常是因为需要高度灵活性和处理复杂逻辑功能的能力,或者项目的设计经常更改。
  • 选择CPLD更适合于较小规模、逻辑简单、启动速度要求快、生产批量不大的应用场景。

    [2]ASIC与FPGA在概念上有什么区别?

       (1)ASIC城市可以理解为早期发展的FPGA城市,城市里也有许多可变化的“变形金刚”式的住房,但是这里的机器人只听一次命令,即城市在建造之初规划的住房功能和结构,一旦建成,道路、建筑和设施就固定下来,无法更改

       (2)FPGA城市里的机器人(可编程逻辑单元)可以按照特定需求配置和编程随时更改

    [3]在FPGA和CPLD的应用开发中应该考虑哪些因素?

  1. 器件的逻辑资源量的选择: 即选择一个城市建设用地的面积,你需要确保城市(器件)有足够的土地(逻辑资源)来建造所有必要的建筑(实现所需的逻辑功能)。如果逻辑复杂,你就需要更多的土地(FPGA),而对于简单的功能,一个小型的地块(CPLD)就足够了。

  2. 芯片速度的选择: 即规划城市的交通系统。一个现代化的大都市(高速FPGA)需要快速的公路和交通网络来保证数据流动和处理速度,而小城镇(低速CPLD)的道路就不需要那么发达,因为交通(数据流)不那么繁忙。

  3. 器件功耗的选择: 在确定一个城市的电力需求时,一个大都市(高功耗FPGA)会需要一个大型的电站,而小城镇(低功耗CPLD)则可能只需要一个小型发电机。功耗直接影响着运营成本和能源效率,这在电子产品设计中尤为关键。

  4. FPGA/CPLD的选择看开发项目本身的需要): 根据项目需求,就像规划城市一样,如果需要快速建设和灵活性(FPGA),或者是预算有限并且对性能要求相对较低(CPLD),选择合适的器件就如同选择建设一个大都市或小镇。

  5. FPGA和CPLD封装的选择: 即建筑设计中选择正确的建筑材料和风格,封装决定了器件在物理空间中的占用和与其他器件的互连方式。其中包括封装的大小、引脚数以及热管理等因素。

  6. 其它因素的选择(各家公司产品各不相同): 即选择建筑承包商,不同的产品供应商可能会提供不同的服务和产品特性。这包括技术支持、成本、交付时间、器件的性能和易用性等。你会选择最适合你的城市(项目)需求的合作者。

    [4]现代EDA技术的特点有哪些?

        现代EDA(电子设计自动化)技术是一种高效的城市规划和管理工具,它帮助城市(电子系统)规划者和管理者(设计工程师)创建、测试、优化并实现复杂的城市结构(电路设计)。主要有以下四个特点:

  1. 采用硬件描述语言(HDL) 进行设计: 即城市规划师使用特定的蓝图语言来详细描绘建筑设计,硬件描述语言(HDL)允许工程师以文本形式描述电子系统的硬件功能和结构,从而指导“变形金刚”(FPGA等可编程硬件)如何根据这些描述改变它们的结构。HDL使得设计可以在高层次进行抽象,而不是仅仅在物理层面上操作。

  2. 逻辑综合与优化: 即将城市蓝图转化为实际的建筑物,并进行优化以确保效率和成本效益,逻辑综合工具将HDL描述转化为可以在实体硬件上实现的逻辑网表。这包括选择最适合的逻辑元件、布局和连接方式,以确保电路在速度、资源使用和功耗方面是优化的。

  3. 开放性和标准化: 建筑标准和城市规划准则确保不同建筑师设计的结构能够和谐共存,EDA工具的开放性和标准化确保了不同设计师和团队可以共享、理解和重用彼此的设计。标准化的设计和模块化方法促进了更广泛的协作和兼容性,同时也加速了创新。

  4. 更完备的库(Library): 一个城市拥有各种公共设施和服务库,以便居民和建筑师可以利用,EDA工具提供了一个丰富的组件库。这些库包含了许多预先设计和优化的模块,如标准的逻辑门、寄存器、存储器元素等,设计师可以调用这些模块来快速构建复杂的系统,而不需要从头开始设计每个部分。

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

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

相关文章

扩展语音识别系统:增强功能与多语言支持

一、引言 在之前的博客中,我们成功构建了一个基于LibriSpeech数据集的英文语音识别系统。现在,我们将对系统进行扩展,增加一些增强功能,并尝试支持多语言识别。 二、增加增强功能 语音合成 --除了语音识别,我们还可以…

四川盐亭清代古寨重现,文物建筑保护引关注

近日,在四川盐亭的五台山深处,一处历经160余年风霜的古山寨遗迹重现天日。寨门巍峨,文字斑驳,诉说着清代同治年间的历史沧桑。然而,岁月侵蚀下,文物保护刻不容缓。温湿度波动等自然因素,对这些珍…

PostgreSQL里实现计算多个数字的排列组合

在进行排列组合的时候&#xff0c;每一次需要知道是否有重复的值&#xff0c;并过滤出已经排列过的值。这个可以创建支持可变参数的函数来实现。下边的函数用到了聚合判断&#xff0c;并且可变参数使用variadic标记的数组。 postgres<16.1>(ConnAs[postgres]:PID[188277…

办公记事常用工具:桌面记事本助你高效记事

在繁忙的办公环境中&#xff0c;我常常感到自己的大脑像是一个不停旋转的陀螺&#xff0c;各种待办事项、会议安排和灵感想法在脑海中交织&#xff0c;仿佛随时都要迸发出来。然而&#xff0c;只靠人脑记忆&#xff0c;不仅辛苦&#xff0c;而且容易出错。在这样的背景下&#…

汇编语言程序设计——基础知识(完整)

文章目录 一、CPU概述:1.1 CPU(中央处理器)和MCU(微处理器 = 单片机)的区别:1.2 CPU是如何工作的:1.2.1 CPU是如何区分内存中的指令和数据的:1.2.1.1 地址总线:1.2.1.2数据总线:1.2.1.3控制总线:二、存储器:2.1 随机存储器(RAM):2.2 只读存储器(ROM):2.3 CPU的…

js设计模式:职责链模式

作用: 可以处理链式调用的业务逻辑,下一步操作需要上一步操作的处理结果 可以使用职责链模式进行解耦操作,按顺序链向下传递,依次向下查找可以处理的业务逻辑 示例: const wjt (expressage) > {if (expressage 《js设计模式从入门到精通》) {return 快递名称:${express…

简单一招,教你高校管理校园门禁!

在当今社会&#xff0c;随着城市化和科技的不断发展&#xff0c;人们对安全管理的需求日益增加。门禁监控系统作为一种现代化、智能化的安全管理工具&#xff0c;正逐渐成为各种场所的必备设施。 客户案例 企业办公大楼 北京某大型企业在其办公大楼部署了泛地缘科技推出的门禁…

才气系统与逻辑系统道装实现的比较

才气系统与逻辑系统道装实现的比较 道装道装思想简介烛火流形学习引擎&#xff0c;流形学习的引入王船山信息熵&#xff0c;简称王船山熵&#xff1b;凝聚态数学可计算函数科学方法道装由来琴语言简介逻辑与才气的逐层比较表格&#xff08;王船山熵&#xff09; 道装 道装思想…

JAVA表达式

1.Java开发工具 IntelliJ IDEA被认为是目前Java开 发效率最快的IDE工具。是 JetBrains公司的产品&#xff0c;这家公司 总部位于捷克共和国的首都布拉格。 它整合了开发过程中实用的众多功 能&#xff0c;智能提示错误&#xff0c;强大的调试工 具&#xff0c;Ant&#xff0c;J…

nginx upstream server主动健康检测模块添加https检测功能[完整版]

目录 1 缘起1.1 功能定义2. 实现后的效果2.1 配置文件2.2 运行效果3. 代码实现3.1 配置指令3.1.1 配置指令定义:3.1.2 配置指令结构体:3.1.3 配置指令源码定义:3.2 模块的初始化3.3 添加新的健康检测类型的定义3.4 握手完成后的处理3. 5 发送http请求3.6 接收http响应3.7 连…

GaiaDB-X 获选北京国家金融科技认证中心「数据领域首批专项示范与先行单位」

2023 年 12 月 21 日至 22 日&#xff0c;「2023北京国际金融安全论坛暨金融科技标准认证生态大会」在北京金融安全产业园举办。百度智能云分布式数据库 GaiaDB-X 产品荣登「数据领域首批专项示范与先行单位」名单&#xff0c;并获得了由北京国家金融科技认证中心颁发的「数据产…

Vue3快速上手(八) toRefs和toRef的用法

顾名思义&#xff0c;toRef 就是将其转换为ref的一种实现。详细请看&#xff1a; 一、toRef 1.1 示例 <script langts setup name"toRefsAndtoRef"> // 引入reactive,toRef import { reactive, toRef } from vue // reactive包裹的数据即为响应式对象 let p…

error: src refspec main does not match any解决办法

一、问题描述&#xff1a; 用GitHub Actions自动部署Hexo&#xff0c;到了最关键的一步&#xff1b;突然报错&#xff1a;error: src refspec main does not match any 1、错误一&#xff1a; main分支应填写为master分支&#xff1b;但是只改这里也会报其他错误 2、错误二&a…

swagger+javax/xml/bind/DatatypeConverter+aop各种问题

文章目录 一、No operations defined in spec!1.问题图片2.解决方法 二、java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter1.问题图片2.解决方法 三、AOP切点不够精确问题1.问题描述2.解决方案 总结 一、No operations defined in spec! 这是swagger报的错&…

turn服务器debug

turn服务器正常能连通的调用堆栈 turn_port.cc AddRequestAuthInfo check 崩溃 有问题的turn msg type是259 request type 是3 用不了的turn 服务器turnmessage type 275

pytorch tensor合并与分割

目录 1. cat2. stack3. split4. chunk 1. cat torch.cat(tensors, dim0, *, outNone) → Tensor 在指定维度上&#xff0c;连接给定tensor序列或empty&#xff0c;除连接的dimension外&#xff0c;所有得的ensor必须有相同的shape 参数&#xff1a; tensors-具有相同类型的ten…

Visual Studio+C#实现信道与信息率失真函数

1. 要求 设计一款信道与信息率失真函数计算系统&#xff0c;要求如下&#xff1a; 系统能够通过输入的转移概率矩阵计算对称以及非对称离散无记忆信道的信道容量系统能够通过输入的概率分布以及失真矩阵来计算与信息率失真函数有关的相关参数&#xff0c;例如Dmin&#xff0c…

【教程】详解相机模型与坐标转换

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 由于复制过来&#xff0c;如果有格式问题&#xff0c;推荐大家直接去我原网站上查看&#xff1a; 相机模型与坐标转换 - 生活大爆炸 目录 经纬度坐标系 转 地球直角坐标系大地直角坐标系 转 经纬度坐标系地理坐标…

⭐北邮复试刷题589. N 叉树的前序遍历__DFS (力扣每日一题)

589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [1,null,…

【明道云】如何实现循环处理

【背景】 发现明道云工作流中并没有直接的循环逻辑模块&#xff0c;那么如何实现循环呢&#xff1f; 【方案】 通过主流程获取多条数据&#xff0c;搭配子流程来实现遍历循环效果。子流程中可以直接感应获取单行数据。 如果直接在主流程中通过直接获取方式获取多条数据&…