干货丨FPGA零基础学习,入门必看!

news2024/9/25 17:20:23

看到不少同学后台进行提问:FPGA如何入门?怎么学习?其实对于新人来说,FPGA的学习需要了解的东西还是非常多,下面IC修真院就带大家一起来了解一下吧。

FPGA简介

FPGA普遍用于实现数字电路模块,用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的需求。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,下至简单的74电路,上至高性能CPU,都可以用FPGA来实现。

在这里插入图片描述

FPGA是给谁用的?

很多学校是为给学微电子专业或者集成电路设计专业的学生用的,其实这不过是很多学校受资金限制,买不起专业的集成电路设计工具而用FPGA工具替代而已。其实FPGA是给设计电子系统的工程师使用的。

这些工程师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满足系统的需求时,就需要用FPGA来快速的定义一个能用的芯片。
  
FPGA里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师使用FPGA进行设计时无非就是考虑如何将这些以后资源组合起来实现一定的逻辑功能而已,而不必像IC设计工程师那样一直要关注到最后芯片是不是能够被制造出来。

本质上和利用现有芯片组合成不同的电子系统没有区别,只是需要关注更底层的资源而已。

要想把FPGA用起来还是简单的,因为无非就是那些资源,在理解了前面两点再搞个实验板,跑跑实验,做点简单的东西是可以的。

而真正要把FPGA用好,那光懂点FPGA知识就远远不够了。因为最终要让FPGA里面的资源如何组合,实现何种功能才能满足系统的需要,那就需要懂得更多更广泛的知识。

FPGA入门须知:

观念认识:从事FPGA开发,不是写代码,是电路设计,数字电路设计,只不过不像你在protel里画原理图,做layout,它需要你用语言把你的电路描述出来,然后根据根据你的描述生成相应的电路,这里描述的方式就体现你的技术水平了,请明白,verilog或者VHDL都是hardware description laugahge。

2.理论储备:请把你的数字电路书拿出来,理解寄存器,状态机,时序方程。

3.请熟读xilinx或者altera的一款FPGA的手册,了解他的接口,固件组成(PLL,BlockRAM,DCM,SERDES等),资源分布,建议用xilinx的FPGA Eidter软件打开一个芯片的版图,你就会发现FPGA本质就是一系列资源的堆叠,你要做的事情就是怎么利用这么硬件资源做出你要的东西。

4.请理解组合逻辑和时序逻辑,针对2种逻辑信号延迟的组成,计算,也就是时序分许问题。

5.动手能力,写代码,多写代码,多调试,你遇到的问题多了,解决的多了,所有的问题都不是问题了。要善于总结。

6.对流行的接口,技术的原理要理解,比如SPI,I2C,USB,DDR1/2/3,PCIE,流行的高速接口LVDS,LVPECL,SSTL等。

学习FPGA需要掌握的理论基础

学会使用FPGA,但是还有很多事情做不了(比如,FIR滤波器、PID算法、OFDM等),因为理论没学好。
1、信号处理——信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理
2、接口应用——如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort
3、无线通信——信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码
4、CPU设计——计算机组成原理、单片机、计算机体系结构、编译原理
5、仪器仪表——模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用
6、控制系统——自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用
7、压缩、编码、加密——数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理
FPGA会涉及到很多知识,你可以选一个感兴趣的方向,但是工作中很有可能用到其中几个方向的知识,所以理论还是学得越多越好。如果你要更上一层,数学和英语是不可避免的。

好书推荐

Intel FPGA数字信号处理 系统设计权威指南
在这里插入图片描述

本书从硬件描述语言、Simulink环境下的模型构建和Intel FPGA高级综合工具下的C/C 程序设计三个不同的角度,本书从硬件描述语言、模型设计和高级综合HLS三个角度对使用Intel公司现场可编程门阵列器件构建数字信号处理系统的方法进行了详细的介绍。

计算机视觉技术

在这里插入图片描述

本书旨在建立计算机视觉技术的基础知识体系,为读者进入人工智能视觉领域奠定基础。本书适合作为中职、高职高专及应用型本科人工智能通识课的教材,也可作为人工智能的普及读物供广大读者自学或参考。

云计算机基础与openstack

在这里插入图片描述

