实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt

上传人:牧羊曲112 文档编号:4892916 上传时间:2023-05-22 格式:PPT 页数:266 大小:1.65MB
返回 下载 相关 举报
实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt_第1页
第1页 / 共266页
实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt_第2页
第2页 / 共266页
实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt_第3页
第3页 / 共266页
实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt_第4页
第4页 / 共266页
实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt_第5页
第5页 / 共266页
点击查看更多>>
资源描述

《实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt》由会员分享,可在线阅读,更多相关《实用EDA技术与VHDL教程(人民邮电)第1章绪论.ppt(266页珍藏版)》请在三一办公上搜索。

1、第1章 绪论,1.1 EDA技术概论,EDA技术是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式。,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。,EDA技术涉及面广,内容丰富,从教学和实用的角度看,主要应掌握如下4个方面的内容:,(1)大规模可编程逻辑器件(2)硬件描述

2、语言(3)软件开发工具(4)实验开发系统,大规模可编程逻辑器件是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。,现在,FPGA和CPLD的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。,FPGA在结构上主要包括三个部分,即可编程逻辑单元、可编程输入/输出单元和可编程连线。,CPLD在结构上主要包括三个部分,即可编程逻辑宏单元、可编程输入/输出单元和可编程内部连线。,1.1.1 EDA技术的发展历程,从EDA设计技术的发展历史来看,它大致经历了以下3个重要阶段,分别是第一代EDA工具、第二代EDA工具

3、以及第三代EDA工具的产生和发展。,每一代EDA工具都有其优缺点,后一代EDA工具都是对前一代EDA工具进行不断改进和功能扩展,从而满足各个历史时期设计人员的开发需要。,1第一代EDA工具2第二代EDA工具3第三代EDA工具,1.1.2 EDA设计技术的基本特征,一般来说,EDA技术就是指以计算机为工作平台、以EDA软件工具为开发环境、以硬件描述语言为设计语言、以可编程逻辑器件为实验载体、以ASIC和SoC为设计目标、以电子系统设计为应用方向的电子产品自动化设计过程。,通常,EDA设计技术的基本特征主要包括以下几个方面:1自顶向下的设计方法2硬件描述语言3逻辑综合和优化功能4开放性和标准化,1

4、.1.3 EDA设计技术的工具,目前,EDA技术的开发工具包括编辑器、仿真工具、检查/分析工具和优化/综合工具等,这些工具的简单介绍如下所示。,1编辑器2仿真工具3检查/分析工具4优化/综合工具,图1-1 EDA工具进行开发的具体流程图,1.1.4 EDA设计技术的发展趋势,(1)EDA工具的PC平台化。(2)EDA设计技术朝着ESDA和CE方向发展。(3)EDA工具应该具有编译选择能力。,1.2 FPGA/CPLD器件概述,目前,可编程逻辑器件广泛应用于计算机、数字电路设计、通信系统、工业自动控制、仪器仪表和集成电路设计等领域,它的出现大大改变了传统的系统设计方法,传统的“固定功能模块连线”

5、的设计方法正在逐步退出历史舞台,而基于芯片的设计方法正在成为电子系统设计的主流。,1.2.1 可编程逻辑器件的发展,随着科学技术的发展,集成电路的设计正朝着快速度、高性能、大容量、小体积和微功耗的方向发展,这种发展必将导致集成电路的设计规模日益增大,复杂程度日益增高。,经过40多年的发展,集成电路已经从小规模集成(SSI)、中规模集成(MSI)、大规模集成(LSI)发展到超大规模集成(VLSI)和特大规模集成(ULSI),每个芯片可以集成数百万个以上的晶体管。,如今,大规模和超大规模集成电路技术已经成为高科技研发领域的基础。,如果从具体的逻辑功能特点上来进行分类,那么大规模和超大规模集成电路可

6、以分为通用集成电路和专用集成电路两大类。,例如,常见的小规模数字集成电路74系列、CC4000系列、74HC系列和常用的大容量动态存储器等都属于通用集成电路,它们的特点是逻辑功能比较简单并且固定不变。,由于这些集成电路在组成复杂的电子系统中经常用到,因此可以看出它们具有很强的通用性。,一般来说,专用集成电路又可以分为两种不同的类型,它们分别是全定制集成电路(Full-Custom IC)和半定制集成电路(Semi-Custom IC)。,通常,可编程逻辑器件的发展历史如下所示:(1)20世纪70年代,采用熔丝编程的PROM和PLA器件可以称为是最早的可编程逻辑器件,它可以根据用户的需要写入相应

