fpga技术调研报告

2022-09-20

在我们的学习与生活中,根据自身的需求,编写出格式正确、逻辑合理的报告,已经成为生活与学习的常见流程。该怎么样写出适合自身工作实际的报告?下面是小编为大家整理的《fpga技术调研报告》,供需要的小伙伴们查阅,希望能够帮助到大家。

第一篇:fpga技术调研报告

基于fpga的四路抢答器课程设计报告

一、课题设计的基础和实验条件

1.工作基础

(1)数字电路,模拟电路的学习;对所需使用的芯片管脚及

功能的了解;掌握了基本的数字电路设计流程。

(2)学会使用MAX+PLUS 软件设计数字电路;

了解EDA实验开发系统。

2.实验条件

(1)提供有目标芯片:FPGA-型号EP7128SLC84-15的实验开发系统、数码显示器、二极管、三极管、钮子开关;

(2)电路设计器件:

AND

4、NOT、D触发器等

二、设计目标

1. 4人抢答器(四名选手分别为:R1,R2,R3,R4);

2. 主持人启动及复位开关HT;

3. 七段显示码显示选手的编号;

4. 抢答器具有“互锁”功能; 三 设计电路图及仿真

该设计属于较为复杂的中小规模数字系统设计,按照系统的功能要求和自顶向下的层次化设计思想,该抢答器可以分为三个模块,他们分别为:抢答器控制模块——IN,该模块用于控制选手及主持人的动作;编码模块——qiwei,用于将选手的编号编码以便用数码管显示输出;

(1)抢答器控制模块IN的设计:

该模块在任意一位选手首先按下抢答键后,其输出高电平给D锁存器,并将输出结果送至编码器qiwei, 该模块的主持人按键HOST按钮可以实现系统的复位。其原理图为:

选手的输出信号发出之后,需要把输出转换为数字,故需要加一个七位译码器。(2)七位译码器的设计:

通过编程定义生成了一个七位译码器:

生成此七位译码器的程序如下:

(3)生成完整设计图:

两个模块进行连接即得到最终的实验电路图:

(4)设计图的仿真:

对设计的电路进行仿真得到仿真图如下:

从仿真结果可以看出符合功能要求。

(5)连接引脚图:

根据设计图选择适当的引脚连接得到下图的引脚图

连接完引脚图后,通过PROGRAMER即可通过开发板来进行调试验证。最终通过多次的调试与验证,终于完成了实验。

四 心得体会:

本次实践我认为完成的比较艰辛,首先在上第一节课的时候,听老师讲到这门课程设计需要学到一些先修课程。但是单片机,PLC,FPGA我之前都没学过,而且之前学的数电和模电也很多知识都有些记不清了。所以觉得特别慌,于是在第一节课后就在课下看老师给的参考资料。开始的时候觉得好多都不懂完全不明白讲的是什么。后来在找了一些视频之后对FPGA和MAX+PLUS平台有了一定的了解。 后来又在选择电路的设计之前我认真复习了《数字电子技术》,对试验中涉及到的器件进行了重点复习;而且认真学习了《MAX+PLUS11操作指南》,后来在实验室开放后每天都去做实验调试。最终能够熟练地使用该软件完成中小规模的集成电路。虽然准备了不少,而且也自觉还是挺认真尽力的,但是之前的课程学的不好还是挺伤的,对于一些复杂的设计还是有挺多不太懂的,只能参考网上查到的资料去理解。

从开始做到成功共尝试过三个项目,第一个比较简单算是熟悉软件。本来是希望做好一个流水灯的但是后来发现输出电路太复杂,经过多次调试始终在仿真时打不到自己的要求,被迫作罢。最后选择做4位抢答器,设计图画出来并没有花费太多时间,但是调试真是花了大量的时间,因为开发板的接线经常会出现一些接触不良,导致即使仿真结果是对的,但是却在开发板上达不到自己的要求。只能一步一步通过排除法来修改更换接触不良的引脚。最终,终于解决了所有问题完成了设计。虽然设计不算特别高明特别复杂。但是毕竟是自己一点一点做出来的,所以还是觉得挺有成就感。

就具体收获来说,首先知识上,通过此课程设计,让我复习了之前学习的知识,同时让我对FPGA有了一个整体的了解,对MAX+PLUS软件也比较熟悉了。除此之外,我觉得在这个实验的过程中也锻炼了我的耐心,让我能比较专注的去做一件事情。而且经历了这次试验我认识到电路设计是一个踏踏实实的过程,设计过程中我们需要循序渐进,一步一个脚印,来不得半点马虎和浮躁心理。

