当前位置: 首页 > news >正文

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历,丝我即可

前言

初次接触FPGA是在2022年3月左右,正处在研二下学期,面临着暑假找工作,周围的同学大多选择了互联网,出于对互联网的裁员形势下,我选择了FPGA,对于硬件基础知识我几乎是没有的,最初我还很担心要补的硬件知识太多了,但是慢慢发现需要的硬件知识不算多,用到哪里就学哪里,以下记录我从零开始学习FPGA的过程,以及使用的资料,下面的内容均是我尝试过的,有好的方法大家可以借鉴,也提到一些不好的方法,以帮大家避坑

正文

一开始,我先去咨询身边会FPGA的人,以及去网上搜经验贴,大家不约而同地提出数电的重要性,于是从数电开始,我开启了我一路跌跌撞撞的入门之旅

一、视频教程

1.1 数电

推荐教材:数字电子技术基础-第六版-闫石
数电重点章节:组合逻辑、触发器、时序逻辑;其中触发器这一章中可以先学最常用的D触发器,别的触发器等以后用到再学


我看过B站上好几位讲数电的老师,一开始看的是播放量最高的清华的王红老师的课程:数电 - 清华王红
但是看了几节课后发现我看不懂,也跟不上老师的上课进程,于是我又发现了另外2位老师的课程:数电 - 西电任爱锋、数电 - 苏州大学,这2位老师的课程是我觉得比较能听懂的,于是我跟着他们的课程快速过了一遍数电的组合逻辑、时序逻辑这2章最重要的内容
因此想要快速过一遍数电,推荐这两个老师的视频:

  • 数电 - 西电任爱锋
  • 数电- 苏州大学
  • 数电 - 哈工大(有好几个老师轮流上课,讲得还是很不错,可以作为补充观看)

1.2 Verilog

数电把重点章节过一篇后,我就直接开始学习Verilog了,虽然很多人推荐夏闻宇老师的Verilog书,但是我觉得不是很适合用来快速入门,我也没有选择去B站找Verilog的视频教程看,而是开始跟着小梅哥的视频,边熟悉数电知识,边学习Verilog语言
看小梅哥视频这部分应该算是入门的关键之一,看完视频后悔对Verilog和FPGA大概能做什么有一个初步的认识
下面是我看的视频:
这两个视频我是搭配着看的,如果小梅哥讲的我没听懂,我就去看看野火是怎么讲的,反之亦然

  • 零基础轻松学习FPGA - 小梅哥
  • FPGA系列教学视频,“波形图”教学法 - 野火:几乎每节课都会先带着你手绘波形图,然后对着波形图写代码

补充:
如果有同学想要系统跟着课程学一遍Verilog,推荐这个老师的课程:
Verilog硬件描述语言 西安电子科技大学 蔡觉平等主讲


当你觉得自己可以写一点Verilog的简单代码后,就可以开始刷HDLBits上的题了,题目比较多,几乎涵盖了Verilog的常用语法,强烈建议刷一遍上面的题,尽量自己做,然后再去看别人的答案;我第一遍刷是看了别人的答案再去做,感觉收获不大。你可以评估一下自己现在的Verilog编程水平,做前10道你都觉得没什么问题的话,就可以继续做下去;如果觉得很吃力的话,还是再看一段时间的小梅哥或者野火的视频再去做上面的题

  • 刷题网站
  • HDLBits答案 - 博客 - 孤独的单刀
  • HDLBits答案 - B站视频 - 荣晔

另外再推荐一个菜鸟的Verilog教程,还是比较全的

  • 菜鸟 - Verilog

注意:在看视频时,一定不要陷入一种误区,眼睛会≠手会≠脑子会,所以一定要多动手写代码,而且要把学过的东西用起来,不然很快就会忘记,比如点灯这个操作,你可以在最开始用assign led = 1'b1让灯亮起来,后面学到状态机,你可以用状态机检测一个序列,如果检测到,就点灯;再比如,学到UART串口,你可以使用串口助手往FPGA传输数据1,如果FPGA接收到了串口助手发来的数据,就点灯;最后再举例,使用赛灵思的开发板时,用PL中断给PS端传输中断信号,再通过GPIO点灯。
(后面举例这部分你可以能还不太看得明白,没关系,我刚学的时候也不明白,我想表达的含义就是要把前面学到的东西用起来,我就是吃了这个亏,不用好多东西都忘记了)


如果有同学需要system verilog的刷题网站,也推荐一个比较不错的:
System Verilog刷题网站

1.3 项目

