有很多年轻人,被割裂了历史,被荒废了未来,迷茫, 迷茫到几乎绝望,不过,他们还年轻,青春尚存,还有创造力,还有奋斗的资本,其中不乏不甘心被抛弃,被覆盖之人。他们还在努力,希望把自己未来的主动权更多地掌握在自己手上学习和创造是一条和平的成功之路,但是,学什么,怎么学,怎么用,何处用 ?
有一个领域,很多人,特别是曾学习过单片机的年轻人很感兴趣这就是FPGA芯片的开发应用,但面对FPGA技术所涉及的繁杂技术,大家普遍又感觉到学起来很难,无从下手,无从突破,前景不明,缺乏信心,本帖针对FPGA或单片机的快速入门学习,介绍了一种方法:“柏氏”7步FPGA快速入门学习法,供大家参考。
“柏氏”学习法要达到两个主要目的:
1. 让初学者轻松、快速地入门
2. 与学习者探讨FPGA相关的应用和市场前景
为实现第一个目的,我们将采用“打穿插”的学习技巧,为实现第二个目的,我们与学习者漫谈又哪些可以抢先占领的行业“制高点”。
“柏氏”7步FPGA快速入门学习法共分7部分
第一到第四部分为“穿插式”入门学习部分,是为了让初学者以最短的时间实现知识、概念和心理的快速入门。这4个部分,对于FPGA和单片机的学习都适用。
第五部分至第七部分是“沙盘谈兵”式的介绍,告诉学员FPGA的特有技术优势、实现技巧和市场前景。
这七个部分分别是:
第一部分:了解下载线和JTAG
第二部分:制作最简易的开发板
第三部分:最偷懒的编程
第四部分:检验入门成果
第五部分:SOPC及实现技巧
第六部分:专业产品的开发
第七部分:个人奋斗 — 特定IP的开发
(上部: 入门篇)
FPGA入门学习网络讲座: “柏氏”7步FPGA快速入门学习法
第一部分:了解下载线与JTAG
很多人觉着学习FPGA或单片机很困难,为什么?内容太多,头绪太乱!
我们第一步的任务就是:分解和简化问题。无论是FPGA还是单片机的开发,都要涉及到三个部分组成:开发平台(计算机),下载线, 开发板(学习板)
其中
1.开发平台在开发初期并不需要下载线和开发板的支持就能立运行。
2.下载线只是在目标代码下载或运行调试时才用到
3.开发板在下载完毕后自己能够独立运行
根据以上特点,我们采用各个击破的策略去学习和分析这几个部分。
首先是最简单的下载线部分。
每个厂家的开发模式都是类似的,都有一条下载线(有些还声称带调试功能),在外观上,这些下载线很类似,事实上,它们采用的技术也确实是一样的,都是 JTAG接口。各个厂家下载线之间的区别,主要是接线位置和顺序上有所不同。
JTAG(Joint Test AcTIon Group)
从字面上就可以看出来,这个接口本来是为了方便电路板芯片之间的连接测试而搞的一套标准,现在却被广泛地用来做下载线接口。当然,电子产品的自动自我检测设计也将会是一个非常巨大的市场,我们这里先不讨论。
下载线,一般都采用10芯或14芯电缆和相应的插头(也有5芯接头),实际上,除了电源线和地线外,JTAG有四根有效信号线:这4个信号线是: TCK,TMS,TDI和TDO,其中
TCK是时钟线,为其它信号线提供操作节拍信号
TMS是状态控制线,通过这条线来控制芯片接收或读出数据的状态及状态转变
TDI,可以按照TCK的时钟节奏向芯片内输入数据
TDO,在需要时,按照TCK的时钟节奏从芯片内读出数据
JTAG接口标准中,TMS涉及到一个“状态机”的概念,有些学员可能理解起来一时有困难,不用强求,先跳过。学员只要明白在下载或运行调试时,下载线是开发平台和开发板之间的数据通道,这个通道开发平台的控制下工作,就够了,至于如何传输数据和传输的具体内容,可先不去管它。这就是所谓的“穿插式”学习的特点。
对于下载线,了解即可,了解了下载线,开发系统三部分之间的关系和相互作用也就清楚了。不多罗嗦,进入下一步:开始动手制作开发板。
FPGA入门学习网络讲座: “柏氏”7步FPGA快速入门学习法
第二部分:制作最简易的开发板
自己开始就制作开发板,不是玩笑吧?要让学员学会一种方法,抓新技术的“关键点”,FPGA芯片和单片机芯片,都是可编程的单芯片系统,这些芯片的运行或实现功能需要两个最基本的条件:
1. 电源
2. 已装载的代码
给芯片提供电源是每个电子产品共有的问题。至于目标代码的下载和运行调试控制通道,FPGA和单片机芯片都采用的是JTAG接口,要制作开发板并让其工作,就要做两方面的工作,一方面,把芯片JTAG接口的各个信号线与下载线的相应信号线相连,建立代码下载通道;另一方面,给芯片的相应的电源管脚提供所需的电源。原则上,我们只去满足开发板的最基本要求。
实际要制作开发板,有三个主要环节
1.PCB板,空电路板--现在的芯片一般都是贴片封装,需要一个相应的电路板来贴装芯片。这个实验电路板可以采用市场上销售的通用实验板,也可以自己制作,或由培训单位提供。培训时,要给学员介绍PCB线路板设计制作的主要工具软件及加工流程。
2. 电源部分
有些单片机芯片的下载线可以给芯片供电。但为了学员学习,理解和掌握,我们选择在开发板上用三端稳压块为芯片供电。关于电源的设计,模拟电源和数字电源的分离问题,接地问题,功耗等等问题。是将来电子产品设计的基础,培训时一定要让学员掌握电源的设计原则和要领,因为他们可能很少有机会学习这方面的内容。限于篇幅,本帖不展开详细说明。
3.下载和控制通道
设置一个与下载线配套的插座,把芯片JTAG接口的四个信号线TCK,TMS,TDI,TDO与下载线的相应信号线连接,同时,根据需要,把下载线与开发板的电源和地线的连接。完成以上工作后,一个简单的开发板就制作完成了。
需要说明的是,对于FPGA来讲,其中的代码,是用RAM方式存储的,掉电后就会消失。所以,除了可以通过JTGA连线下载外,FPGA的目标代码,还可以在上电后从外部存储芯片上载到FPGA芯片中。FPGA芯片设计有专门的上载电路。
为了简化设计,我们的开发板,采用的是CPLD芯片,CPLD芯片的开发方法和主要功能与FPGA相同,只是其功能简单一些(不能内嵌CPU等),但其目标代码可以存储在芯片内,方便直观。
虽然“山寨”风格的开发板很简单,但在学习的内容上,关于电源,PCB,FPGA/CPLD的异同和应用侧重等方面,教学不要漏项。记住,我们提倡的打“穿插”,是不要纠缠非关键问题,但不是说完全不理睬这些问题。所有的知识,都可以回头逐步补齐。