首页 » 智能 » CPLD/FPGA 内部结构与事理_可编程_逻辑

CPLD/FPGA 内部结构与事理_可编程_逻辑

落叶飘零 2024-11-15 17:42:10 0

扫一扫用手机浏览

文章目录 [+]

①小颗粒度(如:“门海(sea of gates)”架构),

②中等颗粒度(如:FPGA),

CPLD/FPGA 内部结构与事理_可编程_逻辑 CPLD/FPGA 内部结构与事理_可编程_逻辑 智能

③大颗粒度(如:CPLD)。

CPLD/FPGA 内部结构与事理_可编程_逻辑 CPLD/FPGA 内部结构与事理_可编程_逻辑 智能
(图片来自网络侵删)

按照编程工艺可以分为四类:

①熔丝(Fuse)和反熔丝(Antifuse)编程器件,

②可擦除的可编程只读存储器(UEPROM)编程器件,

③电旗子暗记可擦除的可编程只读存储器(EEPROM)编程器件(如:CPLD),④SRAM编程器件(如:FPGA)。

在工艺分类中,前3类为非易失落性器件,编程后,配置数据保留在器件上;第4类为易失落性器件,掉电后配置数据会丢失,因此在每次上电后须要重新进行数据配置。

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

可编程逻辑器件的发展可以划分为4个阶段,即从20世纪70年代初到70年代中为第1阶段,20世纪70年代中到80年代中为第2阶段,20世纪80年代到90年代末为第3阶段,20世纪90年代末到目前为第4阶段。
第1阶段的可编程器件只有大略的可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦只读存储器(EEPROM)3种,由于构造的限定,它们只能完成大略的数字逻辑功能。
第2阶段涌现了却构上轻微繁芜的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)器件,正式被称为PLD,能够完成各种逻辑运算功能。
范例的PLD由“与”、“非”阵列组成,用“与或”表达式来实现任意组合逻辑,以是PLD能以乘积和形式完成大量的逻辑组合。
第3阶段Xilinx和Altera分别推出了与标准门阵列类似的FPGA和类似于PAL构造的扩展性CPLD,提高了逻辑运算的速率,具有体系构造和逻辑单元灵巧、集成度高以及适用范围宽等特点,兼容了PLD和通用门阵列的优点,能够实现超大规模的电路,编程办法也很灵巧,成为产品原型设计和中小规模(一样平常小于10000)产品生产的首选。
这一阶段,CPLD、FPGA器件在制造工艺和产品性能都得到长足的发展,达到了0.18 工艺和系数门数百万门的规模。
第4阶段涌现了SOPC和SOC技能,是PLD和ASIC技能领悟的结果,涵盖了实时化数字旗子暗记处理技能、高速数据收发器、繁芜打算以及嵌入式系统设计技能的全部内容。
Xilinx和Altera也推出了相应SOCFPGA产品,制造工艺达到65 ,系统门数也超过百万门。
并且,这一阶段的逻辑器件内嵌了硬核高速乘法器、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开拓软件应该具备下面5点:

准确地将用户设计转换为电路模块能够高效地利用器件资源能够快速地完成编译和综合供应丰富的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掌握块。
宏单元是PLD的基本构造,由它来实现基本的逻辑功能。
图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)=AC!D + BC!D ( 我们以!D表示D的“非”)

PLD将以下面的办法来实现组合逻辑f:

图4