7、的信息来完成一定的逻辑功能。,但是由于熔丝烧断后不能再次接通,因此这时的器件编程是一次性的,写入后不能进行修改。,(2)20世纪70年代末,MMI公司率先推出了一种新的可编程逻辑器件PAL,它也采用双极性型工业制作、熔丝编程方式。,从逻辑特性上来看,PAL器件不如PLA器件那样灵活和方便,但是它的成本较低、价格便宜、编程方便、编程器也较为便宜,另外它还具有保密位来防止非法读出,因此它在当时获得了广泛的应用。,(3)20世纪80年代初,Lattice公司推出了另外一种新型的可编程逻辑器件GAL,它克服了PAL器件存在的缺点,应用起来更加灵活和方便。,GAL器件采用了电可擦除的CMOS工艺制作,采

8、用电压信号可以擦除原来的信息而重新进行编程操作。,另外,GAL器件的输出端口设置了可编程的输出逻辑宏单元(OLMC,Output Logic Macro Cell),设计人员通过编程可以将OLMC设置成不同的工作状态。,这样可以采用同一型号的GAL器件来实现PAL器件的各种电路输出工作方式,大大提高了器件的通用性。,(4)20世纪80年代中期,Xilinx公司提出了现场可编程的概念,同时生产了世界上第一片FPGA器件。,FPGA的编程方式与PAL器件和GAL器件大为不同,它不是通过专门的编程器来完成的。,通常,它的设计过程是利用一套专用的设计软件来完成的,最后生成一个用来对FPGA器件进行编程

9、的文件。,一般来说,FPGA中的编程信息将会存储在专用的RAM中,这样上电后外部RAM中的编程信息将会传入到器件中的静态RAM中,从而实现相应的功能。,(5)20世纪80年代末,Lattice公司又提出了在系统可编程技术,同时推出了一系列具有在系统可编程能力的CPLD。与EPLD相比,CPLD规模更大、结构更为复杂,能够完成较为复杂的系统功能设计。,(6)20世纪90年代后,可编程逻辑器件进入到了飞速发展的阶段。在生产工艺方面,可编程逻辑器件的线宽越来越小,集成门数越来越大,功耗越来越低。,在具体的器件编程方面,EEPROM逐渐取代了UVEPROM工艺,同时FPGA的现场可编程技术和CPLD的

10、在系统可编程技术使得可编程逻辑器件在使用上更加方便。,在测试技术方面,可编程逻辑器件大多数可采用边界扫描测试技术,大大加强了器件、电路板和系统的可测试性。,在逻辑功能上,可编程逻辑器件内部嵌有微处理器,大大提高了器件的逻辑功能和处理能力。,1.2.2 可编程逻辑器件的分类,1按照集成度和结构复杂度进行分类,图1-2 按照集成度和结构复杂度进行分类,PROM(Programmable Read Only Memory)是一种与阵列固定、或阵列可编程的与或阵列,通常它是由地址译码器、存储矩阵和输出缓冲器3个部分组成的。,PLA(Programmable Logic Array)是一种与阵列可编程、

11、或阵列也可进行编程的与或阵列。,PAL(Programmable Array Logic)是一种与阵列可编程、或阵列固定的与或阵列。,GAL(Generic Array Logic)是一种在PAL器件的基础上发展起来的新型可编程逻辑器件,从基本结构上看它仍然属于与或阵列结构的可编程逻辑器件。,FPGA(Field Programmable Gate Array)通常被称作现场可编程门阵列,它最初是由Xilinx公司提出的。,图1-3 FPGA器件的一般结构,通常,CPLD和FPGA的差别主要体现在两个方面:(1)CPLD和FPGA内部逻辑单元的电路工艺不同。(2)CPLD和FPGA内部连线的连

12、接方式不同。,2按照基本结构进行分类,目前常用的可编程逻辑器件都是从与或阵列和门阵列两类基本结构发展起来的,因此又可以从结构上将其分为两大类可编程逻辑器件:PLD(Programmable Logic Device)和FPGA(Field Programmable Gate Array)器件。,通常,这种分类方法的划分标准是:如果可编程逻辑器件的基本结构为与或阵列,那么这类器件就称为PLD;如果可编程逻辑器件的基本结构为门阵列,那么这类器件就称为FPGA。,3按照内部的逻辑单元进行分类,对于可编程逻辑器件来说,常见的内部逻辑单元主要包括与或阵列、宏单元、查找表和多路开关。,一般来说,内部逻辑单

13、元为与或阵列的可 编程逻辑器件包括PROM、PLA、PAL和GAL;内部逻辑单元为宏单元的可编程逻辑器件包括EPLD和CPLD;而内部逻辑单元为查找表和多路开关的可编程逻辑器件包括FPGA。,与或阵列是一种最为简单的可编程逻辑单元结构,它是由与阵列和或阵列共同组成的一种结构。,与或阵列在硅片上非常容易实现,对逻辑设计也十分方便。通过对与阵列和或阵列的编程方式进行相应的控制,用户可以很容易得到PROM、PLA、PAL和GAL器件。,4按照编程工艺进行分类,通过前面的介绍可以知道,如今各个厂商的CPLD和FPGA均采用CMOS工艺,因此它们的编程方法上将会有很大的不同。,根据可编程逻辑器件编程工艺

