想学 fpga 开发该怎么入门?

news/2024/4/16 1:02:19/文章来源:https://blog.csdn.net/FPGA_IC/article/details/136499111

个人根据自己的一些心得总结一下fpga 需要掌握的基础知识,希望对你有帮助。

知识点:

1、数电(必须掌握的基础),然后进阶学模电,

2、掌握HDL(verilog或VHDL)一般建议先学verilog,然后可以学System Verilog和VHDL。

3、掌握FPGA设计流程/原理(推荐教材:FPGA权威指南、Altera FPGA/CPLD设计、IP核芯志-数字逻辑设计思想、静态时序分析、嵌入式逻辑分析仪等)。

4、器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系)。

5、开发工具(熟练Synplify,Quartus,ISE,Modelsim等)。

6、常用的协议(ARP协议、udp协议、SPI、AXI总线等等)够用就行,

另外根据工作领域在选择专业知识:

比如:通信——通信原理、移动通信基础、信号与系统、数字信号处理......

比如:CPU——计算机组成原理、计算机体系结构、编译原理.......

7、具备具体项目经验(独立的做些中小规模的设计,比如:像交通灯、电子琴、DDS等......)。

书籍推荐4本就够:

1、Verilog数字系统设计教程

这本书Verilog HDL语法讲的比较完整,适合作为语法工具书使用,第一部分讲述了Verilog HDL的基本语法,Verilog HDL运算符大部分与C语言是相同的,需要注意的有拼接符和缩减符。选择语句与C含义基本一致,Verilog HDL含有四种循环语句,但是只有for循环可以综合成电路,for循环的含义与C语言有本质区别,具体可以查看之前写的一篇文章去理解Verilog中for循环的含义。而always,assign,begin…end这些是Verilog最常用的,也是比较简单的。对于系统函数只需要有印象即可,因为这些都只能用于测试文件的编写,都是不可以综合成电路的。

第二部分主讲数字电路中加法器,数据选择器,状态机等常用器件Verilog HDL的描述方法,以及对阻塞赋值与非阻塞赋值这些概念进行更加详细的讲解。最后会有对risc的CPU进行设计的介绍。

2、手把手教你学FPGA设计:基于大道至简的至简设计法

这本书是潘老师进行编写的,主要通过讲解以计数器,状态机,FIFO为架构去实现uart,SCCB,SPI,SDRAM,UDP等模块的设计,以及模块接口设计。

做过FPGA的都知道,80%左右的设计都可以通过计数器、状态机、FIFO或者RAM去实现,讲解这几种结构的设计的书有很多,之所以推荐这一本是因为本书的设计思想以及计数器和状态机与其他书都有所区别。关注计数器无非在于其初始值是多少,什么时候加一,什么时候计数结束这三个问题。状态机很多书上也都只是对传统的一段式,二段式,三段式进行对比讲解,而本书总结出四段式。后面两章通过从模块划分,到各个模块内部实现,调试,最终实现两个案例。

注意计数器,状态机,FIFO并不是我们最终目的,架构都是为输出信号服务。实现同一种功能往往可以使用不同架构,根据难度选择合适的架构,这是需要多加练习的。

3、FPGA原理和结构

前面两本一本讲语法,一本讲计数器,状态机,FIFO这些架构的应用,这本书就是用来讲解FPGA的结构以及组成的,全书很少有代码,。

这本书更像一本介绍FPGA原理的科普书,读着就像读小说,写的很好,而且与现在主流的FPGA技术有结合,非常适合初学者。对FPGA的基本结构详细了解是很有必要的,前期不想直接看数据手册时,可以看看这本书,这本书还对altera和xilinx设计流程,工具以及原理进行了介绍。

4、FPGA设计实战演练(高级技巧篇)

本书建议在进阶时使用,主要以quartus讲解时序约束,快慢时钟域下数据传输,全局复位,面积与速度优化,可综合设计讲解。

现代FPGA的结构越来越复杂,多时钟域的设计现在已是常态。对于功能电路来说,复位结构都必不可少。在同步逻辑设计中如何很好地处理异步复位,甚至在多时钟域之间传递(异步)复位信号也是逻辑工程师经常面临的挑战。本书除专门介绍了上述电路的设计方法外,还介绍了状态机的设计。在介绍这些通用电路结构的基础上,还介绍了代码优化以及如何对设计进行综合与布局布线优化方面的相关内容。但是不建议初学者阅读。

当然这些只能自己摸索着学习,难度可能比较大,

课程推荐:

宸极教育FPGA培训,标准化课程体系,课程融合项目、融合应用、融合方法,理论+实操+项目,A+级课程交付。

课程易学,易懂,5年课程经验,深入浅出让学员学得懂、学得快、学得精。

帮助学员不走弯路,从入门、调试技巧、基础接口端;深入涵盖SoC,高速接口,具体项目应用;甚至触及到深处的AI级应用、算法级应用层面。

全日制线下面授+线上就业班,下线学习地点广东、重庆、成都可选,并推荐就业。

这里有一个入口:​FPGA学习资料免费领!

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟器抓HTTP/S的包时如何绕过单向证书校验(XP框架)

模拟器抓HTTP/S的包时如何绕过单向证书校验(XP框架) 逍遥模拟器无法激活XP框架来绕过单向的证书校验,如下图: ​​ 解决办法: 安装JustMePlush.apk安装Just Trust Me.apk安装RE管理器.apk安装Xposedinstaller_逍遥64位…

局域网管理工具

每个组织的业务运营方法都是独一无二的,其网络基础设施也是如此,由于随着超融合基础设施等新计算技术的发展,局域网变得越来越复杂,因此局域网管理也应该如此,组织需要量身定制的局域网管理解决方案,这些解…

