查看: 15758|回复: 33

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

  [复制链接]

该用户从未签到

发表于 2020-9-1 16:45:42 | 显示全部楼层 |阅读模式
分享到:
960x160.jpg
邀请到了“小梅哥”,参加电路城论坛第十五期大咖问答(9月1日-9月14日),为大家解答关FPGA熟悉逻辑系统设计方面的各种问题。

大咖简介:
小梅哥,本名梅雪松,武汉芯路恒科技有限公司创始人,摩尔吧入驻讲师


小梅哥主要进行FPGA、SOPC、SOC FPGA相关的视频课程讲解录制、文档教程编写、应用代码开发。热爱技术,以开发为乐趣,代表作有20讲《FPGA设计思想与验证方法》视频教程、60讲《2017年实地培训班实录》视频课程、70讲《小梅哥FPGA入门到实战特训》视频课程、17讲《小梅哥时序分析和时序约束实战》视频课程,编著有《FPGA自学笔记——设计与验证》、《SOC FPGA嵌入式设计和开发教程》两本出版书籍,并多次赴高校对师生进行FPGA、SOC FPGA技术的课程培训,其生动的授课风格受到了众多网友的喜爱。开发的全功能FPGA教学平台AC620长年稳居电商销售平台销量top1的位置。


著作:《FPGA自学笔记—设计与验证》《SoCFPGA嵌入式设计和开发教程》
未标题-2.jpg
书籍简介:
《FPGA自学笔记—设计与验证》
这本书打破了重实验现象,轻仿真验证的学习误区,书中每一个实验,无论是最基础的点亮 LED灯,还是综合的多模块数字系统设计,以及复杂的 SDRAM 控制器设计,都严格按照“设计+验证”的流程进行。 同时,本书由浅入深,全流程的讲解;首先,通过知识背景的介绍,讲解设计中需要注意的问题;接着,一步一步地根据设计需求完成设计中的每一个部分;然后,编写Testbench文件,使用ModelSim 软件对设计进行仿真验证;zui后,仿真验证通过后,再配置到 FPGA 器件中运行,如果板级运行不正确,则再回到仿真波形中查找可能的错误原因,在必要时使用板级验证工具如Signaltap Ⅱ进行板级调试。本书对于不同水平的技术人员,都是一本不错的自学和参考用书。


《SoC FPGA嵌入式设计和开发教程》
本书以Intel Cyclone v SoC FPGA系列器件为例,介绍了SoC FPGA 器件的架构特点、常用电路设计以及软硬件开发流程和开发技巧。内容编排按照开发一个基于SoC FPGA 的应用系统所需掌握的基本的知识路线展开,从基本的Linux系统操作到分析一个基础的应用系统框架,然后基于该应用系统框架,详细讲解应用系统的构建、BSP文件的生成、启动引导文件的更新、Ubuntu虚拟机安装配置、Linux内核配置与编译。接着介绍如何在嵌入式Linux系统环境下,使用虚拟地址映射的方式编写相应的应用程序来实现该应用系统中各个功能IP的编程控制和调试。最后以两个实际的例子展示如何通过HPS和FPGA的片上通信桥实现软硬件联合开发的过程,包括FPGA侧逻辑开发, IP总线封装,Linux驱动程序的编写编译,Linux应用程序的编写与运行等。
本书既可作为工程类应用、电子信息类专业本科生以及相关专业专科生的嵌入式系统基础类课程的教材,也可作为SoC FPGA自学人员以及从事SoC FPGA开发的工程技术人员的培训教材和参考用书。



本期话题:
FPGA数字逻辑系统的设计与验证技巧

本期话题讨论内容:
1,FPGA时序分析
2,FPGA时序约束
3,FPGA自学方法
4FPGA开发常见调试技巧
5,其他有关FPGA的问题

相信大家对于FPGA会有不少的问题,那么不妨带着问题进入到本期的大咖问答。


本期大咖问答提供小梅哥 AC601 EP4CE6/EP4CE10 FPGA 核心板 开发板
将在问答结束后赠予5名积极参与问答的用户朋友
22.png

大咖问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就FPGA方面的问题向小梅哥提问,请直接回帖提问。

往期《大咖问答》栏目内容:


回复

使用道具 举报

该用户从未签到

发表于 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楼回复
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-9-4 15:04:46 | 显示全部楼层
gzhsauto 发表于 2020-9-2 12:56
FPGA开发要用到什么软件?开发环境怎么搭配?要学习,总得把环境建起来,例程跑起来才能进一步学习。 ...

这些问题,其实很简单,随便找一个FPGA的教学课程,一般在前5集就都会讲到了,配置换行,开发流程这些,学习起来最好的方法就是跟着手把手教学是视频课程去操作里。例如《小梅哥FPGA设计思想与验证方法视频教程》
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-9-4 15:07:56 | 显示全部楼层
sylar.z 发表于 2020-9-3 09:45
小梅哥,您好:
关于FPGA的自学方法,我认为有一本好的教材和在开发板上跑例程熟悉是必须的。在深入学习的 ...

学习FPGA就选《FPGA自学笔记》了,有ARM基础就用不着看《SOC FPGA》了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-9-4 15:08:27 | 显示全部楼层
雪孩爱雪 发表于 2020-9-3 15:31
没啥问题,给梅哥捧个场儿

请上座,给大哥递华子
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2023-3-5 09:29
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2020-9-2 00:55:39 | 显示全部楼层
    以前还在读书得时候,总能听到FPGA得声音,FPGA在我心中占有一席之位,对FPGA仰慕已久,但是这多么年过去了,我依然只是个玩单片机的老菜鸟。这几年FPGA的声音也越来越远,只能说我从事的行业跟FPGA渐行渐远了,我希望小梅哥哥能带带我,让我投入FPGA的怀抱,求一份FPGA的学习指引,在此万分感谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-3-5 09:29
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2020-9-2 01:00:57 | 显示全部楼层
    小梅哥哥,FPGA的应用领域一般是哪些呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-3-5 09:29
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2020-9-2 01:03:31 | 显示全部楼层
    冒险往往会影响到逻辑电路的稳定性,该如何处理设计来减少毛刺的发生呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2022-4-28 09:50
  • 签到天数: 443 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2020-9-2 08:38:58 | 显示全部楼层
    作为一个FPGA的外行,很想请教一下小梅哥一个问题,请问如何设计FGGA 才能让系统跑起来后可以用上python ?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-5-11 22:48
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2020-9-2 11:34:23 | 显示全部楼层
    上学的时候喜欢FPGA,都是在学校试验箱上跑程序,奈何毕业之后没有方向,没有前人引导,不知道怎么玩FPGA,可以领开发板吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-16 16:04
  • 签到天数: 480 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2020-9-2 11:55:07 | 显示全部楼层
    请问,FPGA的编程是怎么样的?是和STM32那种直接操作库函数一样么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-16 16:04
  • 签到天数: 480 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2020-9-2 11:58:44 | 显示全部楼层
    如果使用一款FPGA进行门禁梯控或者物联网设备的设计,是不是大材小用?一般用到FPGA的话,是应用在注重算法上的产品上的吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-16 16:04
  • 签到天数: 480 天

    连续签到: 1 天

    [LV.9]以坛为家II

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

    使用道具 举报

    该用户从未签到

    发表于 2020-9-2 12:56:51 | 显示全部楼层
    FPGA开发要用到什么软件?开发环境怎么搭配?要学习,总得把环境建起来,例程跑起来才能进一步学习。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 23:14 , Processed in 0.361004 second(s), 54 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.