如何学习FPGA

如何学习FPGA

掌握FPGA能找到好工作。对于有经验的工作人员来说,使用FPGA可以使设计非常灵活。掌握了FPGA设计,设计单板硬件(不是系统设计)是非常容易的,尤其是你在大学的时候,看起来就像天书的逻辑序列图一样非常亲切。但是FPGA入门比较难,因为它不像软件设计,只要有电脑,几乎所有的设计都可以完成。FPGA设计和硬件直接相关,需要真正的调试仪器,比如示波器。这些硬件设备一般都比较昂贵,这就造成了一定的入门门槛。新人在入门时会遇到一些问题或困难。因为没有调试设备,他们无法定位问题,最后可能会放弃。其实这个时候如果有人给一点建议,这个门槛就很容易过了。我用FPGA做设计已经很多年了,但是远远没有精通。我只熟悉它。在这里,我写下我对FPGA学习步骤的理解,仅供参考。如有错误,请讨论指正。

FPGA学习步骤1。工欲善其事,必先利其器。

电脑是不可或缺的。目前,Altera和xilinx是FPGA应用比较广泛的两家公司。可以选择安装quartusII或者ISE软件。这是一个必要的软件环境。硬件环境也需要下载器和目标板。虽然有人说不用下载器和目标板也可以学习FPGA,但这永远是纸上谈兵。就像谈了一个女朋友,一直在聊,打电话,连手都没牵过,你能说某人是你的朋友吗?虽然搭建硬件环境要花钱,但是想想。硬件环境最多几百块钱。如果真的掌握了FPGA的设计,起薪不仅比别人高那么多。这个成本是多少?

FPGA学习第二步:熟悉verilog语言或vhdl语言,熟练使用quartusII或ISE软件。

VHDL和verilog各有优势。选一个,推荐verilog。熟练使用设计软件,知道如何编译、模拟和下载。我不想报名一些初级阶段的培训课程,除非你很有钱或者很幸运,遇到一个高水平的培训老师,想把自己的经验分享给别人。不然训练完总觉得自己是个傻逼。初始阶段可以利用网络资源完成。

FPGA学习第三步:设计一个小代码,下载到目标板看结果。

这时候你可以设计一个最简单的程序,比如点亮一盏灯。如果灯在闪,说明你开始了。如果此时可以将flash插件下载到FPGA中,FPGA程序就可以从flash中启动了,说明你已经成功完成了FPGA最简单的设计,可以进行下一步了。

FPGA学习第四步:设计稍微复杂一点的代码,下载到目标板上看结果。

你可以设计一个UART程序,网上有参考。你应该了解RS232协议和FPGA内置的逻辑分析仪。在线下载一个串口调试助手,调试一下。如果沟通成功,恭喜你,水平提高了,进入下一步。

FPGA学习第五步:设计复杂代码,下载到目标板看结果。

比如sdram程序,网上也有参考,这个设计有点难度。可以通过串口调试sdram,将串口的数据存储在sdram中,然后回读。如果成功,你将熟悉FPGA设计。

FPGA学习第六步,设计一个高速接口,比如ddr2或者高速串行接口。

这需要对FPGA的物理特性有非常好的了解,并且要了解时序约束等设计方法,还要看大量的原始文档。这部分成功了,那么你对FPGA的物理接口有了深刻的掌握,你就是一个设计大师。

FPGA学习第七步,设计一个复杂的协议。

例如USB、PCI Express、图像编解码器等。,锻炼系统的整体把握和逻辑划分。做完这些,你就是一流高手了。

FPGA学习步骤8,学习和重新学习

不知道学什么。我只知道“学无止境,山外有山。”

目前很多FPGA工程师都没有找到合适的。我觉得很多人从一开始就误入歧途了。我也说一下新手学习FPGA设计的情况。我觉得从基础做起,基础扎实,是有可能成为大师的。

我认为FPGA学习有以下几个步骤:

第一步:学习了解FPGA的结构,FPGA是什么,芯片里有什么。不要一开始就拿个开发板按照别人的东西去编程。很多开发板写的很差,我也设计过一段时间的开发板。我觉得很大程度上,开发板是在误导孩子。不过原厂提供的正版开发板代码很优秀,可以借鉴。只有了解了FPGA的内部结构,才能理解为什么Verilog和C写的整体思路不一样。

第二步:掌握FPGA设计的流程。知道你每一步在做什么,为什么要做。很多人就是几步而已。这有什么奇怪的?呵呵,我想至少有一半人不知道合成和翻译的区别。

了解FPGA的结构和设计流程,就有可能知道如何优化设计,提高速度,减少资源。不要急躁,不要在选择哪种语言,选择哪家公司的芯片上花功夫。语言只是一种表达方式。重要的是你的想法。没有一个好的指导思想,你再好的运用语言,也只是一个懂语言的人。

第三步:开始学习代码。我建议想学代码的人去Altera或者Xilinx的网站上学习原工程师的代码。不要一开始就走入误区。

第四步:模板很重要。能否高效利用fpga资源,取决于了解FPGA的结构,了解要实现的逻辑功能和基本机制,以及使用正确的模板。FPGA内部器件类型相对单一。有了好的模板,你的逻辑就可以高效的合成为FPGA擅长表达的结构。

做FPGA主要是要有电路的想法。作为初学者,你可能不熟悉器件,所以你应该熟悉数字电路的知识。FPGA由触发器、查找表和互连线等基本结构组成。事实上,我们在代码中看到的是与非门和触发器。

不要把verilog等同于C语言,两者基本是两码事,没有可比性。

写程序的时候要想到什么样的电路,比如计数器,选择器三态门等。,理解时序和逻辑是一个跳动的事,可以在设计前期没想清楚的时候画时序图,这样思路会更清晰。另外,模拟很重要。不要写完程序就去FPGA加载。首先,模拟它,特别是对于较大的程序。想象一下你在做一个asic,没有第二次机会,一定要做好仿真。还有很多新手不知道语言学习选择vhdl还是verilog。verilog是他们的个人偏好。当然vhdl不好。反正他们写的都是电路。然后,当然不要在语言的语法上花太多功夫。verilog言简意赅,掌握assign、always、case和if else几乎可以写出90%的电路。以上是我对FPGA学习的一些拙见,希望对大家有所帮助。