FPGA遐思

  • 格式:doc
  • 大小:38.00 KB
  • 文档页数:6

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芯片开发的“蚂蚁兵团”里来

估计在两三年以后,中国电子设计领域的“蚂蚁雄兵”就有能力横扫电子设计和智能产品市场。