14、的不同,它们可以分为以下4种不同的类型:,(1)采用熔丝或反熔丝工艺的编程器件,这种类型的可编程逻辑器件包括几乎所有的PROM器件、Xilinx公司的XC5000系列器件和Actel公司的FPGA器件等。,(2)采用UVEPROM工艺的编程器件,即紫外线擦除编程器件,这种类型的可编程逻辑器件包括大多数的CPLD和FPGA器件。,(3)采用EPROM工艺的编程器件,即电可擦除编程器件,这种类型的可编程逻辑器件包括大多数的GAL器件、Lattice公司的ispLSI器件、Xilinx公司的XC9500系列和Altera公司的MAX7000系列等。,(4)采用SRAM工艺的编程器件,这种类型的可编程

15、逻辑器件包括Xilinx公司的FPGA器件和其他厂商的FPGA器件等。,1.3 可编程逻辑器件的基本结构,图1-4 可编程逻辑器件的基本结构,在可编程逻辑器件的基本结构中,由于与电路、或电路的数量很多,同时它们的排列又具有一定的规律性,因此设计人员常常将其称为与阵列以及或阵列。,另外,基本结构中与阵列的输出P1到Pd称作乘积项,它是可编程逻辑器件中非常重要的一个概念。,这里,假设可编程逻辑器件的输入数为n、输出数为m、乘积项的数目为d,那么器件的芯片面积S可以表示为如下的公式:S=(2n+m)d,对于与或阵列来说,设计人员可以通过改变与或阵列的具体连接关系来实现不同的逻辑功能。,通常,只要与或

16、阵列中的任何一个阵列的连接关系发生了变化,那么相应可编程逻辑器件的功能也会发生一定的变化。,在数字电路中,根据可编程逻辑器件中与或阵列的不同组合形式或者编程方式,可以将简单的可编程逻辑器件分为3种类型:,(1)可编程只读存储器PROM,它的特点是与或阵列中与阵列固定、或阵列可编程;,(2)可编程逻辑阵列PLA,它的特点是与或阵列中与阵列可编程、或阵列也可编程;,(3)可编程阵列逻辑PAL,它的特点是与或阵列中与阵列可编程、或阵列固定。,图1-5 通用集成电路的设计流程,图1-6 可编程逻辑器件的设计流程,1.4 简单的可编程逻辑器件,简单的可编程逻辑器件包括可编程只读存储器PROM、可编程逻辑

17、阵列PLA、可编程阵列逻辑PAL和通用阵列逻辑GAL,它们都是采用简单的与或阵列来构成的,因此它们能够有效地实现“积之和”形式的布尔逻辑函数。,本节将对上面的4种简单可编程逻辑器件进行介绍,这里首先介绍可编程只读存储器PROM。,1.4.1 可编程只读存储器(PROM),图1-7 只读存储器的电路结构框图,综上所述,只读存储器的与阵列是固定的,只要它的地址输入数相同,它们的与阵列都是相同的。,但是每种不同的只读存储器的或阵列是不同的,它们通常是根据所存储的数据信息来决定的,或者说是根据要求的逻辑关系来决定的,或阵列正是通过编程来实现不同的逻辑关系的。,因此,与阵列固定、或阵列可编程是只读存储器

18、中逻辑阵列的特点。,在数字电路中,只读存储器又可以分为掩模只读存储器、可编程只读存储器(PROM)和可擦除的可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)等几种不同的类型。,1.4.2 可编程逻辑阵列(PLA),为了提高芯片资源的利用情况,用户往往希望与阵列不需要产生所有的最小项,它只需要产生具体设计的逻辑函数所需要的乘积项即可,可编程逻辑阵列PLA即可实现上面的功能。,从具体的结构上来看,可编程逻辑阵列PLA就是把ROM中的译码器改成乘积项发生器的一种可编程逻辑器件。,PLA的结构特点是与阵列可编程,或阵列也可以编程。根据PLA的

19、结构特点可以判断:PLA产生的乘积项的具体数目一般总是小于2n个;另外PLA中的每一个乘积项是根据设计的需要来进行输入信号组合的,它不一定是全部n个输入信号的组合。,在数字电路的设计中,PLA根据使用情况可以分为两大类:,(1)一类是完全按照用户的要求,设计一片专用的PLA芯片或者把PLA作为某种大规模集成电路的一部分。由于输入和输出数目已由设计要求规定,所以减少所需乘积项数目成为优化的主要目标。,(2)另外一类是现场可编程逻辑阵列(FPLA,Field PLA),它的最大特点是由用户自己编程写入与或阵列的内容。与第一类PLA相比,这才是一种真正的可编程逻辑器件。,目前,许多芯片制造厂商都提供