第二篇:FPGA学习步骤

FPGA学习步骤,我的体会

FPGA学习步骤,我的体会

FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影。从简单的逻辑组合,到高端的图像、通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它的优点在这里无庸赘述。从个人实用角度看,对于学生,掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用fgpa可以让设计变得非常有灵活性。掌握了fpga的设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但fpga的入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。fpga的设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。

我用FPGA做设计很多年了,远达不到精通的境界,只是熟悉使用,在这里把我对fpga的学习步骤理解写出来,仅是作为一个参考,不对的地方,欢迎大家讨论和指正。

1、工欲善其事,必先利其器。

计算机必不可少。目前FPGA应用较多的是Altera和xilinx这两个公司,可以选择安装quartusII或者ISE软件。这是必备的软件环境。

硬件环境还需要下载器、目标板。虽然有人说没有下载器和目标板也可学习fpga,但那总是纸上谈兵。这就像谈女朋友, 总是嘴上说说,通个电话,连个手都没牵,能说人家是你朋友?虽说搭建硬件环境需要花费,但想想,硬件环境至多几百元钱, 你要真的掌握FPGA的设计,起薪比别人都不止高出这么多。这点花费算什么?

2、熟悉verilog语言或者vhdl语言 ,熟练使用quartusII或者ISE软件。

VHDL和verilog各有优点,选择一个,建议选择verilog。熟练使用设计软件,知道怎样编译、仿真、下载等过程。

起步阶段不希望报一些培训班,除非你有钱,或者运气好,碰到一个水平高、又想把自己的经验和别人共享的培训老师, 不然的话,培训完后总会感觉自己是一个冤大头。入门阶段可以在利用网络资源完成。

3、设计一个小代码,下载到目标板看看结果

此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到fpga外挂的flash,fpga程序能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。

4、设计稍微复杂的代码,下载到目标板看看结果。

可以设计一个UART程序,网上有参考,你要懂RS232协议和fpga内置的逻辑分

析仪。网上下载一个串口调试助手,调试一番,如果通信成功了,恭喜,水平有提高。进入下一步。

5、设计复杂的代码,下载到目标板看看结果。

譬如sdram的程序,网上也有参考,这个设计难度有点大。可用串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成功,那你就比较熟悉fpga的设计饿了

6、设计高速接口,譬如ddr2或者高速串行接口

这要对fpga的物理特性非常了解,而且要懂得是时序约束等设计方法,要看大量的原厂文档,这部分成功了,那就对fpga的物理接口掌握很深,你就是设计高手了

7、设计一个复杂的协议

譬如USB、PCIexpress、图像编解码等,锻炼对系统的整体把握和逻辑划分。完成这些,你就是一个一流的高手、

8、学习再学习

学习什么,我也不知道,我只知道“学无止境,山外有山”。

上述只是一些简单的学习步骤,希望能对大家有所帮助!

第三篇:FPGA学习概述

FPGA学习

我常年担任多个有关FPGA学习研讨的QQ群管理员,长期以来很多新入群的菜鸟们总是在重复的问一些非常简单但是又让新手困惑不解的问题。作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习FPGA,总是急于求成。再加上国内大量有关FPGA的垃圾教材的误导,所以很多菜鸟始终无法入门。

为什么大量的人会觉得FPGA难学?作为著名FPGA提供商Altera授权的金牌培训师,本管理员决心开贴来详细讲一下菜鸟觉得FPGA难学的几大原因。

1、不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理。

FPGA为什么是可以编程的?恐怕很多菜鸟不知道,他们也不想知道。因为他们觉得这是无关紧要的。他们潜意识的认为可编程嘛,肯定就是像写软件一样啦。软件编程的思想根深蒂固,看到Verilog或者VHDL就像看到C语言或者其它软件编程语言一样。一条条的读,一条条的分析。如果这些菜鸟们始终拒绝去了解为什么FPGA是可以编程的,不去了解FPGA的内部结构,要想学会FPGA恐怕是天方夜谭。虽然现在EDA软件已经非常先进,像写软件那样照猫画虎也能综合出点东西,但也许只有天知道EDA软件最后综合出来的到底是什么。也许点个灯,跑个马还行。这样就是为什么很多菜鸟学了N久以后依然是一个菜鸟的原因。

