当前位置: 首页 > 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…...

MBPFan技术解析:MacBook在Linux环境下的智能散热控制机制

MBPFan技术解析&#xff1a;MacBook在Linux环境下的智能散热控制机制 【免费下载链接】mbpfan 项目地址: https://gitcode.com/gh_mirrors/mb/mbpfan 在Linux系统上使用MacBook的用户经常面临散热管理的技术挑战&#xff0c;系统原生的温度控制策略往往无法充分发挥苹果…...

从GitHub开源项目到一键部署:OFA模型在星图平台的快速落地

从GitHub开源项目到一键部署&#xff1a;OFA模型在星图平台的快速落地 1. 引言 你是不是也遇到过这种情况&#xff1f;在GitHub上看到一个特别酷的AI项目&#xff0c;比如OFA这种能看图说话、理解多模态信息的模型&#xff0c;心里痒痒的想立刻上手试试。结果呢&#xff0c;光…...

国产操作系统安全实战:用银河麒麟KYSEC防护关键文件的5种典型场景

国产操作系统安全实战&#xff1a;银河麒麟KYSEC防护关键文件的5种典型场景 在数字化转型浪潮中&#xff0c;企业核心数据资产的安全防护已成为技术团队的头等大事。想象一下&#xff1a;财务系统的敏感账目被误删、研发代码遭恶意篡改、数据库凭证意外泄露...这些场景轻则造成…...

Llama-3.2V-11B-cot效果实测:同一张图不同提问下的CoT推理路径对比分析

Llama-3.2V-11B-cot效果实测&#xff1a;同一张图不同提问下的CoT推理路径对比分析 1. 工具概览与测试目标 Llama-3.2V-11B-cot是基于Meta多模态大模型开发的专业视觉推理工具&#xff0c;特别针对双卡4090环境进行了深度优化。本次测试将聚焦其核心功能——Chain of Thought…...

HunyuanVideo-Foley部署案例:混合精度(FP16/AMP)推理性能实测报告

HunyuanVideo-Foley部署案例&#xff1a;混合精度&#xff08;FP16/AMP&#xff09;推理性能实测报告 1. 测试环境与配置 1.1 硬件配置 显卡&#xff1a;RTX 4090D 24GB显存&#xff08;驱动550.90.07&#xff09;CPU&#xff1a;10核心处理器内存&#xff1a;120GB DDR4存储…...

C++ 智能指针的底层实现逻辑

C智能指针的底层实现逻辑揭秘 在C开发中&#xff0c;内存管理一直是程序员需要谨慎处理的难题。传统裸指针容易导致内存泄漏、悬垂指针等问题&#xff0c;而智能指针通过自动化资源管理&#xff0c;显著提升了代码的安全性和可维护性。那么&#xff0c;智能指针是如何在底层实…...

Windows系统卡顿?一招禁用Microsoft Compatibility Telemetry释放CPU资源(附详细截图)

Windows系统卡顿终极解决方案&#xff1a;彻底禁用Microsoft Compatibility Telemetry 最近帮朋友处理一台老笔记本时&#xff0c;遇到了典型的Windows系统卡顿问题——风扇狂转、程序响应迟缓&#xff0c;任务管理器里一个叫"Microsoft Compatibility Telemetry"的进…...

OpenClaw与nanobot镜像结合:打造个人AI研究助手全流程

OpenClaw与nanobot镜像结合&#xff1a;打造个人AI研究助手全流程 1. 为什么需要个人AI研究助手&#xff1f; 作为一名经常需要阅读大量论文的研究者&#xff0c;我发现自己每天要重复处理许多机械性工作&#xff1a;在多个学术平台检索最新文献、下载PDF并分类存储、提取关键…...

避坑指南:S-Function参数传递中mxArray操作的3个典型错误

S-Function开发实战&#xff1a;mxArray参数传递的3大陷阱与防御性编程技巧 在Simulink的S-Function开发中&#xff0c;mxArray作为MATLAB与C/C之间的数据桥梁&#xff0c;其正确操作直接关系到模块的稳定性和可靠性。许多开发者在参数传递环节频繁遭遇段错误、内存泄漏和类型误…...

CANoe实战:手把手教你用J1939.dbc发送超8字节长帧报文(附完整CAPL代码)

CANoe实战&#xff1a;J1939长帧报文分包发送全解析与CAPL代码优化 在汽车电子开发领域&#xff0c;J1939协议作为商用车通信标准&#xff0c;其长帧报文处理一直是工程师面临的典型挑战。当数据长度超过CAN总线单帧8字节限制时&#xff0c;如何高效实现分包传输&#xff1f;本…...