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

 一. 前言(更新世界观)

        在“微机世界”,普通的城市(单片机)里,又有一个别的名字叫做“数据”,人有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.mzph.cn/news/688978.shtml

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

相关文章

mmap映射文件使用示例

mmap 零拷贝技术可以应用于很多场景,其中一个典型的应用场景是网络文件传输。 假设我们需要将一个大文件传输到远程服务器上。在传统的方式下,我们可能需要将文件内容读入内存,然后再将数据从内存复制到网络协议栈中,最终发送到远…

【点云】生成有凹凸的平面

文章目录 前言高斯函数原理代码保存 测试测试1 :领域曲率代码测试2:高斯曲率代码 加上噪点测试1测试2改进 前言 尝试用一些数据生成有凹凸面的点云。 我们姑且把z轴当成有凹凸的缺陷,x轴和y轴共同组成一个平面。 高斯函数 原理 高斯函数wi…

UE4 C++联网RPC教程笔记(一)(第1~4集)

UE4 C联网RPC教程笔记(一)(第1~4集) 前言1. 教程介绍与资源2. 自定义 Debug 功能3. Actor 的复制4. 联网状态判断 前言 本系列笔记将会对梁迪老师的《UE4C联网RPC框架开发吃鸡》教程进行个人的知识点梳理与总结,此课程…

ARMv8-AArch64 的异常处理模型详解之异常处理详解(进入异常以及异常路由)

在上篇文章 ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions中,作者对异常处理整体流程以及相关概念做了梳理。接下来,本文将详细介绍处理器在获取异常、异常处理以及异常返回等过程中都做了哪些工作。 ARMv8-AArch64 的异常处理模型…

「C++ 内存管理篇 0」C和C++对内存的划分

目录 一、C和C对内存的划分 二、小测试 【题目】 【答案】 【解释】 一、C和C对内存的划分 1. 栈区 :存储非静态局部变量/函数参数/返回值等等,栈是向下增长的。 2. 共享区:用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存…

汽车金融市场研究:预计2029年将达到482亿美元

汽车金融公司作为汽车流通产业链的重要一环,认真贯彻落实国家有关政策,采取多种措施助力汽车产业发展,为促进推动汽车消费、助力畅通汽车产业链、支持稳定宏观经济大盘发挥了积极作用。 益于国内疫情得到有效控制,我国经济持续稳定…

UE5 C++ UENUM 和 USTRUCT

一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式 一种是使用命名空间: 还有是继承uint8: 通过申明class类 别名来替代 USTRUCT的定义 上面的第二种有类似但仍然有很多的差异: 首先要有GENERATED_USTRUCT_BODY()这个函数 并且…

网络编程_TCP通信综合练习:

1 //client:: public class Client {public static void main(String[] args) throws IOException {//多次发送数据//创建socket对象,填写服务器的ip以及端口Socket snew Socket("127.0.0.1",10000);//获取输出流OutputStream op s.getOutput…

ChatGPT魔法1: 背后的原理

1. AI的三个阶段 1) 上世纪50~60年代,计算机刚刚产生 2) Machine learning 3) Deep learning, 有神经网络, 最有代表性的是ChatGPT, GPT(Generative Pre-Trained Transformer) 2. 深度神经网络 llya Suts…

Eclipse - Colors and Fonts

Eclipse - Colors and Fonts References 编码最好使用等宽字体,Ubuntu 下自带的 Ubuntu Mono 可以使用。更换字体时看到名字里面带有 Mono 的基本都是等宽字体。 Window -> Preferences -> General -> Appearance -> Colors and Fonts -> C/C ->…

数据分析 — 动画图 pyecharts

目录 一、概念二、安装和导入三、绘图逻辑四、绘图1、柱状图2、折线图3、散点图4、饼图5、南丁格尔图6、Geo() 地理坐标第7、Map() 绘制区域8、词云图9、层叠图10、3D 图11、仪表板 一、概念 Pyecharts 是一个基于 Echarts 的 Python 可视化库,它通过 Python 生成 …

mac东西拷不进硬盘怎么回事 mac东西拷不进硬盘怎么办 mac硬盘读不出来怎么解决 mac拷贝不了东西到u盘

有时候我们在使用mac的过程中,可能会遇到一些问题,比如mac东西拷不进硬盘。这是一种很常见的情况,但是会影响我们的工作和生活。那么,mac东西拷不进硬盘是怎么回事呢?mac东西拷不进硬盘又该怎么办呢?本文将…

Linux第60步_“buildroot”构建根文件系统第2步_配置“buildroot下的busybox”并测试“buildroot”生成的根文件系统

1、查看“buildroot下的busybox”安装路径 打开终端 输入“ls回车” 输入“cd linux回车/”,切换到到“linux”目录 输入“ls回车”,查看“linux”目录下的文件和文件夹 输入“cd buildroot/回车”,切换到到“buildroot”目录 输入“ls…

MyBatisPlus 整合 SpringBoot 遇见的问题

【异常】:Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’… SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘udf1’ in ‘field list’; ,"messag…

【Web】CTFSHOW java反序列化刷题记录(部分)

目录 web846 web847 web848 web849 web850 web856 web857 web858 web846 直接拿URLDNS链子打就行 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.lang.reflect.F…

Eclipse - Switch Workspace

Eclipse - Switch Workspace References Switch Workspace References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

用GPT-4开启“人类宝藏”

“GPT-4开启人类宝藏”意味着下面几个层面的含义: 知识与信息的访问:GPT-4作为一款强大的语言模型,通过学习海量的数据和信息资源,可以近乎实时地提供人类历史积累的知识、经验与智慧。用户可以通过询问或交互方式获取这些信息&am…

数据库所在服务器磁盘满了怎么办?

大家好,我是G探险者。 给大家拜个晚年哈,节后上班第一天,打开电脑,发现数据库服务器连不上了。 幸亏,节后第一天上班的人不太多,领导还没来,我一番鼓捣解决了这个问题。 所以做个总结&#xff0…

Linux网络----防火墙

一、安全技术和防火墙 1、安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安…

unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

逆向服务器用了三天的时间,但此时觉得一切都值,又可以继续学习了。 服务器中登录请求和注册请求由command变量进行区分,上一层的type变量都是login。 public void process(Session session, SocketModel model) {switch (model.Command){ca…