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

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

3天内不再提示

FPGA初学者的入门之道

汽车玩家 来源: FPGA技术联盟 作者:默宸 2020-03-15 17:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

很多FPGA初学者,都会怀疑学习FPGA有没有前途,发展前景怎么样,到底该怎样学习FPGA???各种迷茫,导致无法踏踏实实、全身心投入FPGA学习与开发工作中。下面请看看一个死磕FPGA 15年的大神给大家的肺腑之言,相信看完之后的你不在徘徊、不再犹豫、能够勇往直前。

作为一个从事了15年FPGA行业的大龄工程师。期间接也触过一些项目管理和技术支持之类的工作,但总觉得自己更适合死磕技术。在FPGA的领域找到未来的指引。”

做FPGA不只是写写代码

“FPGA作为数字系统的主角儿,经过近20年的突飞猛进发展,大家都明白这个领域的工程师对经验是非常看重的,属于典型的入门简单,若要精深就很难,做FPGA开发不只是会写写verilog和VHDL代码这么简单,而是要设计芯片,如果按照芯片的设计要求,才能提高自身的能力。”

“硬件开发语言是用来设计芯片的,而数字芯片也就是0/1的翻转,HDL能够逐渐映射出一个个与非门、触发器、存储器,以及他们之间的时序关系,时时刻刻考虑怎样设计才能保证面积小、延迟低。功能做对了还要考虑时序优化,即使功能设计的再完美,代码写的再简洁,设计的时候没有考虑时序,一切都是花架子、空摆设。”

FPGA是数字系统的主角

“FPGA逐渐从粘合逻辑转变为系统级角色。开始的时候主要用于做接口、做通信,也就是偏向硬件。如此,最基本的接口协议便很重要,不懂接口协议FPGA就是孤家寡人,没有数据的交互,什么都干不了,故一个成熟的FPGA工程师不是熟悉FPGA就好。”

后来,FPGA开始逐渐用来做做算法、做控制,如果要用FPGA做算法,还需要学习更高级的语言做仿真和验证,更重要的是要把算法映射到FPGA的硬件资源或者外设,并基于速度、面积和功能做平衡,做优化。还是挺有挑战呢。

现在,随着人工智能机器视觉的崛起,FPGA更加偏向系统级设计,有了软件算法的异构,能够替代GPUCPU”.

所以,已经在路上的不用回头,也许你面前沟沟坎坎很难走,甚至有一堵墙遮光蔽日,但是,前途是绝对光明的。

01、FPGA入门之道

对于新手学习FPGA设计,要从基础开始做,基础牢,才有成为高手的可能。

以下几步是初学者必须要踏实走过的:

step 1:

了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程。只有了解了FPGA内部的结构才能明白为什么写Verilog和写C整体思路是不一样的。

step2:

了解了FPGA的结构和设计流程才有可能知道怎么去优化设计,提高速度,减少资源,不要急躁,不要再为选择什么语言和选择哪个公司的芯片上下功夫。语言只是一种表达的方式,重要的是你的思维模式,没有好的指导思想,语言用得再好,不过是个懂语言的人。

step3:

开始学习代码了。一定要系统的,由浅入深的去学习FPGA。

step4:

template很重要。能不能高效利用fpga资源,一是了解fpga结构,二是了解欲实现的逻辑功能和基本机构,三是使用正确的模板。FPGA内部器件种类相对较单一,用好模板,你的逻辑才能被高效的综合成FPGA擅长表达的结构。

做fpga主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,但对于数字电路的知识应该很熟悉,fpga中是由触发器和查找表以及互联线等基本结构组成的,其实我们在代码里面能够看到的就是与非门以及触发器,切记不要把verilog和c语言等同起来,没有什么可比性,根本就是不同的东西,在写一句FPGA程序的时候应该想到出来的是一个什么样的电路,计数器,选择器 ,三态门等等,理解时序,逻辑是一拍一拍的东西,如果在设计初期想的不是很清楚,可以先画画时序图,这样思路会更加的清晰。

仿真很重要,不要写完程序就去往fpga中去加载,首先要仿真,尤其是对较大型的程序,想像自己是在做asic,是没有第二次机会的,所以一定要把仿真做好。

很多新手对于语言的学习不知道选vhdl好还是verilog好,个人偏好verilog,当然不是说vhdl不好,反正写出来的都是电路,那当然就不要在语言的语法上面花太多的功夫了,verilog 言简意赅assign always case if else 掌握这些几乎可以写出90%的电路了。

02、FPGA设计者需修炼的5项基本功

成为一名说得过去的FPGA设计者,需要练好5项基本功:仿真、综合、时序分析、调试、验证。练好这5项基本功,与用好相应的EDA工具是同一过程,对应关系如下:

仿真:Modelsim, Quartus II(Simulator Tool) riple,ISim

综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner),ISE,Vivado

时序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner),ISE,Vivado

调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor),Chipscope

验证:Modelsim, Quartus II(Test Bench Template Writer)

掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于整个FPGA设计流程中,与FPGA设计的5项基本功是相辅相成的。对于FPGA设计者来说,用好“HDL语言的可综合子集”可以完成FPGA设计50%的工作——设计编码。用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调试验证。

练好仿真、综合、时序分析这3项基本功,对于学习“HDL语言的可综合子集”有如下帮助:

通过仿真,可以观察HDL语言在FPGA中的逻辑行为。

通过综合,可以观察HDL语言在FPGA中的物理实现形式。

通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。

搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性。

全面的仿真验证可以减少FPGA硬件调试的工作量。

