既然是开篇,那就来闲话叨一叨FPGA吧。

掰掰指头,结识FPGA估计有5年多。作为嵌入式工程师,每天的日常充斥着ARM、DSP、操作系统、通讯、总线等耳熟能详的词汇,徜徉其中不能自拔,而这其中,自觉最来电的就是FPGA。相对于MCU/CPU开发来说,FPGA至少意味着一个词:自由。

FPGA就像一张纸,你可以画上任何你想要的形状,而MCU/CPU下的软件开发则要遵从固定的架构约定来按章办事。这是FPGA的魅力所在,但有时自由度太大也是个问题:容易失去方向。不知道有多少人和我一样,接触一段时间FPGA之后渐渐有些迷失:我到底要做什么才能变成高手?

如果是ARM开发,你可以很清晰看到一个小白慢慢打怪升级变成武林高手的路线:熟悉ARM体系架构,练习裸机编程熟记外设操作,进而进军操作系统,钻研Linux、RTOS,各种进程调度、信号量、互斥锁信手拈来,再而钻研内核、驱动、文件系统、数据结构、网络通信等等,照此路线操练不辍,假以时日,不成高手也会有小成,就像练习武术秘籍,满满都是套路。但是FPGA呢?这是张白纸,我搞清了有哪些颜料可以使用(芯片资源),掌握了画笔的使用方法(开发工具及语言),也习得一些绘画方法,作些普通画作不成问题,但为何总是觉得没有实感,望不到成为大师之路?

其实,FPGA虽然没有固定套路,但不代表没有套路,也如绘画一样,虽然你可以随意落笔自已挥洒,但往往也脱不开不同的画派风格。如果想提升技艺,如果是自己闭门练习,到一定阶段之后只是低级重复,而有一个方法可以无限逼近大师,那就是临摹。

闲话就说到这,下一篇,咱们再来说说FPGA的应用领域、方向,以及绘制一本FPGA进阶的武术套路吧!

开篇-我眼中的FPGA的更多相关文章

  1. FPGA与simulink联合实时环路系列—开篇

    FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...

  2. Altera FPGA中的pin进一步说明

    最近END china上的大神阿昏豆发表了博文 <FPGA研发之道(25)-管脚>,刚好今天拿到了新书<深入理解Altera FPGA应用设计>第一章开篇就讲pin.这里就两者 ...

  3. 基于FPGA的中值滤波算法实现

    在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...

  4. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十四:储存模块

    实验十四比起动手笔者更加注重原理,因为实验十四要讨论的东西,不是其它而是低级建模II之一的模块类,即储存模块.接触顺序语言之际,“储存”不禁让人联想到变量或者数组,结果它们好比数据的暂存空间. . i ...

  5. FPGA三段式状态机的思维陷阱

    用三段式描述状态机的好处,国内外各位大牛都已经说的很多了,大致可归为以下三点: 1.将组合逻辑和时序逻辑分开,利于综合器分析优化和程序维护; 2.更符合设计的思维习惯; 3.代码少,比一段式状态机更简 ...

  6. FPGA基础学习(9) -- 复位设计

    目录 1. 常见问题 2. 常见的复位方式 3. 合理的复位设计 3.1 复位电平 3.2 异步复位同步化 3.3 恰到好处的复位 4. 补充 4.1 所谓的上电初始化 参考文献 一开始接触到FPGA ...

  7. 一年之计在于春,2015开篇:PDF.NET SOD Ver 5.1完全开源

    前言: 自从我2014年下半年到现在的某电商公司工作后,工作太忙,一直没有写过一篇博客,甚至连14年股票市场的牛市都错过了,现在马上要过年了,而今天又是立春节气,如果再不动手,那么明年这个无春的年,也 ...

  8. ASP.NET Web API 开篇示例介绍

    ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...

  9. spring帝国-开篇

    spring简介: spring是一个开源框架,spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Dev ...

随机推荐

  1. C#仪器数据文件解析-XPS文件

    XPS为微软推出的类似于Adobe PDF的一种文件格式,个人认为XPS很好,但毕竟PDF已经被大家所熟知,因此XPS的使用很少,也少有仪器数据输出为该格式. XPS百度百科:https://baik ...

  2. eslint使用

    参考文档 http://www.cnblogs.com/hahazexia/p/6393212.html http://blog.guowenfh.com/2016/08/07/ESLint-Rule ...

  3. 执行manage.py syncdb提示Unknown command: 'syncdb'

    1. 实验环境 ubuntu14.4 + django1.9.7 2. 问题描述 在配置完数据库mysite/settings.py后,通常需要运行 python manage.py syncdb 为 ...

  4. javascript小节

      javascript 语法总结 知识概要: (1)Javascript概述 1.1javascript是什么? 1.2JavaScript语言组成 1.3JavaScript与Html的结 ...

  5. asp.net微软图表控件使用示例

    <configuration> <system.webServer> <handlers> <remove name="ChartImageHand ...

  6. Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级

    Spring bean的初始化和销毁有三种方式 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 优先级第二通过 <bean& ...

  7. 微信小程序倒计时

    今天做程序要做个限时抢购的功能如图: 先上代码: 源码 index.wxml    可根据自己实际需求改改 <view class="div-content-warp"> ...

  8. Babel运行原理

    前言     之前翻博客园的时候,看到有人朋友分享阿里巴巴的面试题,其中有一道题就是关于ES6转ES5 原理的,当时我看到感觉到自己离去阿里巴巴的路还很远啊,像我们大部分做开发的时候,都只知其然不知 ...

  9. vim搭建笔记

    在接触vim近一年后,自己的vimrc都是拼凑别人的,所以有很多插件和配置并不会使用 现在,我决定,花费一天时间,一步一步的搭建自己的vim配置! 去该网址下载安装vim http://www.vim ...

  10. Spring批量更新batchUpdate提交和Hibernate批量更新executeUpdate

    1:先看hibernate的批量更新处理. 版本背景:hibernate 5.0.8 applicationContext.xml 配置清单: <?xml version="1.0&q ...