Go程序是如何编译并运行起来的(图文详解)

Go程序是如何编译的 从hello RdrB1te开始 package main import "fmt" func main() { fmt.Println("hello RdrB1te") }不实际编译它,只输出它的编译过程: go build -n简单的编译过程分析: 上面的过程确认了两个…

Python Module level import not at top of file (E402)

Python Module level import not at top of file 引言正文 引言 这里给大家简单介绍一下当我们使用 Pycharm 编译器时遇到的 Python Module level import not at top of file 提醒。 正文 请看下图: 这时就会提示我们这个信息,并且 import 下面会出…

vulhub中ThinkPHP5 SQL注入漏洞 敏感信息泄露

漏洞原理 传入的某参数在绑定编译指令的时候又没有安全处理,预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式,在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码 启动后,访问http://your-ip/index.php?ids[]1&ids[]2…

AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

本文介绍了厦门笛卡尔数据(AmzTrends)在面临数据存储挑战时,选择将其数据分析服务迁移到 TiDB Serverless 的思路和实践。通过全托管的数据库服务,AmzTrends 实现了全局成本降低 80% 的效果,同时也充分展示了 TiDB Ser…

全面剖析一下ThreadLocal

什么是ThreadLocal? ThreadLocal英文翻译过来就是:线程本地量,它其实是一种线程的隔离机制,保障了多线程环境下对于共享变量访问的安全性。 看到上面的定义之后,那么问题就来了,ThreadLocal是如何解决共享…

6020一拖二快充线:手机充电的革命性创新

在快节奏的现代生活中,手机已不仅仅是一个通讯工具,更是我们工作、学习和娱乐的得力助手。然而,手机的电量问题一直是困扰着我们的难题。为了解决这个问题,市场上出现了一种名为“一拖二快充线”的充电设备,它不仅具备…

为国产信创服务器提供LDAP统一身份认证方案

金融信创作为 8 大行业信创之首,早已成为其他行业信创建设的参考。金融行业有着极为复杂的业务场景,对系统有着极高的稳定可靠需求,因此,在寻找微软 AD 国产化替代方案时,常会涉及到更深层次的场景。例如,最…

蜜罐HFish的使用介绍

名词解释 蜜罐 :技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务 或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获 和分析,了解攻击方所使用的工具与方法,推…

【深度学习笔记】计算机视觉——目标检测和边界框

目标检测和边界框 前面的章节(例如 sec_alexnet— sec_googlenet)介绍了各种图像分类模型。 在图像分类任务中,我们假设图像中只有一个主要物体对象,我们只关注如何识别其类别。 然而,很多时候图像里有多个我们感兴趣…

Uniapp ios 真机调试

Uniapp ios 真机调试 1.下载爱思助手 下载链接: 链接 二、 添加IPA文件: 三、添加AppleID: 三,将签名的 IPA 文件 迁移到 HBuilderX安装目录\plugins\launcher\base (1)将 iPhone_base.ipa 改成 iP…

day52(vueJS)json-server模拟数据

json-server介绍:::JSON Server 是一个用于快速搭建 REST API 的工具,它可以帮助我们在开发过程中快速模拟 一个后端 API 服务器,方便前端开发人员进行接口调试和开发。使用 JSON Server,你可以通过创建一个…

【应用多元统计分析】--多元数据的直观表示(R语言作图)

例1.2 为了研究全国31个省、市、自治区2018年城镇居民生活消费的分布规律,根据调查资料做区域消费类型划分。 指标: 食品x1:人均食品支出(元/人) 衣着x2:人均衣着商品支出(元/人) 居住x3:人均居住支出(元/人) 生活x4…

吼!原来教师这样发布学生成绩,轻松没烦恼

在教育的日常工作中,发布学生成绩往往是一项繁琐而重要的任务。教师们需要确保每位学生及家长能准确、及时地了解到学习成果。然而,传统的纸质成绩单或逐个通知的方式不仅耗时耗力,还容易出错。那么,有没有一种方法能够让教师们轻…

Docker基础教程 - 2 Docker安装

更好的阅读体验:点这里 ( www.doubibiji.com ) 2 Docker安装 Docker 的官网地址:https://www.docker.com/,在官网可以找到 Docker Engine 的安装步骤。 下面进行 Docker 环境的安装,正常情况下 Docker …

大数据核心技术概论

大数据核心技术概述 大数据基石三大论文:GFS(Hadoop HDFS)、BigTable(Apache HBase)、MapReduce(Hadoop MapReduce)。 搜索引擎的核心任务:一是数据采集,也就是网页的爬…

Linux学习笔记——基本操作命令

目录 一、Shell 命令基础1、Shell 简介2、Shell 命令格式3、显示系统信息命令4、Shell 使用技巧 二、Linux 文件及目录管理1、Linux操作系统的目录结构2、文件及目录显示类命令3、文件及目录操作类命令4、文件内容的显示和处理5、文件查找类命令 三、vi、vim 编辑器的使用四、文…

【Linux】文件操作

文章目录 预备知识C语言文件接口fopen()函数w方式a方法 fwrite()fprintf()fputs()fread()fgets()标准输入输出流 系统调用接口标志位文件权限fclose()write()read() 前言:本文探讨的是“打开的”文件。 预备知识 如进程一样,文件 文件属性 文件内容文…

xinput1_3.dll丢失都有什么办法可以有效的解决、xinput1_3.dll导致游戏不能启动怎么办?

使用电脑的过程中是不是会遇到关于某个dll文件丢失的提示,今天想和大家聊的是xinput1_3.dll文件,如果电脑提示xinput1_3.dll丢失有什么办法可以有效的解决,解决办法都有哪些,如果xinput1_3.dll丢失会对电脑有什么影响。&#xff0…