ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:420.84KB ,
资源ID:5252174      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5252174.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA开发板快速教程文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

FPGA开发板快速教程文档格式.docx

1、本教程配套CT-SOPCx系列FPGA/SOPC开发学习板套件(对于该套件的相关内容请参考附录。)以实践为基础,适合具备基本的数字电路设计基础的初学者。第一章是CPLD/FPGA的基本知识,这部分内容摘自互联网并稍加删改,对于CPLD/FPGA知识为零的初学者应先了解这部分内容;对于已经有了一定基础的同学可以跳过这部分内容。第二章以两个例子来让初学者了解FPGA的基本开发流程,并熟悉QuartusII软件的使用。第三章以一个例子来让初学者了解基于NiosII软CPU核的SOPC设计流程,并熟识SOPC Builder和NiosII IDE的基本使用。附录是本文所涉及的例子的学习板相关的内容。由

2、于本人水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。 嵌入式控制研究室 2006年4月20日第一章PLD/FPGA的基本知识 第二章 FPGA基本教程 第一节 FPGA的基本开发流程 第二节基于QuartusII的实例 实验一 实验板上的KEY1按钮控制FPGA核心板上的第一个LED灯介绍 实验二 7段数码管实验 实验三用FPGA设计串口数据收发 第三章SOPC的基本开发流程 第一节第一节 SOPC vs MCU、DSP和FPGA 第二节第二节 基于QuantusII和NiosII的SOPC基本开发流程 第三节第三节 基于QuantusII和NiosII的SOPC实例 实验一 核心板上

3、的两个LED交替闪烁 实验二 4位7段数码管IP core设计以及flash的烧写教程 实验三 LCD设备驱动开发 实验四 ALL_TEST综合设计 第四章FPGA开发板中嵌入Uclinux的步骤和方法第一章 CPLD/FPGA的基本知识(一)可编程逻辑器件的历史和概述随着数字电路应用越来越广泛,传统通用的数字集成芯片已经难以满足系统的功能要求,而且随着系统复杂程度的提高,所需通用集成电路的数量呈爆炸性增值,使得电路的体积膨大,可靠性难以保证。此外,现代产品的生命周期都很短,一个电路可能需要在很短的周期内作改动以满足新的功能需求,对于采用通用的数字集成电路设计的电路系统来说即意味着重新设计和重

4、新布线。因此,系统设计师们希望自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与

5、”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。 在PAL的基础上,

6、又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的FPGA(Field Prog

7、rammable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和小批量产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。(二)FPGA、CPLD 概述FPGA(现场可编程门阵列)与

8、 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL,GAL等相比较,FPGACPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGACPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PL

9、D/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。 (99年Lattice收购了Vantis,成为第三大PLD供应商。表 1998年世界十大PLD公司排名公司销售额(亿美金)市场占有率1Altera2Xilinx3Vantis4Lattice5Actel6Luccent7Cypress8Atmel9Philips10Quicklogic资料来源:99年4月电子产品世界尽管FPGA,CPLD和其它类型PLD的结

10、构各有其特点和长处,但概括起来,它们是由三大部分组成的:(1)一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心;(2)输入输出块;(3)连接逻辑块的互连资源,由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入输出块之间的连接。图1.2.1 PLD的结构对用户而言,虽然CPLD与FPGA的内部结构稍有不同,但其用法都一样,所以多数情况下,不加以区分。FPGACPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:(1)(1) 随着VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片内部

11、可以容纳上百万个晶体管, FPGACPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC。(2)(2) FPGACPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以, FPGACPLD的资金投入小,节省了许多潜在的花费。(3)(3) 用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGAPLD 试制样片,能以最快的速度占领市场。 FPGACPLD软件包中有各种输入工

12、具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路有少量改动时,更能显示出FPGACPLD的优势。电路设计人员使用FPGACPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次的知识, FPGACPLD软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。(4)(4) 在线可编程技术(ISP)使得使用CPLD/FPGA的产品可以做到远程升级。(以上内容参照西电CPLD技术及其应用,有改动)(三)PLD/FPGA 结构与原理初步一.一. 基于乘积项(Product-Term)的PL

13、D结构采用这种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)。我们先看一下这种PLD的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):图 基于乘积项的PLD内部结构这种PLD可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。 宏单元是PLD的基本结构,由它来实现基本的逻辑功能。图中阴影部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负

14、责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。图 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。宏单元的具体结构见下图:图 宏单元结构左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部

15、逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。二.二. 乘积项结构PLD的逻辑实现原理下面我们以一个简单的电路为例,具体说明PLD是如何利用以上结构实现逻辑的,电路如下图:图假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( 我们以!D表示D的“非”)PLD将以下面的方式来实现组合逻辑f:A,B,C,D由PLD芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f= f

16、1 + f2 = (A*C*!D) + (B*C*!D) 。这样组合逻辑就实现了。 图3电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了图所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)。图的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为

17、另一个宏单元的输入。这样PLD就可以实现更复杂逻辑。这种基于乘积项的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。三三 表(Look-Up-Table)的原理与结构采用这种结构的PLD芯片我们也可以称之为FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会

