您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > fpga-cpld讲义及试验指导(清华大学电子系)
―1―《可编程逻辑器件与应用专题》讲义附实验指导书清华大学电子工程系―2―第一章绪论§1.1可编程ASIC综述为特定的产品或应用而设计的芯片被称为专用集成电路ASIC(ApplicationSpecificIntegratedCircuits),除了全定制的专用集成电路外,目前有五种半定制的元件,可实现ASIC的要求,它们是:*可编程逻辑器件(PLD)*复杂可编程逻辑器件(CPLD)*现场可编程门阵列(FPGA)*门阵列(GateArray)*标准单元(StandardCell)在这些器件中,尤其是前三种器件的出现,使得电子系统的设计工程师利用相应的EDA软件,在办公室或实验室里就可以设计自己的ASIC器件,其中近几年发展起来的CPLD和FPGA格外引人注目。这三种器件都具有用户可编程性,能实现用户需要的各种专门用途,因此被称作可编程专用集成电路。半导体制造厂家可按照通用器件的规格大批量生产这种集成电路,作为一种通用集成电路,用户可以从市场上选购,再通过设计软件编程实现ASIC的要求。由于这种方式对厂家和用户都带来了好处而受到欢迎,因此发展特别迅速,已经成为实现ASIC的一种重要手段。随着半导体技术的迅速发展,从八十年代开始,构造许多电子系统仅仅需要三种标准电路:微处理器,存储器和可编程ASIC。电子系统设计的这场革命是从70年代开始的,当时存储器已经作为标准产品进入市场,而80年代的微处理器也成为一种标准产品。值得注意的是,微处理器和存储器作为电子系统的两个主要模块,一直都是可编程的。但是组成电子系统的各种控制逻辑仍然需要大量的中小规模通用器件。直到近十年来,随着可编程逻辑器件的出现,才给电子系统的控制逻辑提供了可编程的灵活性。而可编程门阵列作为一种高密度,通用的可编程逻辑器件与它的开发系统一起为更多的电子系统逻辑设计确定了一种新的工业标准。越来越多的电子系统设计工程师用CPLD或FPGA作为电子系统设计的第三个模块来实现一个电子系统。CMOS半导体技术的不断发展推动了电子系统逻辑设计的这一变革。人们历来认为CMOS速度太慢,不能满足高性能系统设计的需要,很多设计只能用一次可编程(OTP)的双极型可编程逻辑器件(PLD)来完成。而现在许多CMOS的可编程逻辑器件实际上已达到或超过双极型的性能,同时还具有低功耗、可编程和高集成度等吸引人的优点。目前可编程ASIC正朝着为设计者提供系统内可再编程(或可再配置)的能力方向发展,即可编程ASIC器件不仅要具有可编程和可再编程能力,而且只要把器件插在系统内或电路板上,就能对其进行编程或再编程,这就为设计者进行电子系统的设计和开发提供了最新的实现手段,而在以前这是不可想象的。采用系统内可再编程(ISP)技术,使得系统内硬件的功能可以像软件一样被编程来配置,从而可以实时地进行灵活和方便的更改和开发。这种称为“软”硬件的全新设计概念,使得新一代电子系统只有极强的灵活性和适应性,它不仅使电子系统的设计和产品性能的改进、扩充变得十分简易和方便,而且使电子系统只有多功能性的适应能力,从而可以为许多复杂的信号处理技术提供新的思路和方法。随着可编程器件规模的增加,使器件变得越来越复杂,对器件作全面彻底测试的要求也就越来越高,而且越来越重要。表面安装的封装和电路板制造技术的进步,使得电路板变小变密,这样一来,传统的测试方法,例如外探针测试法和“钉床”测试夹具法都难于实现。结果由于电路板简化所节约的成本,很可能被传统测试方法代价的提高而抵消掉。20世纪80年代联合测试行动组JTAG(JointTestActionGroup)开发了IEEE1149.1-1990边界扫描测试技术规范。这个边界扫描测试(BST)结构提供了有效地测试引线间隔致密的电路板上零部件的能力。你可以使用BST结构测试引脚连接而不必使用物理测试探针,而且可以在器件正常工作时捕获功能数据。器件的边界扫描单元能够迫使逻辑追踪引脚信号,或是从引脚或器件核心逻辑信号中捕获数据。强行加入的测试数据串行移入边界扫描单元,捕获的数据串行移出并在器件外部同预期的结果进行比―3―较。JTAG标准提供了板级和芯片级的测试。通过定义输入输出引脚、逻辑控制函数和指令,所有JTAG的测试功能部仅需一个四线或五线的接口及相应的软件即能完成。图1-1举例说明了边界扫描测试法的概念。核心逻辑核心逻辑串行数据输入JTAG器件1JTAG器件2串行数据输出IC引脚图1-1JTAG边界扫描测试法可编程逻辑器件规模的不断发展,使其可以实现电子系统的高度集成,为了快速准确地设计复杂的电子系统,必须采用计算机自顶向下的设计和综合工具。综合工具一般包括从原理图和高层描述工具、逻辑仿真器,到底层综合工具的一系列软件包。底层的综合工具对设计进行逻辑描述,并执行逻辑优化、器件映射、布局布线的网表优化,从而产生最终的设计结果。对于简单的设计,采用原始图输入或布尔方程输入是比较合适的。但对于复杂系统的设计,这两种输入方法变得繁琐而复杂并容易产生错误,而必须考虑高层次的设计输入方法。因此很多综合工具支持硬件描述语言(HDL),寄存器转换语言(RTL)或有限状态机(FSM)。高层综合工具可以采用高层的行为描述,如VHDL或编程语言。行为描述语言不需要说明一个设计具体采用何种方式实现。高层综合包括选择特定的结构模板,然后执行资源分配,寄存器分配和定时。所以在高层设计期间,设计者基本是在速度和资源之间所取舍。例如,相同的行为设计,当速度要求不高时,可以采用完全的流水线方式的逻辑设计来实现。从一个满意的行为描述开始的设计,使设计者能够有更广泛的选择余地,来找出哪一个最适合特定的实现环境。高层设计方法的另一个主要优点是更容易理解和维护。目前,电子设计自动化软件不再是简单的CAD或CAT,已经发展到“电子系统设计自动化(EDA)”,软件平台也已从小型机覆盖到工作站到高性能微机,一般都包含了符合IEEE-1076标准的VHDL高层综合工具,这些都为可编程ASIC的设计带来了极大的方便。特别对于中小规模系统的集成,可编程逻辑器件成为首选的方案。这也是可编程逻辑器件得到广泛应用的原因之一。§1.2可编程逻辑器件的分类可编程逻辑器件包括一个未配置的逻辑单元阵列,此阵列可以编程实现所需的逻辑功能,并通过可编程互连接到所要求的输入、输出。这些逻辑单元可以是门、反相器、触发器或较大的宏单元,并且有它自身的可编程局部互连系统。可编程互连是由可编程的开关阵列和连接逻辑单元的固定信号线组成。可编程逻辑器件有许多不同的分类方法,下面主要介绍四种:1.2.1从互连特性上分类从互连特性上,可编程逻辑器件结构可以分为确定型和统计型两大类。确定型的PLD包括PROM、PLA、PAL、FPLA、GAL、EPLD和EEPLD。它们所提供的互连结构每次都用相同的互连线实现布线。所以这类可编程逻辑器件的延时特性常常可以从数据手册上直接查到,而不需通过设计软件来确定。统计型的器件主要是现场可编程门阵列(FPGA)。FPGA的设计软件每次完成相同的功能却给出不同的布线结果,所以称为统计型的结构。因此在电路设计时必须允许设计者限制功能中关键路径的时序变化,确保它们不超出系统的技术要求。1.2.2从可编程特性上分类:目前为用户提供的编程手段主要有四种:*一次编程熔丝或逆熔丝;*EPROM结构,即紫外线擦除电报编程存储单元(UVEPROM)采用紫外线互补金属氧化半导体―4―(UVCMOS);*电擦除和再编程存储单元。一类是EEPROM,为电擦除式互补金属氧化半导体(EECMOS);另一类是结构与UVEPROM类似,但采用电擦除的闪速存储单元(FLASHMEMORY);*基于静态存储器(SRAM)的编程结构。所以根据编程能力可以将它们分为两大类,一类是不可以再编程的,确定型的PAL和统计型采用逆熔丝的FPGA都是不可再编程的;另一类是可再编程的,确定型的GAL和统计型的采用SRAM的FPGA属于此类。1.2.3从器件容量上分类由于可编程逻辑器件本身结构上和半导体生产工艺的不断改进和提高,器件的密度不断增加,性能亦不断提高,目前可编程逻辑器件的容量已达到百万门以上。从容量上对可编程逻辑器件的分类是将复杂的可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)统称为高容量可编程逻辑器件(HCPLD)。1.2.4从结构的复杂程度上分类从结构上对可编程逻辑进行分类是最常用的方法,而且各类可编程逻辑器件的开发系统都是针对其结构来设计的,了解和掌握可编程逻辑器件的结构对合理、有效地选用开发软件来设计可编程逻辑器件就很重要。从结构上可将可编程逻辑器件分为以下三类:*简单可编程逻辑器件(PLD);*复杂可编程逻辑器件(CPLD);*可编程门阵列(FPGA)。―5―第二章可编程逻辑器件的结构和特点§2.1概述可编程逻辑器件(PLD)是一个逻辑电路,可由用户编程来实现特定的逻辑功能。许多PLD器件的功能已经或多或少变成工业标准,即可以像标准74系列中小规模器件那样。设计人员可以按照产品手册,根据速度、功耗、成本进行选择,并能从不同的厂家购买到。而且,PLD器件还提供了标准74系列器件无法提供的可编程功能,用户可以将一些中小规模器件的功能集成到一个或几个PLD中,极大的简化了印制板的设计,因此PLD成为最早实现可编程ASIC的器件。§2.2PLD的结构PLD的主要部分由两个逻辑阵列构成,一个与阵和一个或阵。输入到PLD的信号首先通过与阵,形成输入信号的组合,每组与项称为布尔代数的最小项或乘积项,这些乘积项在或阵中进行逻辑或后由输出宏单元输出。输入信号的反码由输入缓冲器产生,PLD的布线由阵列实现,所以只要逻辑功能能够放进PLD器件,布线就能够成功。PLD器件的与或阵列结构可以有效地利用硅片的面积,对于逻辑设计也非常方便。因为任何布尔函数都可以表示为最小项的逻辑表达式,而这正是PLD器件的结构。基于与或阵的PLD有三种基本类型,由哪个阵列可编程来区分这三种器件:可编程只读存储器-PROM:与阵固定,或阵可编程可编程阵列逻辑-PAL,GAL:与阵可编程,或阵固定可编程逻辑阵列-PLA:与阵、或阵都可编程图2-1是PLA的结构示意图,图中的×表示可编程的熔丝连接。PROM、PAL等的结构和PLA基本相同,只是可编程的阵列不同,不同的具体型号的输出结构和输出电平也略有区别,有的器件具有三态输出、寄存器输出、反馈输入特性,进一步增强了器件的功能。下表列出了PAL器件的编号方法,具体特性请参考器件手册或相关资料。表2-1常用PAL器件编号方法结构代码含义器件编号HLPRV高电平输出有效低电平输出有效输出电平可编程带寄存器输出单元乘积项数目不同或宏单元输出PAL10H8PAL16L8PAL16P8PAL16R8PAL20V8例如,编号PAL16H8的PAL器件表示有最多可以有16个输入端,8个输出端,输入输出端口可组合编程,输出高电平有效。§2.3CPLD的结构PLD器件的共同缺点是逻辑阵列规模小,每个器件仅相当于几十个等效门,不适用于较复杂的逻辑电路的设计,并且也不能完全杜绝编程数据的非法抄袭。随着集成电路工艺的发展,PLD的规模越来越大,已经发展到百万门级的复杂可编程逻辑器件CPLD(ComplexProgrammableLogicDevice)系图2-1是PLA的结构示意图―6―列,其中可擦除的CPLD有称为EPLD(ErasablePLD)。表2-2ALTERACPLD主要产品CPLD的发展十分快速,各半导体厂都有CPLD产品投入研发,如ALTERA、ATMEL、CYPRESS、LATTICE及XILINX等。表2-1及表2-2列出了ALTERA及ATMEL生产的CPLD主要规格,若要详细了解则可到各家厂商的网站查阅,网址如下:ALTERA::::
本文标题:fpga-cpld讲义及试验指导(清华大学电子系)
链接地址:https://www.777doc.com/doc-2872447 .html