那么FPGA为什么是可以“编程”的呢?首先来了解一下什么叫“程”。启示“程”只不过是一堆具有一定含义的01编码而已。编程,其实就是编写这些01编码。只不过我们现在有了很多开发工具,通常都不是直接编写这些01编码,而是以高级语言的形式来编写,最后由开发工具转换为这种01编码而已。对于软件编程而言,处理器会有一个专门的译码电路逐条把这些01编码翻译为各种控制信号,然后控制其内部的电路完成一个个的运算或者是其它操作。所以软件是一条一条的读,因为软件的操作是一步一步完成的。

而FPGA得可编程,本质也是依靠这些01编码实现其功能的改变,但不同的是FPGA之所以可以完成不同的功能,不是依靠像软件那样将01编码翻译出来再去控制一个运算电路,FPGA里面没有这些东西。FPGA内部主要三块:可编程的逻辑单元、可编程的连线和可编程的IO模块。可编程的逻辑单元是什么?其基本结构某种存储器(SRAM、FLASH等)制成的4输入或6输入1输出地“真值表”

加上一个D触发器构成。任何一个4输入1输出组合逻辑电路,都有一张对应的“真值表”,同样的如果用这么一个存储器制成的4输入1输出地“真值表”,只需要修改其“真值表”内部值就可以等效出任意4输入1输出的组合逻辑。这些“真值表”内部值是什么?就是那些01编码而已。如果要实现时序逻辑电路怎么办?这不又D触发器嘛,任何的时序逻辑都可以转换为组合逻辑+D触发器来完成。但这毕竟只实现了4输入1输出的逻辑电路而已,通常逻辑电路的规模那是相当的大哦。那怎么办呢?这个时候就需要用到可编程连线了。在这些连线上有很多用存储器控制的链接点,通过改写对应存储器的值就可以确定哪些线是连上的而哪些线是断开的。者就可以把很多可编程逻辑单元组合起来形成大型的逻辑电路。最后就是可编程的IO,这其实是FPGA作为芯片级使用必须要注意的。任何芯片都必然有输入引脚和输出引脚。有可编程的IO可以任意的定义某个非专用引脚(FPGA中有专门的非用户可使用的测试、下载用引脚)为输入还是输出,还可以对IO的电平标准进行设置。

总归一句话,FPGA之所以可编程是因为可以通过特殊的01代码制作成一张张“真值表”,并将这些“真值表”组合起来以实现大规模的逻辑功能。不了解FPGA内部结构,就不能明白最终代码如何变到FPGA里面去的。也就无法深入的了解如何能够充分运用FPGA。现在的FPGA,不单单是有前面讲的那三块,还有很多专用的硬件功能单元,如何利用好这些单元实现复杂的逻辑电路设计,是从菜鸟迈向高手的路上必须要克服的障碍。而这一切,还是必须先从了解FPGA内部逻辑及其工作原理做起。

2、错误理解HDL语言,怎么看都看不出硬件结构。

HDL语言的英语全称是:Hardware Description Language,注意这个单词Description,而不是Design。老外为什么要用Description这个词而不是Design呢?因为HDL确实不是用用来设计硬件的,而仅仅是用来描述硬件的。描述这个词精确地反映了HDL语言的本质,HDL语言不过是已知硬件电路的文本表现形式而已,只是将以后的电路用文本的形式描述出来而已。而在编写语言之前,硬件电路应该已经被设计出来了。语言只不过是将这种设计转化为文字表达形式而已。但是很多人就不理解了,既然硬件都已经被设计出来了,直接拿去制作部就完了,为什么还要转化为文字表达形式再通过EDA工具这些麻烦的流程呢?其实这就

是很多菜鸟没有了解设计的抽象层次的问题,任何设计包括什么服装、机械、广告设计都有一个抽象层次的问题。就拿广告设计来说吧,最初的设计也许就是一个概念,设计出这个概念也是就是一个点子而已,离最终拍成广告还差得很远。

硬件设计也是有不同的抽象层次,没一个层次都需要设计。最高的抽象层次为算法级、然后依次是体系结构级、寄存器传输级、门级、物理版图级。使用HDL的好处在于我们已经设计好了一个寄存器传输级的电路,那么用HDL描述以后转化为文本的形式,剩下的向更低层次的转换就可以让EDA工具去做了,者就大大的降低了工作量。这就是可综合的概念,也就是说在对这一抽象层次上硬件单元进行描述可以被EDA工具理解并转化为底层的门级电路或其他结构的电路。在FPGA设计中,就是在将这以抽象层级的意见描述成HDL语言,就可以通过FPGA开发软件转化为问题1中所述的FPGA内部逻辑功能实现形式。HDL也可以描述更高的抽象层级如算法级或者是体系结构级,但目前受限于EDA软件的发展,EDA软件还无法理解这么高的抽象层次,所以HDL描述这样抽象层级是无法被转化为较低的抽象层级的,这也就是所谓的不可综合。

