1. 首页
  2. 综合百科
  3. cpld工作原理讲解(CPLD/FPGA 内部结构与原理)

cpld工作原理讲解(CPLD/FPGA 内部结构与原理)

简介:关于cpld工作原理讲解(CPLD/FPGA 内部结构与原理)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

可编程逻辑器件(PLD)起源于20世纪70年代,是在专用集成电路(ASIC)基础上发展起来的一种新型逻辑器件。它是当今数字系统设计的主要硬件平台。其主要特点是完全由用户通过软件进行配置和编程,从而完成某一功能,并可反复编写。在PLD的修改和升级中,不需要更换PCB电路板,只需在计算机上修改和更新程序,使硬件设计工作转变为软件开发工作,缩短了系统设计周期,提高了实现的灵活性,降低了成本,因此得到了广大硬件工程师的青睐,形成了庞大的PLD行业规模。目前,常见的PLD产品有:可编程只读存储器(PROM)、现场可编程逻辑阵列(FPLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、可擦可编程逻辑阵列(EPLA)、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)。PLD器件可细分为简单PLD (SPLD)、复杂PLD (CPLD)和FPGA。它们的内部结构以不同的方式实现。可编程逻辑器件按基本单位粒度可分为三类:

粒度小(如:“大门海”结构),

中等粒度(如:FPGA),

粒度大(如CPLD)。

根据编程过程可分为四类:

熔断器和反熔断器编程装置,

电信号可擦可编程只读存储器(EEPROM)编程器件(如CPLD),SRAM编程器件(如FPGA)。

在工艺分类中,前三类是非挥发性器件。编程完成后,配置数据将保留在设备上。第4类是挥发性器件。设备掉电后,配置数据丢失。因此,每次上电后都需要重新配置数据。

可编程逻辑器件的发展历史

可编程逻辑器件的发展可分为四个阶段,即70年代初至70年代中期的第一阶段,70年代中期至80年代中期的第二阶段,80年代至90年代末的第三阶段,90年代末至今的第四阶段。第一阶段的可编程器件只有三种:简单可编程只读存储器(PROM)、紫外可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)。由于结构的限制,它们只能执行简单的数字逻辑功能。第二阶段是结构有点复杂的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)设备,正式称为PLDS,能够执行各种逻辑计算功能。典型的PLD由“与”、“非”数组和或表达式组成,实现逻辑的任意组合,因此PLD可以以积和的形式完成大量的逻辑组合。第三阶段,Xilinx和Altera分别推出了类似标准门阵列的FPGA和类似PAL结构的可扩展CPLD,提高了逻辑运算速度,具有架构和逻辑单元灵活、集成度高、应用范围广等特点,兼容PLD和通用门阵列的优点。它可以实现非常大规模的电路,编程方法也非常灵活。已成为产品原型设计和中小规模(一般在10000件以下)产品生产的首选。现阶段CPLD和FPGA器件在制造工艺和产品性能上都有了长足的发展,达到了0.18工艺和百万系数门的规模。SOPC和SOC技术出现在第四阶段,是PLD和ASIC技术融合的结果,涵盖了实时数字信号处理技术、高速数据收发器、复杂计算和嵌入式系统设计技术的全部内容。Xilinx和Altera也推出了相应的SOCFPGA产品,拥有65种制造工艺和超过100万个系统门。而且,该阶段的逻辑器件嵌入了硬核高速倍增器、Gbits差分串行接口、时钟频率高达500MHz的PowerPC微处理器、软核MicroBlaze、Picoblaze、Nios、NiosII等,不仅实现了软件要求与硬件设计的完美结合,还实现了高速与灵活性的完美结合,从而超越了ASIC器件的性能和规模。也超越了传统意义上FPGA的概念,将PLD的应用范围从单芯片扩展到系统级。目前,可编程PLD芯片的概念还在进一步发展。

开发工具