把上面的视频看得差不多了,可以尝试做一些网上的开源项目,我师兄推荐给我的这个项目我暂时还没有做,但我后面有时间一定要把他做了,因为我在看牛客上的面试经验时发现有的公司还是会经常问SDRAM的内容

1.3.1 SDRAM

推荐项目:

  • SDRAM第一季 - 开源骚客
1.3.2 RISC-V实现单周期处理器

还有一个我做了的项目,是用riscv写一个CPU,做了这个项目后对我的帮助是,提升了Verilog的代码编写能力,熟悉了CPU的大致结构和工作原理,算是位以后学习计算机体系结构开了一个头吧

  • tinyriscv技术手册
  • tinyriscv - gitee仓库
  • tinyriscv - B站分析教程 - 荣晔
  • riscv - 设计 - 荣晔
1.3.3 基于ov7725、ov5640摄像头的图像处理、数字识别

这个摄像头的项目涉及的知识点稍微多了一点,可以把之前学的SDRAM、I2C协议、HDMI显示、VGA显示等知识点都用上,还有其他关于显示数据的内容。做了这个项目我是写到简历上的,推荐的课程如下:
正点原子 : ov7725摄像头
:也可以把每个模块需要的知识点拆分开,去野火FPGA那里找对应的知识点


摄像头这部分我做了图像显示、简单的图像处理、数字识别这几个功能,实现效果如下:

在这里插入图片描述

在这里插入图片描述
经过很长一段时间调试,需要工程的朋友后台私信我,一杯奶茶钱带走它哈~

1.3.4 卷积神经网络的手写数字识别

这个是找到工作后打算做的,还在进行中…

二、博客教程

学习FPGA的过程中,能遇到一个领路人是一件无比重要的事,在这个过程中有幸发现一位这样的领路人,他的CSDN上的内容从结构来看,就是一本FPGA书!!从入门到进阶,结构十分清晰,内容也很丰富,博主本人也非常热心,这一波,墙裂推荐啊~

  • 推荐博主 - 孤独的单刀

三、基础课程

3.1 计算机体系结构

最好不要一上来就看书,我反正是看不进去的,对于这样的专业性很强的课程,推荐找到对应的考研视频,考研视频会把知识点讲的很细,跟着过一遍就好。
我在做RISCV那个项目时,发现一位研究院的工程师到高校讲课的视频,其中对计算机结构做了很清晰的讲解,十分推荐:
RISCV - 汪辰

四、推荐论坛

论坛太多了,找个时间整理一下

五、补充

1、需要资料的后台私信我
2、我在2022年期间担任声光电校园大使,收到过很多求职简历,可提供修改简历以及项目PPT
3、创作不易,给个三连啦~
4、另外还有我整理的面试常问的问题,面试前我手里就拿着这个看一看
在这里插入图片描述

相关文章:

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历,丝我即可 前言 初次接触FPGA是在2022年3月左右,正处在研二下学期,面临着暑假找工作,周围的同学大多选择了互联网,出于对互联网的裁员形势下,我选择了FPGA,对于硬件基础知识我几乎是…...

阿里云游戏服务器多少钱一个月?

阿里云游戏服务器租用价格表:4核16G服务器26元1个月、146元半年,游戏专业服务器8核32G配置90元一个月、271元3个月,阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价: 阿里云游戏服务器租用价格表 阿…...

Win32 SDK Gui编程系列之--ListView自绘OwnerDraw(续)

通过所有者绘制的列表视图(2) 所有者绘制列表视图的基础已在前一页中说明。本页将展示如何在所有者绘制列表视图中显示数据库表数据。 1、访问日志 正如在另一个页面中所述,本网站的访问日志目前是通过SQLite3数据库管理的。 以下是上述程序执行的结果。为…...

Android 应用添加系统签名权限的几种方式实现介绍

Android 应用添加系统签名权限的几种方式实现介绍 文章目录 Android 应用添加系统签名权限的几种方式实现介绍一、前言二、Android 应用添加系统签名权限的几种方式介绍1、在Android Studio添加系统签名文件2、源码编译apk添加系统签名Android.mkAndroid.bp 3、源码编译app代码…...

麒麟V10+飞腾处理器源码编译qt

