您现在的位置是:首页 >技术交流 >2023.6.7小记——什么是FPGA?网站首页技术交流
2023.6.7小记——什么是FPGA?
最近打算开始继续做一些个人分享,已经太久时间没有写文章了,感觉这样下去肯定不是个好事,当程序员当然是要保持分享~
标题就暂时先以每天我认为最重要的一点来取,内容不仅限于此。
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前—插入卡—输入密码—服务器校验—扣除账户中的钱返回给用户。
顺序图就是通过生命线、时间条、箭头来描述这个事件执行的过程。示例图如下:
通信图实际上就非常简单了,相比于顺序图,少了所谓的时间概念,只需要描绘出每个步骤即可。
需要注意的是,在通信图中,两个之间的连线,不要有箭头,只需连线即可。而事件需要加上箭头。
今天的分享暂时先到这里,时间不早了,还得复习嵌入式。
希望自己的嵌入式能考高一点!!!