高复杂度PLD器件的开发在很大程度上依赖于电子设计自动化(EDA)。PLD的EDA工具是基于计算机软件,将典型的单元电路封装成固定模块,形成标准的硬件开发语言(如HDL语言)供设计人员使用。设计人员考虑如何从可以组装的软件库和包中构建功能模块甚至完整的系统,以满足需求。PLD开发软件需要自动完成针对特定目标芯片的逻辑编译、简化、分割、综合优化、布局布线、仿真、自适应编译和编程下载等工作。一个典型的EDA工具中必须包含合成器和适配器这两个特殊包。合成器的功能是由设计人员在EDA平台上完成对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。随着开发规模的不断扩大,需要缩短PLD开发软件的编译时间,提高其编译性能,并提供丰富的知识产权(IP)核心资源供设计者调用。此外,PLD开发界面的友好性和操作的复杂性也是评价其性能的重要因素。目前,在PLD行业领域,各芯片供应商的PLD开发工具已经成为影响其成败的核心部件。只有全面领先的芯片技术,完整的文档和优秀的PLD开发软件,芯片供应商才能获得客户的认可。一个完美的PLD开发软件应该具备以下五点:

准确地将用户设计转换为电路模块可以有效地利用器件资源可以快速完成编译和合成提供丰富的IP资源友好的用户界面,操作简单的CPLD工作原理和简要介绍

基于产品期限(Product Term)的PLD结构

采用这种结构的PLD芯片包括Altera MAX7000、MAX3000系列(EEPROM工艺)、Xilinx XC9500系列(Flash工艺)、Lattice,以及Cypress的大部分产品(EEPROM工艺)。

让我们先来看看这个PLD的整体结构(以MAX7000为例,其他型号都非常相似):

图1基于产品术语的PLD内部结构

该PLD可分为三种结构:宏单元(Marocell)、可编程线(PIA)和I/O控制块。宏单元是可编程逻辑器件的基本结构,实现了基本的逻辑功能。图1的蓝色部分是一个宏轮的集合(没有画出来,因为有很多宏轮)。可编程线负责信号传输,连接各宏单元。I/O控制块控制输入和输出的电气特性,如开路集电极输出、摆幅率控制、三态输出等。图1左上INPUT/GCLK1、INPUT/GCLRn、INPUT/OE1、INPUT/OE2的全局时钟、复位和输出使能信号,这些信号与PLD中每个宏单元都有特殊的连接是连在一起的,信号同时到每个宏单元延时且延时时间最短。

宏单元的具体结构如下图所示:

图2宏单元结构

左边是一个产品术语数组,实际上是一个与或数组,每个交叉点都是一个可编程的引信,如果它正在传导,它就在实现“与”逻辑。下面的产品选择矩阵是一个或数组。两者共同完成组合逻辑。右边是一个可编程D触发器,它的时钟和清零输入可以通过编程方式选择,可以使用专用的全局清零和全局时钟,也可以由内部逻辑(产品数组)生成时钟和清零。如果不需要触发器,触发器也可以被绕过,信号可以直接馈送到PIA或输出到I/O引脚。

产品项结构PLD的逻辑实现原理

让我们以一个简单的电路为例,具体说明PLD如何使用上述结构实现逻辑。电路如下所示:

图3

假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=C * * !D + b * c *!D)我们拿!D表示“不”。

PLD将以以下方式实现组合逻辑f:

图4

A,B,C,D由PLD芯片引脚输入,然后进入可编程有线阵列(PIA)。在内部,产生八个输出:A,A逆,B,B逆,C,C逆,D,D逆。图中的每个叉表示连接(可编程保险丝传导),因此我们得到:f=f1 + f2=(A*C*!D) + (b * c *!D),因此组合逻辑得以实现。在图3中,电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器实现。时钟信号CLK由I/O引脚输入到芯片内部的专用全局时钟通道,并直接连接到可编程触发器的时钟端。可编程触发器的输出连接到I/O引脚,并将结果输出到芯片引脚。因此,PLD完成了如图3所示的电路功能。(以上步骤由软件自动完成,无需人工干预)

图3中的电路是一个简单的示例,只需要一个宏单元就可以完成。但对于复杂电路,一个宏单元无法实现,需要通过并行扩展和共享扩展将多个宏单元连接起来。宏单元的输出也可以连接到可编程有线阵列,并用作另一个宏单元的输入。这使得PLD可以实现更复杂的逻辑。

这种基于产品术语的PLD基本采用EEPROM和Flash技术制造,一开机就能工作,不需要其他芯片的配合。

FPGA工作原理及介绍

