首页 > 代码库 > FPGA未来之路

FPGA未来之路

技术帖:青年学子的出路与FPGA芯片应用开发

    
    题外话:
    总感觉“年轻人”在字面上不准确,本人更喜欢用“年青人”
    同时又感觉“青年人”的现实处境很诡异,更像是“轻年人”
    
    
    前言:
    
    古语道: 自古英雄出少年
    
    可现在的年青人,特别是青年学子,却普遍感到很迷茫
    看不到未来,找不到方向,甚至现实也很窘迫
    为什么?
    
    
    青春的年龄,永远像春天的枝条,要发芽,要生长
    而社会的发展,却像那春夏秋冬4季的轮回
    
    青春遇到严寒,绝望中,春天来了
    青春偶遇盛夏,狂欢中,秋风到了
    世事就是如此滚动发展
    
    2010年的春天来得就晚了一些
    所以,春天会相对短暂
    
    人生各个阶段,都有特定的优势
    
    婴幼儿,是真正的学习天才,可以无师自通
    中年人,像加满油的汽车,择路狂奔
    老年人,经历过生物学意义上的一生后,在选择定位:是做神,还是做猪?
    
    而青少年,是人生的精华时期,特点是什么? 创造力!!!(包括造人)
    不过,创造力的发挥,是需要社会环境和历史机遇的
    
    牛顿的“苹果”故事,历史佳话
    哥白尼的“日心说”,“引火烧身”
    达芬奇酷爱发明,却以画家的身份传世
    这就是人类社会的特色
    
    农业革命,经过了几千年,基本完成
    工业革命,经历了几百年,新意寥寥
    只是信息革命,还远远没有满足人类对信息的渴望
    
    人类在不远的未来有几件事可以做
    正经事:信息革命
    扯淡事:国际政治
    荒唐事:战争自杀
    
    
    先说点正经事
    今天的市场上,有一种叫做“FPGA”的芯片
    有可能给中国的技术“草根”们带来一些机会。
    
    不过在介绍“FPGA”芯片之前
    
    先让我们做个回顾:
    30年前的一群美国技术“草根大师”
    也遇到了一种芯片。
    
    第一部分:微处理器芯片的故事
    
    30多年前的美国,与现在没什么不同
    资本和各行业的垄断巨头,掌控着美国社会和各行各业的方方面面。
    当时的计算机主流技术是大型机,中型机系统,主机很庞大,很“暴力”
    行业巨头是蓝色巨人的IBM,它垄断着70%以上的计算机市场
    
    有一批技术“草根”,也看好了计算机技术的未来,但只能做做技术“发烧友”
    他们别说造计算机,连用计算机的机会都不多。
    这其中就有微软的比尔盖茨和苹果的乔布斯们
    估计打死他们,他们也不会相信,有一天能灭了IBM
    
    但不可思议的是,一个小小的“微处理器”芯片和10多年的时光,使这一切成了现实。
    
    这种“微处理器”,能把原来一个机柜才装得下的CPU集成到了一个芯片里
    虽然芯片上市时,功能还很弱,但它已经使“微型计算机”成为一种技术上的可能。
    
    乔布斯,这个“草根”大师里的猛男动手了,他买来元器件,在老爹的出库里真攒出了一台微机:Apple(苹果)。
    Apple微机在市场上一鸣惊人。
    
    计算机巨头IBM也推出了一款叫“个人计算机”的微机:IBM PC。
    这款机器很经典,其硬件架构和底层软件BIOS的架构一直沿用至今(托微软的福)
    IBM PC采用的是INTEL的CPU,8086
    操作系统,竟神差鬼使地外包给了一个叫比尔盖茨的年青人
    
    这个比尔盖茨是一个商业奇才,有个公司叫微软
    比尔盖茨从别人那里买来个叫做“CP/M”的操作系统,起名叫“DOS”
    随IBM PC一起号称是免费软件一起发售(当时的软件一般是单独收费)
    
    IBM PC卖了一个铺天盖地
    IBM 随后又生产了一款带硬盘的计算机,叫IBM AT。
    用INTEL 的80286 CPU,用微软的DOS 2.0
    
    微型计算机市场如火山般爆发
    IBM很快又生产了一款采用新硬件技术“微通道”,新操作系统“OS/2”,新CPU “POWER PC”的技术性能更好的计算机投放市场
    
    结果,让微软,INTEL联合当时的山寨大王COMPAQ等,生生地用IBM AT兼容机给它阻击了回去。
    这时IBM才发现自己“很傻很天真”,至今萎靡不振
    
    微软,INTEL一战成名,从此无人能惹,联手雄霸IT行业若干年。
    
    今天,以“微处理器”为核心的微型计算机行业,也渐渐到了垂暮之年
    一场新的风暴又要刮起
    
    这次的起因,还是一个芯片,叫“FPGA”。
    
    
    第二部分:FPGA与机遇
    
    当你走进计算机卖场时,你心里想的是CPU,内存,硬盘等技术指标,推销人员却在炫耀他的主板所使用的芯片组
    一个主板能支持什么样的CPU,内存,完全取决于主板的芯片组
    这个芯片组,是在主板上起器件之间的连接和信息传输的控制作用的。
    
    FPGA芯片,就是为实现类似主板控制芯片组的功能而设计的。
    
    FPGA芯片已经问世多年了,功能强,成本高,开发应用复杂,一直是它的综合“特色”
    技术“草根”就像“青蛙王子”,FPGA成了那吃不到嘴的“天鹅”
    
    随着技术的发展,现在不同了,现在的市场上
    FPGA芯片功能更强了,可以内嵌CPU,可以实现片上系统,可以有最高性能的接口
    价格下来了,一个可以实现内嵌CPU,有高端接口的芯片才几十元人民币(几美元)
    开发平台功能更完善,使用更方便,而且免费
    
    FPGA芯片市场发生了典型的“量变到质变”的跨越。
    
    这种变化会引发几大市场变化:
    1. 以后大部分的产品都将智能化,部件也会智能化
    2. 电子产品的设计方式将发生革命性变化,可编程通用芯片将逐步替代专用芯片
    3. 电子产品会体积越来越小,结构越来越简单,价格越来越低,功能越来越强
    
    在这种技术快速更新风头浪尖上,青年人更容易找到驰骋施展的舞台。
    
    
    “自古英雄出少年”是一种不完全的说法
    还有一句是:“沧海横流,方显英雄本色”
    
    FPGA芯片技术带来了:
    成熟的元器件和技术
    方便免费的开发平台的测试手段
    便利的产品生产加工条件
    巨大的国内自有市场
    
    这些条件,对正在苦苦追寻出路的中国的青年学子们来讲
    简直是天赐良机
    能否把握,就看你们自己了!
    
    
    第三部分: FPGA的特点
    
    接口丰富,海量硬件资源,可编程设计,是FPGA芯片的主要特点。
    
    廉价,免费的开发调试平台,已有的成熟市场是FPGA占领市场的法宝。
    
    FPGA芯片的应用开发,可以说人人都有条件搞,而且起点几乎相同
    所需设备:一台电脑,免费软件,一根下载线(几十元人民币),就可以拥有全部开发手段
    前期投入:买芯片,做电路,包括买一些简单的焊接设备,应在千元以内
    易产品化:开发完成,下载到芯片上,调试通过,开发板就是产品板
    生产简单:不需要厂房,不需要生产线,不需要库房,电路板设计加工焊接都可以委托完成,一般用FPGA芯片开发出来的产品都结构简单,价廉物美。
    产品新颖,升级方便:FPGA芯片开发的产品,体积,形式,功耗上都会有显著的突破,产品的功能更新和升级可以进行简单的在线下载升级
    
    从信息终端产品,到摄像机,播放器,通讯类产品,再到家用电器控制,工业电器控制,交通工具改造等等等等,都是FPGA芯片施展身手的好地方
    特别是对传统产品的智能化改造,更能发挥FPGA接口丰富强大的比较优势。
    
    
    
    第四部分:搞FPGA开发应用的学习三部曲
    
    FPGA芯片的应用开发,需要过三关:入门关,技能关,应用关!
    
    入门关:涉及职业生涯的生死
    技能关:影响专业水平的高低
    应用关:决定市场竞争的成败
    
    从难度上来讲,入门最难,应用次之,技能学习最简单
    
    无论是自学还是参加培训,都可以按照入门,技能,应用这三步走的流程进行。
    技能和应用的学习实践可以采用多周期盘旋提高的方式。
    
    1. 入门学习的注意事项:
    
    能否入门直接决定了学员能不能从事这个职业
    出师未捷身先死的“杯具”很多很多。
    
    入门阶段最大的风险是:徘徊老死在门槛之外。
    学习FPGA的开发应用,这种风险更大,因为FPGA是多重门槛。
    
    FPGA芯片的开发应用,涉及到的知识面多点广,往往还是跨专业或边缘性的技术
    每一个方面的知识可能都很复杂或深奥,若没有很好的学习策略和掌控取舍能力
    这些知识点就成了学习者一个个或一串串的陷阱。
    还有,高速发展的技术和急剧变化的市场也不允许学习者去慢慢地“十年寒窗”
    
    对很多人来讲,面对陌生的知识领域和较高的实践能力要求
    如果不能快速突破动手关和心理关,可能就会长期停留在入门阶段。
    
    
    入门学习分两大部分:知识与动手
    
    正如前面所讲的,FPGA芯片的功能几乎可以涵盖整个电子设计的方方面面,涉及的知识自然也是非常广泛。
    如
    FPGA芯片可以软硬兼顾,那学员的知识就要软硬兼修
    FPGA芯片的优势是可编程,那学员就要了解编程原理和开发平台
    FPGA芯片的特点是接口丰富,学员就应知道一些接口的基本知识
    FPGA芯片可以构成片上系统,这里面要涉及计算机硬件架构和软件平台架构两大领域。
    
    如此众多的知识如果逐一去慢慢地深钻细究,那就是拖到猴年马月也不一定学完。
    
    如何快速入门?
    这里可以举个例子作为启发:
    很多人会组装电脑,也知道电脑显卡有AGP,PCI,PCIe等等多种接口。
    
    如果你只是组装电脑,用电脑,你可以不去细究各种接口的电气标准和逻辑规范
    如果你是要设计显卡,就完全不同了
    这是一个比较难把握的度的问题
    初学者往往把握不好取舍深浅,结果几个接口名词就把他搞死在中关村的大街上了
    
    
    又有谁能对FPGA芯片所涉及的领域都胸有成竹呢?
    这个引路人很重要
    
    入门阶段的培训要领是:
    知识面不要有盲区,盲区可能就是学员将来职业的“禁区”或“雷区”
    根据学员情况和开发需要,对不同知识培训的深浅疏细
    养成知识和应用互相映射促进的思维习惯
    一定要具备动手能力
    
    FPGA芯片技术涉及的知识包括:
    软件,硬件,接口,开发平台,计算机架构,开放软件平台,仿真测试工具,PCB设计加工,JTAG等。
    单单这些科目的名称就足以让很多学员大脑处于“阻塞”状态
    要让学员把各个知识点有机地联系到并建立一个完整的概念
    绝不能靠照本宣科。
    
    有些人选择自学,更要注意方式方法。自学是成为大师的一个捷径,前提是你有基础和潜质
    
    除知识学习外,动手能力对于FPGA芯片的开发应用来讲更重要
    
    可以这么说:
    如果学员不能亲手做出一个自己的“开发板”,就谈不上是什么“入门”
    注意,这里说的是“开发板”,而不是“学习板”
    
    具有最基本的“动手开发能力”与建立全面的知识概念一样重要。
    
    在培养“动手开发能力”的同时,要对学员的心理能力进行培养并帮助建立初步的职业自信。
    
    
    入门培训的开发板制作学习队不同基础的学员要有很强的针对性。
    可以设定了三种不同的开发任务,分别针对不同基础特点的学员。
    
    各个任务的总体难度相当,均采用CPLD芯片,CPLD芯片的开发流程和FPGA芯片是相同的,但不需要“芯片上电配置”。
    
    第一类学员:有单片机开发基础的学员
    设计一个电路,该电路用几个控制信号对几路数据通道进行控制。
    采用XILINX的开发平台和CPLD芯片,用语言编程方式设计 
    主要建立学员已有知识和FPGA技术的关联
    
    第二类学员:有编程基础但硬件知识比较陌生的学员
    开发一个芯片,在指定的管脚之间实现要求的逻辑关系,并多次重复,实现不同的逻辑
    采用XILINX的开发平台和CPLD芯片,通过语言编程的方法开发
    主要解决编程人员对硬件的技术和心理入门。
    
    第三类学员:有基础硬件知识的学员
    通过原理图输入的方法,设计一个对多位数据的逻辑变换
    采用ALTERA的开发平台及CPLD芯片,
    主要是让学员了解开发平台的使用和电路设计软硬相通的道理。
    
    以上三组开发实验,都从电路板的原理设计开始,经过PCB设计,电源设置,JTAG设置,贴片芯片的简单焊接技巧和工具,开发平台的基本使用,设计/编程,编译,综合,下载,调试等全部流程。
    完成的电路板可以供学员日后反复把玩理解,并作为职业生涯的处女作留作纪念。
    
    开发板制作不要求实现太复杂的功能,要让学员全面了解和掌握整个开发过程,而且要注意与学员现有知识和能力的有效衔接。
    
    入门学习以后,学员如果再通过自学或培训来提高自己的各方面的知识和能力,就会容易很多,在未来的工作中,也会对自己的知识面和实践能力有一定的自信。
    
    
    2. 技能学习阶段的注意事项
    
    在完成了入门阶段的学习特别是入门开发板的制作后,学员已经对所涉及知识和工具的构成范围及轻重缓急有了一个比较客观的了解和掌握。
    
    技能阶段的学习,就是要对下一步要从事的开发工作中,可能要涉及到的知识和技能进行全面深入地学习和实践。
    
    技能阶段的学习建议采用“预设路经”的方法去逐步推进。
    什么叫预设路经? 就是按照一个特定的学习实践顺序去学,而不要采用大水漫灌的方式。
    
    例如:将来的任何产品可能都是智能化的,而FPGA芯片实现智能化的方法是建造片上系统。
    
    片上系统的最终应用离不开三个方面:硬件架构,软件,接口
    你可以根据自己的喜好来设计学习路径(学习顺序)
    第一种路径:先学习设计软件,再根据软件运行的需要去搭建必要的硬件架构。
    第二种路径:可以先搞个通用的系统架构再去完成软件
    第三种路径:先验证和确认特定接口的功能的可行性和适用性以后,在根据需要完成软硬件系统的搭建。
    
    如果你是带着应用设想来学习的,很可能就会选择第三种路径。
    预设路径的方法可以避免学习时,胡子眉毛一把抓
    另外,有人喜欢先打实基础,步步为营。有人直接喜欢贴近目标,边用边学
    
    技能学习的总量比较大,范围很宽,即使参加培训,也不可能面面俱到,只能集中学习开发平台和通用技术如SOPC等等,建议主要靠自己学习,自学能力是基本功。
    
    培训机构与学员之间,要建立网络沟通讨论平台和渠道。
    
    知识,实践,应用,三者结合起来,对感兴趣的知识领域进行重点突击,效果可能会更好。
    
    
    3. 应用产品开发阶段的学习
    
    FPGA芯片的开发应用的学习目的就是产品开发,无论是在入门阶段还是在技能学习阶段,都应该主动探索所学知识,所知技术,已有器件的实际应用可能
    
    特别是技能阶段的学习,最好能与实用开发穿插进行。
    
    有些人也许喜欢通过培训,学习产品开发的思路和技巧,但主要还是靠自己。
    培训最好以特定应用领域的产品开发实例为具体内容,如视频显示或数据处理等
    
    产品开发主要是学习一种思维方式和研究方法。
    如如何了解特定应用专业的知识,如何确定FPGA芯片与专业应用的功能边界,如何设计专业器件与FPGA的硬件接口及信息接口,如何实现专业信息的处理,以及如何根据市场发展去确定和改进产品方案的竞争力等。
    
    如果是搞已有产品的替代性开发,还要熟悉现有产品的操作界面及操作使用特点和习惯等。
    
    如本贴谈到过的微软,INTEL联手其它厂商阻击IBM新机器的例子,就是充分利用了用户的操作习惯及存量资源的依赖惯性等因素。
    
    兼容问题,对后来者永远是一个不能忽视的“大”的问题。
    
    FPGA芯片应用开发的学习过程,也是一个“入行”的过程
    不一定非要把所有的FPGA知识与技能都学会以后才开始产品开发
    只需具备了“必要”的“知识”或者“认识”后,就应积极地开始尝试进入实战阶段。
    
    “大师”是干出来的。
    
    
    第五部分:开发协作
    
    与“微处理器”芯片一个产品走进千家万户不同,FPGA芯片开发的产品具有品种繁多,领域广泛,批量大小不一,大公司专家大师可能在开发单一产品上优势比较明显,但总体说来,更适合“蚂蚁兵团”的特点
    
    这类离散性特别强的产品及市场,不是一两个垄断巨头就能够全面掌控操纵得了的,所以FPGA芯片的开发应用技术将有开放性很强的市场特点。
    
    FPGA,这种一个人就可以完成的产品开发也许会让很多IT巨头很被动。
    微软太软是它的软肋,INTEL太硬是它的硬伤
    即使微软INTEL合并起来,也没有能力垄断和控制市场。
    
    能摆脱资本和寡头的控制,是一件多么让人惬意的事情
    
    中国,有着许多“独特”的总体竞争优势:
    
    1. 中国压抑了多少年的个人创造力可能会爆发
    2. “蚂蚁兵团”的开发模式很适合中国的现状和人员特点
    3. 充足的后备人员
    4. 现成的市场,宽厚的用户
    
    FPGA芯片技术的开发应用,在早期可能会有一个相对缓慢的认识摸索的过程,但不久的将来,一场雪崩式的发展局面必将到来。
    
    在初期,数量不多的先行者应该负起责任,多横向协作,分别快速培养各自的开发团队,积极与现有的各种产业结合,由离散的点发展到成片的面,再无孔不入地向立体空间扩展。
    
    中国的人力优势,智力优势和市场优势最终会聚合成整体的竞争优势
    不再继续做市场末端的血汗奴隶,而成为把握产业发展方向的突击兵团
    
    笔者已经选定了一个方向并储备了一个方向,准备建立几个协作小组,与相关行业及企业配合,形成以点带面,厂研结合的发展格局
    
    这一个方向是视频应用,特别是广播电视专业音视频领域的应用,因为部分产品涉及到高带宽数据流的传输控制问题,储备方向是高带宽数据信息的“交换控制”
    
    说明一下:FPGA芯片在专业视频接口,图像处理等方面的能力和成本是极具市场竞争力的。FPGA芯片间T数量级的数据带宽也是很钓人胃口的。
    
    
    在进行开发合作的同时,在精力允许的情况下,利用春夏之际,或许搞几期短期的“初级入门短训班”,封闭式地,短平快地突击培养一批种子学员,让他们带领更多的人加入到FPGA芯片开发的“蚂蚁兵团”里来
    
    估计在两三年以后,中国电子设计领域的“蚂蚁雄兵”就有能力横扫电子设计和智能产品市场。
    
    对青年学子来讲,搞FPGA芯片技术开发应用有两大有利条件:
    
    1. 可以避开跨国集团的垄断和拦截,缺乏可控制环节
    2. 无需政府参与
    
    只要没人捣乱,中国人就能把可做成的事,做得很好