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

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

3天内不再提示

FPGA学习步骤是怎样的

PCB线路板打样 来源:pcb论坛网 作者:pcb论坛网 2020-01-15 16:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影。从简单的逻辑组合,到高端的图像、通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它的优点在这里无庸赘述。从个人实用角度看,对于学生,掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用fgpa可以让设计变得非常有灵活性。掌握了fpga的设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但fpga的入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。fpga的设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。

我用FPGA做设计很多年了,远达不到精通的境界,只是熟悉使用,在这里把我对fpga的学习步骤理解写出来,仅是作为一个参考,不对的地方,欢迎大家讨论和指正。

1、工欲善其事,必先利其器。

计算机必不可少。目前FPGA应用较多的是Altera和xilinx这两个公司,可以选择安装quartusII或者ISE软件。这是必备的软件环境。

硬件环境还需要下载器、目标板。虽然有人说没有下载器和目标板也可学习fpga,但那总是纸上谈兵。这就像谈女朋友, 总是嘴上说说,通个电话,连个手都没牵,能说人家是你朋友?虽说搭建硬件环境需要花费,但想想,硬件环境至多几百元钱, 你要真的掌握FPGA的设计,起薪比别人都不止高出这么多。这点花费算什么?

2、熟悉verilog语言或者vhdl语言 ,熟练使用quartusII或者ISE软件。

VHDL和verilog各有优点,选择一个,建议选择verilog。熟练使用设计软件,知道怎样编译、仿真、下载等过程。

3、设计一个小代码,下载到目标板看看结果

此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到fpga外挂的flash,fpga程序能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。

4、设计稍微复杂的代码,下载到目标板看看结果。

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

5、设计复杂的代码,下载到目标板看看结果。

譬如sdram的程序,网上也有参考,这个设计难度有点大。可用串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成功,那你就比较熟悉fpga的设计饿了

6、设计高速接口,譬如ddr2或者高速串行接口

这要对fpga的物理特性非常了解,而且要懂得是时序约束等设计方法,要看大量的原厂文档,这部分成功了,那就对fpga的物理接口掌握很深,你就是设计高手了

7、设计一个复杂的协议

譬如USB、PCIexpress、图像编解码等,锻炼对系统的整体把握和逻辑划分。完成这些,你就是一个一流的高手、

8、学习再学习

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

最近也面试了很多FPGA工程师,没找到合适,我觉得很多人从开始的时候就误入歧途了,对新手学习FPGA设计我也说一点看法吧。我认为要从基础开始做,基础牢,才有成为高手的可能。

我觉得有以下几步必须要走:

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

第二步:掌握FPGA设计的流程。了解每一步在做什么,为什么要那么做。很多人都是不就是那几步吗,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的区别吧。

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

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

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

做fpga主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,那么应该对于数字电路的知识很熟悉吧,fpga中是由触发器和查找表以及互联线等基本结构组成的,其实在我们在代码里面能够看到的就是与非门以及触发器,不要把verilog和c语言等同起来,根本就是不同的东西,没有什么可比性,在写一句程序的时候应该想到出来的是一个什么样的电路,计数器 选择器 三态门等等,理解时序,逻辑是一拍一拍的东西,在设计初期想的不是很清楚的时候可以画画时序图,这样思路会更加的清晰,还有就是仿真很重要,不要写完程序就去往fpga中去加载,首先要仿真,尤其是对比较大型一点的程序,想像自己是在做asic,是没有二次机会的,所以一定要把仿真做好,还有很多新手对于语言的学习不知道选vhdl好还是verilog好,个人偏好verilog,当然不是说vhdl不好,反正写出来的都是电路,那当然就不要在语言的语法上面花太多的功夫了,verilog 言简意赅assign always case if else 掌握这些几乎可以写出90%的电路了

