可编程逻辑器件PLD(Programmable Logic Devices)是70年代发展起来的一种划时代的新型逻辑器件。PLD器件的开发,弥补了SSI/MSI标准系列产品(如54和74系列的TT1器件、74HC和CD4000系列的CMOS器件)集成度低、功能有限、灵活性差、用之设计数字系统时连线繁杂、功耗多、体积庞大、可靠性差的弱点,也克服了LSI器件灵活性差、外部配置复杂、成本高的不足。PLD器件以其性能好、功能强、可靠性高、成本低、速度快及灵活的体系结构等特性,在现代数字系统设计中发挥着越来越重要的作用。
一般来说,PLD器件是一种由用户配置以完成某种逻辑功能的电路。它具有“与-或”两级阵列结构,即由一个“与”阵列和一个“或”阵列组联而成,其最终的逻辑结构和功能由用户编程设定。PLD器件兼有标准逻辑器件和半定制逻辑器件的优点,内部结构是由可编程“熔丝”将“与”门阵列、“或”门阵列及寄存器互连起来。用户可以对某一个阵列或者同时对两个阵列编程。器件的输入馈送到“与”阵列,完成期望的“与”功能,并生成乘积项;乘积项又送至“或”阵列,在“或”阵列中,对各个乘积项进行组合,从而产生器件的输出。图1是其基本结构框图。PLD器件所具有的现场可编程特点,提供了几乎立即的可定制性。

第一个PLD产品于70年代初研制成功,称为可编程只读存储器(PROM),当时主要用以解决各种类型的存储问题。后来PLD器件除PROM一个分支向大容量存储器发展外,其余分支均逐步转向逻辑应用,至今已经历了4个阶段:
第一阶段产品,包括“与”阵列全部预连好,“或”阵列由可编程二极管熔丝构成PROM,但真正作为逻辑器件使用的应以“与”阵列和“或”阵列双重可编程的双极型现场可编程逻辑阵列FPLA(Field ProgrammableLogic Array)器件为代表。
第二阶段开发了“与”阵列可编程,而“或”阵列固定的可编程阵列逻辑PAL(Programmable Array Logic)器件。PAL器件采用肖特基TTL和双极型PROM熔丝连接工艺,靠烧断熔丝达到编程目的。
第三阶段出现CMOS可擦型器件,先后研制成功了具有紫外线可擦(Ultra Violet Erasable)、电可擦(Electrically Erasable)的可重复编程器件,诸如EPROM、EPROM及通用阵列逻辑GAL(General Array Logic)器件。
第四阶段出现了完全不同于FPLA和PAL结构PLD器件,如逻辑单元阵列LCA(Logic Cell Array)和可编程宏单元逻辑PML(Programmable Macrocell Logic),目前尚未形成系列产品,开发工具也不完善。
随着大规模集成电器的工艺水平不断提高,PLD器件正向更高速、更高密度、更强功能、更灵活的方向发展。
PLD器件根据其阵列和输出结构的不同而相互区别,下表为各种不同类型PLD器件结构简示。

PLD器件内部“与”、“或”阵列的不同设置决定了其不同的应用场合。对于PROM器件,它具有固定的“与”阵列和可编程的“或”阵列,通常用作存储器,很少用于实现逻辑功能;FPLA器件的“与”阵列和“或”阵列均可编程,使设计最富于灵活性;而两个阵列均可编程的FPLS(Field Programmable Logic Sequencer:现场可编程逻辑定序器)器件用于专门的状态机;最为流行的PAL、GAL器件具有可编程的“与”阵列和固定的“或”阵列,它广泛用于实现各种各样的组合型或寄存器型逻辑功能。尤其对于GAL器件,它的每一输出引脚都连到一个输出逻辑宏单元(OLMC),因而大大改善了输出功能的结构和灵活性,也因此GAL系列产品在应用中受到设计者的青睐。
PLD器件因其强大的逻辑功能、极强的灵活性及其可编程特性,使得它在工业控制、测量仪表、计算机工程、通信工程等领域得到广泛的应用。
PLD器件的应用设计过程包括设计构思、器件选择、设计实施、PLD器件编程、PLD器件测试等,如图2所示。

PLD器件应用设计的第一阶段是设计构思,这也是PLD器件优越性具体体现的阶段,设计者只需考虑期望的逻辑功能,依据系统设计要求,提出简洁完整的功能描述。
第二阶段即是器件选择,设计者根据系统的设计要求,分析PLD器件的外部逻辑电路的工作条件,参照器件使用情况的历史记载及器件结构的功能特性,作出最佳选择。一般在选择器件时,应当考虑的主要功能特性是:输入引脚数目、输出引脚数目、I/O引脚数目、器件速度、器件功能、寄存器数(若有的话)、乘积项数、输出极性控制等。
第三阶段即为设计实施。这一阶段包括设计文件的编写、软件工具的使用、器件的编程。在选定器件后,根据系统要求,编写设计说明书,反复设计、调整逻辑关系,以达到设计要求,最后编译形成标准的JEDEG文件装入编程器,以完成对器件的编程工作。这一阶段流程图如图3所示。

在PLD器件应用设计过程中,所需的工具大致分为可编程逻辑开发软件和器件编程器两类。市售的多功能编程器几乎都支持对PLD器件的编程。而可编程逻辑开发软件较为流行的有两种:汇编型软件工具FM软件及高级编译型可编程逻辑设计语言ABEL软件。ABEL软件的最大特点在于设计者不必详细了解PLD器件的内部结构,只需输入符合语法规定的逻辑表达式就能设计各种不同类型的PLD器件。这种软件不但能对用户的逻辑设计进行语法检查、逻辑化简、自动生成符合JEDEC标准的JEDEC文件(.JED),而且还具有将用户的设计要求(逻辑表达式)与所选器件功能相结合分析检查用户的设计目的是否切实可行的功能。ABEL软件是目前国际上广泛使用的不可或缺的PLD辅助设计软件之一。 (吴呈群)