第 3章
FPGA/ CPLD结构与应用
EDA技术 实用教程
KX
康芯科技
FPGA - Field Programmable Gate Array
CPLD - Complex Programmable Logic Device
KX
康芯科技
3.1 概 述输 入缓冲电路与阵列或阵列输出缓冲电路输入输出
基本 PLD器件的原理结构图
KX
康芯科技
3.1.1 可编程逻辑器件的发展历程
70年代 80年代 90年代
PROM
和PL
A
器件改进的P
LA
器件
GAL
器件
FP
GA
器件
EP
LD
器件 CP
LD
器件内嵌复杂功能模块的 SoPC
3.1 概 述
KX
康芯科技
3.1.2 可编程逻辑器件的分类按集成度 (PLD)分类可编程逻辑器件 ( P L D )
简单 P L D 复杂 P L D
P R O M P A L P L A G A L C P L D F P G A
3.1 概 述
KX
康芯科技
3.2 简单 PLD原理
3.2.1 电路符号表示常用逻辑门符号与现有国标符号的对照
KX
康芯科技
3.2.1 电路符号表示图 3-4PLD的互补缓冲器 图 3-5 PLD的互补输入 图 3-6 PLD中与阵列表示图 3-7 PLD中或阵列的表示 图 3-8 阵列线连接表示
3.2 简单 PLD原理
KX
康芯科技
3.2.2 PROM
地址译码器存储单元阵列

0
A
1
A
1?n
A
0
W
1
W
1?p
W
0
F
1
F
1?m
F
n
p 2?
图 3-9 PROM基本结构:
01112
0111
0110
...
AAAW
AAAW
AAAW
n
n
n
n



其逻辑函数是:
3.2 简单 PLD原理
KX
康芯科技
3.2.2 PROM
图 3-10 PROM的逻辑阵列结构与阵列
(不可编程)
或阵列
(可编程)

0
A
1
A
1?n
A
0
W
1
W
1?p
W
0
F
1
F
1?m
F
n
p 2?
01,011,111,11
01,011,111,11
00,010,110,10
WMWMWMF
WMWMWMF
WMWMWMF
mmpmpm
pp
pp






逻辑函数表示:
3.2 简单 PLD原理
KX
康芯科技
3.2.2 PROM
图 3-11 PROM表达的 PLD图阵列与阵列(固定)
或阵列
(可编程)
0
A
1
A
1
A
1A 0
A
0A
1
F
0
F
图 3-12 用 PROM完成半加器逻辑阵列与阵列(固定)
或阵列
(可编程)
0
A
1
A
1
A
1A 0
A
0A
1
F
0
F
011
10100
AAF
AAAAF

