楼主: xiaocaihong

大咖问答15期:小梅哥坐镇,在线搞定FPGA设计难题

  [复制链接]
  • TA的每日心情
    奋斗
    2023-2-21 13:43
  • 签到天数: 320 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2020-9-3 09:45:49 | 显示全部楼层
    分享到:
    小梅哥,您好:
    关于FPGA的自学方法,我认为有一本好的教材和在开发板上跑例程熟悉是必须的。在深入学习的阶段,FPGA的设计需要关注哪些要点?有什么好的设计规则或设计习惯?在实操阶段,有哪些能较容易的实现应用?
    《FPGA自学笔记—设计与验证》与《SoC FPGA嵌入式设计和开发教程》这两本书,哪一本更适合有ARM开发基础FPGA初学者。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-21 13:43
  • 签到天数: 320 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2020-9-3 09:50:07 | 显示全部楼层
    小梅哥,您好:
    现在国产FPGA与国外产品有哪些差距,在哪些级别的FPGA应用,从性能、稳定性和功耗上来说,国产的FPGA能替代国外产品。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-4-7 11:23
  • 签到天数: 27 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2020-9-3 15:31:01 | 显示全部楼层
    没啥问题,给梅哥捧个场儿
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 14:45:23 | 显示全部楼层
    Q向涵Q 发表于 2020-9-2 00:55
    以前还在读书得时候,总能听到FPGA得声音,FPGA在我心中占有一席之位,对FPGA仰慕已久,但是这多么年过去了 ...

    FPGA 学习,从我本人参加FPGA学习和后期指导学生学习FPGA的经历来看,我认为FPGA的学习内容包括以下几个要素。
    1、语法的学习,这是最基础,也是最简单的。记得我之前学习语法的时候,就是去抄书,对着把书上的一些不那么复杂的代码抄出来,然后在EDA软件(Quartus)里面编译,虽然我照着抄,但是还是会有很多手误错误,这个时候就能结合软件的报错信息,再去比对自己的代码和书本上代码的差异,快速搞清楚语法的正确用法,还能学习知道,怎样的错误,EDA软件会报出怎样的错误信息,以后自己写代码看到相应的报错,就能马上找到错误的位置了。

    2、常见开发方法的学习
    什么状态机、线性序列机、模块划分,模块间的控制信号交互,数据流的控制等等。这些可以通过相应的视频课程和课堂安排的练习去学习,去熟悉,到最后自己能够熟练的应用这些方法设计自己的逻辑。

    3、验证方法的学习
    FPGA设计,不是说把代码写出来就行了,还得保证代码能够实现想要的功能,那么如何去确保你写的代码能够实现想要的功能,那就是验证,FPGA设计中使用的最多的验证工具就是Modelsim仿真。如何正确的设计激励来测试代码,如果通过仿真的结果来发现隐藏的问题,这些都是需要扎实掌握的。验证方法的学习,无他,就是要严谨。

    4、调试方法和技巧
    没有谁能保证自己写出来的代码一写出来就是完美无缺。事实上,即使是多年经验的资深FPGA工程师,也很难做到这样,更多的时候,一个最终恰好实现功能的代码,不是写出来的,而是调出来的,怎么去调试,调试的过程有哪些方法?哪些技巧?有哪样一些工具可以借用,都是需要学习的。

    说了这么多,究竟怎么去学习呢?单项学习从理论上来说,可行,但是效果并不好,实际上,这些知识并不是独立的,而是相互关联的。所以,我个人认为学习的最好方法就是不要眼高手低,要能沉得住气,从最简单的项目着手,用心,认真的去学习,去实践,在学习实践的过程中,慢慢的积累经验。图快,想走捷径,我认为是不太可行的。

    学习资料,大家只要想学,网上能找到很多,我也录制了很多视频课程,大家可以直接在网站上学习。视频再多,如果你只是走马观花的学习,验证性学习,不愿意去动手练习,动手调试,那基本不会有任何实质的收获了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 14:51:23 | 显示全部楼层
    Q向涵Q 发表于 2020-9-2 01:00
    小梅哥哥,FPGA的应用领域一般是哪些呢

    应用领域,这个问题很容易百度得到,高大上的比如移动通信基站里面的各种设备、现在搞什么人工智能,神经网络加速计算等等。这些,对于我本人来说比较遥远,也没有从事过。贴地气一点的,每个人都有可能接触到的,比如使用FPGA做高速数据采集、图像预处理、网络交换机。也有用FPGA做多轴电机驱动、数控电源的。世界上使用FPGA用量最大的应用之一,可能就是LED点阵屏驱动了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 14:56:17 | 显示全部楼层
    独活草 发表于 2020-9-2 08:38
    作为一个FPGA的外行,很想请教一下小梅哥一个问题,请问如何设计FGGA 才能让系统跑起来后可以用上python ? ...

    FPGA的全称叫做现场可编程逻辑门阵列,其本质是一堆可以自由编程的逻辑门,能够实现的是数字电路,是硬件。而你所说的python本质是一套软件库,是运行在基于指令的CPU上的,是软件。所以要单问FPGA能不能跑python,我可以告诉你不能。但是要问为能不能想办法在FPGA上跑Python,那办法还是有的,就是在FPGA上设计一个CPU(CPU本身就是数字电路或者数模混合电路),然后再在这个CPU上跑操作系统,运行python。
    可能有很多人会说zynq fpga可以跑python,这里其实是一个偷换概念,zynq跑python,本质上还是使用的这个芯片里面的ARM CPU在跑,与这个芯片里面的FPGA没有半毛钱关系。既然题主的问题是问FPGA上跑python,我就还是狭隘的理解这里的FPGA就是指传统意义上的可编程逻辑门阵列。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 14:56:58 | 显示全部楼层
    wgtc 发表于 2020-9-2 11:34
    上学的时候喜欢FPGA,都是在学校试验箱上跑程序,奈何毕业之后没有方向,没有前人引导,不知道怎么玩FPGA, ...

    这个问题就不由我做主了,看大家的参与程度和手气了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 14:59:23 | 显示全部楼层
    yangjiaxu 发表于 2020-9-2 11:55
    请问,FPGA的编程是怎么样的?是和STM32那种直接操作库函数一样么?

    FPGA编程,写的是逻辑电路,没有什么库函数可操作,两者完全是天壤之别。FPGA开发,大部分时间都是要自己去写代码,还要进行仿真验证。虽然从编码形式上来说,也是用一种语言在写功能,但是实现的原理是完全不一样的。FPGA编程是怎么样的,建议您随便看几集FPGA开发的入门课程就能了解了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 15:03:03 | 显示全部楼层
    yangjiaxu 发表于 2020-9-2 11:58
    如果使用一款FPGA进行门禁梯控或者物联网设备的设计,是不是大材小用?一般用到FPGA的话,是应用在注重算法 ...

    FPGA属于头脑简单,四肢发达,你说用在门禁梯控,这还勉强说的过去,但是用在物联网上,就没那么合适了,物联网讲求的低功耗,灵活多变的协议支持,本身就是FPGA的短板。
    所谓算法,个人认为,FPGA是不适合去实现那些复杂度高,分支庞杂的算法的。我们所说的用FPGA实现算法有优势,一般是指FPGA在实现某些特定成熟的算法,例如FFT、FIR、矩阵运算等算法上,能够通过FPGA的结构优势对这些算法进行合理的实现,提升算法的实现效率。FPGA做算法,一般强调的是算法效率,而非算法复杂度。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-9-4 15:03:21 | 显示全部楼层
    yangjiaxu 发表于 2020-9-2 12:00
    请讲一下FPGA自学方法和FPGA开发常见调试技巧吧,感觉这种是比较有含金量的,也是值得让小白进行学习的 ...

    见1楼回复
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-14 23:52 , Processed in 0.196098 second(s), 31 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.