● CPLD 基础知识

Preview:

DESCRIPTION

● CPLD 基础知识. ● MAX+PLUSSII 简介. ● VHDL 语言. 兰州石化职业技术学院电子系. CPLD 技术应用. EDA 技术应用. 第 1 讲 前言及可编程逻辑器件. 使用对象: 专用集成电路 ASIC 的芯片设计研发人员 广大的电子线路设计人员 电子设计自动化 EDA ( Electronic Design Automation )技术是以大规模 可编程逻辑器件 为设计载体,通过 硬件描述语言 设计, EDA 软件 编译、仿真,最终 下载 到设计载体中,从而完成系统电路设计任务的新一代设计技术。. 一、前言. - PowerPoint PPT Presentation

Citation preview

● CPLD 基础知识

● MAX+PLUSSII 简介

● VHDL 语言

兰州石化职业技术学院电子系

EDA 技术应用

第 1 讲

前言及可编程逻辑器件

使用对象:•专用集成电路 ASIC 的芯片设计研发人员•广大的电子线路设计人员

电子设计自动化 EDA ( Electronic Design Automation )技术是以大规模可编程逻辑器件为设计载体,通过硬件描述语言设计, EDA 软件编译、仿真,最终下载到设计载体中,从而完成系统电路设计任务的新一代设计技术。

一、前言

EDA 技术的发展及技术特色

EDA 技术与计算机、集成电路、电子系统设计的发展密切相关,汇集了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,开发出来的一整套电子设计系统软件。 EDA 技术经历了三个发展阶段。

20 世纪 70 年代的计算机辅助设计( CAD )阶段。

20 世纪 80 年代的计算机辅助工程设计( CAED )阶段。

20 世纪 90 年代电子系统设计自动化( EDA )阶段。

在这个阶段分别开发了一个个独立的软件工具,主要有电路原理图绘制、 PCB (印刷电路板)图绘制、电路模拟、逻辑模拟等。

它们利用计算机的图形编辑、分析和计算等能力,协助工程师设计电子线路,使设计人员从大量繁琐、重复计算和绘图工作中解脱出来。

但总体来看自动化程度低,需要人工干预整个设计过程。美国 Accel 公司开发的 Tango 布线软件就是最具代表性的产品。

20 世纪 70 年代的计算机辅助设计( CAD )阶段

这一阶段的 EDA 工具以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计完成之前的功能测试问题,代替了设计师的部分工作,利用这些工具,设计师能在产品制造之前预知产品的功能与性能。我们所熟悉的 orCAD 和 Protel 早期的版本是这一阶段中两种典型的设计工具。

但是大部分从原理图出发的 EDA 工具仍然不能适应复杂电子系统的设计要求,而具体化的元件图形制约着优化设计。

20 世纪 80 年代的计算机辅助工程设计 (CAED) 阶段

20 世纪 90 年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品的开发转向系统级的电子产品开发 SOC ( System on a Chip, 即片上系统集成)。

EDA 工具是以系统级设计为核心,包括系统行为级描述与结构综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一整套的电子系统设计自动化工具。这时的 EDA 工具不仅具有电子系统设计的能力,而且还能提供独立于工艺和厂家的系统级设计,具有高级抽象的设计构思手段。

具备上述功能的 EDA 软件,可以使得电子工程师在不熟悉半导体工艺的情况下,完成电子系统的设计。

20 世纪 90 年代电子系统设计自动化 (EDA) 阶段

三部分

大规模可编程逻辑器件

硬件描述语言

EDA 开发软件

PLD 能做什么呢?可以毫不夸张的讲, PLD 能完成任何数字器件的功能,上至高性能 CPU,下至简单的 74电路,都可以用 PLD 来实现。 PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。

? PLD

二、可编程逻辑器件

2.1 可编程逻辑器件的分类

PROM PLA PAL GAL

¼òµ¥¿É±à³ÌÂß¼­Æ÷¼þ(SPLD)