3.2 简单 PLD原理
KX
康芯科技
3.2.3 PLA
图 3-13
PLA逻辑阵列示意图与阵列(可编程)
或阵列
(可编程)
0
A
1
A
1
A
1A 0
A
0A
1
F
0
F
3.2 简单 PLD原理
KX
康芯科技
3.2.3 PLA
图 3-14 PLA与 PROM的比较
0
A
1
A
1
F
0
F
2
A
2
F
0
A
1
A
1
F
0
F
2
A
2
F
3.2 简单 PLD原理
KX
康芯科技
3.2.4 PAL
0
A
1
A
1
F
0
F
0
A
1
A
1
F
0
F
图 3-15PAL结构,图 3-16 PAL的常用表示:
3.2 简单 PLD原理
KX
康芯科技
3.2.4 PAL
11
10
01
00
R
11
10
01
00
R
Q
QD
11
10
01
00
R
11
10
01
00
R
Vcc
SG1
SL0 7
SL1 7
SG0 SL0 6
19 I/O
7
11
10
01
00
R
11
10
01
00
R
Q
QD
11
10
01
00
R
11
10
01
00
R
Vcc
SG1
SL0 6
SL1 6
SG1 SL0 6
18 I/O
6
1CLK/I 0
2I 1
3I 2
0
7
8
15
0 3 4 7 8 1211 15 16 19 20 23 24 27 28 31
图 3-17 一种 PAL16V8的部分结构图
3.2 简单 PLD原理
KX
康芯科技3.2.5 GAL
2
0
7
19
0 3 4 7 8 1211 15 16 19 20 23 24 27 28 31
1
3
8
15
18
OLMC
OLMC
4
16
23
17
5
24
31
16
OLMC
OLMC
6
32
39
15
7
40
47
14
OLMC
OLMC
8
48
55
13
9
56
63
12
OLMC
OLMC
11
I/CLK
I
I
I
I
I
I
I
I
I/ OE
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
I/O/Q
CLK
OE
图 3-18 GAL16V8的结构图
KX
康芯科技
3.2.5 GAL
图 3-19寄存器输出结构图 3-20寄存器模式组合双向输出结构
3.2 简单 PLD原理
(1) 寄存器模式。
KX
康芯科技
3.2.5 GAL
图 3-21 组合输出双向结构图 3-22 复合型组合输出结构
3.2 简单 PLD原理
(2) 复合模式。
KX
康芯科技
3.2.5 GAL
图 3-23 反馈输入结构图 3-24输出反馈结构图 3-25 简单模式输出结构
(3) 简单模式。
3.2 简单 PLD原理
KX
康芯科技
3.3 CPLD结构与工作原理图 3-26 MAX7000系列的单个宏单元结构
KX
康芯科技
1,逻辑阵列块 (LAB)
图 3-27-MAX7128S的结构
3.3 CPLD结构与工作原理
KX
康芯科技
3.3 CPLD结构与工作原理
2,宏单元逻辑阵列乘积项选择矩阵可编程寄存器
KX
康芯科技
3.3 CPLD结构与工作原理
3,扩展乘积项局部连线共享扩展项提供的
“与非”
乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑图 3-28 共享扩展乘积项结构
( 1)共享扩展项
KX
康芯科技图 3-29 并联扩展项馈送方式
( 2)并联扩展项
3.3 CPLD结构与工作原理
KX
康芯科技
3.3 CPLD结构与工作原理
4,可编程连线阵列图 3-30 PIA信号布线到 LAB的方式
KX
康芯科技
5,I/O控制块图 3-31-EPM7128S器件的 I/O控制块
3.3 CPLD结构与工作原理
KX
康芯科技
3.4 FPGA结构与工作原理
3.4.1 查找表
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
16 ×1
RAM
输入A 输入B 输入C 输入D
查找表输出多路选择器图 3-33 FPGA查找表单元内部结构查找表
LUT
输入1
输入2
输入3
输入4
输出图 3-32 FPGA查找表单元
KX
康芯科技图 3-34 FLEX FPGA内部结构
3.4.2 FLEX10K系列器件
KX
康芯科技3.4.2 FLEX10K系列器件
(1) 逻辑单元 LE。
图 3-35 LE(LC)结构图
KX
康芯科技
(1) 逻辑单元 LE
图 3-36 进位链连通 LAB中的所有 LE
快速加法器,比较器和计数器
DFF
进位输入
(来自上一个逻辑单元 )
S1
LE1
查找表
LUT
进位链
DFF S2
LE2
A1
B1
A2
B2
进位输出
(到 LAB中的下一个逻辑单元 )
进位链查找表
LUT
3.4.2 FLEX10K系列器件
KX
康芯科技
(1) 逻辑单元 LE
图 3-37 两种不同的级联方式
,与”级联链,或”级联链
LUT
LUT
IN
[3..0]
IN
[4..7]
LUTIN [(4n-1)..4(n-1)]
LUT
LUT
IN
[3..0]
IN
[4..7]
LUTIN [(4n-1)..4(n-1)]
LE
1
LE2
LEn
LE1
LE2
LEn
0.6 ns
2.4 ns
16位地址译码速度可达 2.4 + 0.6x3=4.2 ns
3.4.2 FLEX10K系列器件
KX
康芯科技(2) 逻辑阵列 LAB(Logic Array Block)
图 3-38
FLEX10
K LAB的结构图
KX
康芯科技
(3) 快速通道 (FastTrack)
3.4.2 FLEX10K系列器件
FastTrack遍布于整个 FLEX10K器件,是一系列水平和垂直走向的连续式布线通道。
FastTrack连接是由遍布整个器件的,行互连,和,列互线,组成的。
KX
康芯科技
(4) I/O单元与专用输入端口图 3-39 IO单元结构图
KX
康芯科技
(5) 嵌入式阵列块 EAB(Embedded Array Block)
3.4.2 FLEX10K系列器件图 3-40 用 EAB构成不同结构的
RAM和 ROM
输出时钟
D
RAM/ROM
256x8
512x4
1024x2
2048x1
D
D
D
写 脉 冲电路输出宽度
8,4,2,1
数据宽度
8,4,2,1
地址宽度
8,9,10,11
写使能输入时钟
KX
康芯科技
3.5.1 内部逻辑测试
3.5 FPGA/CPLD测试技术
3.5.2 JTAG边界扫描测试图 3-41 边界扫描电路结构
KX
康芯科技
3.5.2 JTAG边界扫描测试表 3-1 边界扫描 IO引脚功能引 脚 描 述 功 能
TDI 测试数据输入
(Test Data Input)
测试指令和编程数据的串行输入引脚 。 数据在 TCK
的上升沿移入 。
TDO 测试数据输出
(Test Data
Output)
测试指令和编程数据的串行输出引脚,数据在 TCK
的下降沿移出 。 如果数据没有被移出时,该引脚处于高阻态 。
TMS 测试模式选择
(Test Mode
Select)
控制信号输入引脚,负责 TAP控制器的转换 。 TMS
必须在 TCK的上升沿到来之前稳定 。
TCK 测试时钟输入
(Test Clock
Input)
时钟输入到 BST电路,一些操作发生在上升沿,而另一些发生在下降沿 。
TRST 测试复位输入
(Test Reset
Input)
低电平有效,异步复位边界扫描电路 (在 IEEE规范中
,该引脚可选 )。
KX
康芯科技
3.5.2 JTAG边界扫描测试
JTAG BST需要下列寄存器:
指令寄存器旁路寄存器边界扫描寄存器用来决定是否进行测试或访问数据寄存器操作这个 1bit寄存器用来提供 TDI和 TDO
的最小串行通道由器件引脚上的所有边界扫描单元构成
KX
康芯科技
3.5.2 JTAG边界扫描测试图 3-42 边界扫描数据移位方式
KX
康芯科技3.5.2 JTAG边界扫描测试图 3-43 JTAG BST
系统内部结构
KX
康芯科技图 3-44 JTAG BST系统与与 FLEX器件关联结构图
KX
康芯科技
3.5.2 JTAG边界扫描测试图 3-45 JTAG BST选择命令模式时序
KX
康芯科技
3.5.2 JTAG边界扫描测试
TAP控制器的命令模式
l SAMPLE/ PRELOAD指令模式。
l EXTEST指令模式。
l BYPASS指令模式。
l IDCODE指令模式
l USERCODE指令模式
3.5.3 嵌入式逻辑分析仪
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
1,ispLSI器件系列
ispLSI1000E系列
ispLSI2000E/2000VL/200VE系列
ispLSI5000V系列
ispLSI 8000/8000V系列
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
2,ispLSI器件的结构与特点采用 UltraMOS工艺系统可编程功能,所有的 ispLSI器件均支持 ISP功能边界扫描测试功能加密功能短路保护功能
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
3.6.2 Xilinx公司的 FPGA和 CPLD器件系列
1,Virtex-4系列 FPGA
面向逻辑密集的设计,Virtex-4 LX
面向高性能信号处理应用,Virtex-4 SX
面向高速串行连接和嵌入式处理应用,Virtex-4 FX
2,SpartanⅡ 器件系列
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
3.6.2 Xilinx公司的 FPGA和 CPLD器件系列
3,XC9500系列 CPLD
4,Xilinx FPGA配置器件 SPROM
5,Xilinx的 IP核逻辑核
(LogiCORE)
通用类接口类
Alliance

KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
3.6.3 Altera公司 FPGA和 CPLD器件系列
1,Stratix II 系列 FPGA
Stratix II提供了高速 I/O信号和接口,
专用串行 /解串( SERDES) 电路动态相位调整( DPA) 电路支持差分 I/O信号电平提供外部存储器接口
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
3.6.3 Altera公司 FPGA和 CPLD器件系列
2,Stratix系列 FPGA
3,ACEX系列 FPGA
4,FLEX系列 FPGA
5,MAX系列 CPLD
6,Cyclone系列 FPGA低成本 FPGA
7,Cyclone II系列 FPGA
8,Altera宏功能块及 IP核
KX
康芯科技
3.6.1 Lattice公司 CPLD器件系列
3.6 FPGA/CPLD产品概述
3.6.4 Actel公司的 FPGA器件系列
3.6.5 Altera公司的 FPGA配置方式与器件系列表 3-2 Altera FPGA常用配置器件器 件 功能描述 封装形式
EPC2 1695680× 1位,3.3/5V供电 20脚 PLCC,32 脚 TQFP
EPC1 1046496× 1位,3.3/5V供电 8脚 PDIP,20脚 PLCC
EPC1441 440 800× 1位,3.3/5V供电 8脚 PDIP,20脚 PLCC
EPC1213 212 942× 1位,5V供电 8脚 PDIP,20脚 PLCC,32脚 TQFP
EPC1064 65 536× 1位,5V供电 8脚 PDIP,20脚 PLCC,32脚 TQFP
EPC1064V 65 536× 1位,5V供电 8脚 PDIP,20脚 PLCC,32脚 TQFP
KX
康芯科技
3.7 CPLD和 FPGA的编程与配置表 3-3 图 3-46接口各引脚信号名称引脚 1 2 3 4 5 6 7 8 9 10
PS 模式 DCK G N D C O N F _D O N E V C C n C O N F I G - n S T A TU S - D A T A 0 G N D
JA TG 模式 TC K G N D TD O V C C TM S - - - TD I G N D
图 3-46 10芯下载口
KX
康芯科技
3.7.1 CPLD的 ISP方式编程
3.7 CPLD和 FPGA的编程与配置图 3-47 CPLD编程下载连接图
KX
康芯科技
3.7.1 CPLD的 ISP方式编程
3.7 CPLD和 FPGA的编程与配置图 3-48 多 CPLD芯片 ISP编程连接方式
KX
康芯科技
3.7.2 使用 PC并行口配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-49 PS模式,FLEX10K配置时序
KX
康芯科技3.7.2 使用 PC并行口配置 FPGA
图 3-50
多 FPGA
芯片配置电路
KX
康芯科技
3.7.2 使用 PC并行口配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-51 FPGA使用 EPC配置器件的配置时序
KX
康芯科技
3.7.2 使用 PC并行口配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-52 FPGA的配置电路原理图
(注,此图来自 Altera资料,中间一上拉线应串 1K电阻)
KX
康芯科技3.7.3 用专用配置器件配置 FPGA
图 3-53 EPC2
配置 FPGA的电路原理图
KX
康芯科技
3.7.4 使用单片机配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-54 MCU用 PPS模式配置 FPGA电路
KX
康芯科技
3.7.4 使用单片机配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-55 单片机使用 PPS模式配置时序
KX
康芯科技
3.7.4 使用单片机配置 FPGA
3.7 CPLD和 FPGA的编程与配置图 3-56 用 89C52进行配置
KX
康芯科技
3.7.5 使用 CPLD配置 FPGA
3.7 CPLD和 FPGA的编程与配置缺点
1、速度慢,不适用于大规模和高可靠的 FPGA配置;
2、容量小,单片机引脚少,不适合接大的 ROM以存储较大的配置文件;
3、体积大,成本和功耗都不利于相关的设计。
KX
康芯科技习 题习题 3-1 OLMC有何功能? 说明 GAL是怎样实现可编程组合电路与时序电路的 。
习题 3-2 什么是基于乘积项的可编程逻辑结构?
习题 3-3 什么是基于查找表的可编程逻辑结构?
习题 3-4 FLEX10K系列器件中的 EAB有何作用?
习题 3-5 与传统的测试技术相比,边界扫描技术有何优点?
习题 3-6 介绍编程与配置这两个概念 。
习题 3-7 请参阅相关资料,并回答问题:如本章给出的归类方式,将基于乘积项的可编程逻辑结构的 PLD器件归类为 CPLD; 将基于查找表的可编程逻辑结构的 PLD器件归类为 FPGA,那么,APEX系列属于什么类型 PLD
器件? MAX II系列又属于什么类型的 PLD器件?
KX
康芯科技实 验 与 设 计单片机或 CPLD及 EPROM配置 FPGA电路设计根据图 3-49和图 3-56设计一个可对 EPF10K20配置的电路,
其中的配置文件存储器可以用 EPROM(如 27C512)担任,配置控制器用 EPM7128S或 89C51来担任,要求 EPROM能放置 4个配置文件,由 CPLD或单片机通过控制 EPROM地址线的方式,根据接受命令的方式对 FPGA配置不同的配置文件 。
注:本实验可作为一个毕业设计项目 。