所以在阅读或编写HDL语言,尤其是可综合的HDL,不应该看到的是语言本身,而是要看到语言背后所对应的硬件电路结构。如果看到的HDL始终是一条条的代码,那么这种人永远摆脱不了菜鸟的宿命。假如哪一天看到的代码不再是一行行的代码而是一块一块的硬件模块,那么恭喜脱离了菜鸟的级别,进入不那么菜的鸟级别。

3、FPGA本身不算什么,一切皆在FPGA之外

这一点恐怕也是很多学FPGA的菜鸟最难理解的地方。FPGA是给谁用的?很多学校解释为给学微电子专业或者集成电路设计专业的学生用的,其实这不过是很多学校受资金限制,卖不起专业的集成电路设计工具而用FPGA工具替代而已。其实FPGA是给设计电子系统的工程师使用的。这些工程师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满足系统的需求时,就需要用FPGA来快速的定义一个能用的芯片。前面说了,FPGA里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师使用FPGA进行设计时无非就是考虑如何将这些以后资源组合起来实现一定的逻辑功能而已,而不必像IC设计工程师那样一直要关注到最

后芯片是不是能够被制造出来。本质上和利用现有芯片组合成不同的电子系统没有区别,只是需要关注更底层的资源而已。

要想把FPGA用起来还是简单的,因为无法就是那些资源,在理解了前面两点再搞个实验板,跑跑实验,做点简单的东西是可以的。而真正要把FPGA用好,那光懂点FPGA知识就远远不够了。因为最终要让FPGA里面的资源如何组合,实现何种功能才能满足系统的需要,那就需要懂得更多更广泛的知识。

目前FPGA的应用主要是三个方向:第一个方向,也是传统方向主要用于通信设备的高速接口电路设计,这一方向主要是用FPGA处理高速接口的协议,并完成高速的数据收发和交换。这类应用通常要求采用具备高速收发接口的FPGA,同时要求设计者懂得高速接口电路设计和高速数字电路板级设计,具备EMC/EMI设计知识,以及较好的模拟电路基础,需要解决在高速收发过程中产生的信号完整性问题。FPGA最初以及到目前最广的应用就是在通信领域,一方面通信领域需要高速的通信协议处理方式,另一方面通信协议随时在修改,非常不适合做成专门的芯片。因此能够灵活改变功能的FPGA就成为首选。到目前为止FPGA的一半以上的应用也是在通信行业。

第二个方向,可以称为数字信号处理方向或者数学计算方向,因为很大程度上这一方向已经大大超出了信号处理的范畴。例如早就在2006年就听说老美将FPGA用于金融数据分析,后来又见到有将FPGA用于医学数据分析的案例。在这一方向要求FPGA设计者有一定的数学功底,能够理解并改进较为复杂的数学算法,并利用FPGA内部的各种资源使之能够变为实际的运算电路。目前真正投入实用的还是在通信领域的无线信号处理、信道编解码以及图像信号处理等领域,其它领域的研究正在开展中,之所以没有大量实用的主要原因还是因为学金融的、学医学的不了解这玩意。不过最近发现欧美有很多电子工程、计算机类的博士转入到金融行业,开展金融信号处理,相信随着转入的人增加,FPGA在其它领域的数学计算功能会更好的发挥出来,而我也有意做一些这些方面的研究。不过国内学金融的、学医的恐怕连数学都很少用到,就不用说用FPGA来帮助他们完成数学运算了,这个问题只有再议了。

第三个方向就是所谓的SOPC方向,其实严格意义上来说这个已经在FPGA设计的范畴之内,只不过是利用FPGA这个平台搭建的一个嵌入式系统的底层硬

