FPGA入门——初学建议

在这里插入图片描述
今天开始和大家一起学习FPGA设计,首先,我自己有一定的FPGA设计基础,目前也从事FPGA的设计工作,但自己在FPGA高端应用方面还没有什么涉及太多,例如大数据、云计算、人工智能、深度学习等等,也许自己涉及的领域不够开阔或者知识还不够牢固,
所以这个系列博客是想和大家分享个人见解和基础知识的同时,也加深自己对逻辑设计的理解,活到老学到老,希望自己和大家都能够坚持下来✌✌,最后肯定会有收获。

先吹哈牛

毕业后自己从事的是硬件设计和layout,接触到一点FPGA相关硬件,对FPGA产生了一点兴趣,当时身边没有熟悉的人从事FPGA工作,只是了解到逻辑设计都是数字电路,也不知道从哪里开始入手,在网上看了很多教程,大部分都是从verilog语言开始讲的,说实话,那时候对这个语言并不感冒,看一会就没有积极性了,或者说是三分钟热度,估计大部分初学者都是这样的感受🤭🤭,再后来出于生活所迫,必须得多赚点钱,当时自己硬件水平不高,去中兴,华为人家也应该不要,就看FPGA工资比自己当时工资高出好多倍,哈哈哈。。。。,于是下定了决心,过段时间换工作,自己就开始偷偷的学FPGA,这里并不是鼓励硬件工程师跳槽哈。。。。

言归正传

这里的入门学习过程是本人真实入门过程,没有开始就做一些小设计例如流水灯什么的,而是先从基础知识开始入手。

1. 啃一遍数字电路

FPGA设计主要是以数字电路为主,所以建议在学习FPGA之前,首先把大学数字电路的书从头到尾看一遍,哪个出版社的都可以,只是出版社不同,其内容几乎是相同的。

看数电过程并不是让你把书中的内容应用在FPGA设计上,而是让你有一个好的数字电路思维,这个很重要,真正做FPGA之后你就能体会到这个点。

这里提一下,看书过程很枯燥,特别是这种技术相关书籍,全是各种器和各种门,但门又不是陈老师提供的那些,那些看了肯定不枯燥,,,,扯远了,看书枯燥看不进去的时候,可以采取这种方式,记笔记,不是全记,捡自己觉得比较重要的记,这个记笔记也许不能保证你以后会看记的内容,但能够帮助你坚持把书看完,或者这个过程叫做抄书,只是个人方法,推荐尝试。

2. 熟悉开发流程

入门时候开发流程就是怎么建立工程,编码,仿真,下载和在线调试,相信我这部分你半天时间就搞定里,包括你安装软件。

在建立自己的第一个工程之前,要先选择好自己的设计平台,主流FPGA就是两家,Intel Altera和AMD Xilinx,如果自己有开发板,就选择开发板对应厂家的,如果没有就先跑仿真,这两家选择哪家都可以,不过现在Xilinx的用的比较多。

选择Intel Altera装QuartusII13.0和Modelsim10.4,选择Xilinx装Vivado2019.1,Vivado自带的仿真工具还是挺好用的,这几个版本用着比较稳定,另外可以装个文本编辑器Notepad++,或者UltraEdit,写Verilog都差不多。

QuartusII13.0 网盘链接:https://pan.baidu.com/s/1BMBmWky9XeGeW9xnLbv9-Q
提取码:o2xx

Modelsim10.4 网盘链接:https://pan.baidu.com/s/1JCLMfK8EecB-unxd-bQLrw
提取码:e3da

Vivado2019.1 网盘链接:https://pan.baidu.com/s/1IHDFGXtrsf2JvyH24RvxBQ
提取码:9xu7

Notepad++ 网盘链接:https://pan.baidu.com/s/134LMLLa4K5TGiCiVB06tPg
提取码:ma5r

UltraEdit 网盘链接:https://pan.baidu.com/s/17hLQaWFfopTWjn-y4m_c9w
提取码:tg3g

软件共享链接永久有效

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
软件安装好后需要对软件破解,Quartus和Modelsim需要破解,Vivado2019.1是已经破解好了的。

环境搭建好之后,建立自己的第一个FPGA设计工程,写个加法器、计数器或者LED灯,几行代码,综合一下,通过无错误,那么就可以开始后续的FPGA设计了✌✌✌✌✌

工程综合通过之后,如果有开发板,就可以下载到板子上试一下,约束FPGA时钟输入和输出引脚,然后实现和布局布线,下载在线调试,看看灯亮不亮,如果灯亮了,OK!!你已经入门了(●ˇ∀ˇ●)

如果没有板子,就在电脑上运行功能仿真,看看输出结果是否和预期的一样。

整个过程下来,你对FPGA的开发流程基本就熟悉了,肯定会遇到些小问题,有可能综合报错,有可能软件报错,有可能下载失败,有可能不能运行等等,这些都是你加深印象和提高你解决问题能力的过程,要珍惜这样的体验和感觉,当然这些都是小问题,最后你都会解决掉。

这里希望大家能够养成仿真的习惯,在用心仔细写完逻辑代码后,争取在综合之前做到零语法错误,这样能够提高自己的编码能力和思维,然后自己写一个testbench激励,验证代码的功能是否正确。包括以后做大项目的时候,最好对工程中的每个模块都进行功能仿真,另外激励最好能够足够全面的将写的模块进行测试,也就是功能仿真的覆盖率越高越好,比如输入错误,或者复位错误的情况业要考虑在内。

3. 抄代码

熟悉了开发流程之后,需要养成良好的设计习惯,比如编码规范,工程管理,设计验证流程,版本记录等,我之前是不知道写什么模块,就看了本《自己动手写CPU》,正好里边也有代码,就从头开始跟着做,抄代码,虽然当时对里面内容没有完全理解,但锻炼了自己的编码能力,大家可以找个写得好的或者大的公司(例如华为或者中兴)出的书籍或规范来约束自己,前期抄的时候显得很笨拙,慢慢会越来越顺畅,等养成习惯形成自己的风格后就会很轻松,自己看着别人开着都舒服。

这一套下来,你就知道自己该做什么,怎么去做,也有了自己的目标,因为这个过程中也在不停的查资料,解决问题。

建议就这么多,如果有什么问题可以评论区提出,看见我会回复,谢谢!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yi_dianxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值