FPGA该怎么学啊?
原创

FPGA该怎么学啊?

好文
试试语音读文章

热门回答:

根据提问者的描述。已经做了3年的硬件设计。想拓展提升自己。寻找出路。对FPGA比较感兴趣。但是公司没有这样的平台。该如何自学呢?

有3年的硬件设计经验。有一定的硬件基础。学习FPGA相对来说还是比较容易的。下面谈谈本人的观点。

随着科技发展。对硬件的处理能力要求越来越高。FPGA在在众多处理器当中有绝对的优势。FPGA是非常好的一个并行处理平台。只要逻辑资源允许。可以构建n个处理模块。n个软核。FPGA是一个高度集成芯片。很多模块集成到FPGA芯片上。比如DSP处理单元、片内RAM、高速收发器、微处理器、以太网等。提升自己。学习FPAG还是非常有前途的。

硬件描述语言

学习FPGA。要先学它的编程语言——硬件描述语言。有VHDL和Verilog。个人建议学习Verilog。Verilog语言和C语言比较相似。对于有C语言基础的人来说比较容易入门。而且目前市场上使用Verilog语言的人较多。编程语言就不多说了。自己购买教材。或者网上下载电子书、视频教程学习。

开发工具

比如Altera公司的的开发工具:quartus。Xilinx公司的开发工具:Vivado、ISE等。FPGA主流的两大公司就是Altera和Xilinx。占据了市场90%左右的份额。熟悉掌握使用这两家公司的开发工具以及相关芯片即可。

下图为quartus开发工具设计的原理图以及程序。


always语句。下图为下降沿触发。当wr有效。且CS=0时。将data数据写入outport。

动手实践

这是最关键的。刚看书是没多大用处的。一定要购买FPGA开发板学习。对于初学者来说。最好不要买最小系统板。要购买那种外设较多的开发板。例子较全。


把开发板的大部分例程都练习遍之后。你已经入门了。只有多做项目才能快速成长。

以上是本人观点。欢迎大家留言。一起交流学习。若想了解更多知识。请关注本头条号。谢谢~

其他观点:

1、先学习硬件描述语言。Verilog或VHDL。verilog相对简单。编程风格类似C语言。有C基础的上手快。verilog语法资料网上很多。也可以买本书看看。

2、FPGA的开发工具也是必学。任何一门语言都有自己编程环境。FPGA常用开发工具有ISE。vivado。quartus。仿真工具modelsim。

图1 VIVADO 开发工具

3、买个开发板。有一个FPGA的硬件平台是必不可少。学有所用。利用开发板熟悉FPGA的开发流程。同时开发板厂家会相应例程。便于学习。上手。

图2 开发板

4、对于懂硬件的朋友来说。也算有优势。熟悉硬件也必不可少。有助于底层代码调试。

图3 FPGA开发流程

5、最后就是参与FPGA项目。在实践中前行。历练更快。提高更多。

有一起学习FPGA的道友。多多关注。欢迎留言讨论

其他观点:

有时候。学习一样东西。需要一个思路。一个流程。进入一个陌生的领域。一个新兴的行业需要了解这个思路。这个规则。这就是行业之道。这个道。是最初创立这个行业。这项技术的一群人在一起开会讨论出来的结果。


所以。我们学习fpga的时候。先要明确。现在自己想干嘛。想要一个什么样的结果。你可能回想:“我要成为一个高手。告诉我。高高手”。啧啧啧~。先别想这么远。毕竟咱们实现民族复兴。社会主义社会。也是分阶段来的嘛。按照。流行说法。先给自己定个小目标。”学习使用fpga设计一个流水灯”。好。接下来。就要去做准备工作了。磨刀不误砍柴工嘛。准备工作主要是哪些呢。小书这里主要就以最常用的xilinx公司的zynq系列fpga介绍几种:(1)准备好开发版;(2)开发所需要的软件准备好;(3)开发所需要的资料准备好;前两项。大家一般都已经完成。主要是第三步。怎么去找资料。毕竟面对满满学海。当你一头扎进去后。若是没有目标。可能会迷失了方向。这时。大家最先想到的是就是百度了。好。百度搜索一下。怎么学习fpga。那么搜索到的答案很可能就是:“最好的资料当然就是官网上的设计文档了”。于是。你开心的打开官网。输入:??“等等。我该输入啥。这里英文该咋搜”。

当我们需要去设计一个自己不熟悉的功能的时候。从头开始设计可以说是费时费力不讨好的。这时如果有一个前人做好的相关功能设计。哪怕不是完全一样功能。但是。对于我们自己工程的开发都是有很重要的启发作用的。站在巨人的肩上。往往可以事倍功倍。因此借来下。小书就介绍一些做fpga开发。或者是做互联网相关开发。找资料的地方。

(1)Github;Github是一个开源代码托管中心。这里面可以说是汇集了全球的开源代码(不是说是最全。但是一定是最广)。

(2)淘宝;不要以为。淘宝就是用来买吃买穿的地方。淘宝也是一个很好的我们开发获取第一手资料的地方。(敢于开店铺。出售自己技术的人一定是有两把刷子的人)。在淘宝上。经常有很多店家为了推广自己的产品。给客户提供免费的开源测试代码。这些代码是经过金钱检验过的质量还是有保障的。

(3)软件本身;一个软件不仅是用来设计开发的。也是用来学习相关例程的。软件一般会对每一种ip核提供一系列设计例程。这些例程是学习掌握该ip核的最基础资料。

(4)百度;这里的百度是泛指通过百度搜索到的一系列资料。包括csdn等一些开源资料中心。这些代码质量不一定能够保证。我们参考这代码时主要学习其中的设计思路。不要求例程完全正确。

学习过程就像一篇文章。是一个总分总的结构。

一开始是总体概述(这时我们需要找到自己需要的参考资料);

然后是分点概述(我们在希望将参考资料内容化为自己的内容的时候。发现必须弄懂参考资料中没一个小知识点。才可以在上面修改出自己想要的结果);

最后又是一个总体的总结概述(我们掌握了参考资料的各个小点。重新排列组合出自己想要的结果。搭建出自己想要的工程)。

您还感兴趣的文章推荐

以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

发表评论

您的电子邮箱地址不会被公开。

评论(2)

  • 少女恶习 永久VIP 2022年12月27日 23:08:03

    开发工具,硬件,的人,语言,代码,开发板,资料,是一个,例程,淘宝

  • 独一人 永久VIP 2022年12月27日 23:08:03

    没想到大家都对FPGA该怎么学啊?感兴趣,不过这这篇解答确实也是太好了

  • 小新卖蜡笔 永久VIP 2022年12月27日 23:08:03

    根据提问者的描述。已经做了3年的硬件设计。想拓展提升自己。寻找出路。对FPGA比较感兴趣。但是公司没有这样的平台。该如何