件环境,然后设计者主要是在上面进行嵌入式软件开发而已。设计对于FPGA本身的设计时相当少的。但如果涉及到需要在FPGA做专门的算法加速,实际上需要用到第二个方向的知识,而如果需要设计专用的接口电路则需要用到第一个方向的知识。就目前SOPC方向发展其实远不如第一和第二个方向,其主要原因是因为SOPC以FPGA为主,或者是在FPGA内部的资源实现一个“软”的处理器,或者是在FPGA内部嵌入一个处理器核。但大多数的嵌入式设计却是以软件为核心,以现有的硬件发展情况来看,多数情况下的接口都已经标准化,并不需要那么大的FPGA逻辑资源去设计太过复杂的接口。而且就目前看来SOPC相关的开发工具还非常的不完善,以ARM为代表的各类嵌入式处理器开发工具却早已深入人心,大多数以ARM为核心的SOC芯片提供了大多数标准的接口,大量成系列的单片机/嵌入式处理器提供了相关行业所需要的硬件加速电路,需要专门定制硬件场合确实很少。通常是在一些特种行业才会在这方面有非常迫切的需求。即使目前Xilinx将ARM的硬核加入到FPGA里面,相信目前的情况不会有太大改观,不要忘了很多老掉牙的8位单片机还在嵌入式领域混呢,嵌入式主要不是靠硬件的差异而更多的是靠软件的差异来体现价值的。我曾经看好的是cypress的Psoc这一想法。和SOPC系列不同,Psoc的思想史载SOC芯片里面去嵌入那么一小块FPGA,那这样其实可以满足嵌入式的那些微小的硬件接口差异,比如某个运用需要4个USB,而通常的处理器不会提供那么多,就可以用这么一块FPGA来提供多的USB接口。而另一种运用需要6个UART,也可以用同样的方法完成。对于嵌入式设计公司来说他们只需要备货一种芯片,就可以满足这些设计中各种微小的差异变化。其主要的差异化仍然是通过软件来完成。但目前cypress过于封闭,如果其采用ARM作为处理器内核,借助其完整的工具链。同时开放IP合作,让大量的第三方为它提供IP设计,其实是很有希望的。但目前cypress的日子怕不太好过,Psoc的思想也不知道何时能够发光。

4、数字逻辑知识是根本。

无论是FPGA的哪个方向,都离不开数字逻辑知识的支撑。FPGA说白了是一种实现数字逻辑的方式而已。如果连最基本的数字逻辑的知识都有问题,学习FPGA的愿望只是空中楼阁而已。而这,恰恰是很多菜鸟最不愿意去面对的问题。数字逻辑是任何电子电气类专业的专业基础知识,也是必须要学好的一门课。很

多人无非是学习了,考个试,完了。如果不能将数字逻辑知识烂熟于心,养成良好的设计习惯,学FPGA到最后仍然是雾里看花水中望月,始终是一场空的。

以上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地方,FPGA的学习其实就像学习围棋一样,学会如何在棋盘上落子很容易,成为一位高手却是难上加难。要真成为李昌镐那样的神一般的选手,除了靠刻苦专研,恐怕还确实得要一点天赋。

第四篇:FPGA芯片配置总结

[日期:2010-05-22 ] [来源:本站编辑 作者:佚名] [字体:大 中 小](投递新闻)

1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。

AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持Cyclone系列。使用Altera串行配置器件来完成。Cyclone期间处于主动地位,配置期间处于从属地位。配置数据通过DATA0引脚送入 FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。(见附图)

PS则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。(见附图)

JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。

FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。在实用系统 中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。专用配置器件:epc型号的存储器

常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等

对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列.

除了AS和PS等单BIT配置外,现在的一些器件已经支持PPS,FPS等一些并行配置方式,提升配置了配置速度。当然所外挂的电路也和PS有一些区别。 还有处理器配置比如JRUNNER 等等,如果需要再baidu吧,至少不下十种。比如Altera公司的配置方式主要有Passive Serial(PS),Active Serial(AS),Fast Passive Parallel(FPP),Passive Parallel Synchronous(PPS),Passive Parallel Asynchronous(PPA),Passive Serial Asynchronous(PSA),JTAG等七种配置方式,其中Cyclone支持的配置方式有PS,AS,JTAG三种.

2 对FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通过一条下载线进行烧写的话,那么开始的"nCONFIG,nSTATUS"应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,上拉电阻的阻值可以采用10K

3,在PS模式下tip:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号.(祥见 下图).一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上.或者配置芯片就是可以方便取下焊上的那种.这样出了问题还可以方便地调试.在AS模式下tip: 用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。

4,一般是用jtag配置epc2和flex10k,然后 epc2用ps方式配置flex10k.这样用比较好.(这是我在网上看到的,可以这样用吗?怀疑中)望达人告知.

5,下载电缆,Altera下的下载电缆分为byteblaster和byteblasterMV,以及ByteBlaster II,现在还

推出了基于USB-blaster.由于BB基本已经很少有人使用,而USB-Blaster现在又过于昂贵,这里就说一下BBII和 BBMV的区别.

