找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5921|回复: 23
打印 上一主题 下一主题
收起左侧

FPGA学习及设计中的注意事项

  [复制链接]
回帖奖励 18 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:69352 发表于 2014-12-20 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.基础问题
  FPGA的基础就是数字电路和HDL语言,想学好FPGA的人,建议床头都有一本数字电路的书,不管是哪个版本的,这个是基础,多了解也有助于形成硬件设计的思想。 在语言方面,建议初学者学习Verilog语言,VHDL语言语法规范严格,调试起来很慢,Verilog语言容易上手,而且,一般大型企业都是用Verilog语言。
  2.EDA工具问题
  熟悉几个常用的就可以的,开发环境QuartusII ,或ISE 就可以了,这两个基本是相通的,会了哪一个,另外的那个也就很Easy了。功能仿真建议使用Modelsim ,如果你是做芯片的,就可以学学别的仿真工具,做FPGA的,Modelsim就足够了。综合工具一般用Synplify,初学先不用太关心这个,用Quartus综合就OK了。
  3.硬件设计思想问题
  对于初学者,特别是从软件转过来的,设计的程序既费资源又速度慢,而且很有可能综合不了,这就要求我们熟悉一些固定模块的写法,可综合的模块很多书上都有,语言介绍上都有,不要想当然的用软件的思想去写硬件。
  4.学习习惯问题
  FPGA学习要多练习,多仿真,signaltapII是很好的工具,可以看到每个信号的真实值,建议初学者一定要自己多动手,光看书是没用的。 关于英文文档问题,如果要学会Quartus II的所有功能,只要看它的handbook就可以了,很详细,对于IT行业的人,大部分知识来源都是英文文档,一定要耐心看,会从中收获很多的。
  5.算法问题
  做FPGA的工程师,最后一般都是专攻算法了,这些基础知识都是顺手捏来的,如果你没有做好搞理论的准备,学FPGA始终只能停留在初级阶段上。 对于初学者,数字信号处理是基础,应该好好理解,往更深的方向,不用什么都学,根据你以后从事的方向,比如说通信、图像处理,雷达、声纳、导航定位等。

  不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:61484 发表于 2015-4-14 22:20 | 只看该作者

回帖奖励 +1 黑币

学习一下
回复

使用道具 举报

板凳
ID:87432 发表于 2015-8-1 23:58 | 只看该作者

回帖奖励 +1 黑币

good 大同小异
回复

使用道具 举报

地板
ID:358187 发表于 2018-7-5 08:38 | 只看该作者
加油;
回复

使用道具 举报

5#
ID:366599 发表于 2018-7-6 23:30 | 只看该作者
刚接触,学习了
回复

使用道具 举报

6#
ID:43336 发表于 2018-11-8 14:59 | 只看该作者
好文章 值得一看
回复

使用道具 举报

7#
ID:411940 发表于 2018-11-13 16:49 | 只看该作者
感谢楼主分享,很好的教程
回复

使用道具 举报

8#
ID:425251 发表于 2018-11-14 07:41 | 只看该作者
这第五点,说起来是很深层次的意思,有没有什么指引类的书。
回复

使用道具 举报

9#
ID:472634 发表于 2019-6-21 16:43 | 只看该作者
感谢分享
回复

使用道具 举报

10#
ID:452731 发表于 2019-7-8 12:40 | 只看该作者
这个建议倒是不错,值得我们还没入门的小白参考
回复

使用道具 举报

11#
ID:541246 发表于 2019-9-5 21:55 | 只看该作者
从stm32转学FPGA,加油
回复

使用道具 举报

12#
ID:425084 发表于 2019-9-27 16:43 | 只看该作者
我现在都是画电路的,感觉画电路比Verilog难
回复

使用道具 举报

13#
ID:845573 发表于 2020-11-18 20:44 | 只看该作者
师傅领进门修行靠个人
回复

使用道具 举报

14#
ID:571541 发表于 2020-11-24 16:36 | 只看该作者
多谢楼主分享经验!
回复

使用道具 举报

15#
ID:491589 发表于 2021-12-25 17:47 | 只看该作者
楼主说得到位,需要注意这几个方面的区别。
回复