CPLD FPGA

¸ßÃܶȿɱà³ÌÂß¼­Æ÷¼þ(HDPLD)

¿É±à³ÌÂß¼­Æ÷¼þ

可编程逻辑器件按集成度分类

2.2 可编程逻辑器件的结构

与 - 或阵列结构( SPLD 、 CPLD )

查找表结构( FPGA )

输入

缓冲

电路

阵列

输出

缓冲电路

出… … 2.3 基本 PLD 器件的原理结构图

与 - 或阵列结构

阵列线连接表示

2.3 基本 PLD 器件的原理结构图

1、输入缓冲器

2.3 基本 PLD 器件的原理结构图

2 、可编程“与”阵列

2.3 基本 PLD 器件的原理结构图

3、可编程“或”阵列 2.3 基本 PLD 器件的原理结构图

可编程“与——或”阵列 2.3 基本 PLD 器件的原理结构图

6、输出电路

完成直接或寄存器输出及输出信号的反馈

2.3 基本 PLD 器件的原理结构图

一位加法器

与阵列(可编程)

或阵列(可编程)

0A1A

1A 1A 0A 0A1F 0F

2.3 基本 PLD 器件的原理结构图

2.4 简单可编程逻辑器件的特点

PROM( Programmable Read Only Memory )可编程只读存储器包括 EPROM、 EEROM。

PLA ( Programmable Logic Array )可编程逻辑阵列

PAL( Programmable Array Logic )可编程阵列逻辑

GAL( Generic Array Logic )通用阵列逻辑

器件名 与阵列 或阵列 输出电路

PROM 固定 可编程 固定

PLA 可编程 可编程 固定

PAL 可编程 固定 固定

GAL 可编程 固定 可组态

4种 SPLD 器件的区别

2.4 简单可编程逻辑器件的特点

1、 PROM表达的 PLD 图阵列

与阵列(固定)

或阵列(可编程)

0A1A

1A 1A 0A 0A1F 0F

用 PROM 完成半加器逻辑阵列

与阵列(固定)

或阵列(可编程)

0A1A

1A 1A 0A 0A1F 0F

011

10100

AAF

AAAAF

011

10100

AAF

AAAAF

2.4 简单可编程逻辑器件的特点

­­2 、 PLA 逻辑阵列示意图

与阵列(可编程)

或阵列(可编程)

0A1A

1A 1A 0A 0A1F 0F

2.4 简单可编程逻辑器件的特点

PLA 与 PROM 的比较0A1A

1F 0F

2A

2F

0A1A

1F 0F

2A

2F

2.4 简单可编程逻辑器件的特点

3、 PAL可编程阵列逻辑

0A1A

1F 0F

0A

1A

1F

0F

2.4 简单可编程逻辑器件的特点

­­­­­General­Array­Logic­Device

•GAL 的与阵列和 PAL 的类似•或阵列及输出寄存器则采用 OLMC输出逻辑宏单元•OLMC 最多有 8 个或项,每个或项最多有 32 个与项•采用 EEPROM 技术,电擦除,可多次编程•可以取代中小规模数字集成电路和 PAL 器件

4、 GAL通用阵列逻辑

2.4 简单可编程逻辑器件的特点

逻辑宏单元

输入 / 输出口

输入口

时钟信号输入

三态控制

可编程与阵列

固定或阵列

GAL16V8

OLMC内部结构

GAL16V8 的结构图

I/O(n)MU

TP

11100100

0

1

F

D

XOR(n)

CLOCK

Vcc

接零级输出

反馈

0AC

1AC

1G 2G

3G 4G

5G

(m)

110110

00

TSMU

X

X

OMUX

0

1

OE

MU

(n)1AC

1AC

(n)

X

接或矩阵

0AC*

引脚图

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

ispLSI 1032 是 ispLSI 1000 系列中容量中等的器件,具备 5V 的在系统编程能力。