BBII支持多电压供电5.5v,3.3v,2.5v,1.8v;

BBII支持三种下载模式:AS,可对Altera的As串行配置芯片(EPCS系列)进行编程PS,可对FPGA进行配置

JTAG,可对FPGA,CPLD,即Altera配置芯片(EPC系列)编程而BBMV只支持PS和JTAG6,一般在做FPGA实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用 AS模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用jic文件来验证配置芯片是否已经损坏,方法祥见附件.

7.Altera的FPGA可以通过单片机,CPLD等加以配置,主要原理是满足datasheet中的时序即可,这里我就不多说了,有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了.

8.配置时,quartus软件操作部分:

(1).assignment-->device-->device&pin options-->选择configuration scheme,configuaration mode,configuration device,注

意在不支持远程和本地更新的机器中configuration mode不可选择,而configuration device中会根据不同的配置芯片产生pof文件,

如果选择自动,会选择最小密度的器件和适合设计

(2).可以定义双口引脚在配置完毕后的作用,在刚才的device&pin option-->dual-purpose pins-->,可以在配置完毕后继续当I/O口使用

(3).在general菜单下也有很多可钩选项,默认情况下一般不做改动,具体用法参见altera configuration handbook,volume2,sectionII.

(4)关于不同后缀名的文件的适用范围:

sof(SRAM Object File)当直接用PS模式下将配置数据下到FPGA里用到,USB BLASTER,MASTERBLASER,BBII,BBMV适用,quartusII会自动生成,所有其他的配置文件都是由sof生成的.

pof(Programmer Object File)也是由quartusII自动生成的,BBII适用,AS模式下将配置数据下到配置芯片中

rbf(Raw Binary File)用于微处理器的二进制文件.在PS,FPP,PPS,PPA配置下有用处

rpd(Raw Programing Data File)包含bitstream的二进制文件,可用AS模式配置,只能由pof文件生成

hex(hexadecimal file)这个就不多说了,单片机里很多

ttf(Tabular Text File)适用于FPP,PPS,PPA,和bit-wide PS配置方式

sbf(Serial Bitstream File)用PS模式配置Flex 10k和Flex6000的

jam(Jam File)专门用于program,verigy,blank-check

参考链接:http:///news/2010-05/2141.htm

第五篇:FPGA学习步骤及其前景

第一部分

FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影。从简单的逻辑组合,到高端的图像、通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它的优点在这里无庸赘述。从个人实用角度看,对于学生,掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用fgpa可以让设计变得非常有灵活性。掌握了fpga的设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但fpga的入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。fpga的设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。 我用FPGA做设计很多年了,远达不到精通的境界,只是熟悉使用,在这里把我对fpga的学习步骤理解写出来,仅是作为一个参考,不对的地方,欢迎大家讨论和指正。

1、工欲善其事,必先利其器。

计算机必不可少。目前FPGA应用较多的是Altera和xilinx这两个公司,可以选择安装quartusII或者ISE软件。这是必备的软件环境。

硬件环境还需要下载器、目标板。虽然有人说没有下载器和目标板也可学习fpga,但那总是纸上谈兵。这就像谈女朋友, 总是嘴上说说,通个电话,连个手都没牵,能说人家是你朋友?虽说搭建硬件环境需要花费,但想想,硬件环境至多几百元钱, 你要真的掌握FPGA的设计,起薪比别人都不止高出这么多。这点花费算什么?

2、熟悉verilog语言或者vhdl语言 ,熟练使用quartusII或者ISE软件。

VHDL和verilog各有优点,选择一个,建议选择verilog。熟练使用设计软件,知道怎样编译、仿真、下载等过程。

起步阶段不希望报一些培训班,除非你有钱,或者运气好,碰到一个水平高、又想把自己的经验和别人共享的培训老师, 不然的话,培训完后总会感觉自己是一个冤大头。入门阶段可以在利用网络资源完成。

3、设计一个小代码,下载到目标板看看结果

此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到fpga外挂的flash,fpga程序能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。

4、设计稍微复杂的代码,下载到目标板看看结果。

可以设计一个UART程序,网上有参考,你要懂RS232协议和fpga内置的逻辑分析仪。网上下载一个串口调试助手,调试一番,如果通信成功了, 恭喜,水平有提高。进入下一步。

5、设计复杂的代码,下载到目标板看看结果。

譬如sdram的程序,网上也有参考,这个设计难度有点大。可用串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成功,那你就比较熟悉fpga的设计饿了