20、FPLA芯片,这种芯片的输入数目、输出数目和乘积项数目都是确定的,使用时只要不超过这些限制就可以。,图1-8 FPLA的基本结构,通过图1-8可以看出,FPLA和PROM的结构十分相似,它们的基本结构都是由与阵列、或阵列和输出缓冲器3个部分构成的。,两者的不同之处体现在以下3个方面:(1)PROM的与阵列是固定的,而FPLA的与阵列则是可编程的;,(2)PROM的与阵列会把输入变量的全部最小项都译出来,而FPLA的与阵列只用来产生设计需要的乘积项,因此它的乘积项要比PROM小得多;,(3)采用PROM产生组合逻辑函数时,用户一般只会用到全部最小项中的某一部分,因此它的资源利用率比较低,采用FP

21、LA产生组合逻辑函数时,可编程的与阵列只产生设计需要的乘积项,这样FPLA的与或阵列的规模将会大大减小,资源利用率提高。,图1-9 带有极性控制单元的FPLA输出结构,图1-10 时序逻辑型FPLA的电路结构框图,1.4.3 可编程阵列逻辑(PAL),可编程阵列逻辑(PAL)是20世纪70年代末MMI公司率先推出的一种新的可编程逻辑器件,它也采用双极型工业制作和熔丝编程方式。,PAL的基本结构与PLA十分类似,它通常也是由与阵列、或阵列和输出电路3个部分构成的。与PLA相比,PAL具有其自身的特点,这主要体现在以下两个方面:,(1)PAL中的与阵列是可以进行编程的,而或阵列则是固定不变的;(2

22、)PAL中的输出电路结构多种多样,可以方便地构成各种时序逻辑电路。,图1-11 PAL的基本电路结构,对于PAL来说,为了扩展它的电路功能同时增加其使用的灵活性,生产厂商在很多型号的PAL中添加了不同形式的输出电路。,根据PAL器件输出电路结构和反馈方式的不同,这里可以将PAL器件的输出电路分为以下几种类型:,(1)基本输出结构(2)可编程输入/输出结构(3)寄存器输出结构(4)异或输出结构,1基本输出结构,图1-12 反相输出的PAL器件,2可编程输入/输出结构,图1-13 PAL的可编程输入/输出结构,3寄存器输出结构,图1-14 PAL的寄存器输出结构,4异或输出结构,图1-15 PAL

23、的异或输出结构,1.4.4 通用阵列逻辑(GAL),20世纪80年代初,Lattice公司推出了另外一种新型的可编程逻辑器件GAL(Generic Array Logic,通用阵列逻辑),它是在PAL器件基础上发展起来的新型器件。,从基本结构原理上看,GAL器件仍然属于与或阵列结构的可编程逻辑器件。与传统的PAL器件相比,GAL器件具有以下两个重要特点:,(1)GAL器件采用了电可擦除的CMOS工艺来制作,即采用电压信号可以擦除原来的信息而重新进行编程操作。一般来说,GAL器件的功耗比PAL器件低得多,大概只有PAL器件的四分之一左右。,(2)GAL器件采用了与阵列和输出逻辑宏单元结构代替了P

24、AL器件的与或阵列结构,这样大大增加了GAL器件逻辑上的灵活性,因此一种GAL器件可以代替许多种PAL器件来进行逻辑电路的具体设计,大大提高了器件的通用性。,图1-16 GAL16V8的电路结构框图,总的来说,输出逻辑宏单元结构的作用体现在以下几个方面:(1)提供时序逻辑电路需要的触发器或寄存器;(2)提供多种输入/输出形式;,(3)提供内部信号反馈;(4)分配控制信号,如寄存器的时钟和复位信号以及三态门的输出使能信号等;(5)共享乘积项;(6)控制输出逻辑极性。,图1-17 OLMC内部结构框图,表1-1AC0和AC1对4个数据选择器的控制作用表,1寄存器模式下的寄存器输出配置,图1-18

25、寄存器模式下的寄存器输出配置,2寄存器模式下的组合输出配置,图1-19 寄存器模式下的组合输出配置,3复杂模式下的I/O组合输出配置,图1-20 复杂模式下的I/O组合输出配置,4复杂模式下的无反馈组合输出配置,图1-21 复杂模式下的无反馈组合输出配置,5简单模式下的有反馈组合输出配置,图1-22 简单模式下的有反馈组合输出配置,6简单模式下的无反馈组合输出配置,图1-23 简单模式下的无反馈组合输出配置,7简单模式下的专用输入配置,图1-24 简单模式下的专用输入配置,1.5 可编程逻辑器件EPLD和CPLD,除了简单的可编程逻辑器件和FPGA外,目前应用较为广泛的可编程逻辑器件主要包括两

