学习FPGA的过程中,要想踏上一步台阶,需要注意一下几点:

  • 时序约束的原因和使用方法,能熟练正确的应用最基本的时钟周期约束,时序例外约束,异步时钟域约束,同步复位的约束,高扇出约束。

  • 清楚FPGA芯片内部时钟资源分布,能够知道自己的逻辑和约束能否让编译器用比较优化的走线布局布线。

  • 清楚内部嵌入式硬核的分布和合理使用。

  • 懂得常见的异步时钟域正确传输的常见方法:握手信号,异步FIFO,同步器。

  • 能看懂时序报告里面基本的一些参数。

欲穷千里目,更上一层楼!

FPGA学习是无止境的。对于更高端的学习,可以归纳如下:

  • 对FPGA所有常用时序约束和时序例外约束,包括逻辑锁定的方法都能正确使用。

  • 能够跟据时序报告做出合理的改进时序的方案。

  • 清楚各种时序优化方案的大概极限。

  • 能够在FPGA平台上实现一些复杂算法:比如PID调节,FFT变化,FIR滤波器,神经网络等等。

  • 对大规模,大吞吐量的逻辑设计能够在需求输入的时候有一个大概的总体方案,大致要能够一下想到时钟方案,复位方案,高速接口方案这些该怎么做,或者能不能做到。

总之,高阶教程会让人离FPGA更远,把FPGA最为一个底层平台去实现一些抽象高深的理论。其实不管是CPU还是FPGA都是工具,工具里面的算法实现才是最重要的。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


学习FPGA,踏上一步台阶的更多相关文章

  1. 上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地

    长期以来很多新入群的菜鸟们总 是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习 FPGA,总是急于求成. ...

  2. 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

    初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...

  3. 上一步是硬件描述语言,下一步是FPGA

    上一步是硬件描述语言,下一步是FPGA. 学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续. 世上没有捷径,每一步都得踏踏实实的走.学习FPGA也是这样,在有了硬件描述语言的基 ...

  4. 踏上Salesforce的学习之路(一)

    相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...

  5. 个人学习FPGA的初步过程

    对于FPGA,完全是从零开始学习,简单讲述一下我个人学习FPGA的经历吧: 没有开发板的日子.说真的要我掏腰包买开发板觉得是一件非常奢侈的事情.理由1:现成的东西,背后影藏诸多诡异的事情我们是无法体会 ...

  6. 我如何踏上IT路

    第一次开技术博客,第一篇博文就聊聊自己是如何走上IT这条路的.一直听人说"搞IT的"颇含贬低色彩,也有IT前辈奉劝不要轻易踏上这条路,但最终我这个本是化学化工专业的门外汉还是义无反 ...

  7. 《FPGA全程进阶---实战演练》第一章之如何学习FPGA

    对于很多初学者,大部分都是急于求成,熟不知越是急于求成,最终越是学无所成,到头来两手空空,要学好FPGA,必须弄懂FPGA本质的一些内容. 1.FPGA内部结构及基本原理 FPGA是可以编程的,必须通 ...

  8. 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))

    需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/stdcoutzyx/article/details/41596663 说明:图文并茂,言简意赅. 自今年七月份 ...

  9. 作为刚開始学习的人应该怎样来学习FPGA

    FPGA作为一种高新的技术.已经逐渐普及到了各行各业.不管是消费类.通信类.电子行业都无处不在它的身影,从1985年第一颗FPGA诞生至 今,FPGA已经历了将近20多个年头,从当初的几百个门电路到如 ...

随机推荐

  1. Java Web中Kaptcha实现验证码

    首先进行导入相应的jar包: 1.如果是maven项目,在你的pom文件中进行添加如下代码,将自动下载jar包到你的工程中: <dependency>            <gro ...

  2. MongoHelper.cs

    using System; using MongoDB.Bson; using MongoDB; using System.Web; using MongoDB.Driver; namespace Y ...

  3. gzip压缩解压缩

    压缩/解压缩压缩/解压缩之后的文件名称 必须是gz 解压缩

  4. 20165202 学习基础和c语言基础调查

    你有什么技能比大多人(超过90%以上)更好? 我对自行车运动的兴趣始于初中时期,不敢说比大多数人更好,但在业余爱好者中相对来说还不错. 针对这个技能的获取你有什么成功的经验? 接触自行车运动几年里,我 ...

  5. tomcat的安装和配置

    本人java开发的菜鸟工程师,这几天学习了tomcat的安装和使用,终于在今天运行成功. 一.tomcat的安装 1.tomcat下载网址:http://tomcat.apache.org/ 2.打开 ...

  6. linux系统编程-进程

    进程 现实生活中 在很多的场景中的事情都是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的: 如下是一段视频,迈克杰克逊的一段视频: http://v.youku.com ...

  7. IOS开发 CocoaPods 使用 pod Install 出现 Updating local specs repositories

    pod install 换成pod install --verbose --no-repo-update这个命令,前面的命令被墙了

  8. artDialog的使用

    用法一:github上下载包:https://github.com/aui/artDialog                seajs方法使用 <!doctype html> <h ...

  9. 套接字中的recv与send的注意事项

    recv() 特征* 如果连接的另一端断开连接,则recv立即返回空子串* recv是从接受缓冲区取出内容,当缓冲区为空则阻塞* recv如果一次接受不完缓冲区内容,下次会继续接收 send() 特征 ...

  10. python 生成器推导式与列表推导式的区别

    生成器表达式现用现生成,列表推导式一次性生成静态数据 L = [2, 3, 5, 7] L2 = (x**2+1 for x in L) it = iter(L2) print(next(it)) L ...