本书以实践为宗旨,采用自动部署工具带领读者一步一步构建企业云平台,同时还分享了OpenStack的最佳实践方法,帮助读者深入了解企业级私有化云平台的优势和特点。本书内容丰富,注重系统性、实践性和可操作性,对每个技术点都有相应的操作示例,便于读者快速掌握要点。

Verilog HDL设计实例手册
在这里插入图片描述

本书以Intel的FPGA芯片为目标器件,以Quartus Prime、Platform Designer(PD)、Nios II-Eclipse为软件工具,以Verilog HDL为设计语言,选择C4_MB“口袋实验板”为目标板,通过精选设计案例,诠释用FPGA实现数字系统设计的思路与方法。

人工智能数据处理
在这里插入图片描述

《人工智能数据处理》一书从基础实用内容开始,并辅以编程基础知识和综合案例,关注数据的采集、数据预处理、数据的可视化、数据的标注,以及大数据的相关应用等大数据的处理知识。其中,既包括文本或数值相关数据的处理,也包括对图片这样的非结构化数据的梳理。

需要学习资料的同学,可以私信留下正确的联系方式,老师会主动联系你发送学习资料!学习之路上,IC修真院与你同行。

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

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

相关文章

Codeforces Round #666 (Div. 1) A. Multiples of Length

Problem - A - Codeforces翻译: 您将得到一个由𝑛个整数组成的数组𝑎。 你想要让𝑎的所有元素都等于零,只需执行以下操作三次: 选择一个段,对于这个段中的每一个数字,我们可以给它加上&#…

后疫情时代语音机器人和大数据的发展前景

语音机器人可以通过自动化流程和提供快速、准确的信息来帮助企业降低成本、增加效率。具体来说,企业可以使用语音机器人来完成以下任务: 客户服务:语音机器人可以自动处理客户查询和请求,从而节省人力成本。数据录入:…

Mask R-CNN论文讲解

目录:Mask R-CNN论文理解一、摘要二、介绍三、Mask R-CNN四、RoIAlign五、Network Architecture六、训练一、摘要 论文提出了一个概念上简单、灵活和通用的对象实例分割框架。有效地检测图像中的对象,同时为每个实例生成高质量的分割掩码。 方法被称为…

Python量化交易06——Fama-French三因子模型(Rmt,SMB,HML)

参考书目:深入浅出Python量化交易实战 本次带来的是著名的获得了诺贝尔奖的三因子模型。 因子模型介绍 Fama和French从可以解释股票收益率的众多因素中提取出了三个重要的影响因子,即市场风险溢酬因子、市值因子和账面市值比因子B/M Ratio,仿照CAPM模型…

测试用例能带来什么

通过测试用例,我们都能获得些什么呢? 1、测试团队的质量判断。例如,测试用例的覆盖率。我们只需要去把所有的valid的功能bug去做一个分析,用所有在测试用例覆盖范围之外的bug数/总bug数,就可以作为测试用例覆盖率使用。一个良好的…

【css】深入解析CSS (4)网格布局

设置为display: grid的元素成为一个网格容器(grid container)。它的子元素则变成网格元素(grid items)。 1.网格的组成部分: grid-template-columns和grid-template-rows定义了网格轨道 grid-template-columns:1fr 1f…

STM32/51单片机实训day4——RFID工作原理(一)理论

目录 一、RFID的定义 二、RFID的起源和发展 三、RFID的组成 3.1 标签 3.2 读写器 3.3 天线 四、RFID系统分类 4.1 根据标签的供电方式 4.2 根据工作频率 五、RFID系统工作原理 5.1 读写器 5.2 标签 5.3 中间件 内 容:能够读取RFID卡S50的ID——编程…

如何利用 xUnit 框架对测试用例进行维护?

1、xUnit 是什么 先看 Wikipedia 上的解释: xUnit 是一系列测试框架的统称,最开始来源于一个叫做 Smalltalk 的 SUnit 框架,现在各种面向对象的语言,如 Java、Python 的鼻祖就是 Smalltalk,后来这些语言都借助了 Suni…

Win10 开机突然蓝屏错误代码0xc0000001安全模式也进不了,不用重装系统怎么修复?(已解决)