1.下载qt源码 2.百度解压命令,进行解压 3.cd进文件目录 4.使用./configure命令进行配置(重点:记得看说明) Usage: configure [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>][-docdir <dir>] [-headerdir <dir&g…...

MacOS 查AirPods 电量技巧:可实现低电量提醒、自动弹窗

要怎么透过macOS 来查询AirPods 电量呢&#xff1f;当AirPods 和Mac 配对后&#xff0c;有的朋友想通过Mac来查询AirPods有多少电量&#xff0c;这个里有几个技巧&#xff0c;下面我们来介绍一下。 透过Mac 查AirPods 电量技巧 技巧1. 利用状态列上音量功能查询 如要使用此功能…...

python介绍,安装Cpython解释器,IDE工具pycharm的使用

python介绍 官方的Python解释器本质是基于C语言开发的一个软件&#xff0c;该软件的功能就是读取以py.结尾的文件内容&#xff0c;然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种C实现的解释器被称为Cpython。 python解释器的种类&#xff1a;Jython IPyth…...

服务器安装Docker (centOS)

1. 卸载旧版本的Docker&#xff08;如果有&#xff09; 首先&#xff0c;如果您的系统上安装了旧版本的Docker&#xff0c;需要将其卸载。Docker的旧版本称为docker或docker-engine。使用以下命令来卸载旧版本&#xff1a; sudo yum remove docker \ docker-client \ docker-…...

解析spritf和sscanf与模拟常用字符串函数strchr,strtok(二)

今天又来继续我们的字符串函数的文章&#xff0c;这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf strchr strchr 是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现 strchr 函数的示例&…...

备战蓝桥杯---搜索(进阶4)

话不多说&#xff0c;直接看题&#xff1a; 下面是分析&#xff1a; (ab)%c(a%cb%c)%c; (a*b)%c(a%c*b%c)%c; 因此&#xff0c;如果两个长度不一样的值%m为相同值&#xff0c;那就舍弃长的&#xff08;因为再加1位只不过是原来值*10那位值&#xff0c;因此他们得出的%m还是同…...

51单片机基础(C语言):定时器时钟

1.使用定时器 1 和LCD1602设计一个简易数字时钟。 main.c #include <REGX52.H> #include "Delay.h" #include "LCD1602.h" #include "Timer0.h"unsigned char Sec55,Min59,Hour23;void main() {LCD_Init();Timer0Init();LCD_ShowString(…...

单片机无线发射的原理剖析

目录 一、EV1527编码格式 二、OOK&ASK的简单了解 三、433MHZ 四、单片机的地址ID 五、基于STC15W104单片机实现无线通信 无线发射主要运用到了三个知识点&#xff1a;EV1527格式&#xff1b;OOk&#xff1b;433MHZ。下面我们来分别阐述&#xff1a; EV1527是数据的编…...

Redis的过期键的删除策略

我们都知道&#xff0c;Redis是key-value数据库&#xff0c;我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了&#xff0c;Redis如何处理。 过期策略通常有以下三种&#xff1a; 定时过期&#xff1a;每个设置过期时间的key都需要创建…...

放假--寒假自学版 day1(补2.5)

fread 函数&#xff1a; 今日练习 C语言面试题5道~ 1. static 有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始…...

LLM(5) | Encoder 和 Decoder 架构

LLM(5) | Encoder 和 Decoder 架构 文章目录 LLM(5) | Encoder 和 Decoder 架构0. 目的1. 概要2. encoder 和 decoder 风格的 transformer (Encoder- And Decoder-Style Transformers)原始的 transformer (The original transformer)编码器 (Encoders)解码器 (Decoders)编码器和…...

CV | Medical-SAM-Adapter论文详解及项目实现

******************************* &#x1f469;‍⚕️ 医学影像相关直达&#x1f468;‍⚕️******************************* CV | SAM在医学影像上的模型调研【20240207更新版】-CSDN博客 CV | Segment Anything论文详解及代码实现 本文主要讲解Medical-SAM-Adapter论文及项…...

C++初阶:容器(Containers)vector常用接口详解

介绍完了string类的相关内容后&#xff1a;C初阶&#xff1a;适合新手的手撕string类&#xff08;模拟实现string类&#xff09; 接下来进入新的篇章&#xff0c;容器vector介绍&#xff1a; 文章目录 1.vector的初步介绍2.vector的定义&#xff08;constructor&#xff09;3.v…...

flink写入es的参数解析

ElasticsearchSink内部使用BulkProcessor一次将一批动作(ActionRequest)发送到ES集群。在发送批量动作前&#xff0c;BulkProcessor先缓存&#xff0c;再刷新。缓存刷新的间隔&#xff0c;支持基于Action数量、基于Action大小、基于时间间隔3种策略。BulkProcessor支持在同一次…...

逆向工程:揭开科技神秘面纱的艺术

在当今这个科技飞速发展的时代&#xff0c;我们每天都在与各种电子产品、软件应用打交道。然而&#xff0c;你是否想过&#xff0c;这些看似复杂的高科技产品是如何被创造出来的&#xff1f;今天&#xff0c;我们就来探讨一下逆向工程这一神秘而又令人着迷的领域。 一、什么是…...

决策树的相关知识点

&#x1f4d5;参考&#xff1a;ysu老师课件西瓜书 1.决策树的基本概念 【决策树】&#xff1a;决策树是一种描述对样本数据进行分类的树形结构模型&#xff0c;由节点和有向边组成。其中每个内部节点表示一个属性上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff…...

系统稳定性测试利器:Roast烤机工具原理与实践指南

1. 项目概述&#xff1a;一个为“烤”而生的开源工具最近在折腾一些自动化任务时&#xff0c;发现了一个挺有意思的开源项目&#xff0c;叫sumleo/roast。光看名字&#xff0c;你可能会联想到“烤肉”&#xff0c;但在程序员的世界里&#xff0c;这个“roast”可不是让你去烧烤…...

PADS PCB设计工具的核心优势与应用实践

1. PADS PCB设计工具概述作为一名拥有十年PCB设计经验的工程师&#xff0c;我亲身体验过从Protel到Altium再到Cadence Allegro的各种EDA工具。但当我在2015年首次接触PADS时&#xff0c;它独特的"约束驱动设计"理念和高效的交互式布线引擎立刻吸引了我。PADS&#xf…...

开源AI演示文稿生成工具slide-sage:从原理到实践全解析

1. 项目概述&#xff1a;一个开源的演示文稿生成利器 如果你和我一样&#xff0c;经常需要制作技术分享、产品汇报或者教学课件&#xff0c;那你一定体会过那种面对空白PPT文档的“创作焦虑”。从构思大纲、搜集素材、设计排版到最终美化&#xff0c;一套像样的幻灯片做下来&a…...

BG3模组管理器版本兼容性终极指南:告别游戏崩溃和模组失效

BG3模组管理器版本兼容性终极指南&#xff1a;告别游戏崩溃和模组失效 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager BG3模组管理器是《博德之门3》…...

多物流机器人任务调度与路径规划【附程序】

✨ 长期致力于物流机器人、任务调度、路径规划、沙猫群算法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;栅格-拓扑双层地图建模与任务分配&#xf…...

在线教程丨单卡即可爆改,面壁智能等开源MiniCPM-V-4.6,1.3B端侧模型支持图像理解/视频理解/OCR/多轮多模态对话

过去几年&#xff0c;整个 AI 行业几乎都笼罩在 Scaling Law 的叙事之下。参数越大、训练数据越多&#xff0c;模型似乎就越接近「通用智能」。从千亿到万亿参数&#xff0c;大模型不断刷新人们对推理能力与世界知识的想象&#xff0c;也让「堆算力、卷规模」成为行业默认的发展…...

检索增强生成(RAG)实战:Spring AI 集成向量数据库实现知识问答

系列导读 你现在看到的是《Spring AI 企业级集成与场景实践:从零搭建智能应用》的第 4/10 篇,当前这篇会重点解决:从零搭建一个可工作的 RAG 系统,解决 LLM 知识陈旧和幻觉问题。 上一篇回顾:第 3 篇《对话记忆与上下文管理:Spring AI 实现多轮会话与持久化存储》主要聚…...

告别RAM焦虑:手把手教你用MicroBlaze BootLoader把大程序塞进QSPI Flash和DDR3

突破FPGA内存瓶颈&#xff1a;MicroBlaze大型程序加载实战指南 当你的MicroBlaze项目从简单的控制逻辑升级到需要文件系统、网络协议栈甚至实时操作系统时&#xff0c;代码体积的膨胀速度往往超出预期。那些曾经足够用的BRAM资源突然变得捉襟见肘——这就像试图在智能手机上运行…...

GaussDB 操作时间【玩转PB级数仓GaussDB(DWS)】

前言在使用 GaussDB DWS 进行数仓相关操作时&#xff0c;我们经常会涉及到对时间的操作&#xff0c;本文主要来讲解下有关时间操作的定义及函数格式化字符串模式描述HH一天的小时数(01-12)HH12一天的小时数(01-12)HH24一天的小时数(00-23)MI分钟(00-59)ss秒(00-59)MS毫秒(000-9…...

2026最新论文降AI攻略:实测5款高效辅助工具,查降一体与结构重构选哪个

最近看了一些行业报告&#xff0c;AI工具在写作方面的普及率真的已经超乎想象了。 很多大学生在写论文时也都习惯用AI来辅助寻找灵感、提高效率。 与此同时&#xff0c;相关部门针对人工智能写作出台了一系列规定&#xff0c;各大学术检测平台也都在不断升级AIGC检测算法。 现…...