6、设计高速接口,譬如ddr2或者高速串行接口

这要对fpga的物理特性非常了解,而且要懂得是时序约束等设计方法,要看大量的原厂文档,这部分成功了,那就对fpga的物理接口掌握很深,你就是设计高手了

7、设计一个复杂的协议

譬如USB、PCIexpress、图像编解码等,锻炼对系统的整体把握和逻辑划分。完成这些,你就是一个一流的高手、

8、学习再学习

学习什么,我也不知道,我只知道“学无止境,山外有山”。

第二部分

1.何为FPGA?

FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA是Ross Freema于1985年发明的,当时第一个FPGA采用2μm工艺,包含64个逻辑模块和85000个晶体管,门数量不超过1000个,当时他所创造的FPGA被认为是一项不切实际的技术,他的同事Bill Carter曾说:“这种理念需要很多晶体管,但那时晶体管是非常珍贵的东西。”所以人们认为Ross的想法过于脱离现实。但是Ross预计:根据摩尔定律(每18个月晶体管密度翻一翻),晶体管肯定会越来越便宜,因此它必将成为未来不可或缺的技术。在短短的几年时间内,正如Ross所预言的,出现了数十亿美元的现场可编程门阵列(FPGA)市场。但可惜的是,他已经无法享受这一派欣欣向荣的景象,Ross Freeman在1989年已经与世长辞了,但是它的发明却持续不断地促进电子行业的进步与发展。

我们知道构成数字逻辑系统最基本的单元是与门、或门、非门等,而门电路是由用二极管、三极管和电阻等元件构成的,然后与门、或门、非门又构成了各种触发器实现状态记忆。FPGA同样也属于数字逻辑电路的一种,也是由最基本的元件构成的。一片FPGA可以在内部集成上亿个门电路,打破了以往使用数量繁多分立器件实现电子装置的历史,不仅电路面积、成本大大减小,而且可靠性得到了大幅度的提升。

一般来说,FPGA内部是由最小的物理逻辑单位LE、布线网络、输入输出模块与片内外设组成的,而最小物理逻辑单元是指用户无法修改的、固定的最小单元,设计者只能将这些单元通过互联线将其连接起来,然后实现特定的功能。一个LE是由触发器、LUT与控制逻辑组成的,从而同样可以实现组合逻辑和时序逻辑。

随着FPGA集成度的不断增加,其内部的片内外设也越来越多,可集成SRAM、Flash、AD、RTC等外设,真正用单芯片方案完成系统设计,所以我们所理解的FPGA最底层是一些实实在在的门电路构成的,然后由门电路构成最小的物理逻辑单元,然后再通过布线层将这些最小物理逻辑单元连接成用户需要的特定功能,我们所需要控制的仅仅是布线层之间的互连开关,这也是我们编程的对象,通过这些开关来改变功能。

FGPA按工艺分主要有SRAM工艺和Flash工艺(工艺是针对它们的编程开关来说的)两类,

基于SRAM工艺的FPGA最大的缺点是掉电数据会丢失无法保存,所以由FPGA构成的系统,外部还需要增加一个配置芯片用于保存编程数据,在系统每次上电时都需要从配置芯片中将配置数据流加载到FPGA中,然后才能正常地运行,其优点是灵活性很强。而基于Flash架构的FPGA在掉电后不会丢失数据,无需配置芯片,上电即可运行,其特点非常类似ASIC,但却比ASIC更加灵活可以重复编程。由此可见如果用基于Flash架构的FPGA来取代ASIC的话,不仅风险大大降低,而且成本也会大幅度地下降。

2. 为什么要学习FPGA?

FPGA从诞生以来经历了从配角到主角的转变,FPGA主要用于取代复杂的逻辑电路,现在重点强调平台概念,当集成数字信号处理器、嵌入式处理器、高速串行和其它高端技术后,从而被应用到更多的领域,正因为其飞速的发展,让更多学FPGA的人看到了希望,其广阔的前景正是我们选择的原因之一。

(1)广阔的发展前景

据市场调研公司Gartner Dataquest预测,2010年FPGA和其它可编程逻辑器件(PLD)市将从2005年的32亿美元增长到67亿美元,未来还将有不断增长的趋势。FPGA及PLD产业发展的最大机遇是替代ASIC和专用标准产品(ASSP),由ASIC和ASSP构成的数字逻辑市场规模大约为350亿美元。由于用户可以迅速地对PLD进行编程,按照需求实现特殊功能,与ASIC和ASSP相比,PLD在灵活性、开发成本、产品快速上市方面更具优势,所以未来FPGA将会是一个非常有前景的行业。

