VHDL开发精解与实例剖析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 可编程逻辑器件

可编程逻辑器件(programmable logic device,PLD)是一种由用户编程来实现逻辑功能的新型逻辑器件。与只能实现固定逻辑功能的传统标准逻辑器件(如74系列的TTL器件)相比, PLD器件具有可反复修改的特点,并且在满足专用的、个性化的设计需求方面具有更大的灵活性和竞争力。同时,可编程逻辑器件是VHDL程序实现的物理器件之一,本节简要介绍可编程逻辑器件的相关知识。

1.1.1 可编程逻辑器件概述

可编程逻辑器件是20世纪70年代发展起来的新型数字逻辑器件,是目前数字系统设计的主要硬件平台。

可编程逻辑器件是一种通用型逻辑器件,其逻辑功能是由使用者对器件进行编程和配置来设定的,且可以反复擦写。可编程逻辑器件采用CMOS工艺,其内部集成大量功能独立的分离元件,它们可以是基本逻辑门、由基本逻辑门构成的宏单元或者是“与阵列”、“或阵列”等门阵列。这些分离元件之间有大量可配置的连线,芯片出厂时,内部各个元件、单元间没有相互连接,因此芯片暂不具有任何逻辑功能。芯片内部各元件、单元如何连接,由用户根据需求通过EDA工具在计算机上编程实现。可编程逻辑器件根据下载的配置文件而实现不同的逻辑功能。

与传统的数字系统设计方法相比,使用可编程逻辑器件设计数字系统不但能够节省设计面积,而且使得设计具有很强的灵活性。随着可编程逻辑器件技术的发展,每个逻辑器件中门电路的数量愈来愈多,使得一个逻辑器件就能完成本来需要很多分立逻辑器件和存储芯片才能完成的工作。从而,大大减少了系统的功耗和成本,并提高了系统的可靠性。

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

可编程逻辑器件是在20世纪70年代发展起来的,至今已有三十多年。可编程逻辑器件的发展历程可以划分为4个阶段。

第1阶段为20世纪70年代初期到70年代中期,这一阶段的可编程逻辑器件只有简单的可编程只读存储器(programmable read only memory,PROM)、紫外线可擦除只读存储器(EPROM)、电可擦除只读存储器(EEPROM)3种。由于结构的限制(只是可编程的ROM),它们只能完成简单的数字逻辑功能。

第2阶段为20世纪70年代中期到80年代中期,这一阶段出现了结构上稍微复杂的可编程芯片,正式被称为可编程逻辑器件(PLD),能够完成各种逻辑运算功能。这阶段的产品主要包括可编程阵列逻辑(programmable array logic,PAL)和通用阵列逻辑(generic array logic, GAL)。这时期典型的PLD通常由一个“与门”和一个“或门”阵列组成。由于任意一个组合逻辑都能用“与—或”表达式来描述,因此这些PLD能够以乘积和的形式完成大量的组合逻辑运算。

第3阶段为20世纪80年代中期到90年代末,Xilinx和Altera分别推出了类似于PAL结构的复杂可编程逻辑器件(complex programmable logic device,CPLD)和与标准门阵列类似的现场可编程逻辑门阵列(field programmable gate array,FPGA)。它们都具有体系结构和逻辑单元灵活、集成度高以及使用范围广等特点。与其他基于“门阵列”的ASIC相比,它们具有设计周期短、设计制造成本低、开发工具先进、质量稳定以及可实现在线检验等优点,因此被广泛应用于产品的原型设计和产品生产之中。

第4阶段为20世纪90年代末到目前,这一阶段出现了可编程的片上系统(system on programmable chip,SoPC)和片上系统(system on a chip,SoC)技术,是PLD与ASIC技术融合的结果,涵盖了实时信号处理技术、高速数据收发技术、复杂计算技术以及嵌入式系统设计技术的全部内容。各FPGA厂商都推出了SoC FPGA产品,芯片制造工艺达到65 nm,系统门数也超过了百万门。同时,这一阶段的可编程逻辑器件内嵌了高速硬核乘法器、Gbit差分串行接口、时钟频率高达数百兆的PowerPC微处理器以及软核处理器PicoBlaze和MicroBlaze等,超越了普通ASIC器件的性能和规模和传统的FPGA概念,使PLD的应用范围从单片扩展到系统级。

1.1.3 可编程逻辑器件分类

按照可编程逻辑器件内部包含的基本逻辑门数量,可编程逻辑器件可分为低密度可编程逻辑器件和高密度可编程逻辑器件。如图1-1所示,其中低密度器件包括前期的PROM,PLA, PAL和GAL;高密度器件包括EPLD,CPLD和FPGA。

图1-1 可编程逻辑器件分类

1.低密度可编程逻辑器件

低密度可编程逻辑器件包括一些可编程逻辑器件发展前期出现的产品,低密度可编程逻辑器件具有以下特征:

● 内部含有的逻辑门数量少,一般为几十门到750门等效基本逻辑门;

● 基本结构均建立在两级“与—或”门电路的基础上;

● 输出电路部分为可编程的输出逻辑宏单元。

可编程逻辑器件于20世纪70年代发展起来,经历了PROM,PAL,PLA,直到80年代初期出现的GAL,都是处于低密度可编程逻辑器件时期。这一时期,可编程连线技术由最初的熔丝烧断技术发展到反熔丝介质导通截止技术;逻辑器件内的编程数据由不可擦除发展到能反复擦除;数据擦除方式由速度较慢的紫外线光照擦除发展到电擦除。

PAL是由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,实现工艺有反熔丝技术、EPROM和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(programmable logic array,PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。GAL采用EEPROM技术,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性。

2.高密度可编程逻辑器件

高密度可编程逻辑器件有以下几种:

1)可擦除的可编程逻辑器件(erasable programmable logic device,EPLD)

EPLD产生于20世纪80年代中期,是高密度可编程逻辑器件的早期产品。EPLD是GAL的改进,其基本结构与GAL相似,但是其集成密度、输出宏单元数目、器件内的连接机构都比GAL大得多且灵活、方便得多。

2)复杂可编程逻辑器件(complex programmable logic device,CPLD)

CPLD产生于20世纪80年代末,是EPLD的改进产品。CPLD内部至少含有可编程逻辑宏单元、可编程I/O单元、可编程内部连线。这种结构特点是高密度可编程逻辑器件的共同特点。CPLD是一种基于乘积项的可编程逻辑器件。部分CPLD器件内部有RAM、FIFO存储器。部分CPLD具有在系统编程能力(in system programmable,ISP)。在系统编程时,器件的输入/输出管脚暂时被关闭,编程结束后恢复正常状态。

3)现场可编程逻辑门阵列(field programmable gate array,FPGA)

FPGA是20世纪90年代发展起来的。大部分FPGA采用基于SRAM的查找表(look up table, LUT)结构,也有一些军品和宇航级FPGA采用Flash或者反熔丝工艺的查找表结构以提高可靠性。FPGA的突出特点是现场编程,即在FPGA工作的现场,不通过计算机,就能把存于FPGA外部ROM中的编程数据加载给FPGA。FPGA的这个特点,为工程人员维修、改进和更新电路逻辑功能提供了方便。

目前,常用的可编程逻辑器件是CPLD和FPGA,它们都属于高集成度可编程逻辑器件。本书中VHDL的程序设计开发都是基于Xilinx Spartan 3E系列FPGA来实现,第10章简要介绍FPGA的基础知识以及Xilinx Spartan 3E系列FPGA的内部结构。