如上所述,FPGA是在PAL、GAL、EPLD和CPLD等可编程器件的基础上进一步发展的产物。它作为一种半定制电路出现在ASIC领域,既解决了定制电路的缺点,又克服了原有可编程器件门电路的缺点。由于FPGA需要重复编写,其实现组合逻辑的基本结构不能像ASIC那样通过固定的非门来完成,只能采用易于重复配置的结构。查找表可以很好地满足这一要求。目前主流FPGA采用基于SRAM进程的查找表结构。还有一些军用和航天FPGA采用Flash或引信和反向引信过程查找表结构。通过刻录文件改变查找表内容的方法,实现FPGA的重复配置。根据数字电路的基本知识,对于一个n个输入逻辑操作,无论是与或无操作,还是异或操作等,都只能有2n个可能的结果。因此,如果将相应的结果提前存储在存储单元中,就相当于实现了与非门电路功能。FPGA的原理是一样的,它通过刻录文件来配置查找表的内容,从而在同一个电路中实现不同的逻辑功能。查找表简称为LUT, LUT本质上是RAM。目前FPGA中多采用4输入LUT,因此每个LUT可视为一个具有4位地址行的RAM。当用户通过原理图或HDL语言描述一个逻辑电路时,PLD/FPGA开发软件会自动计算出该逻辑电路的所有可能结果,并将真值表(即结果)提前写入RAM,使每一个用于逻辑运算的输入信号都相当于输入一个地址查表,找出该地址对应的内容,然后输出。下面是一个4和门电路的例子,以说明LUT如何实现逻辑。

示例:给出一个使用LUT实现4个输入和门电路的真值表。

表1-1 4输入门真值表

如您所见,lut具有与逻辑电路相同的功能。事实上,LUT具有更快的执行速度和更大的规模。由于基于LUT的FPGA具有较高的集成度,其器件密度从几万门到千万门不等,可以完成极其复杂的时序和逻辑组合逻辑电路功能,因此适用于高速、高密度的高端数字逻辑电路设计领域。其主要部件包括可编程输入/输出单元、基本可编程逻辑单元、嵌入式SRAM、丰富的布线资源、底层嵌入式功能单元、嵌入式专用单元等。主要设计和生产厂家有Xilinx、Altera、Lattice、Actel、Atmel、QuickLogic等。其中最大的是Xilinx、Altera和Lattice。如上所述,FPGA是由片上RAM设置工作的,因此需要对片上RAM进行编程以工作。用户可根据不同的配置方式,选择不同的编程方式。FPGA有以下几种配置方式:

并行模式:并行PROM, Flash配置FPGA;主从模式:一个PROM配置多个FPGA;串行方式:FPGA串行配置PROM;外设方式:将FPGA作为微处理器外设,由微处理器对其进行编程。目前,FPGA市场占有率最高的两大公司Xilinx和Altera生产的FPGA基于SRAM工艺,使用时需要片外存储器来存储程序。FPGA上电时,将外部存储器中的数据读入片上RAM,完成配置后进入工作状态;断电后,FPGA变白,内部逻辑消失。这样,FPGA就可以重复使用,而且不需要专门的FPGA编程器,只需要一个通用的EPROM、PROM编程器就可以了。Actel、QuickLogic等公司也为FPGA提供了防熔丝技术,只需下载一次,具有抗辐射、耐高低温、功耗低、速度快等优点。广泛应用于军事和航空航天领域。但是这种FPGA不能重复擦除,在开发初期比较麻烦,成本也比较高。Lattice是ISP技术的发明者,在小尺寸PLD的应用中具有一定的特点。早期的Xilinx产品一般不涉及军事和航空航天市场,但目前,Q Pro-R等多个产品已经进入这一领域。

FPGA芯片架构

目前主流的fpga仍然基于查找表技术,并且已经远远超出了以前版本的基本性能,并集成了RAM、时钟管理、DSP等常用功能的核心(ASIC类型)模块。如图1-1所示(注:图1-1只是示意图,实际上每个系列FPGA都有相应的内部结构),FPGA芯片主要由六个部分完成,分别是:可编程输入/输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入式块RAM、丰富的布线资源、嵌入式底层功能单元和嵌入式专用硬件模块。

图1-1 FPGA芯片内部结构