A,B,C,D由PLD芯片的管脚输入后进入可编程连线阵列 (PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。
图中每一个叉表示相连(可编程熔丝导通),以是得到:f= f1 + f2 = (AC!D) + (BC!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的事理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情形下实现了不同的逻辑功能。
查找表(Look-Up-Table)简称为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;串行模式:串行PROM配置FPGA;外设模式:将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芯片紧张由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完全的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。

图1-1 FPGA芯片的内部构造

每个模块的功能如下:1. 可编程输入输出单元(IOB)可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完身分歧电气特性下对输入/输出旗子暗记的驱动与匹配哀求,其示意构造如图1-2所示。
FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。
通过软件的灵巧配置,可适配不同的电气标准与I/O物理特性,可以调度驱动电流的大小,可以改变上、下拉电阻。
目前,I/O口的频率也越来越高,一些高真个FPGA通过DDR寄存器技能可以支持高达2Gbps的数据速率。

图1-2 范例的IOB内部构造示意图

外部输入旗子暗记可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA 内部。
当外部输入旗子暗记经由IOB模块的存储单元输入到FPGA内部时,其保持韶光(Hold Time)的哀求可以降落,常日默认为0。
为了便于管理温柔应多种电器标准,FPGA的IOB被划分为多少个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。
只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。
2. 可配置逻辑块(CLB)CLB是FPGA内的基本逻辑单元。
CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。
开关矩阵是高度灵巧的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。
在Xilinx公司的FPGA器件中,CLB由多个(一样平常为4个或2个)相同的Slice和附加逻辑构成,如图1-3所示。
每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。

图1-3 范例的CLB构造示意图

Slice是Xilinx公司定义的基本逻辑单位,其内部构造如图1-4所示,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。
算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位旗子暗记和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速率。

图1-4 范例的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芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的种别。
第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速旗子暗记和第二全局时钟旗子暗记的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等掌握旗子暗记线。
在实际中设计者不须要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑构造和约束条件选择布线资源来连通各个模块单元。
从实质上讲,布线资源的利用方法和设计的结果有密切、直接的关系。
6. 底层内嵌功能单元内嵌功能模块紧张指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(Soft Core)。
现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。
DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调度和移相等功能。
Xilinx公司生产的芯片上集成了DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同时集成了PLL和DLL。
PLL 和DLL可以通过IP核天生的工具方便地进行管理和配置。
DLL的构造如图1-5所示。

图1-5 范例的DLL模块示意图

7. 内嵌专用硬核内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。
为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。
例如:为了提高FPGA的乘法速率,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高真个FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速率。
Xilinx公司的高端产品不仅集成了Power PC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上系统(System on Chip)的观点。
通过PowerPC、Miroblaze、Picoblaze等平台,能够开拓标准的DSP处理器及其干系运用,达到SOC的开拓目的。

软核、硬核以及固核的观点

IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经由反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。
到了SOC阶段,IP核设计已成为ASIC电路设计公司和FPGA供应商的主要任务,也是实在力表示。
对付FPGA开拓软件,其供应的IP核越丰富,用户的设计就越方便,其市场占用率就越高。
目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交流、转让和发卖。
从IP核的供应办法上,常日将其分为软核、硬核和固核这3类。
从完成IP核所花费的成本来讲,硬核代价最大;从利用灵巧性来讲,软核的可复用利用性最高。
1. 软核软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;详细在FPGA设计中指的是对电路的硬件措辞描述,包括逻辑描述、网表和帮助文档等。
软核只经由功能仿真,须要经由综合以及布局布线才能利用。
其优点是灵巧性高、可移植性强,许可用户自配置;缺陷是对模块的预测性较低,在后续设计中存在发生缺点的可能性,有一定的设计风险。
软核是IP核运用最广泛的形式。
2. 固核固核在EDA设计领域指的是带有平面方案信息的网表;详细在FPGA设计中可以看做带有布局方案的软核,常日以RTL代码和对应详细工艺网表的稠浊形式供应。
将RTL描述结合详细标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可利用。
和软核比较,固核的设计灵巧性稍差,但在可靠性上有较大提高。
目前,固核也是IP核的主流形式之一。
3. 硬核硬核在EDA设计领域指经由验证的设计版图;详细在FPGA设计中指布局和工艺固定、经由前端和后端验证的设计,设计职员不能对其修正。
不能修正的缘故原由有两个:首先是系统设计对各个模块的时序哀求很严格,不许可打乱已有的物理版图;其次是保护知识产权的哀求,不许可设计职员对其有任何改动。
IP硬核的不许修正特点使其复用有一定的困难,因此只能用于某些特定运用,利用范围较窄。

相关文章

奖学金制度在C语言教学中的应用与创新

随着信息技术的飞速发展,C语言作为一门基础且实用的编程语言,在我国高校教育中占据了重要地位。为了激发学生对C语言学习的热情,提高教...

智能 2025-01-04 阅读0 评论0