使用道具 举报

16#
ID:294886 发表于 2022-1-5 15:24 | 只看该作者
谢谢分享,为什么都是作者可见?
回复

使用道具 举报

17#
ID:474981 发表于 2022-12-7 11:31 | 只看该作者
所以FPGA学习就是数电、verilog。然后不断的看别人代码,然后写代码是吗?
回复

使用道具 举报

18#
ID:1057191 发表于 2023-1-22 20:53 | 只看该作者
我也很想学习FPGA,但是太小白了,学着痛苦
回复

使用道具 举报

19#
ID:878801 发表于 2023-2-1 16:27 | 只看该作者
FPGA学习中,谢谢
回复

使用道具 举报

20#
ID:1064792 发表于 2023-3-1 16:01 | 只看该作者
通过实际的例子更能加快学习进度
回复

使用道具 举报

21#
ID:1064792 发表于 2023-3-1 16:04 | 只看该作者
第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilog太像C了,很容易混淆,最后你会发现,你花了大量时间去区分这两种语言,而不是在学习如何使用它。当然,你思维能转得过来,也可以选verilog,毕竟在国内verilog用得比较多。

接下来,首先找本实例抄代码。抄代码的意义在于熟悉语法规则和编译器(又叫综合器),常用的集成开发环境有:Intel的Quartus、Xilinx的ISE和Vivado、Design Compiler 、Synopsys的VCS、Linux下的iverilog、Lattice的Diamond、Microchip的Libero、Synplify pro,然后再模仿着写,最后不看书也能写出来。编译完代码,就打开RTL图,看一下综合出来是什么样的电路。

HDL是硬件描述语言,突出硬件这一特点,所以要用数电的思维去思考HDL,而不是用C语言或者其它高级语言,如果不能理解这句话的,可以看《什么是硬件以及什么是软件》。在这一阶段,推荐的教材是《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》。不看书也能写出个三段式状态机就可以进入下一阶段了。

此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些语法问题的时候能查一下。
二、独立完成中小规模的数字电路设计。

现在,你可以设计一些数字电路了,像交通灯、电子琴、DDS等等,推荐的教材是《Verilog HDL应用程序设计实例精讲》。在这一阶段,你要做到的是:给你一个指标要求或者时序图,你能用HDL设计电路去实现它。这里你需要一块开发板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。还没掌握HDL之前千万不要买开发板,因为你买回来也没用。这里你没必要每次编译通过就下载代码,咱们用modelsim仿真(此外还有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通过那就不用下载了,肯定不行的。在这里先掌握简单的testbench就可以了。推荐的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。
三、掌握设计方法和设计原则。

你可能发现你综合出来的电路尽管没错,但有很多警告。这个时候,你得学会同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟等等。推荐的教材是《FPGA权威指南》、《Altera FPGA/CPLD设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果有不懂的地方可以暂时跳过,因为这部分还需要足量的实践,才能有较深刻的理解。
四、学会提高开发效率。

因为Quartus和ISE的编辑器功能太弱,影响了开发效率。所以建议使用Sublime text编辑器中代码片段的功能,以减少重复性劳动。Modelsim也是常用的仿真工具,学会TCL/TK以编写适合自己的DO文件,使得仿真变得自动化,推荐的教材是《TCL/TK入门经典》。你可能会手动备份代码,但是专业人士都是用版本控制器Git的,可以提高工作效率。文件比较器Beyond Compare也是个比较常用的工具,Git也有比较功能。此外,你也可以使用System Verilog来替代testbench,这样效率会更高一些。如果你是做IC验证的,就必须掌握System Verilog和验证方法学(UVM)。推荐的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012语法手册》。

掌握了TCL/TK之后,可以学习虚拟Jtag(ISE也有类似的工具)制作属于自己的调试工具,此外,有时间的话,最好再学个python。脚本,意味着一劳永逸。
回复

使用道具 举报

22#
ID:773324 发表于 2023-4-20 23:16 | 只看该作者
加油学吧
回复

使用道具 举报

23#
ID:1073340 发表于 2023-4-22 10:46 | 只看该作者
可以参考数字系统设计与VerilogHDL这本书进行学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表