2023.6.7小记——什么是FPGA?

news2024/11/25 11:06:11

最近打算开始继续做一些个人分享,已经太久时间没有写文章了,感觉这样下去肯定不是个好事,当程序员当然是要保持分享~
标题就暂时先以每天我认为最重要的一点来取,内容不仅限于此。


1. 什么是FPGA?

全称是Field-Programmable Gate Array,现场可编程门阵列

对于其定义,chatgpt给我的回答是这样的:

当我们谈论 FPGA(现场可编程门阵列)时,可以将其想象成一块可以按照我们的需要重新配置的电路板。传统的计算机芯片通常是固定的,它们包含了一些特定功能的电路,无法改变。但是 FPGA 不同,它是一种灵活的芯片,允许我们根据需要重新定义和重新组织电路。

FPGA 中包含了大量的逻辑单元和可编程的连线,这些逻辑单元可以通过编程被连接在一起,从而实现我们想要的功能。通过编写特定的代码,我们可以告诉 FPGA 如何组织这些逻辑单元,以及它们之间如何相互连接。这样,我们可以创建出自定义的电路,实现各种不同的功能,从简单的逻辑门到复杂的处理器和通信接口。

FPGA 的优点在于其灵活性和可重新配置性。由于其可编程性,我们可以根据需要快速更改 FPGA 的功能,而不需要制造新的芯片。这使得 FPGA 在很多领域都有广泛的应用,如嵌入式系统、通信、图像和音频处理等。通过使用 FPGA,我们可以快速原型设计,加速算法的执行,以及适应不断变化的需求。

通过上述描述不难看出,FPGA最大的特点就是可编程,这就使得不再需要一块芯片对应一种功能,而是根据当前需求,通过代码组织其内部的逻辑单元,从而实现特定的功能。这样的特点就使得FPGA的可玩性非常的高。

最近在做计算机综合能力实训,题目就是FPGA编程,利用开发板实现present加密解密算法。这时候我才发现,原来大二数字电路用的vivado软件和verilog语言,对于嵌入式、硬件编程那么重要,那时候还以为是什么乱七八糟的软件。毕竟如果是第一次使用,真的很难上手。

btw,今天还在B站着重看了一下老石谈芯的好几个视频,突然觉得嵌入式硬件编程是一个很酷的事情,但是初学真的很难。从老石的视频里,我可以看到一个芯片工作者的热情和生命力。在他最新的视频里还介绍到了RISC-V的爆火,据说这东西在芯片领域就等同于chatgpt的存在。而且最重要的,它是开源的,开源带来的效益就是,有来自世界各地的开发者依照它进行各种魔改和优化,同时也有很多学术界的工作者展开对其的研究,这样工业界和学术界两地开花,最后的结果一定是百花齐放。不知道会不会成为AMD X86和ARM一样的存在呢?但无论如何,精简指令集一定是开发者想看到的,用最简单的结构实现复杂的功能才是真谛。

今天已经在pdd下单老石的FPGA详解这本书了,12块钱,真的便宜,拜读一下帝国理工博士、中科院研究员的巨作。

2. UML类图

类图反映的意义和java里面的那套理论是一模一样的。

但是如果在UML这门课中,需要着重理解的还有类图中存在的关系以及关系标识。

下面放几张我自己今天做的goodnotes笔记截图吧。

请添加图片描述
请添加图片描述
请添加图片描述

3. UML顺序图与通信图

顺序图和通信图都属于交互图。

顺序图主要描述的就是一个事件从前到后的执行顺序。比如去ATM取钱,这个过程涉及到的就是:用户这个参与者、ATM机、银行服务器、账户本身。

顺序就是:用户到ATM前—插入卡—输入密码—服务器校验—扣除账户中的钱返回给用户。

顺序图就是通过生命线、时间条、箭头来描述这个事件执行的过程。示例图如下:
请添加图片描述
通信图实际上就非常简单了,相比于顺序图,少了所谓的时间概念,只需要描绘出每个步骤即可。

需要注意的是,在通信图中,两个之间的连线,不要有箭头,只需连线即可。而事件需要加上箭头。


今天的分享暂时先到这里,时间不早了,还得复习嵌入式。

希望自己的嵌入式能考高一点!!!

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

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

相关文章

PCL 点云均值漂移算法(MeanShift)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 均值漂移算法是一种非常经典的层次聚类方式,已在二维图像中得到了广泛的应用。这里我们也已二维图像为例来阐述其整个计算过程: 算法基本思想:如下图所示,左侧为实际的图像特征的分布,右侧为基于图像特征分布计…

Linux操作系统——第二章 进程控制

目录 进程创建 fork函数初识 fork函数返回值 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出场景 进程常见退出方法 _exit函数 exit函数 return退出 进程等待 进程等待必要性 进程等待的方法 wait方法 waitpid方法 获取子进程status 进程程序…

接口测试框架实战 | 通用 API 封装实战

接口测试仅仅掌握 Requests 或者其他一些功能强大的库的用法,是远远不够的,还需要具备能根据公司的业务流程以及需求去定制化一个接口自动化测试框架的能力。所以,接下来,我们主要介绍下接口测试用例分析以及通用的流程封装是如何…

火龙果MM32F3273G8P开发板MindSDK开发教程3 - Sysclk的配置