由于FPGA结构的特殊性,可以重复编程,开发周期较短,越来越受到人们的青睐,它的特点也更接近ASIC,ASIC比FPGA最大的优势是低成本,但是FPGA的价格现在也越来越低,例如,Actel的Nano系列更是打破了FPGA的价格屏障,提供超过50种低于1美金的FPGA,在一定程度上已经可以与ASIC相抗衡。

根据当前发展的趋势,未来的FPGA势必将会取代大部分ASIC的市场,虽然根据摩尔定律(Moore’s Law):每18至24个月能在相同的单位面积内多集成一倍的晶体管数目,也就意味着每18至24个月后芯片成本将减半,但这只是指裸晶(Die)的成本,并不表示整个芯片的成本减半,这是由于晶圆制造前端的掩膜(Mask)成本、晶圆制造后端的封装(也称为:构装、包装)成本、人力成本等都不会随摩尔定律而变化,反而芯片的成本有上升的趋势,所以过去许多中、小用量的芯片无法用先进的工艺来生产,对此不是持续使用旧工艺来制造,或是必须改用FPGA芯片来生产„„

未来的趋势告诉我们,FPGA将成为21世纪最重要的高科技产业之一,特别是国内的FPGA市场,更是一个“未完全开垦的处女地”,抓住现在的机遇也就意味着为我们的将来提供更强大的竞争力。

(2)更多的就业机会

虽然FPGA市场的广阔,但是FPGA的技术人员却极度地缺乏,很多高校仍然未重视FPGA技术的教学,导致学生毕业后连什么是FPGA,什么是Verilog都不知道,失去了很多的就业机会。广州周立功单片机发展有限公司三年来跑遍了全国22个城市,每次宣讲会场里场外

都站满了人,每个学生都渴望寻找一份好工作的心情由此可见一斑,但通过考试发现懂FPGA和Verilog的学生却寥寥无几,尽管我们每年都对招聘FPGA人才寄予了很大的希望,但每次都失望而归,深深地体会到招聘FPGA开发工程师困难重重。

由此可见在应届毕业生中熟练掌握FPGA的学生已经属于稀缺资源了,然而企业为培养FPGA开发工程师无不付出沉重的代价,所以对于在校电类专业的学生来说,这是打造个人差异化竞争力的大好机会,事实上只要掌握FPGA就能够找到一份薪水更好的工作。我们公司每次在考核员工时,往往都会特别关注这些“特殊员工”,一般来说这些员工的薪水都会比其它岗位高500元,这就是学习FPGA的就业优势,但是很多人不曾完全意识到掌握FPGA技术的重要性。

当前受金融危机的影响,对学生的就业更是巨大的考验,据教育部的统计,2008年全国普通高校毕业生达559万人,比2007年增加64万人,2009年高校毕业生规模达到611万人,比2008年增加52万人,如此多的大学生面临着就业的问题,如果个人不具备一定的优势,必将淹没在人海茫茫的潮流中而找不到理想的工作,而学习FPGA则可以帮助学生多一技之长,大大提高就业的机会。

(3)更大的技术发展空间

我们知道半导体一直是国内比较薄弱的产业,与国外相比相差甚远,大部分IC都来自欧美地区,国内拥有自主知识产权的IC技术不多,多半需要引进国外先进的IC设计技术。但是自2000年以来,中国大陆的IC设计企业如雨后春笋般迅速涌现,企业数量5年增加了4倍多,2005年已经达到500多家,销售收入过亿元人民币的设计企业达到17家,其中两家超过5亿元的销售规模。概括地讲,中国的IC设计公司可以分为4类,第一类是国有IC设计公司,一般是承担政府研发任务的研究所转制后成立的;第二类是由系统厂商的设计部门独立出来的IC设计公司;第三类是民营IC设计公司,以海归型为主;最后一类是外资IC设计公司。

由此可见IC设计也是未来发展的一个重点方向,将会是国家大力扶持的产业之一,而IC的设计人员必须掌握FPGA的技术,在芯片流片之前都是通过FPGA来进行前期设计验证的,与FPGA使用同样的设计语言,只是在后端的设计中才用到IC设计方面的特定技术,而IC设计人员必定是懂得FPGA设计的人,因此掌握FPGA技术是通往IC设计殿堂的必经之路,学习FPGA有助于我们扩大的技术发展空间。

上一篇:办公室计划下一篇:二本提档线