各模块的功能如下:1.应用软件。IOB (Programmable input/output Unit) IOB (Programmable input/output Unit)是芯片与外部电路之间的接口。它驱动和匹配不同电气特性的输入/输出信号。其原理结构如图1-2所示。FPGA中的I/O分为组,每个组可以独立支持不同的I/O标准。软件的灵活配置使其能够适应不同的电气标准和I/O物理特性,调整驱动电流,改变上下电阻。如今,I/O端口变得越来越频繁,一些高端fpga通过DDR寄存器技术可以支持高达2Gbps的数据速率。

图1-2 IOB典型内部结构

外部输入信号可以通过IOB模块的存储单元进入FPGA,也可以直接进入FPGA。当外部输入信号通过IOB模块的存储单元输入到FPGA时,保持时间要求可以降低,通常默认设置为0。为了便于管理和适应多种电气标准,FPGA iob被分为几个组(组)。各银行的接口标准由其接口电压VCCO确定。一家银行只能有一种VCCO,但不同银行的VCCO可以不同。只有相同电气标准的端口才能连接在一起,相同的VCCO电压是接口标准的基本条件。2. 可配置逻辑块(CLB) CLB是FPGA内部的基本逻辑单元。CLB的实际数量和特性因设备而异,但每个CLB包含一个可配置的开关矩阵,由四个或六个输入、一组电路(多路复用器等)和触发器组成。开关矩阵高度灵活,可以配置为处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLBS由多个(一般为4或2)相同的片和额外的逻辑组成,如图1-3所示。每个CLB模块不仅可以实现组合逻辑、顺序逻辑,还可以配置为分布式RAM和分布式ROM。

图1-3 CLB典型结构图

Slice是由Xilinx公司定义的基本逻辑单元。其内部结构如图1-4所示。一个Slice由两个4输入功能,携带逻辑,算术逻辑,存储逻辑和功能复用器组成。该算法逻辑包括异或门(XORG)和特殊与门(MULTAND)。异或门可使Slice实现2位全加运算,并采用特殊的与门提高乘数效率。进位逻辑由一个特殊的进位信号和一个用于快速算术加减法运算的函数多路复用器(MUXC)组成。4输入函数发生器用于实现4输入LUT、分布式RAM或16位移位寄存器(Virtex-5系列芯片Slice中的两个输入函数为6输入,可实现6输入LUT或64位移位寄存器);进位逻辑由两条快速进位链组成,用于提高CLB模块的处理速度。

图1-4典型的四路输入Slice结构

3.数字时钟管理模块(DCM)行业中的大多数fpga都提供数字时钟管理(所有Xilinx fpga都具有此功能)。Xilinx引入了最先进的FPGA,提供数字时钟管理和相位环锁定。相位环锁定可以提供精确的时钟合成,减少抖动,实现滤波功能。4. 嵌入式块RAM (BRAM)大多数fpga都有嵌入式块RAM,这极大地扩展了fpga的范围和灵活性。块RAM可以配置为单端口RAM、双端口RAM、内容地址内存(CAM)、先进先出(FIFO)等常用存储结构。RAM和FIFO是相对流行的概念,在这里并不多余。CAM存储器在其内部存储单元中具有比较逻辑,写入CAM中的数据将与各个内部数据进行比较,并返回与端口数据相同地址的所有数据,因此它在路由地址交换器中具有广泛的应用。除了块RAM之外,FPGA中的lut还可以灵活地配置为RAM、ROM和FIFO等结构。在实际应用中,芯片内部的块RAM大小也是选择芯片的重要因素。单片RAM的容量为18k位,即位宽为18位,深度为1024位。位宽和深度可以根据需要进行修改,但必须满足两个原则:第一,修改容量(位宽和深度)不能大于18k位;第二,最大位宽不应超过36位。当然,多块RAM可以级联在一起形成一个更大的RAM,这只受限于芯片中RAM的块数,而不受上述两个原则的限制。5. 在FPGA中,布线资源被连接到各个单元,电线的长度和工艺决定了信号在电线上的驱动能力和传输速度。FPGA芯片具有丰富的布线资源,根据工艺、长度、宽度和分布位置的不同又分为四种不同的类别。第一个是全局布线资源,用于芯片中全局时钟和全局复位/设置的布线。第二类是长线资源,用于完成芯片组之间高速信号和第二个全球时钟信号的布线。第三种是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线。第四种是分布式布线资源,用于控制专有时钟和复位等信号线。在实际应用中,设计人员不需要直接选择路由资源,布局路由设备可以根据输入逻辑网表的拓扑结构和约束条件自动选择路由资源连接各个模块单元。从本质上讲,布线资源的利用与设计结果有着密切、直接的关系。6. 底层嵌入式功能单元嵌入式功能模块为软核,如延时锁环(Delay Locked Loop)、锁相环(PLLS)、dsp、cpu等。如今,随着嵌入式功能单元越来越多,单片FPGA已经成为系统级设计工具,具备软硬件联合设计的能力,并逐步向SOC平台过渡。DLL与锁相环功能相似,可完成时钟高精度、低抖动的倍频和分频、占空比调节和移等功能。Xilinx公司生产的芯片集成了DLL, Altera公司的芯片集成了PLL, Lattice公司的新芯片同时集成了PLL和DLL。可以使用IP核生成的工具轻松地管理和配置PLLS和dll。DLL的结构如图1-5所示。