责任编辑:ct

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

    关注

    4392

    文章

    23754

    浏览量

    421116
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于瑞芯微 RK3588 的 ARM 与 FPGA 交互通信实战指南

    本文围绕创龙科技研发的 TL3588-EVM 评估板,详解瑞芯微 RK3588 与 FPGA 基于 PCIe 总线的通信案例,包括 DMA 与非 DMA 两种方式。涵盖案例功能、测试流程、编译步骤
    的头像 发表于 11-04 16:09 305次阅读
    基于瑞芯微 RK3588 的 ARM 与 <b class='flag-5'>FPGA</b> 交互通信实战指南

    开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)

    1.简述 首先感谢芯来开源了蜂鸟E203 risc-v处理器,提供了比较完整的工程环境、配套的软硬件。但是配套的FPGA板卡实在太贵,对于自费学习的来说是不小的学习成本,而且我也认为完备环境
    发表于 10-31 08:46

    数据滤波算法的具体实现步骤怎样的?

    (高频电磁、瞬时脉冲等),选择适配的滤波算法并落地。以下以电能质量监测中最常用的 IIR 低通滤波(抗高频干扰)、滑动平均滤波(抗瞬时脉冲)、卡尔曼滤波(抗动态波动) 为例,详解具体实现步骤: 一、前置准备:明确滤波目标与硬件基
    的头像 发表于 10-10 16:45 476次阅读

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2655次阅读

    openstack搭建详细步骤

    openstack搭建详细步骤
    的头像 发表于 05-07 14:05 1641次阅读

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    进群免费领FPGA学习资料啦!小编整理了数字信号处理、傅里叶变换与FPGA开发等FPGA必看资料,需要的小伙伴可以加小助手(微信:elecfans123)或进 QQ 群:9135011
    发表于 04-07 16:41

    【国产FPGA入学必备】国产FPGA权威设计指南+配套FPGA图像视频教程

    》。 本书系统地介绍紫光同创FPGA的开发与应用,详细阐述FPGA开发的各个方面,从基础原理到实际应用,从设计流程到开发工具的使用,力求为读者提供一套完整的学习和参考体系。通过阅读本书,读者不仅可以掌握紫光
    发表于 02-20 15:08

    通过FPGA控制DAC5682Z, 计算得到的结果是64bit,怎样通过DAC输出?

    通过FPGA 控制DAC5682Z, 计算得到的结果是64bit,怎样通过DAC输出? 看到一个例子是通过双数据率采样(DDR),将输入的64bit数据分成4个16-bit数据输入到DAC5682的D0--D15,这样输出的结果是16位的转换结果还是64位的结果/?
    发表于 02-14 06:42

    如何优化BP神经网络的学习

    优化BP神经网络的学习率是提高模型训练效率和性能的关键步骤。以下是一些优化BP神经网络学习率的方法: 一、理解学习率的重要性 学习率决定了模
    的头像 发表于 02-12 15:51 1468次阅读

    BP神经网络的实现步骤详解

    BP神经网络的实现步骤主要包括以下几个阶段:网络初始化、前向传播、误差计算、反向传播和权重更新。以下是对这些步骤的详细解释: 一、网络初始化 确定网络结构 : 根据输入和输出数据的特性,确定
    的头像 发表于 02-12 15:50 1162次阅读

    ADS1115在配置和转换时的具体操作步骤,每一步的寄存器配置是怎样的?

    ADS1115在配置和转换时的具体操作步骤,每一步的寄存器配置是怎样的???希望能给出配置和读取数据的模块函数
    发表于 02-12 08:25

    私有云电脑,怎样成功搭建私有云电脑

        在信息时代,远程连接使我们能够在不同的地点之间建立起紧密的联系,实现资源的共享和协同工作。这次给大家介绍怎样成功搭建私有云电脑?    怎样成功搭建私有云电脑?    硬件准备,选择一台性能
    的头像 发表于 01-24 10:14 855次阅读
    私有云电脑,<b class='flag-5'>怎样</b>成功搭建私有云电脑

    基于FPGA的电子琴设计

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

    FPGA在AI方面有哪些应用

    提供了强有力的支持。 一、FPGA 在深度学习中的应用 深度学习是 AI 的重要分支,涉及海量的数据运算。FPGA 能够针对深度学习算法中的
    的头像 发表于 01-06 17:37 2167次阅读

    ADS58C48的输出给FPGA的时钟怎样产生的,是只要有输入时钟,就有输出时钟吗?

    : 1,ADS58C48如果想要实现基本的功能需要怎样配置寄存器?有没有相关FPGA配置程序可以参考一下? 2,ADS58C48的输出给FPGA的时钟怎样产生的,是只要有输入时钟,就有
    发表于 12-20 06:32