26、种:一种是可擦除的可编程逻辑器件EPLD;另外一种是复杂的可编程逻辑器件CPLD。,由于CPLD是EPLD的改进形式,因此它比EPLD的规模更大、结构更为复杂,但是它们的基本结构和基本原理是类似的,因此这里将它们放在同一小节中进行介绍。,1.5.1 可擦除的可编程逻辑器件EPLD,20世纪80年代中期,Altera公司推出了一种新型的、电可擦除的可编程逻辑器件,它被称作EPLD,即Erasable Programmable Logic Device,它是继PAL和GAL器件之后推出的另外一种可编程逻辑器件。,与PAL和GAL器件相比较,EPLD的集成度更高,结构更为复杂,功能更加强大,因此它迅

27、速取代PAL和GAL器件成为可编程逻辑器件的主流。,一般来说,一种可编程逻辑器件取代另外一种可编程逻辑器件成为应用的主流,它必须具有一定的技术优势。,与PAL和GAL器件相比,EPLD的特点主要体现在:(1)EPLD采用了CMOS工艺,因此EPLD具有CMOS器件低功耗、高噪声容限的优点。,(2)EPLD采用了UVEPROM和EEPROM工艺制作,因此EPLD的可靠性较高,易于擦写;同时集成度要比PAL和GAL器件高得多,而且价格也比较便宜。,(3)EPLD采用了与GAL器件类似的输出逻辑宏单元,但是它的输出逻辑宏单元更加灵活,因此EPLD的功能更加强大,灵活性也更高。,(4)在某些特殊情况下

28、,为了提高与或阵列中乘积项的利用率,有些EPLD器件的或逻辑阵列部分也引入了可编程逻辑结构。,为了克服上述PAL和GAL器件存在的问题,EPLD生产厂商在它的与或阵列上做了修改,不同的厂商具有不同的修改方案,归纳起来主要有以下4种修改方案:,(1)第1种修改方案是在EPLD的与或阵列中,将每个或门输入的一组乘积项的数目设计成不完全相同的形式,这样就大大方便了产生不同乘积项数目的与或逻辑函数,提高了乘积项的利用率。,(2)第2种修改方案是将EPLD中的每一组乘积项分为两个部分,然后采用这两个部分产生两个与或逻辑函数,最后通过编程使这两部分既可以单独地送到输出逻辑电路上,又可以组合在一起产生一个项

29、数更多的与或逻辑函数。,例如,Atmel公司的EPLD器件ATV750就采用了这种方式,它将8个乘积项分成两组,每组4个乘积项分别用来产生与或逻辑函数,然后通过可编程的数据选择器来对两个与或逻辑函数的输出进行控制操作。这种方式的具体方法如图1-25所示。,图1-25 第2种修改方案举例(乘积项分组),(3)第3种修改方案是将EPLD中的每一组乘积项都分为两个部分,然后通过编程可以将这两个部分相加,这样可以产生一个含有8个乘积项的与或逻辑函数;另外也可以将这两个部分为相邻的一组乘积项所共享,这样可以与相邻一组乘积项共同组成一个项数更多的与或逻辑函数。,(4)第4种修改方案是在EPLD的内部结构中

30、,每一个输出逻辑宏单元都分配4个单独的乘积项,另外还允许一组扩展乘积项单独地配给某一输出逻辑宏单元或多个输出逻辑宏单元,这样便可以用来实现更加复杂的逻辑函数。,图1-26 第3种修改方案举例(乘积项共享),图1-27 第4种修改方案举例(乘积项反馈),图1-28 AT22V10的OLMC电路,1.5.2 复杂的可编程逻辑器件CPLD,芯片制造厂商为了提高EPLD产品的竞争 能力,提出了CPLD(Complex Programmable Logic Device,复杂的可编程逻辑器件)的概 念,目的是为了对先前的EPLD产品进行结构 和性能改造,逐渐改进不足之处以便与FPGA 器件进行抗衡。,为

31、了提高集成度,同时又保持EPLD传输时间可预测的优点,生产厂商将若干个类似于PAL的功能模块和实现互连的开关矩阵集成在同一芯片上,这样就形成了所谓的CPLD。,与先前的EPLD产品相比,CPLD产品具有规模更大、结构更为复杂、集成度更高、可靠性更加稳定和成本更低等优点,因此它属于大规模集成电路的范围。,与FPGA产品相比,CPLD具有与其相似的集成度和通用性,另外它在速度和时序预测上还有一定的优势。,正是由于上述优势,CPLD能够在可编程逻辑器件技术的竞争中与FPGA并驾齐驱,成为两支领导可编程逻辑器件技术发展的力量之一。,一般来说,CPLD在集成度和结构上呈现出来的特点是具有更大规模的与或阵

