Xilinx-FPGA设计与实践教程第1章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章FPGA设计基础第一章FPGA设计基础1.1FPGA的基本概念1.2可编程逻辑技术发展简介1.3FPGA器件编程技术1.4通用FPGA的构成结构1.5XilinxFPGA的开发流程1.6FPGA技术的未来发展本章小结第一章FPGA设计基础1.1FPGA的基本概念顾名思义,现场可编程逻辑门阵列(FPGA)是由可编程配置的逻辑块组成的数字集成电路,这些逻辑块之间有着丰富的可配置的互连资源,设计者可以通过对这些资源进行不同的配置和编程来达到自己所要实现的目标。我们要从如下几个方面来理解FPGA的特性。第一章FPGA设计基础首先,FPGA名称中的“现场可编程”是指编程“在现场”进行(与那些内部功能已被制造商固化的器件正相反)。这意味着FPGA的编程具有更强的灵活性和创新性,我们可以在实验室进行配置,或者可以对已经应用于实际的电子系统中的某些功能进行改进,或者可以根据用户需求,实现新的协议或者标准来对当前应用作进一步的完善和改进。总而言之,FPGA的现场可编程特性满足了用户实现任意数字逻辑的愿望,成为用户灵活“武装”自己产品的最有效的武器。第一章FPGA设计基础其次,FPGA名称中的“逻辑门阵列”不仅仅指的是传统意义上的逻辑门阵列。FPGA是可编程逻辑器件(PLD)和专用集成电路(ASIC)技术发展到一定程度的产物。PLD能够实现灵活的逻辑可编程功能,但是其可编程规模小,无法实现复杂的逻辑功能,而ASIC虽然能够实现复杂的逻辑功能,但是昂贵的工艺过程和巨额的流片费用,在很多时候令大家望而却步。FPGA的诞生恰好弥合了PLD和ASIC之间的这道鸿沟,其逻辑规模可以达到ASIC的级别,而且不必承担如ASIC开发带来的数额巨大的不可重现工程(NRE)成本。随着FPGA技术的不断发展,FPGA器件逐渐变成一种数字化平台系统,其“逻辑门”已经不再和PLD或者ASIC一样,而是包含了现代FPGA中的各种资源,如可编程逻辑块、RAM资源、数字信号处理模块、微处理器等。第一章FPGA设计基础1.2可编程逻辑技术发展简介1.2.1可编程技术发展演变过程世界上第一款可编程逻辑器件是1970年以PROM的形式进入人们视野的,但当时还非常简单,仅仅到20世纪70年代末,复杂实用的PLD器件便应用在工程当中了。为了在复杂程度上进行区分,后来出现了新的名词即简单可编程逻辑器件(SPLD)和复杂可编程逻辑器件(CPLD)。SPLD至今依然有人沿用,而CPLD成为当今PLD器件的代名词。PLD器件经历了在结构上的不断改进,从一开始的PROM器件,到PLA、PAL,再到后来的GAL,逐渐演变到今天通用的CPLD结构。第一章FPGA设计基础1.PROM器件PROM(ProgrammableRead-OnlyMemory,可编程只读存储器)基本结构其实就是由与(AND)阵列函数驱动可编程的或(OR)阵列函数。一个3输入3输出的基于PROM结构的可编程逻辑器件结构如图1-1所示。图中,“&”代表逻辑“与”;“!”代表逻辑“非”。第一章FPGA设计基础在OR门阵列中的可编程连线可以用熔丝、EPROM晶体管或者E2PROM器件中的E2PROM晶体管等来实现。PROM器件可以用来实现任何组合逻辑块,但是它无法实现太多的输入和输出。PROM器件最初主要作为存储器来存放计算机程序和常数值,工程师也发现它可以用来实现简单的逻辑功能,比如状态机查找表等。随着PROM的大量应用,其他在其基础上改进的可编程器件也纷纷面世。第一章FPGA设计基础图1-13输入3输出的基于PROM结构的可编程逻辑器件结构图第一章FPGA设计基础2.PLA器件由于PROM器件对地址有限制,可编程器件的下一步演化就是PLA(ProgrammableLogicArray,可编程逻辑阵列)器件。PLA器件是可编程逻辑器件中用户可配置性最好的,因为它的AND和OR阵列都是可配置的。正是由于AND阵列也可编程,因而AND阵列中的AND函数的数目便可以与器件的输入数目独立,只要引入更多的行,便可在阵列中形成额外的AND函数。类似地,OR阵列也是与AND阵列独立的,引入更多的列就可以形成更多的列函数。如果我们要用PLA器件完成下面三个公式,则可以按图1-2所示的连线方式进行编程:第一章FPGA设计基础w(a&c)|(!b&!c)(1-1)x(!a&!b&!c)|(!b&!c)(1-2)y!a&!b&!c(1-3)PLA的优点是它对于大型设计非常有用,因为它可以实现大量公共乘积项,可用于多个输出。而PLA的缺点是信号通过可编程连线所花费的时间相对更长,所以整个器件的速度受到很大的影响。第一章FPGA设计基础图1-2PLA编程示意图第一章FPGA设计基础3.PAL器件PAL(ProgrammableArrayLogic,可编程阵列逻辑)器件便是为了解决PLA的速度问题而产生的,其结构示意图如图1-3所示。图1-3PAL结构示意图第一章FPGA设计基础从图1-3中可以看到,PAL的结构与PROM的正好相反,体现在PAL是由一个可编程AND阵列和一个预定义的OR阵列组成的,相对于PLA器件速度要快得多,但是它只允许有限数量的乘积项相或,对器件的应用灵活性又一次进行制约。要解决这些问题,需要跳出PROM器件的阴影,不再针对PROM器件做结构上简单的改进,而是采用新的方法,也就是下面我们讨论的GAL器件。第一章FPGA设计基础4.GAL以及CPLD器件GAL(GenericArrayLogic,通用逻辑阵列)器件是Lattice公司于1985年推出的新型的可编程逻辑器件,GAL器件的输出端不再是简单采用或阵列实现,而是采用了逻辑宏单元(OLMC),通过编程可以将OLMC设置成不同的输出方式。这样,采用同一型号的GAL器件就可以实现PAL器件所有的输出电路工作模式,使GAL器件成为通用可编程逻辑器件。第一章FPGA设计基础GAL系列器件诞生之后很长时间受到工程师的青睐,其在数字系统中的粘合逻辑功能方面,对原来传统意义上的74系列器件提出了挑战。GAL器件不仅在性能上有很大的提高,而且还附加了很多独有的功能。比如,电子标签,方便了用户的文档管理;加密单元,防止他人抄袭电路;采用高性能的E2COMS工艺,保证了GAL器件的高速度和低功耗等。但是GAL器件依然属于低密度器件,其规模还是比较小,仅相当于几十个门电路。第一章FPGA设计基础真正的可编程时代的到来应该是伴随着CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)的诞生。在20世纪90年代前后,目前世界著名的可编程逻辑器件公司如Xilinx、Altera、Lattice等都争相研究新型的复杂可编程逻辑器件。CPLD一般都是基于乘积项结构的,如Xilinx公司的XC9500、CoolRunnerⅡ系列器件,Altera的MAX7000、MAX3000以及MAX-Ⅱ系列器件,Lattice的ispMACH4000、ispMACH5000系列器件等,都是基于乘积项的CPLD。CPLD采用的理念是一个普通的器件中包括一定数量的基本逻辑块,分享一个公共的可编程互连矩阵。总体来说,CPLD的结构由四个部分组成:可编程I/O单元、可编程基本逻辑单元(CLB)、可编程布线资源(布线池、布线矩阵)和其他辅助模块(时钟资源),如图1-4所示。第一章FPGA设计基础图1-4CPLD的结构示意图第一章FPGA设计基础1.2.2FPGA技术约在20世纪80年代早期,ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)技术已经在飞速发展。但是在很多应用场合,昂贵的ASIC费用不是广大客户所想要的,而且ASIC流片的风险太大,周期太长,在不确定芯片需求量很大的情况下,人们是非常谨慎的。而CPLD技术虽然有飞跃,但是依然不能实现复杂的功能,尤其是无法实现复杂逻辑运算的功能。ASIC与CPLD之间的鸿沟越来越明显。幸运的是,1984年世界上首款FPGA在Xilinx诞生。首款FPGA基于CMOS工艺,并且采用SRAM单元,最小单元由一个3输入查找表(LUT)与寄存器组成。首款FPGA的诞生,已经给人们发出了一个信息,除了ASIC和CPLD之外,另外一种新型结构的可编程逻辑器件会给逻辑设计带来新的活力。第一章FPGA设计基础FPGA刚开始大部分用来作粘合逻辑、中等复杂程度的状态机和相对有限的数据处理任务。在20世纪90年代,FPGA的规模和复杂度开始增加,市场扩展到通讯和网络领域,而且都涉及到大量数据的处理。21世纪初,FPGA在消费类产品,如汽车和工业领域的应用也经历了爆炸式的增长,发展到现在,FPGA的黄金时代已经到来。ASIC验证、微处理器核的嵌入、系统级的解决方案,这些FPGA不断创新的理念逐渐适应了目前市场的需求。第一章FPGA设计基础对于ASIC公司来说,FPGA经常用于提供一个硬件验证平台来验证新算法新协议的物理层实现。比如,许多行业的开创性公司使用FPGA制定新的协议标准,并进行产品化,迎来市场的新增值点。同时,FPGA为许多小型公司带来机遇。这些公司利用FPGA开发低成本高智力投入的产品并快速推向市场,迎来新的发展机遇。FPGA技术的发展将创造性的逻辑设计任务从昂贵的ASIC公司搬到了普通的工作室。第一章FPGA设计基础市场给了FPGA极大的机会,也给FPGA自身的发展带来了挑战。数千万门的FPGA器件中集成了内嵌微处理器核、数字信号处理器(DSP)、高速的输入/输出(I/O)接口等。FPGA正在蚕食着4个主要的市场:ASIC和可定制硅、DSP、嵌入式微处理器以及物理层通信芯片。另外,FPGA还在创建自己的独立市场,如可重配置计算技术(RC)。RC技术即由FPGA提供的固有的并行性和可重配置性来实现软件算法的“硬件加速”,许多公司在建立以FPGA为基础的可重配置计算引擎,来完成从硬件仿真到密码分析等任务。第一章FPGA设计基础从另外一个角度来说,FPGA技术的不断推进,对于电子系统来说,产生了新的设计思想,即“软”设计。这里的“软”可以理解为“嵌入式软件设计和可编程逻辑设计”,我们使用可编程逻辑器件用软件的方法搭建硬件平台,然后配合嵌入式软件进行系统功能的设计,FPGA成功成为这种新型设计方法的不可替代的载体。这种新型的设计方法具有非常多的优势,比如更容易保护知识产权不被复制,因为我们知道在这个世界上有另外一类的工程师是在做反向工程的,在知识产权的保护上原创者往往都要花费很大的精力在这方面,而软件的东西看不到摸不着,相对来说破解的概率要小的多;另外,增强了产品的智能化,基于纯“软”设计方法设计的产品,在硬件不变的情况下,更容易对产品进行改进和升级,并为客户新产品赢取及早面市的时间。第一章FPGA设计基础1.3FPGA器件编程技术1.3.1熔丝互连编程技术在FPGA的可编程技术中,最容易理解的可编程技术就是熔丝互连技术,下面我们举例说明熔丝互连技术的原理。第一章FPGA设计基础图1-5未编程的熔丝连接图第一章FPGA设计基础提起“熔丝”,我们不由地想起家里面的经常可以看到的保险丝之类的东西,比如电视机,在出现某些危险时(比如电视功率突然变大),保险丝就会熔断,结果使得电路开路,避免剩下的电路被继续烧坏;在集成电路里面,道理其实是一样的,只不过没有那么直观,熔丝的尺度小到显微镜下才可以看到,其熔断的方式也不是用大功率电压来实现的,而是靠一定的工艺来确定的。第一章FPGA设计基础虽然熔丝连接技术在当今FPGA中已弃用,但是对理解新型FPGA可编程技术还是非常有用的,在这里我们仅做简单的介绍。当拿到一个基于熔丝互连技术的可编程器件时,所有的熔丝都是完好的,保持着连接的状态,参见图1-5。此时,与门的输出一直保持为0,其原理非常的简单:当a为0时,与门输入端为0,输出必然为0;当a为1时,a的非门输出为0,与门输入端仍为0,输出必然还是0。同样的情况对于b来说也是一样的。那么我们可以通过在输入端加上相当大

1 / 113
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功