Sysclk的配置 1、时钟初始化流程 一般流程为startup_mm32f3273g.s中调用system_mm32f3273g.c中的SystemInit函数完成系统时钟的初始,而system_mm32f3273g.c中函数是空的。 原来MindSdk时钟初始化的流程放到了clock_init.c中。 2、采用外部高速时钟源 先弄清几个…

Effective第三版 中英 | 第二章 创建和销毁对象 | 通过私有构造器强化不可实例化的能力

文章目录 Effective第三版前言第二章 创建和销毁对象通过私有构造器强化不可实例化的能力 Effective第三版 前言 大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 effective-java 书籍。同时也把自己学习该书时的笔记…

文本三剑客 之 grep

目录 一.grep 1.grep常用选项命令选项 2.grep 命令选项 3.简单的正则表达式 二.sort 命令 三.uniq 去重 四 .语法格式: tr 选项 参数 五.快速裁剪命令——cut: 六.split 文件拆分 七.文件合并——paste 一.grep 文本三剑客了之一,对文本内容进行…

网络通信 --- HTTP 协议初识

目录 🌲一、HTTP 协议是什么 🌳二、HTTP协议格式 🦪1.抓包工具的使用(以 Fiddler 为例) 🍣2. 抓包工具的原理 (以 Fiddler 为例) 🍤3. 抓包结果 🍥① HTTP 请求(request) 🥮②HTTP响应(re…

chatgpt赋能python:Python中的平均值如何计算?

Python中的平均值如何计算? 在Python编程中,求取列表、元组或数据集合的平均值是一个相当常见的操作。幸运的是,Python内置的统计模块提供了方便的方法去实现这个操作。在这篇文章里,我们将探讨计算平均值的方法,帮助…

Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 1、脸部 之前在分析资源的时候,其实已经发现了这个模型的脸部法线有问题,导致在做光照模型的时候,脸部很奇怪。 把f…

阅读ConcurrentHashMap源码,我学到了什么?

文章目录 ConcurrentHashMap怎样保证线程安全的put元素的流程具体对于红黑树是怎样保证线程安全的如何并发安全的初始化一个数组如何统计存储元素个数的怎样进行多线程扩容的 首先说明, 本篇分析基于jdk1.8. ConcurrentHashMap怎样保证线程安全的 ConcurrentHashMap主要是通过…

Java:字符流

字符流的底层其实就是字节流。 字符流字节流字符集 结构体系: 1.特点 输入流:一次读一个字节,遇到中文时,一次读多个字节。 输出流:底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中。 2.使用场景 对于纯文本…

AI实战营第二期 笔记5——MMPretrain代码课

文章目录 摘要MMPreTrain实战安装推理 OR 使用API数据集训练与测试微调 摘要 MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSel…

chatgpt赋能python:Python开立方函数math:让数学计算更加简单

Python开立方函数math:让数学计算更加简单 Python作为一种高级编程语言,提供了丰富的数学计算功能,其中就包括了开立方函数math。本篇文章将详细介绍math开立方函数在Python中的使用方法及其优点。 什么是开立方函数? 开立方函…

chatgpt赋能python:Python开发BI,助力企业数据驱动决策

Python开发BI,助力企业数据驱动决策 随着企业数据规模的呈现爆炸式增长,传统的Excel等表格计算工具已经无法满足业务需求,因此,企业需要更加全面和强大的方法来进行数据分析和展示。此时,BI(全称Business …

css蓝桥杯--电影院排座位

目录 一、介绍二、准备三、⽬标四、代码五、知识点六、完成 一、介绍 随着⼈们⽣活⽔平的⽇益提升,电影院成为了越来越多的⼈休闲娱乐,周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇,⼜有⼀个电影院正在做着开张前…

chatgpt赋能python:Python强制关闭程序的解决方案

Python 强制关闭程序的解决方案 在Python开发过程中,难免会遇到程序卡死,无响应等问题,这时候如果无法正常退出程序,就需要进行强制关闭。本篇文章将介绍Python强制关闭程序的几种解决方案。 方法一: 使用系统命令 在Linux或Ma…

【Java】JavaWEB核心要点总结:64

文章目录 1. TCP 和 UDP的异同2. TCP为什么要三次握手 两次不行吗3. get post put 请求方式有什么区别4. 什么是XXS攻击 如何避免5. 什么是 CSRF 攻击,如何避免 1. TCP 和 UDP的异同 TCP(Transmission Control Protocol)和UDP(Use…

typedef 和 # define 用法区别

typedef 和 # define 用法区别 前言1. 原理不同1.1 typedef int * int_ptr;与#define int_ptr int * 详细讲解 2. 功能不同3. 作用域不同 前言 博主在牛客网上看到了一道有关typedef和# define题目。发现有很多初学的小伙伴对两者的用法不是特别清楚,所以博主在这总…

python内存

在python中,一切都是对象。Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。 Java虽然也是面向对象编程的语言,但是血统没有Python纯正。比如Java的八种基本数据类型之一int,在持久化的时候…

HCIA-NAT

目录 NAT:网络地址转换 NAT原理: NAT转换原理图: 静态NAT 静态NAT的工作原理: 静态NAT配置命令 静态NAT配置实例: 动态NAT 动态NAT的工作原理 动态NAT: 动态NAT配置命令 动态NAT案例 NAPT NA…