EDA(CPLD/FPGA)技术概述
主要术语摘要:
* EDA(电子设计自动化):Electronic Design Automation
* ISP(在系统可编程):In System Programmable
* PAL(可编程阵列逻辑):Programmable Array Logic
* GAL(通用阵列逻辑):Generic Array Logic
* PLD(可编程逻辑器件):Programmable Logical Device
* EPLD(可擦除/电擦除PLD):Erasable/Electronic Programmable Logical
Device
* CPLD(复杂可编程逻辑器件):Complex Programmable Logical Device
* FPGA(现场可编程门阵列):Field Programmable Gates Array
* PLD(可编程逻辑器件):Programmable Logical Device
* ASIC(专用集成电路):Application Specific Integrated Circuits
* JTAG(边界扫描测试技术):Join Test Action Group
*VHDL(硬件描述语言):Very high speed IC Hardware Description Language
* CAD(计算机辅助设计):Computer Assist Design
* CAE(计算机辅助工程设计):Computer Assist Engineering
* SOC(片上系统):System On a Chip
电子设计自动化(EDA)技术是以计算机科学和微电子技术发展为先导,它
汇集了计算机图形学、拓扑逻辑学、微电子工艺与结构、计算数学等多种计算机
应用学科最新成果的先进技术,它是在先进的计算机工作平台上开发出来的一整
套电子系统设计的软件工具。
EDA 技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机
辅助设计CAD、计算机辅助工程设计CAE 和电子设计自动化EDA 三个发展过
程。EDA 软件工具种类繁多,如:Smartork、Orcad、Tango、Protel、Workbench
(multsim)、Pspice 及各大可编程器件厂商提供的专用开发软件,如:Altera 公司提供的MAX+plusⅡ、Lattice 公司提供的ispDesignExpert /PAC-Designer、Xilinx
公司提供的Foudation Series/webpack 等,本书将重点介绍Altera 公司的可编程器
件及其开发工具。
随着电子设计自动化(EDA)技术的不断发展,其含义也不断发生变化,早期的
电子设计自动化多指类似Protel 电路版图的设计自动化概念,这种概念仅限于电
路元器件与元器件之间即芯片外设计自动化,随着微电子技术的不断发展,当今
的EDA 技术更多的是指可编程逻辑器件的设计技术,即芯片内的电路设计自动
化。也就是说,开发人员完全可以通过自己的电路设计来定制其芯片内部的电路
功能,使之成为设计者自己的专用集成电路(即ASIC)芯片,这就是我们今天
所说的的EDA 技术——用户可编程逻辑器件(PLD)技术。其应用也无处不在,
从简单的逻辑电路、时序电路设计到复杂的数字系统设计均能得心应手,在通信
领域(软件无线电),在数字信号处理(DSP)领域、在嵌入式/片上系统(SOC)
及各种IP 内核等诸多领域早已广泛应用,如果说原来的Tango(Protel)的问世
在电子设计领域是一次革命的话,那么今天的EDA(CPLD/FPGA)技术称得上
是电子设计领域的第二次革命。
随着可编程器件PLD 技术的不断发展和崛起,其功能之卓越和先进已经令当今
的电子工程师们赞叹不已,除了它设计灵活、仿真调试方便、体积小、容量大、
I/O 口丰富、成本低廉、易编程和加密等优点外,更突出的特点是其芯片的在系
统可编程技术。也就是说它不但具有可编程和可再反复编程的能力,而且只要把
器件插在用户自己设计的目标系统内或线路板上,可以重新构造其设计逻辑而对
器件进行编程或者反复编程,这种技术被称为在系统可编程技术,简称ISP 技术。
由于ISP 技术的应用,打破了产品开发时必须先编程后装配的惯例,而可以先装
配后编程,成为产品后还可以在系统内反复编程和修改,ISP 技术使得系统内硬
件的功能象软件一样被编程配置,使系统的升级和维护变得更容易和方便。可以
说可编程器件真正做到了硬件的“软件化”自动设计,这就是当今的EDA 电子设
计自动化技术。可以不夸张地说由于可编程器件的出现,传统的(数字)电路设
计方法和过程得到了一次革命和飞越。
由于ISP-PLD 器件的写入、擦除控制电路和高压脉冲发生电路集成在PLD 芯
片内部,所以不需要编程器,直接利用器件的工作电压,在器件安装到系统板上后,不需要将器件从电路板上拔下来,可直接对器件进行编程,并可改变其内部
的设计逻辑,满足其设计需要。
可编程器件PLD 可分为数字可编程器件和模拟可编程器件两类。前者之技术发
展已经相当成熟,在大量的电子产品中早已得到了实际应用;后者相对来说发展
要晚一些,其现有的芯片功能也比较单一。数字可编程逻辑器件按其密度可分为
低密度PLD 和高密度PLD 两种,低密度PLD 器件如早期的PAL、GAL 等,它
们的编程都需要专用的编程器,属半定制ASIC 器件;高密度PLD 又称复杂可
编程逻辑器件,如市场上十分流行的CPLD、FPGA 器件,它们属于全定制ASIC
芯片,编程时仅需以JTAG 方式的下载电缆与计算机并口相连即可。此书将主要
以数字可编程逻辑器件(CPLD、FPGA)之设计与应用进行系统描述,有关模
拟可编程器件的说明请参考本公司的其他书物。
CPLD/FPGA 同属于高密度用户可编逻辑程器件,其芯片门数(容量)等级从几
千门~几万门、几十万门到几百万门以上不等,适合于时序、组合逻辑电路应用
场合,它可以替代几十甚至上百块通用IC 芯片,实际上这样的CPLD/FPGA 就
是一个子系统部件。在很大程度上他们具有类似之处,比如其电路设计方法都一
样。相比而言,CPLD 适合于做各种算法和组合逻辑电路设计,而FPGA 更适合
完成时序比较复杂的逻辑电路。由于FPGA 芯片采用RAM 结构,失电以后其内
部程序将丢失,在形成产品时一般都和其专用程序存储器配合使用,其芯片内部
的电路文件(程序)可放置在磁盘上、ROM 或E2PROM 中,因而可以在FPGA
芯片及其外围保持不动的情况下,换一块存储器芯片就能实现一种新的功能。电
路设计人员在使用CPLD/FPGA 器件进行电路设计时不需过多的考虑它们的区
别,因为其电路设计和仿真方法都完全一样,不同之处在于芯片编译或适配时生
成的下载文件不一样而已。
可编程器件CPLD/FPGA厂商比较众多,比较知名的如Altera、Lattice、Xilinx、
Actel 公司等,本公司推出的这套实验系统兼容这几家厂商的CPLD 和FPGA 芯
片。上述几家公司推出的芯片均配有功能强大的开发软件,不仅支持多种电路设
计方法,如电原理路图、硬件描述语言VHDL 等,而且还支持电路仿真和时序
分析等功能,为用户开发和调试产品提供了极大的方便。有关可编程器件设计软
件的具体使用在实验系统例程中将详细介绍给读者。
CPLD/FPGA 技术发展十分迅速,不断有新技术和新产品问世,我们和广大读者一样,也处在不断地学习和运用当中。