把硬件调试与仿真验证方法结合起来,用调试解决仿真未验证的问题,用仿真保证已经解决的问题不在调试中再现,可以建立一个回归验证流程,有助于FPGA设计项目的维护。

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

    关注

    1655

    文章

    22283

    浏览量

    630177
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    学习物联网怎么入门?

    的相关书籍和视频进行学习。也可以通过参加线下班、工作坊和实践活动来学习。不同的学习方式适合不同的人群,初学者可以根据自己的实际情况选择适合自己的学习方式。   第三,进行实践操作是入门学习物联网
    发表于 10-14 10:34

    C语言入门(硬件嵌入式那种不是APP开发的)

    C语言入门(硬件嵌入式那种不是APP开发的),有没有对初学者很友好的书籍、视频等资料推荐一下,一直以来看了正dian原子、野火等的视频、文档结果从快要入门到放气,然后再从放气到快要入门
    发表于 09-27 12:03

    如何对FX3进行编程以便通过USB 3.0从FPGA -> FX3 -> PC传输RGB888视频?

    我想为我的应用程序编程 FX3,其中 FX3 将从 FPGA 接受 RGB888 视频并通过 USB 3.0 将其传输到 PC。 任何支持文章、博客或相关应用说明。 由于我是 FX3 环境的初学者,因此需要这方面的指导。
    发表于 08-11 08:15

    避雷!树莓派初学者常犯的5个错误!

    如果你刚刚入手树莓派,你就会知道它潜力无穷,几乎能实现你想到的任何功能。然而,这种自由也让你可能在不知不觉中做出对系统有害的操作。在本文中,我将介绍要避免犯哪些错误。初学者最常犯的错误包括:损坏SD
    的头像 发表于 07-22 17:16 859次阅读
    避雷!树莓派<b class='flag-5'>初学者</b>常犯的5个错误!

    射频设计入门之S参数

    射频设计是一个复杂而深奥的领域,对于初学者来说,往往不知道从哪里入手。然而,有时候,一个简单的起点就能为我们打开通往知识的大门。今天,我们就来聊聊为什么射频入门可以从S参数开始。
    的头像 发表于 06-13 10:47 2001次阅读
    射频设计<b class='flag-5'>入门</b>之S参数

    【经验分享】玩转FPGA串口通信:从“幻觉调试”到代码解析

    FPGA开发,思路先行!玩FPGA板子,读代码是基本功!尤其对从C语言转战FPGA的“宝贝们”来说,适应流水线(pipeline)编程可能需要点时间。上篇点灯代码解读了基础,而如果能亲手写出串口通讯代码,恭喜你,
    的头像 发表于 06-05 08:05 874次阅读
    【经验分享】玩转<b class='flag-5'>FPGA</b>串口通信:从“幻觉调试”到代码解析

    AI端侧部署案例(SC171开发套件V3)

    AI端侧部署案例(SC171开发套件V3) 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 初学者入门手写数字识别案例 20分02秒 https://t.elecfans.com
    发表于 04-16 18:33

    从单片机初学者迈向单片机工程师

    从单片机初学者迈向单片机工程师,对初学者非常适用。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 04-15 14:06

    linux初学者,用这样的开发板合适吗?

    这款是深圳市九鼎创展科技有限公司的全志A40I开发板,适合linux初学者吗? 先用开发板调试,调试成功后,就可以单独用核心板,再配合自己做的底板就可以做产品了。 做核心板还是难度太大了,开发周期太长,直接用核心板。稳定靠谱
    发表于 04-10 11:11

    12V开关电源制作_适合初学者制作的TOP22X系列开关电源

    TOP22X系列虽然出来得比较早,但外围简单、高效,适合初学者制作。图下面的是量产的真实数据。变压器都是PC40材质。同样适合100KHZ的其它芯片驱动的单端反激式开关电源 需要完整版资料可下载附件查看哦!
    发表于 04-02 14:39

    51单片机经典入门教程(非常棒的教程)

    【前言】 适合初学者入门级教程。 本文作者提示:本教程乃最通俗易懂之单片机教材,如果您还是看不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 03-28 15:05

    Redis实战笔记

    《 2024最新Redis 实战笔记》,这份笔记对 Redis 的相关知识做了系统全面的介绍,还是PDF版本,可自由复制,特别适合 Redis 初学者快速入门和提高。   本笔记适合人群:前半部分适合 Redis 初学者快速
    的头像 发表于 02-09 09:12 625次阅读
    Redis实战笔记

    基于FPGA的电子琴设计

    在之前也出了几篇源码系列,基本上都是一些小设计,源码系列主要就会想通过实操训练让各位学习者,尤其是初学者去更好的理解学习FPGA,或者给要的学生提供一些源码,之前设计过各个芯片的配置等,之后笔者会通
    的头像 发表于 01-20 14:07 1243次阅读
    基于<b class='flag-5'>FPGA</b>的电子琴设计

    EE-269:以太网802.3初学者指南

    电子发烧友网站提供《EE-269:以太网802.3初学者指南.pdf》资料免费下载
    发表于 01-05 09:48 1次下载
    EE-269:以太网802.3<b class='flag-5'>初学者</b>指南

    XD08M3232红外感应单片机开发板适合初学者吗?

    XD08M3232是一款国产8位高性能Flash的接近感应单片机,具有较大的内存、恒流驱动电路、内置运算放大器和模拟比较器等特点。对于初学者来说,选择合适的开发板是非常重要的,因为它将直接影响
    发表于 12-07 14:55