浅谈可编程逻辑器件

专用集成电路ASIC,Application Specific Integrated Circuit):是为某种专门用途而设计的集成电路。在用量不大的情况下,具有成本高、设计和制造的周期长。(全定制)

可编程逻辑器件PLD,Programmable Logic Device):PLD 是做为一种通用集成电路产生的,他的逻辑功能按照用户对器件编程来确定。一般的 PLD 的集成度很高,足以满足设计一般的数字系统的需要。这样就可以由设计人员自行编程而把一个数字系统“集成”在一片 PLD 上,制作成“片上系统”(SoC,System on Chip),而不必去请芯片制造厂商设计和制作专用的集成电路芯片了。

目前生产和使用的 PLD 产品主要有可编程逻辑阵列(PLA,Programmable Logic Array)、可编程阵列逻辑(PAL,Programmable Array Logic)和通用阵列逻辑(GAL,Generic Array Logic)、可擦除的可编程逻辑器件(EPLD,Erasable Programmable Logic Device)、复杂的可编程逻辑器件(CPLD,Complex Programmable Logic Device)和现场可编程门阵列(FPGA,Field Programmable Gate Array)等几种类型。其中,PLA、PAL 和 GAL 称为低密度 PLD(一般在千门以下),EPLD、CPLD 和 FPGA 称为高密度 PLD。(半定制)

  PLD 最初使用的编程单元为熔丝或反熔丝(采用熔丝工艺的器件不能改写),后来改为 CMOS 工艺,于是编程单元也就变成了叠栅 MOS 管了。

  PLD 编程的开发系统主要由由硬件和软件两部分组成。

一、PLA  

  PLD 最早的产品是 PLA,它出现于 20 世纪 70 年代的后期。如 PLA 编程之后的基本电路结构如下所示:

  这里,OE' = 0。此时:

    Y3 = ABCD +A'B'C'D'

    Y2 = AC + BD

    Y1 = A ⊕ B

    Y0 = C ⊙ D

  这里,介绍一下 PLD 中门电路的惯用画法:

  以上为组合逻辑型 PLA,不包含触发器,只能用于设计组合逻辑电路。另外,还有包含触发器的用于设计时序逻辑电路的时序逻辑型 PLA。如下所示:

   总结 PLA:虽然今天已经很少使用 PLA 了,但是之后所出现的 PLD 器件的基本原理都源于 PLA,由 PLA 发展、演化而来的。此外, PLA 作为一种电路结构形式,也仍然可以用于集成电路内部的结构设计当中。

二、PAL

  PAL 器件由可编程的与逻辑阵列、固定的或逻辑阵列和输出电路三部分组成。在尚未编程之前,与逻辑阵列的所有交叉点上均有熔丝接通。编程时将有用的熔丝保留,将无用的熔丝熔断,即得到所需的电路。PAL 编程之后的基本电路结构如下所示:

  这里:

三、GAL

  GAL 采用了电可擦除的 CMOS(E2CMOS)工艺制作,可以用电压信号擦除并可重新编程。(以上两种无法改写,以下四种都是可擦除重写的)

  GAL 的基本结构仍为与 - 或阵列,不同的是,它的输出端新增加了可编程的输出逻辑宏单元 OLMC(Output Logic Macro Cell),通过编程可以将 OLMC 设置成不同的工作状态,所以具有较强的通用性。

四、EPLD

  EPLD 是从 GAL 演变而来的。EPLD 采用了 CMOS(低功耗、高噪声容限)和 UVEPROM(可靠性高、可以改写、集成度高、造价便宜)工艺制作。

五、CPLD

  CPLD 是从 EPLD 演变而来的。CPLD 大多采用了 E2CMOS 工艺制作。

六、FPGA

  FPGA 则独具匠心,其采用了 CMOS - SRAM 工艺制作。(其集成度可达百万门级)

  FPGA 由三种可编程单元和一个用于存放编程数据的静态存储器组成。这三种可编程单元分别是输入/输出模块(IOB,Input Output Block)、可编程逻辑模块(CLB,Configurable Logic Block)和互连资源(IR,Interconnect Resource)。而它们的工作状态全部都由编程数据存储器中的数据(比特流)设定。FPGA 基本电路结构框图如下所示:

  除了 FPGA 以外的 PLD 器件,基本上都采用了与 - 或逻辑阵列加上输出逻辑单元的结构形式。而 FPGA 则采用了完全不同的电路结构形式,它由若干独立的可编程逻辑模块组成,每个逻辑单元都是可编程的,用户可以通过编程将这些模块连接成所需要的数字系统。

  FPGA 的这种 CLB 阵列结构形式克服了 PAL 等 PLD 中那种固定的与-或逻辑阵列结构的局限性,在组成一些复杂的、特殊的数字系统时显得更加灵活。同时,由于加大了可编程 I/O 端的数目,也使得各引脚信号的安排更加方便和合理。

  不过 FPGA 本身也存在着一些明显的缺点。首先,它的信号传输延迟时间不是确定的。在构成复杂的数字系统时一般总要将若干个 CLB 组合起来才能实现。而由于每个信号的传输途径各异,所以传输延迟时间也就不可能相等(CPLD 的传输延时时间是确定的)。这不仅会给设计工作带来麻烦,而且也限制了器件的工作速度。在 CPLD 中就不存在这个问题。

  其次,由于 FPGA 中的编程数据存储器是一个静态随机存储器结构,所以断电后数据便随之丢失。因此,每次开始工作时都要重新装载编程数据,并需要配备保存编程数据的 EPROM。这些都给使用带来一些不便。

  此外,FPGA 的编程数据一般是存放在 EPROM 中的,而且要读出并送到 FPGA 的 SRAM 中,因而不便于保密。而 CPLD 中设有加密编程单元,加密后可以防止编程数据被读出。

  可见,FPGA 和 CPLD 各有不能取代的优点,这也正是两种器件目前都得到广泛应用的原因所在。

猜你喜欢

转载自www.cnblogs.com/PG13/p/11600965.html