32、列,增加了大量的逻辑宏单元和布线资源,触发器的数目也明显增多。,对于不同的器件公司来说,它们的CPLD产品结构具有很大的不同之处。但是从基本结构上来说,任何芯片公司的CPLD都应该包括3个部分:可编程逻辑宏单元、可编程I/O单元和可编程内部连线,只不过不同的公司具有不同的表示形式而已。,图1-29 MAX7000系列器件的内部结构,1逻辑阵列块LAB,在Altera公司的可编程逻辑器件MAX7000系列中,可以看出它主要是由高性能和灵活性很高的LAB来构成的,它是器件中最大的逻辑单元。,通过图1-30所示的内部结构可以看出,每个LAB是由16个宏单元来构成的,同时 每个LAB与各自对应的I/O

33、控制块相连。,图1-30 MAX7000S和MAX7000E系列器件的内部结构,可以看到,内部结构中的4个LAB通过PIA与全局总线连接在一起,而全局总线则是由所有的专用输入引脚、I/O引脚和宏单元的反馈信号等来构成的,这样利用这些连线可以实现不同LAB之间的连接,从而实现复杂的逻辑功能。,在MAX7000系列中,每个LAB可以包括如下输入信号:,(1)来自于用作通用逻辑输入的PIA的36个信号;(2)来自于用来控制寄存器的全局控制信号;,(3)来自于从I/O引脚到寄存器的直接输入通道,它们用来实现MAX7000S系列和MAX7000E系列的快速建立时间。,2宏单元Macrocell,图1-3

34、1 MAX7000系列的宏单元内部结构,在宏单元的内部结构中,每一个可编程寄存器可以按照3种不同的时钟方式来进行相应的控制,如下所示:,(1)采用全局时钟信号来进行控制,它能够得到最快的时钟到输出引脚的性能。,(2)采用全局时钟信号并有高电平有效的时钟使能信号来进行控制,它能够实现具有使能控制的触发器并同样可以得到最快的时钟到输出引脚的性能。,(3)采用来自于乘积项的时钟来进行控制。在这种时钟控制方式下,触发器由来自于隐埋的宏单元或者I/O引脚的信号来进行时钟控制,它是一种较慢的时钟控制方式。,3扩展乘积项,尽管大多数的逻辑功能可以采用每个宏单元中的5个乘积项来实现,但是对于复杂的逻辑功能来说

35、则需要采用附加的乘积项。,通常为了提供所需要的逻辑资源,可以利用另一个宏单元内部的逻辑资源来进行附加的资源利用。,然而,在MAX7000系列器件的内部结构中,用户也可以利用共享和并联的扩展乘积项作为附加的乘积项而直接送入到同一个LAB中的任意宏单元中去。,在实现逻辑综合时,采用扩展乘积项可以保证采用尽可能少的逻辑资源来得到尽可能快的工作速度。,在MAX7000系列器件的内部结构中,扩展乘积项可以分为两种形式:一种是共享扩展乘积项,另外一种是并联扩展乘积项。,(1)共享扩展乘积项,图1-32 共享扩展乘积项,(2)并联扩展乘积项,图1-33 并联扩展乘积项,4可编程内连线阵列PIA,图1-34

36、PIA与LAB的布线方式,5I/O控制块,图1-35 MAX7000系列器件的I/O控制块结构,图1-36 MAX7000S和MAX7000E系列的I/O控制块结构,图1-37 需要实现的数字电路,图1-38 数字电路的乘积项实现,1.6 现场可编程门阵列FPGA,前面介绍的可编程逻辑器件都采用了与或逻辑电路或者是与或逻辑电路加上输出逻辑单元的结构形式。,但是FPGA的电路形式与它们则是完全不同的,它是由若干个独立的可编程逻辑模块组成的,用户可以通过对这些模块进行编程来设计所需要的逻辑功能。,通常,由于这些可编程逻辑模块的排列形式和门阵列(Gate Array)中单元的排列形式十分相似,因此这

37、里沿用了门阵列这个名称。,FPGA的基本结构是由3种可编程的逻辑单元和一个用于存储编程数据的静态存储器组成的。,3种可编程的逻辑单元是指可编程输入/输出单元IOB、可编程逻辑单元CLB和可编程内部连接单元PI。,这3种可编程逻辑单元的工作状态全都是由静态存储器中的数据来设定的。简单概括起来,FPGA的优点主要体现在:,(1)FPGA中可编程逻辑单元的门阵列形式克服了前面可编程逻辑器件中与或阵列的局限性,这样在组成一些复杂、特殊的数字系统时显得十分灵活,而且规模可以做得很大。,(2)FPGA中由于加大了可编程的I/O端口的数目,从而使得其中各引脚信号的安排更加方便、合理。,(3)FPGA可以反复

