什么是FPGA,PAL,EPLD?

FPGA(Field Programmable Gate Array):即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本的进一步降低,FPGA还将进入更多的应用领域。

PAL(Programmable Array Logic):可编程逻辑阵列,是70年代末由MMI公司率先推出的一种低密度,一次性可编程逻辑器件,第一个具有典型实际意义的可编程逻辑器件(PLD- Programmable Logic Device)。它采用双极型工艺制作,熔丝编程方式。PAL器件由可编程的与逻辑阵列、固定的或逻辑阵列和输出电路三部分组成。通过对与逻辑阵列编程可以获得不同形式的组合逻辑函数。另外,在有些型号的PAL器件中,输出电路中设置有触发器和从触发器输出到与逻辑阵列的反馈线,利用这种PAL器件还可以很方便地构成各种时序逻辑电路。

GAL(Generic Array Logic):通用阵列逻辑,GAL器件是从PAL发现过来的,其采用了EECMOS工艺使得该器件的编程非常方便,另外由于其输出采用了逻辑宏 单元结构(OLMC—Output Logic Macro Cell),使得电路的逻辑设计更加灵活。GAL的优点:

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

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

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

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

  GAL器件的基本结构,GAL有五个部分组成:

  1.输入端:GAL16V8的2~9脚共8个输入端,每个输入端有一个缓冲器,并由缓冲器引出两个互补的输出到与阵列;

  2.与阵列部分:它由8根输入及8根输出各引出两根互补的输出构成32列,即与项的变量个数为 16;8根输出每个输出对应于一个8输入或门(相当于每个输出包含8个与项)构成64行,即GAL16V8的与阵列为一个32×64的阵列,共2048个可编程单元(或结点);

  3.输出宏单元:GAL16V8共有8个输出宏单元,分别对应于12~19脚。每个宏单元的电路可以通过编程实现所有PAL输出结构实现的功能;

  4.系统时钟:GAL16V8的1脚为系统时钟输入端,与每个输出宏单元中D触发器时钟输入端相连,可见GAL器件只能实现同步时序电路,而无法实现异步的时序电路;

  5.输出三态控制端:GAL16V8的11脚为器件的三态控制公共端。

 

EPLD(Erasable Programmable Logic Device):可擦除可编辑逻辑器件,是一种集成电路,包括一系列的编程逻辑器件,其无需进行再次连接。

     PLD器件的设计步骤

  1.电路逻辑功能描述

  PLD器件的逻辑功能描述一般分为原理图描述和硬件描述语言描述,原理图描述是一种直观简便的方法,它可以将现有的小规模集成电路实现的功能直接用PLD器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练;硬件描述语言描述是可编程器件设计的另一种描述方法,语言描述可能精确和简练地表示电路的逻辑功能,现在在PLD的设计过程中广泛使用,并且有更加浒的趋势,常用的硬件描述语言有ABEL,VHDL语言等,其中ABEL是一种简单的硬件描述语言,其支持布尔方程、真值表、状态机等逻辑描述,适用于计数器、译码器、运算电路、比较器等逻辑功能的描述;VHDL语言是一种行为描述语言,其编程结构类似于计算机中的C语言,在描述复杂逻辑设计时,非常简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。

  2.计算机软件的编程及模拟

  不管是用硬件描述语言描述的逻辑还是用原理图描述的逻辑,必须通过计算机软件对其进行编译,将其描述转换为经过化简的布尔代数表达式(即通常的最简与或表达式),编译软件再根据器件的特点将表达式适配进具体的器件,最终形成PLD器件的熔断丝文件(通常叫做JEDEC文件,简称为JED文件)。

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

  3.通过编程器将JED文件下载到PLD器件中

  在上步中形成的熔断丝文件必须下载到PLD器件中去才能实现设计的要求,熔断丝文件的下载一般须通过编程器进行下载。

  编程器是一种专门用于对可编程器(如EPROM,EEPROM,GAL,CPLD,PAL等)进行编程的专业设备,常见的编程器有台湾河洛公司的ALL系列、南京西尔特公司的Super系列等。编程器通常通过计算机的并行打印器将JED文件下载到编程器中,编程器再将JED文件根据器件的特点将其写入器件内部,从而达到下载的目的。下图给出了PLD的设计过程。

posted @ 2010-01-21 00:10  Allen Galler  阅读(2572)  评论(0编辑  收藏  举报