图1-5典型DLL模块

7. 嵌入式专用核嵌入式专用核是相对于底层嵌入式软核而言的。它是指具有较强FPGA处理能力的硬核,相当于ASIC电路。为了提高FPGA的性能,芯片厂商在芯片内部集成了一些专用的核心。例如:为了提高FPGA的乘法速度,主流FPGA都集成了专用的乘法器;为了应用通信总线和接口标准,许多高端FPGA内部集成了串并联收发器(SERDES),收发器速度可达数十Gbps。Xilinx公司的高端产品不仅集成了Power PC系列的cpu,还嵌入了DSP Core模块。相应的系统级设计工具是EDK和Platform Studio,并在此基础上提出了片上系统的概念。通过PowerPC、Miroblaze、Picoblaze等平台,开发标准DSP处理器及其相关应用,达到SOC开发的目的。

软核,硬核,固态核

IP (Intelligent Property)核心是具有知识产权的集成电路核心的总称。它是一个经过反复验证的具有特定功能的宏模块。它与芯片制造工艺无关,可以移植到不同的半导体工艺中。在SOC阶段,IP核设计已经成为ASIC电路设计公司和FPGA供应商的重要任务,这也是他们实力的体现。对于FPGA开发软件来说,其提供的IP核越丰富,用户的设计就越方便,其市场占有率就越高。目前,IP核已经成为系统设计的基本单元,并作为一种独立的设计成果进行交换、转让和销售。按IP核的提供方式,通常分为软核、硬核和实心。从完成IP核的成本来看,核是最昂贵的;在灵活性方面,软核具有最高的可重用性。1. EDA设计领域中的软核是指对原有寄存器传输层(RTL)模型的集成;具体在FPGA设计中,是指电路的硬件语言描述,包括逻辑描述、网表和帮助文档。软芯只经过功能模拟,需要集成和布局才能使用。其优点是灵活性高,可移植性好,便于用户配置;缺点是模块的预见性较低,后续设计存在出错的可能性,存在一定的设计风险。软核是IP核中应用最广泛的形式。2. EDA设计领域中的实心核心是指包含图形规划信息的网络;具体在FPGA设计中可以看作是软核带布局规划,通常以RTL代码的形式和相应的具体进程网表混合的形式出现。RTL描述与具体的标准单元库相结合,进行综合优化设计,形成栅极级网表,可通过布局和布线工具使用。与软岩心相比,实心岩心在设计上灵活性较差,但可靠性较高。目前,实核也是IP核的主流形态之一。3.EDA设计中的硬核是指经过验证的设计图;具体在FPGA设计中指的是固定的布局和流程,经过前端和后端验证的设计,设计人员无法对其进行修改。它不能被修改有两个原因。首先,系统设计对各个模块的时序有严格的要求,不允许干扰现有的物理布局。其次是保护知识产权的要求,不允许设计师改变任何东西。IP核不可修改的特性使其难以重用,因此只能在一些特定的应用中使用,使用范围较窄。

本文主要介绍了关于cpld工作原理讲解(CPLD/FPGA 内部结构与原理)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/1450074.html