环境: Win 10专业版 HP480G7 问题描述: Win10 开机突然蓝屏错误代码0xc0000001,前一天好好的,F8安全模式也进不了,不用重装系统怎么修复? 解决方案: 方法一 1.重启F8进入里面的安全模式(本案例进不了) 方法二 (解决本案例) 1.使用系统安装U盘,需提前做好…

力扣(LeetCode)220. 存在重复元素 III(C++)

滑动窗口有序集合 维护滑动窗口&#xff0c;向右扩大右窗口&#xff0c;新数加入有序集合&#xff0c;题目要求abs(nums[i] - nums[j]) < t &#xff0c;找两数之差的绝对值小于t&#xff0c;相当于在窗口里找大小尽可能接近的两个数&#xff0c;固定其中一个数(新数)&…

进程优先级环境变量进程地址空间

目录 一、进程优先级 1、概念 2、查看 3、其他概念 二、环境变量 1、基本概念 2、常见环境变量 3、查看环境变量的方法 4、和环境变量相关的命令 5、环境变量的组织方式 6、通过系统调用获取或设置环境变量 三、程序地址空间 一、进程优先级 1、概念 cpu资源分配的…

C++优先队列:priority_queue(即时排序队列)

今天我们来讲一下C中对于排序很好的用的东西&#xff1a;优先队列&#xff1a;priority_queue 既然是队列那么先要包含头文件#include <queue>, 它和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性&am…

数据结构---二叉树的各种遍历算法

&#xff08;一&#xff09;基础知识 如图遍历该树&#xff0c;常见有四种方法&#xff1a; 先根遍历&#xff1a;即先序遍历(Pre-order)&#xff0c;按照根左右的顺序沿一定路径经过路径上所有的结点。在二叉树中&#xff0c;先根后左再右。巧记&#xff1a;根左右。 以标准…

Redis 主从复制实现

1. 前言 今天从实用的角度来分析下 服务器间的主从部署&#xff0c;以及主从复制备份 2. 配置 一个服务器不同的端口代表不同的Redis实例端口6379 表示一台Redis主节点端口6380 表示一台Redis从节点&#xff0c;主节点的端口是6379端口6381 表示一台Redis从节点&#xff0c;主…

Type-challenges:00009-medium-deepReadonly

Implement a generic DeepReadonly<T> which make every parameter of an object - and its sub-objects recursively - readonly. https://github.com/TIMPICKLE/type-challenges/blob/main/questions/00009-medium-deep-readonly/README.md 虽然是medium&#xff0c;但…

图论(2)单源最短路的综合应用

活动 - AcWing 1.acwing1135 从自己家出发摆放其他亲戚&#xff0c;拜访顺序任意。 枚举所有摆放顺序求最小值即可。因此需要每个亲戚家到其他亲戚家的最短路。分别跑出来即可 #include<iostream> #include<algorithm> #include<cstring> #include<que…

pytorch批量计算数据集的均值和方差

from torchvision.transforms import ToTensor#用于把图片转化为张量 import numpy as np#用于将张量转化为数组&#xff0c;进行除法 from torchvision.datasets import ImageFolder#用于导入图片数据集means [0,0,0] std [0,0,0]#初始化均值和方差 transformToTensor()#可将…

UIVM项目验证—数据多通道整形器(MCDF)

1、项目介绍-MCDF MCDF(Multi-Channel Data Formatter)多通道数据整形器将上行多个通道数据存入FIFO&#xff0c;经过Arbiter仲裁&#xff0c;完成指定通道的数据打包&#xff0c;寄存器可以控制各个通道的开关、优先级以及数据包长度。 2、设计描述 CDF设计结构描述如下所示…

红队隧道应用篇之SSH端口转发突破内网(六)

前言 什么是SSH隧道 SSH隧道是使用SSH协议连接两台计算机之间的通道。它使用密钥加密数据传输&#xff0c;并允许计算机之间的安全连接。 通常&#xff0c;SSH隧道用于通过不安全的网络&#xff08;例如互联网&#xff09;连接到远程服务器。隧道提供了一种安全的方法来访问…

我眼中的并发编程

在并发编程中都避不开原子性&#xff0c;可见性&#xff0c;有序性问题。这三个问题都是人们抽象出来&#xff0c;而实际上对应的就是缓存一致性&#xff0c;处理器优化&#xff0c;指令重排序问题。 原子性&#xff1a; 就是一个操作中CPU不可以在中途展厅然后再调度&#xf…