当前位置:课程学习>>第六章>>知识讲解>>文本学习>>知识点五

知识点五 可编程逻辑器件基础




PLD逻辑功能描述


PLD器件的逻辑功能描述一般分为原理图描述和硬件描述语言描述,原理图描述是一种直观简便的方法,它可以将现有的小规模集成电路实现的功能直接用PLD器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练;硬件描述语言描述是可编程器件设计的另一种描述方法,语言描述可能精确和简练地表示电路的逻辑功能,现在在PLD的设计过程中广泛使用,并且有进一步发展的趋势,常用的硬件描述语言有ABEL,VHDL语言等,其中ABEL是一种简单的硬件描述语言,其支持布尔方程、真值表、状态机等逻辑描述,适用于计数器、译码器、运算电路、比较器等逻辑功能的描述;VHDL语言是一种行为描述语言,其编程结构类似于计算机中的C语言,在描述复杂逻辑设计时,非常简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。不管是用硬件描述语言描述的逻辑还是用原理图描述的逻辑,必须通过计算机软件对其进行编译,将其描述转换为经过化简的布尔代数表达式(即通常的最简与或表达式),编译软件再根据器件的特点将表达式适配进具体的器件,最终形成PLD器件的熔断丝文件(通常叫做JEDEC文件,简称为JED文件)。

通常在将用户设计的逻辑下载到具体器件中前,为了检查设计的结果是否正确,可以通过计算机软件进行模拟,检查其设计结果是不否与设计要求相符。

PLD逻辑图描述方法

由于PLD电路结构复杂,在对其行为进行描述时经常采用一些简化方法来描述,下面介绍一些常用的描述方法。

1.输入缓冲器和输出三态门表示法

在PLD器件中,输入变量应同时向内部电路提供原、反两种形式的输入量,并且为减少输入引脚的电流,必须采用输入缓冲器。输入缓冲器的简化画法如图6-14(a)所示,真值表如图6-14(b)所示。

在PLD器件中,输出常常采用三态门电路来实现受控输出。如图6-15所示。

2.编程点连接表示法

PLD编程连接点有三种形式。①固定连接;②编程连接;③不连接。其表示方法如图6-16所示。其中交叉点上的“Ⅹ”表示编程连接,“●”表示固定连接,没有任何标记为不连接。

3.与门、或门和与或门表示法

因为PLD电路复杂,在表示与门、或门及与或门时,通常使用简化表示方法来表示与逻辑、或逻辑及与或逻辑。如图6-17为与门和或门表示。图6-18为与或门表示法。

下面给出一个实例说明表示法的综合运用。如下图所示,写出其真值表。

与门L1的输入与A、B的原、反变量均编程,则不管A、B变量取何值都有:

这种状态称为与门的缺省状态,L2与门是其简化画法。L3与门存在固定连接,所以有。真值表如下所示:


PLD基本结构


对于PLD芯片,无论是PLA、PAL、GAL等,电路的主体都是由输入缓冲电路、与阵列、或阵列和输出缓冲电路构成。如图6-19所示。

对于PLA,它的与阵列和或阵列都是可编程的,输出电路以固定形式输出;对于PAL,是与阵列可编程,或阵列和输出电路固定;GAL是与阵列可编程,或阵列固定,输出电路可组态。


可编程逻辑阵列和可编程阵列逻辑


1 可编程逻辑阵列(PLA,Programmable Logic Array)

PLA是早期出现的可编程逻辑器件,它们的规模比较小,只能实现通用数字逻辑电路(如74系列)的一些功能,在结构上是由简单的“与—或”门阵列和输入和输出单元组成。如图8-7为具有3个与项的2*2PLA的逻辑图。

在图中,可通过与阵列和或阵列可编程产生输出逻辑函数。由于上图的PLA输出没有包含寄存器或触发器,所以只能构成组合PLA;如果其输出含有寄存器或触发器,也可构成时序PLA器件。

2 可编程阵列逻辑(PLA,Programmable Array Logic)

图6-21画出了PAL的阵列结构图,事实上,也是通用阵列逻辑GAL的基本门阵列结构图。在图中,与阵列可编程,或阵列固定。

例如,利用图6-21的PAL实现全加器。

全加器的最简与或表达式:

其中:An 、Bn表示加数与被加数。

Cn 表示低位进位。

Cn+1表示本位进位。

Sn表示和数。

其编程节点如图6-21所示。

同样,在与/或阵列的基础上再增加寄存器或触发器,可以构成既可以实现组合逻辑功能,又可以实现时序逻辑功能的PLD器件。如PAL16L8组合器件有10个单输入引脚(I1~I10),2个输出引脚(O1、O8),6个I/O输入输出引脚(IO2~IO7),并且具有三态输出功能。PAL16R6因输出有具有D触发器,可实现时序输出。它有8个输入引脚(I1~I8),2个IO引脚(IO1、IO8),6个寄存器输出引脚(O2~O7),时钟输入端CLK,输出使能端。上述PAL器件的逻辑符号如图6-22所示。

PAL由可编程的与门阵列和固定或门阵列构成。或门阵列中每个或门的输入与固定个数的与门输出相连,每个或门的输出是若干个与项之和。由于与门阵列是可编程的,与项的内容可由用户自行编程,所以PAL可以实现任意逻辑函数。