1. ispLSI 1032 的主要特点:•集成密度为 6000 等效门, 192 个寄存器;•是电擦写 CMOS ( EEPROM )器件;•有 84 个引脚,其中 64 个是 I/O引脚, 8 个

是专用输入引脚;

•最大工作频率 fmax = 125 MHz 。

2. ispLSI 1032 的结构框图——引脚图2.4 LATTICE 公司 ispLSI 1032 的结构和特点

3. ispLSI 1032 的结构框图——功能框图

2.4.1 LATTICE 公司 ispLSI 1032 的结构和特点

1) 集总布线区 GRP ( Global Routing Pool )

该区位于芯片的中央,其任务是将所有片内逻辑联系在一起

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

2) 万能逻辑块 GLB ( Generic Logic Block )

GLB位于GRP 的两边,每边8块,共 32块

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

每个 GLB由与阵列、乘积项共享阵列、四输出逻辑宏单元和控制逻辑组成。

GLB结构

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

GLB结构

•GLB 的与阵列有 18 个输入端,其中 16 个来自集总布线区 GRP , 2 个由 I/O 单元直通输入。

•每个 GLB 有 20 个与门,形成 20 个乘积项,再通过 4个或门输出。

•4输出宏单元有 4 个触发器,可被组态为组合输出或寄存器输出(通过编程组态)。

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

3) 输入输出单元 IOC ( Input Output Cell )

输入输出单元 IOC 是功能框图最外层的小方块,共 64 个( IN0 ~ IN63 )。该单元有输入、输出和双向 I/O 三类组态。可通过对控制输入输出三态缓冲器的使能端编程来选择

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

4) 输出布线区 ORP ( Output Routing Pool )

•输出布线区 ORP 是介于 GLB 和 IOC 之间的可编程互连阵列;

•ORP 的输入是 8 个 GLB 的 32 个输出端;•ORP 的输出有 16 个,分别与该侧的 16 个 IOC 相连;•通过对 ORP 编程,可以将任一个 GLB输出灵活地送到 16 个

I/O端的任何一个;•在 ORP 的旁边还有 16条通向 GRP 的总线, I/O 单元可以使

用, GLB 的输出也可以通过 ORP 使用它,从而方便地实现了 I/O端复用的功能和 GLB 之间的互连。

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

5) 时钟分配网络 CDN( Clock Distribution network)

•CDN 的输入信号由四个专用输入端 Y0 、 Y1 、 Y2 、Y4 有提供;

•CDN 的输出有五个,其中 CLK0 、 CLK1 、 CLK2提供给 GLB , IOCLK0 和 IOCLK1提供给 I/O 单元;

•时钟专用 GLB ( B0 )的四个输出送至 CDN ,以建立用户定义的内部时钟电路。

6) 大块结构(Megablock)•ispLSI 1032 采用了一种分块结构,每 8

个 GLB连同对应的 ORP 、 IOC 等构成一个大块。 此外,每个大块中还包括 2 个专用输入端,仅供本大块内的 GLB 使用,靠软件自动分配。

•ispLSI 1032 共有 4 个大块。

2.4 LATTICE 公司 ispLSI 1032 的结构和特点

2.5.1­­­­­­FPGA----- 现场可编程门阵列( Field­­Programmable­Gate­Array )

1、可多次编程、改写、擦除

2 、采用 SRAM等编程技术

3、提供丰富的 I/O端数和内部触发器,集成度远高于 PAL和GAL4、内部延时与器件结构和逻辑连接等有关,传输时延不可预测

5、由可编程逻辑模块阵列 CLB 、 I/O 模块和互连资源构成6、查找表( Look-Up-Table) 的原理与结构

2.5 FPGA 性能结构特点

基于查找表的结构模块 基于查找表的结构模块

查找表LUT

1输入

2输入

3输入

4输入

输出

