热门回答:
根据提问者的描述。已经做了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等一些开源资料中心。这些代码质量不一定能够保证。我们参考这代码时主要学习其中的设计思路。不要求例程完全正确。
学习过程就像一篇文章。是一个总分总的结构。
一开始是总体概述(这时我们需要找到自己需要的参考资料);
然后是分点概述(我们在希望将参考资料内容化为自己的内容的时候。发现必须弄懂参考资料中没一个小知识点。才可以在上面修改出自己想要的结果);
最后又是一个总体的总结概述(我们掌握了参考资料的各个小点。重新排列组合出自己想要的结果。搭建出自己想要的工程)。
您还感兴趣的文章推荐以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.wangchuang8.com/206936.html,转载请说明来源于:网创推广网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系进行处理。分享目的仅供大家学习与参考,不代表本站立场。
评论(2)
开发工具,硬件,的人,语言,代码,开发板,资料,是一个,例程,淘宝
没想到大家都对FPGA该怎么学啊?感兴趣,不过这这篇解答确实也是太好了
根据提问者的描述。已经做了3年的硬件设计。想拓展提升自己。寻找出路。对FPGA比较感兴趣。但是公司没有这样的平台。该如何