通用阵列逻辑(GAL)


1 GAL基本结构

通用阵列逻辑GAL (Generic Array Logic)是在PAL的基础上发展起来的,如GAL16V7, GAL22V10 等。它采用了EEPROM工艺,实现了电可擦除、电可改写,GAL在阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的输出结构进行了较大的改进,其输出结构是可编程的逻辑宏单元(OLMC—Output Logic Macro Cell),GAL的OLMC单元有多种组态,可配置成不同的输入、输出模式,因而它的设计具有很强的灵活性,至今仍有许多人使用。

GAL与PAL的门阵列结构图是相同的,均为与阵列可编程,或阵列固定连接,区别只是输出结构不同而已。其中PAL的输出结构有几种固定的形式,只要芯片的型号选定,输出结构就固定了。而GAL有一种非常灵活的输出结构,它的结构是可编程的。

2 GAL原理与特点

1.基本原理

GAL的可编程输出结构称为输出逻辑宏单元OLMC(Output Logic Macro Cell)。图6-23是GAL22V10的器件输出逻辑宏单元OLMC(Output Logic Macro Cell)逻辑图。

在图8-10中,除了包含或门阵列D触发器之外,OLMC多出两个MUX,其中4选1MUX用以选择输出方式和输出极性,2选1MUX用以选择反馈信号。并且MUX受特征码S1、S0控制,可以得到宏单元OLMC(n)的不同的等效电路,或称不同的组态。如S1S0进行00、01、10、11四种编码,可实现低有效寄存器输出、高有效寄存器输出、低有效组合I/O输出和高有效I/O输出。四种输出组态如图6-24所示。

图6-24 GAL22V10的四种输出组态

2.GAL的特点

通用阵列逻辑(GAL)器件是一种可用电擦除的,可重复编程的高速PLD.它与PAL器件的主要区别在于:

(1)GAL采用可用电擦除 CMOS工艺;

(2)PAL器件的应用局限性较大,而GAL的输出结构有一个输出逻辑宏单元(OLMC)。对GAL编程,一般可以使用ABEL语言,ABEL的语法基本上是由一组逻辑表达式进行描述。但是,由于GAL内部的逻辑电路(门数)比较少,一般只能完成一些简单的逻辑转换、简单的计数器(位数少)、锁存器等。在单片机应用中,往往需要用几个不同的门电路组合或加上138之类的3-8译码器组合,译出几个特定地址,这才是GAL的专长,可以在一个芯片内完成,使得电路简洁,而且输入输出在不违背基本约定的前提下可以随意调换,易于布板走线。

GAL可分为两大类:(1)与阵列可编程,或阵列固定,如:GAL16V7、GAL20V7、ispGAL16Z7等(与PAL类似);(2)与阵列和或阵列都可编程,如GAL39V17(与PLA类似)等。一般来讲,GAL有如下优点:

 1.具有电可擦除的功能,克服了采用熔断丝技术只能一次编程的缺点,其可改写的次数超过100次。

2.由于采用了输出宏单元结构,用户可根据需要进行组态,一片GAL器件可以实现各种组态的PAL器件输出结构的逻辑功能,给电路设计带来极大的方便。

3.具有加密的功能,保护了知识产权。

4.在器件中开设了一个存储区域用来存放识别标志——即电子标签的功能。


现场可编程门阵列(FPGA)


FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

1 FPGA基本结构

目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。我们以altera的FLEX/ACEX芯片为例来说明FPGA的基本结构。
altera的FLEX/ACEX芯片的结构如6-25所示:

FLEX/ACEX的结构主要包括LAB,I/O块,RAM块(未表示出)和可编程行/列连线。在FLEX/ACEX中,一个LAB包括7个逻辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEX/ACEX芯片实现逻辑的最基本结构。

2 FPGA原理与特点

1.FPGA的原理

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

对于基于查找表技术(Look-Up table),SRAM工艺的FPGA(如Altera的所有FLEX,ACEX,APEX系列,Xilinx的Spartan,Virtex),由于SRAM工艺的特点,掉电后数据会消失,因此调试期间可以用下载电缆配置PLD器件,调试完成后,需要将数据固化在一个专用的EEPROM中(用通用编程器烧写),上电时,由这片配置EEPROM先对PLD加载数据,十几个毫秒后,PLD即可正常工作。(亦可由CPU配置PLD)。但SRAM工艺的PLD一般不可以加密。

 反熔丝(Anti-fuse)技术的FPGA,如Actel,Quicklogic及Lucent的部分产品就采用这种工艺。用法与EEPOM的PLD一样,但这种的PLD是不能重复擦写,所以初期开发过程比较麻烦,费用也比较高。但反熔丝技术也有许多优点:布线能力更强,系统速度更快,功耗更低,同时抗辐射能力强,耐高低温,可以加密,所以在一些有特殊要求的领域中运用较多,如军事及航空航天。

下面简单介绍一下查找表(Look-Up-Table)的原理:

采用这种结构的PLD芯片也可以称之为FPGA。如altera的FLEX、ACEX、APEX系列;xilinx的Spartan,Virtex系列。查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。 当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面是一个4输入与门的例子。

 2.FPGA的特点

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点如下:

1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到适用的芯片。

2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片提高了系统集成度、可靠性。


进入归纳知识