18、自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面是一个4输入与门的例子:实际逻辑电路LUT的实现方式a,b,c,d 输入逻辑输出地址RAM中存储的内容00000001.1111四四 基于查找表(LUT)的FPGA的结构altera的FLEX/ACEX等芯片的结构如下图:图1.3.5 altera FLEX/ACEX 芯片的内部结构逻辑单元(LE)内部结构 FLEX/ACEX的结构主要包括LAB,I/O块,RAM块(未表示出)和可编程行/列连线。在FLEX/ACEX中,一个LAB包括8个逻

19、辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEX/ACEX芯片实现逻辑的最基本结构(altera其他系列,如APEX、CYCLONE等的结构与此基本相同,具体请参阅数据手册)。我们还是以这个电路的为例:A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。该电路中D触发器是直接利用LUT后面D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出与I/O脚相连,把结果输出到芯片管

20、脚。这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。六.选择PLD还是FPGA?根据上述PLD的结构和原理可以知

21、道,PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至2030多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。第二章 FPGA大体教程 第一节 FPGA的大体开发流程PLD是可编程逻辑器件(Programable Logic D

22、evice)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,二者的功能大体相同,只是实现原理略有不同,因此咱们有时能够忽略这二者的区别,统称为可编程逻辑器件或PLD/FPGA。PLD是电子设计领域中最具活力和进展前途的一项技术,它的阻碍丝毫不亚于70年代单片机的发明和利用。PLD能做什么呢?能够毫不夸张的讲,PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都能够用PLD来实现。PLD犹如一张白纸或是一堆积木,工程师能够通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,咱们能够事前验证设计的正

23、确性。在PCB完成以后,还能够利用PLD的在线修改能力,随时修改设计而没必要改动硬件电路。利用PLD来开发数字电路,能够大大缩短设计时刻,减少PCB面积,提高系统的靠得住性。 PLD的这些优势使得PLD技术在90年代以后取得飞速的进展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。如何利用PLD呢?其实PLD的利用很简单,学习PLD比学习单片机要简单的多,有数字电路基础,会利用运算机,就能够够进行PLD的开发。开发PLD需要了解两个部份:开发软件 本身由于PLD软件已经进展的相当完善,用户乃至能够不用详细了解PLD的内部结构,也能够用自己熟悉的方式:如原理图输入或HDL语言来完成相

24、当优秀的PLD设计。因此对初学者,第一应了解PLD开发软件和开发流程。了解PLD的内部结构,将有助于提高咱们设计的效率和靠得住性。下面咱们以基于Altera公司的QuantusII软件来简单说明一下FPGA的开发流程。以下图是一个典型的基于QuantusII的FPGA开发流程。(1)成立工程是每一个开发进程的开始,QuantusII(以下简称Q2)以工程为单元对设计进程进行治理。(2)成立顶层图。能够如此明白得,顶层图是一个容器,将整个工程的各个模块包容在里面,编译的时候就将这些模块整合在一路。也能够明白得为它是一个大元件,包括各个模块,编译的时候确实是生成一个如此的大元件。(3)采纳ALTE

25、RA公司提供的LPM功能模块。Q2软件环境里包括了大量的经常使用功能模块,例如计数器、累加器、比较器、译码器等等;若是不知道在工程中采纳这些现有的功能模块真是太浪费了。以本人的体会,一个设计中一样只有极少部份的模块需要自己从零设计。(4)自己成建功能模块。固然,有些设计中现有的模块功能不能知足具体设计的要求,那就只能自己设计啦。能够用硬件描述语言也能够用原理图的输入方式。能够把它们独立地看成一个工程来设计,并生成模块符号(Symbol),然后在顶层图中利用那个模块的符号,并将源文件(实现该模块的原理图或HDL文件)拷到顶层图所在的工程目录下。那个进程比如你要做一个电路,此刻市面上没有你想要的某

26、个芯片,你就只能自己做一块如此的一块芯片,然后添加到你的电路板上。(5)将顶层图的各个功能模块用连线连起来。那个进程类似电路图设计,把各个芯片连接起来,组成电路系统。(6)系统的功能原理图至此已经大体出炉了,下一步要为该设计选择芯片载体,才能真正在物理上实现系统的功能。这一步的要紧工作是:(1)选择芯片型号;(2)为顶层图的各个输入输出信号分派芯片的管脚;(3)设置编译选项,目的是让编译器明白更多的信息。(7)编译。那个进程类似软件开发里的编译,但事实上那个进程比软件的编译要复杂得多,因为它毕竟最终要实现硬件里的物理结构,包括了优化逻辑的组合、综合逻辑和布线等步骤。在类似Q2如此的集成环境里面

27、,这些进程都能够一气呵成,集成环境帮你自动完成了几个步骤的工作。固然,你也能够用其它工具来实现各个步骤的工作,这些内容超出了本教程陈述的范围。(8)编译后会生成*.sof或*.pof文件,前者能够通过JTAG下载到FPGA内部,设计无误的话即能实现预期的功能,但断电后FPGA里的这些信息会丢失;后者能够下载到FPGA的配置芯片(EEPROM或FLASH芯片),掉电后这些配置信息可不能丢失,从头上电以后通过该配置芯片对FPGA的内部RAM进行配置。(9)关于复杂的设计,工程编译了以后能够采纳Q2的仿真功能或其它仿真软件(如ModelSim)对设计反复进行仿真和验证,直到知足要求。第二节 基于Quart

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2