既然是开篇,那就来闲话叨一叨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. swoole 入门

    1. 概述 Swoole是PHP的一个扩展,但是它与普通的扩展不同,普通的扩展知识提供一个库函数,而Swoole扩展在运行后会接管PHP的控制器,进入时间循环.当IO时间发生后,Swoole会自动回调 ...

  2. WebApi接口返回json,xml,text纯文本等

    [Route("api/Message/MessageList/")] [HttpGet] public HttpResponseMessage MessageList() { R ...

  3. jquery控制div随滚动条滚动效果

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery div随滚动条 ...

  4. Mybatis了解(配置)

    Mybatis是一个基于jdbc映射框架.它跟hibernate一样都是对数据库进行操作的.Mybatis 它是通过配置xml或者是注解来进行映射的配置,最后实现操作接口与pojo来操作数据库. 因此 ...

  5. Xcode插件失效以后的处理方法

    全在终端执行,依次输入如下命令 //获取DVTPlugInCompatibilityUUID字段 defaults read /Applications/Xcode.app/Contents/Info ...

  6. springMvc+hibernate的web application的构建

    闲来没事,想整理下一些知识. 这篇文章是关于spring的web程序的搭建,有什么不对的地方希望大家批评指正. 首先我们要了解什么是spring,这里可能很多大家也都明白,无非是一个管理对象的一个容器 ...

  7. C# 动态加载卸载 DLL

    我最近做的软件,需要检测dll或exe是否混淆,需要反射获得类名,这时发现,C#可以加载DLL,但不能卸载DLL.于是在网上找到一个方法,可以动态加载DLL,不使用时可以卸载. 我在写一个WPF 程序 ...

  8. Java 多线程的一些问题

    1.volatile关键字的作用 一个非常重要的问题,是每个学习.应用多线程的Java程序员都必须掌握的.理解volatile关键字的作用的前提是要理解Java内存模型,volatile关键字的作用主 ...

  9. 【ASP.NET MVC 学习笔记】- 15 Unobtrusive Ajax

    本文参考:http://www.cnblogs.com/willick/p/3418517.html 1.Unobtrusive Ajax允许我们通过 MVC 的 Help mothod 来定义 Aj ...

  10. idea配置jetty服务器,通过mvn实现

    今天想试试除了tomcat之外的另一个服务器jetty的使用: 关于项目在tomcat中的启动大概有多种,尤其是在本地环境下,ide关于tomcat的优化做的很好,但是在idea上面部署tomcat总 ...