0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么说学好FPGA,首先要掌握HDL

lPCU_elecfans 来源:互联网 作者:佚名 2018-05-28 09:09 次阅读

入门首先要掌握HDL(HDL=verilog+VHDL)

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

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

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

此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些语法问题的时候能查一下。

独立完成中小规模的数字电路设计

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

掌握设计方法和设计原则

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

学会提高开发效率

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

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

增强理论基础

这个时候,你已经会使用FPGA了,但是还有很多事情做不了(比如,FIR滤波器、PID算法、OFDM等),因为理论没学好。我大概地分几个方向供大家参考,后面跟的是要掌握的理论课。

1、信号处理——信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理

2、接口应用——如:UART、SPI、IIC、USBCAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort

3、无线通信——信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码

4、CPU设计——计算机组成原理、单片机、计算机体系结构、编译原理

5、仪器仪表——模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用

6、控制系统——自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用

7、压缩、编码、加密——数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理

现在你发现,原来FPGA会涉及到那么多知识,你可以选一个感兴趣的方向,但是工作中很有可能用到其中几个方向的知识,所以理论还是学得越多越好。如果你要更上一层,数学和英语是不可避免的。

学无止境

能到这个境界,说明你已经很厉害了,但是还有很多东西要学的,因为FPGA常常要跟CPU交互,也就是说你得经常跟软件工程师交流,所以也得懂点软件方面的知识。比如ARM(Xilinx的ZYNQ和Altera的SOC会用到ARM的硬核,请参考本博客的《如何学习嵌入式软件》)、DSPLinux、安卓、上位机(QT、C#JAVA)都可以学一下,反正学无止境的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21669

    浏览量

    601872

原文标题:教你学好FPGA,轻松快速实现工程梦

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    学好FPGA掌握的五项基本功

    明确,才能积极主动地参与到工程项目中来。 掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于整个
    发表于 02-28 14:04

    学好FPGA,轻松快速实现工程梦

    1入门首先要掌握HDLHDL=verilog+VHDL)第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilo
    发表于 07-16 16:36

    选对方法学习FPGA,快速实现你的工程梦

    入门首先要掌握HDLHDL=verilog+VHDL)
    发表于 05-16 07:00

    教你学好FPGA,轻松快速实现工程梦

    `1.入门首先要掌握HDLHDL=verilog+VHDL)第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为veri
    发表于 07-21 14:45

    fpga需要哪些基础

    fpga需要哪些基础,一、入门首先要掌握HDLHDL=verilog+VHDL)。第一句话是:还没学数电的先学数电。然后你可以选择ver
    发表于 07-16 08:10

    怎样去学习FPGA

    一、入门首先要掌握HDLHDL=verilog+VHDL)。第一句话是:还没学数电的先学数电。然后你可以选择verilog或者...
    发表于 07-19 06:16

    你能够出电路板上那些小元件叫做什么,又有什么作用吗?

    电子技术、无线电维修及SMT电子制造工艺技术绝不是一门容易学好、短时间内就能够掌握的学科。这门学科所涉及的方方面面很多,各方面又相互联系,作为初学者,首先要在整体上了解、初步掌握它。无
    发表于 07-27 06:48

    数码相机充电电池使用首先要注意的地方

    数码相机充电电池使用首先要注意的地方 1,买来的新电池是否有电呢?分两种情况,如果是普通的镍氢电池,买来是没
    发表于 11-04 16:41 873次阅读

    学习FPGA 首先要知道哪些

    开始了第一个独立项目的研制,FPGA选型当然是已经固定了,我就围着这款FPGA给他添油加醋,希望能让他满足我所有的设计需求,有了原理图,后来又出了PCB,和ME的人给他设计了外壳,装上了实验平台开始
    发表于 05-10 13:49 4466次阅读
    学习<b class='flag-5'>FPGA</b> <b class='flag-5'>首先要</b>知道哪些

    如何学好FPGA

    如何学好FPGA呢,很多人很困惑,多数停留在基础位置徘徊,我就这方面问题给大家谈几点自己的看法。 1.基础问题 FPGA的基础就是数字电路和HDL语言,想
    发表于 02-23 15:09 564次阅读

    使用pwm波形发生器 首先要掌握以下知识

    波形发生器在生活中有诸多应用,不过对于波形发生器,大家并非均有所了解。此外,波形发生器种类较多,无法在短时间内全部掌握。本文中,将为大家讲解pwm波形发生器,并着重解释这款波形发生器工作原理。
    发表于 01-28 17:45 5184次阅读
    使用pwm波形发生器 <b class='flag-5'>首先要</b><b class='flag-5'>掌握</b>以下知识

    学习单片机编程首先要学什么

    学习单片机编程,首先要学习基本的模拟电路和数字电路知识。掌握常用电子器件的工作原理和使用方法。
    的头像 发表于 01-05 09:23 1w次阅读
    学习单片机编程<b class='flag-5'>首先要</b>学什么

    城市交通控制系统发展 首先要了解这三个因素

    控制系统发展至今已经有151年了,1980年我们国内的研发刚起步,在经历了跟踪、引进、消化、吸收和创新这一历程,我们与国外技术基本处在同一个水平上。要了解控制系统,首先要知道控制系统的这三个要素。
    的头像 发表于 03-11 09:06 3116次阅读

    元器件的布局首先要考虑的一个因素是什么?

    高速系统中的接地和互连线上的传输延迟时间也是在系统设计时首先要考虑的因素。信号线上的传输时间对总的系统速度影响很大,特别是对高速的ECL电路,虽然集成电路块本身速度很高,但由于在底板上用普通的互连
    的头像 发表于 06-30 11:02 3621次阅读

    PLC编程首先要干什么?

    首先要做的是整理该项目所用到的所有传感器,执行单元,对着电气图纸给这些元器件命名,电气图纸上如果有的,基本上按照电气原理图所画的命名,分配用处,搞明白他的作用。和他的使用注意事项,最好包括到后来在现场的安装位置,根据P&ID图纸标注。
    的头像 发表于 06-10 10:28 2272次阅读