38、擦除和重新编程,最适用于大规模专用集成电路的试验阶段。可见,采用FPGA可以节省成本、缩短周期和加快产品的上市。,在实际的应用过程中,FPGA存在着一定的缺点,而这些缺点则限制了FPGA在某些场合中的使用。,概括起来,FPGA的缺点主要体现在以下3个方面:,(1)FPGA中信号的传输延时是不确定的。由于在构成复杂的数字系统时一般总要将若干个CLB组合起来才能实现,可见每个信号的传输途径不同,所以传输延时一般是不可能相等的,这样将会限制器件的工作速度。,(2)FPGA中的编程数据存储器是一个静态随机存储器,所以断电后数据便会消失。因此每次上电后都要重新装载编程数据,并需要配备保存编程数据的EPR

39、OM或者EEPROM。,(3)FPGA中的编程数据是存放在EPROM或者EEPROM中的,同时上电后需要读出数据并送到FPGA的静态存储器中,可见不利于保密。,1.6.1 查找表结构,查找表结构FPGA的可编程逻辑单元的主体是查找表,通常它是由静态存储器(SRAM)来构成的,而查找表又可以进一步构成相应的函数发生器。,经过相应的计算,可以得出M个输入项的逻辑函数可以由一个2M位容量的SRAM实现。,在相应的查找表结构中,函数值存放在SRAM中,SRAM的地址线起输入线的作用,地址即输入变量值;SRAM的输出为逻辑函数值,由连线开关实现与其他功能块的连接。,为了加强查找表逻辑块的功能,大多数芯片

40、制造商对基本查找表的结构进行了改进,出现了多种查找表的变形。,例如,Xilinx公司的XC系列FPGA中的查找表结构有多种类型:(1)XC2000系列的逻辑块是由4输入/1输出的查找表构成的,可以实现任何4输入变量的逻辑函数。,(2)XC3000系列的逻辑块是由5输入/1输出的查找表构成的,而且可以配置成两个4输入的查找表形式。在输入项数目少于5个的情况下,可以更好地利用器件资源。,(3)XC4000系列的逻辑块采用两个4输入查找表和一个3输入查找表组成,由4输入查找表接到3输入查找表的多层结构来构成逻辑单元。两个查找表之间采用固定连接,这样既可以增加输入数目,又可以减少速度上的损失。,(4)

41、XC5200系列由四个4输入查找表构成四个独立的逻辑单元,一对逻辑单元可以组合成一个5输入的查找表。,图1-39 XC2000系列中CLB的电路结构,1.6.2 多路开关结构,通常,多路开关结构FPGA的可编程逻辑单元的主体是一种可配置的多路开关,利用多路开关的特性,可以对多路开关的输入和选择信号进行配置,从而可以实现不同的逻辑功能。,例如,如果一个2选1多路开关的输入信号为X和Y、选择信号为S,那么这时多路开关的输出函数表达式可以表示为:,可以看出,通过上面的输出函数表达式可以实现如下的函数:,(1)如果当选择信号S=1时,那么这时实现的函数为;,(2)如果当输入信号X=1时,那么这时实现的

42、函数为;,(3)如果当输入信号X=Y时,那么这时实现的函数为。,图1-40 ACT系列FPGA中的多路开关结构,1.6.3 多级与非门结构,图1-41 与或异或逻辑块,1.7 FPGA的结构原理,表1-2Spartan-II系列FPGA的主要技术指标,表1-3Spartan-IIE系列FPGA的主要技术指标,1.7.1 Spartan-II和Spartan-IIE系列FPGA的结构框图,通常,Spartan-II系列和Spartan-IIE系列的FPGA采用了灵活的可配置逻辑块(CLB,Configurable Logic Block)来构成,同时周围环绕着可编程的I/O块(IOB,Input

43、/Output Block)。,同时,器件内部还含有4个提供精确时钟管理的数字延迟锁相环(DLL),它们位于器件的4个顶点上;另外器件内部还含有两列的块状RAM,它们位于CLB列和IOB列之间。,图1-42给出了Spartan-II系列和Spartan-IIE系列FPGA产品的结构框图,这里器件的各个组成部分是通过高效的多层通用布线通道来进行连接的。,图1-42 Spartan-II和Spartan-IIE系列FPGA的结构框图,1.7.2 Spartan-II和Spartan-IIE系列FPGA的组成部分,通过图1-43所示的结构框图,可以看出Spartan-II系列和Spartan-IIE

44、系列的FPGA 主要包括5个部分:可配置逻辑块(CLB)、可编程的I/O块(IOB)、多层通用布线通 道、数字延迟锁相环(DLL)和块状RAM。,图1-43 Spartan-II和Spartan-IIE系列的IOB结构框图,为了更好地理解Spartan-II系列和Spartan-IIE系列FPGA的结构原理,这里有必要对上面 的5个部分进行比较详细的介绍。,1可编程的I/O块(IOB),图1-44 Spartan-II和Spartan-IIE系列的I/O组,表1-4Spartan-II系列的兼容输出标准,表1-5 Spartan-IIE系列的兼容输出标准,2可配置逻辑块(CLB),图1-45