查找表( Look-Up-Table)简称为 LUT , LUT 本质上就是一个 RAM 。 目前 FPGA 中多使用 4输入的 LUT ,所以每一个 LUT 可以看成一个有 4位地址线的 16x1 的 RAM 。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后, PLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM, 这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可

2.5.1 FPGA 性能结构特点

00

0

00

1

01

0

00

00

10

1

输入 A 输入 B 输入 C 输入 D

查找表输出

16x1RAM

查找表原理

多路选择器

2.5.1 FPGA 性能结构特点

例: F= abcd

2.5.1 FPGA 性能结构特点

2.6 CPLD 性能特点 CPLD----- 复杂可编程逻辑器件( Complex Programmable Logic Device )

1、可多次编程、改写、擦除2 、采用 CMOS EPROM、 EEPROM、 FLASH和 SRAM等编程技术

3、 I/O端数和内部触发器多达数百个,集成度远高于 PAL和GAL4、内部延时与器件结构和逻辑连接等无关,容易消除竞争和

冒 险5、有多加密位,防止非法抄袭

6、采用分区阵列结构,每区相当于一 PAL 或 GAL

7 、基于乘积项( Product-Term) 的 PLD结构

2.6.1 FLEX 10K 系列 FPGA 结构图

(1)

逻辑阵列LAB是由一系列的相邻LE构成的

行连线带

列连线带

LAB 局部连线

LAB 控制信号

专用输入与全局信号

行连线带

列到行连线带

列连线带

进位输出与级联输出

进位输入与级联输

(2) 逻辑单元 LE2.6.1 FLEX 10K 系列 FPGA 结构图

可编程寄存器

到快速互联通道

到 LAB 的局部互联

PLD/FPGA厂商概述

随着可编程逻辑器件应用的日益广泛,许多 IC制造厂家涉足 PLD/FPGA 领域。目前世界上有十几家生产 CPLD/FPGA 的公司,最大的三家是: ALTERA , XILINX, Lattice ,其中 ALTERA 和 XILINX占有了 60%以上的市场份额。

九十年代以后发展很快,是最大可编程逻辑器件供应商之一。主要产品有: MAX3000/7000,FLEX10K,APEX20K, ACEX1K, Stratix, Cyclone 等。 开发软件为MaxPlusII,QuartusII

Altera

FPGA 的发明者,老牌 FPGA 公司,是最大可编程逻辑器件供应商之一。产品种类较全,主要有: XC9500 , Coolrunner , Spartan, Virtex等。 开发软件为 ISE 。 通常来说,在欧洲和美国用 Xilinx的人多,在日本和亚太地区用 ALTERA 的人多。 全球 PLD/FPGA 产品 60%以上是由 Altera 和 Xilinx 提供的。 可以讲 Altera 和 Xilinx 共同决定了 PLD 技术的发展方向

XILINX

Lattice 是 ISP 技术的发明者 ,ISP 技术极大的促进了 PLD 产品的发展,与 ALTERA 和 XILINX相比,其开发工具略逊一筹。中小规模 PLD比较有特色, 1999 年推出可编程模拟器件。 99 年收购Vantis (原 AMD 子公司) ,成为第三大可编程逻辑器件供应商。 2001年 12月收购 agere 公司(原 Lucent微电子部)的 FPGA 部门。 Lattice 在 PLD 领域发展多年,拥有众多产品系列,目前主流产品是 ispMACH4000 系列 PLD和 LatticeEC/ECP 系列 FPGA ,此外,在混合信号芯片上,也有诸多建树,如可编程模拟芯片 ispPAC ,可编程电源管理,时钟管理。 开发软件 ispSynario,ispLever

Lattice

Lattice

可编程逻辑器件的发展历程

70 年代 80 年代 90 年代

PR

OM

和PL

A

器件

改进的 P

LA

器件

GA

L

器件

FP

GA

器件

EP

LD

器件 C

PL

D器件

内嵌复杂功能模块的 SoPC