45、Spartan-II和Spartan-IIE系列的CLB切片,3多层通用布线通道,图1-46 Spartan-II和Spartan-IIE系列FPGA的局部布线结构图,通过图1-47所示的结构框图,可以看出它提供了以下3种类型的连接:(1)查找表、触发器和通用布线矩阵(GRM,General Routing Matrix)之间的内部互连。,(2)同一CLB中用来提供查找表高速连接的内部反馈路径,这样可以得到尽可能小的布线延时。(3)在水平相邻的CLB之间提供高速连接的直接路径,它可以消除GRM的延时。,通用目的布线资源主要包括以下几个部分:(1)与每一个CLB相邻的GRM,它是一个用来对水平和

46、垂直布线资源进行连接的开关矩阵,同时也是CLB接入到通用目的布线资源的一种方式。,(2)用来将GRM信号布线到相邻的GRM周围的24条单长线。(3)用来将GRM信号布线到相距6块GRM距离的任意GRM周围的96条缓冲的十六进制线,其中三分之一的十六进制线是双向的,而其余的则是非双向的。,(4)用来快速有效地分配信号的12条长线,它们是带有缓冲的双向线。,在FPGA器件的内部结构中,一些类型的信号需要采用专用的布线资源以提高其具体的性能。,在Spartan-II系列和Spartan-IIE系列的FPGA器件中,专用布线资源可以用来为以下两种类型的信号提供相应的布线:,(1)用来提供给片上三态总线

47、的水平布线资源。这里,CLB的每一行中含有4条分离的总线,因此允许一行中的复合总线布线,如图1-47所示。,图1-47 与专用垂直总线相连的BUFT,(2)FPGA器件的每一个CLB中有两个专用的布线网格,它们的功能是将进位信号与相邻的CLB垂直相连。,一般来说,全局布线资源主要用来对时钟信号和器件中其他有大扇出的信号进行相应的布线。,Spartan-II系列和Spartan-IIE系列的FPGA器件包括两级全局布线资源,它们分别是主全局布线资源和次全局布线资源。,(1)主全局布线资源包括与专用输入引脚相连的4个专用全局网络,它们的功能是用来驱动低摆率的高扇出时钟信号。,每一个全局时钟网络可以

48、驱动所有的CLB、IOB和块状RAM的时钟信号引脚;主全局网络只能由全局缓冲器驱动,FPGA器件中有4个全局缓冲器分配给相应的主全局网络。,(2)次全局布线资源包括24条骨干线,其中12条位于器件的顶部,而另外12条则位于器件的底部。,通过这些骨干线,每一列可以有多达12个单一信号能够通过这些列中的12条长线来进行分配。由于次全局布线资源不仅仅可以对时钟引脚进行布线,因此它比主全局布线资源更加灵活。,图1-48 典型的全局时钟分配网络,4数字延迟锁相环(DLL)5块状RAM,图1-49 双端口的块状RAM,表1-6Spartan-II系列的块状RAM数量,表1-7Spartan-IIE系列的块

49、状RAM数量,表1-8块状RAM端口的相应比例,1.7.3 Virtex-II系列FPGA的结构框图,图1-50 Virtex-II系列FPGA的结构框图,可配置逻辑的功能是实现FPGA的大部分逻辑功能,它主要包括以下4个基本单元:(1)可配置逻辑块(CLB),作用是提供实现组合逻辑和时序逻辑的功能单元,同时CLB中还包含有基本的存储单元。,(2)可选择的块状RAM(Block SelectRAM),作用是提供大量的双端口RAM的18kb容量的存储单元,可以适应设计对大容量片内存储的要求。,(3)乘法器块(Multiplier Block),作用是提供一个18bit18bit的专用乘法器,采用

50、这些专用乘法器可以提高FPGA进行数字信号处理的速度。,(4)数字时钟管理器(DCM),作用是为时钟分配的延时补偿、时钟复用和分配、粗精度和细精度相移提供自校准的全数字解决方案。可见,采用DCM来代替原来的DLL可以提高时钟管理的灵活性。,1.7.4 Virtex-II系列FPGA的组成部分,通过图1-51所示的结构框图和前面介绍的内容,可以看出Virtex-II系列主要包括5个部分,它们分别是可编程的I/O块(IOB)、可配置逻辑块(CLB)、可选择的块状RAM、乘法器和数字时钟管理器(DCM)。,为了更好地理解Virtex-II系列FPGA的结构原理,这里有必要对上面的5个部分进行比较详细

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号