CPLD与FPGA工作原理简介
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)、查找表LUT原理 Look Up Table,是FPGA的最小逻辑构成单元. 大部分FPGA采用基于SRAM的查找表构造逻辑函 数。 一个N输入LUT可实现N输入变量的任何逻辑功能, 如 “与”、 “异或”等。
例2-4
S=A+BC D C B A S 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
优点: 设计极为灵活。 具有结构重构和输出端的任何功能均 可移到另一输出引脚上的功能,可简 化电路板的布局布线,使系统的可靠 性进一步地提高。
3)寄存器模式:有寄存器,三态门 A、寄存器输出结构:
B、寄存器模式组合输出双向口结构
4)复合模式:无寄存器,三态门可用 A、复合组合输出结构
B、组合输出双向口结构
二、宏单元: 1、可编程的“与”阵列 PIA:可编程连线阵
programmable Interconnect Array
共享扩展乘积项:增加输入数, 用于复杂电路设计。 每个宏单元提供一个单独的乘积项,通过一个非门 取反后反馈到逻辑阵列中,可被LAB内任何一个或 全部宏单元使用和共享。采用共享扩展项后要增加 一个短的延时.
三、逻辑阵列块[LAB] 16个宏单元的阵列组成一个LAB 四、芯片 LAB PIA(Programmable Interconnect Array) 可编程连线阵:LAB与 全局总线连接 I/O控制块:控制I/O引 脚,有输入、输出和双向 方式.
2.7 FPGA结构与工作原理
FPGA即现场可编程门阵列(Field Programmable Gate Array) 一、FPGA结构框图: FLEX10K 由嵌入式阵列块EAB、逻辑阵列块LAB、Fast Track和I/O控制单元IOC四部分组成
3、PROM的PLD框图
4、 PROM的阵列图
早期有人用ROM做数字电路。以4x2PROM为例, 说明可将PROM当PLD使用。 例2-1:构造半加器: 0+0=0 0+1=1 1+0=1 1+1=10 S=Ao⊕Al =AoAl+AoA1 C=Ao· A1
阵列点文件
对PLD器件称为熔丝图文件(Fuse Map). 对于PROM,则为存储单元的编程 数据文件
每个可编程寄存器可以按三种时钟输入模式工作:
● 全局时钟信号:该模 式能实现最快的时钟到输 出(clock to Output)性能, 这时全局时钟输入直接连 向每一个寄存器的CLK端。
● 全局时钟信号带时钟 信号使能。由于仍使用 全局时钟,输出较快. ● 用乘积项实现一个阵列时钟:宏单元或I/O 信号进行钟控,速度稍慢。
CP2 CPLD与FPGA 工作原理简介
PLD: Programmable Logic Device
可编程逻辑器件 是一种数字集成电路的半成品,在其芯片上 按一定排列方式集成了大量的门和触发器等 基本逻辑元件,使用者可利用某种开发工具 对其进行加工,即按设计要求将片内元件连 接起来(编程)
引论
PLD的思想来自PROM 首先我们对数字电路进行剖析 1、数字电路分类 组合电路: 与时间无关,输出是输入的函数 时序电路: 与时间有关,输出与输入、输出的 前一状态有关。
三、快速通道(Fast Track): 在FLEX10K结构中,Fast Track遍布于整个器件, 可预测其延时性能。有些 FPGA 采用分段式连线 结构,会使延时难以预测,从而降低了设计性能。 Fast Track连接是由遍布整个器件的“行互连”和 “列互线”组成的。每行的 LAB 有一个专用的 “行互连”,“行互连”可以驱动IO引脚或馈送 到器件中的其他LAB。“列互线”连接各行。也 能驱动I/O引脚。
2.6 CPLD结构与工作原理
CPLD即Complex Programmable Logic Device复杂可 编程逻辑器件。 典型产品Altera的MAX7000S。结构和工作原理 一、结构:
可编程与阵列 乘积项选择矩阵 16个 2/16个 固定或阵列 芯片 LAB 宏单元 扩展乘积项 可编程寄存器
连续布线 ( Altera 基于查找表(LUT)的 FPGA )
LAB
LE
连续布线 = 每次设计重复的可预测性和高性能
四、I/O单元与专用输入端口IOC: FLEX10K 的引脚由 IOE驱动。IOE位于快速通道的 行和列的末端,包含一个双向IO缓冲器和一个寄 存器,这个寄存器可以用作需要快速建立时间的 外部数据的输入寄存器,也可以作为要求快速 “时钟到输出”性能的数据输出寄存器。IOE可 以配置成输入、输出或双向口。
2、乘积项选择矩阵
输出: 固定或阵列:组合电路 寄存器:输入 清0、置1、CLK CLK-EN
3、并行扩展乘积项
并联扩展项是宏单元中一些 没有被使用的乘积项,可分 配到邻近的宏单元去实现快 速、复杂的逻辑函数。
当需要并联扩展时,“或” 逻辑的输出通过一个选择分 配器,送往下一个宏单元的 并联扩展“或”逻辑输入端。
0
0 0 0 0 1 1 1 1 1 1
0
1 1 1 1 0 0 0 0 1 1
1 1
0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0
1
1
1
1
1 0
1 1
N不可能很大,否则LUT的利用率很低,输入多于 N个的逻辑函数、必须用几个查找表分开实现。
2)可编程触发器: 可设置成D、T、JK或SR触发器。该寄存器的时钟、 清零和置位信号可由全局信号通用I/O引脚或任 何内部逻辑驱动。对于组合逻辑的实现,可将该 触发器旁路。 3)进位链(Carry-In) 用来支持高速计数器和加法器,提供LE之间快速的 向前进位功能。来自低位的进位信号经进位链向 前送到高位,同时馈入LUT和进位链的下一 段.这一特点使得FLEXIOK结构能够实现高速计 数器、加法器和宽位的比较器。
允许最多20个乘积项直接送到宏单元的“或”逻辑, 其中5个乘积项是由宏单元本身提供的,15个并联 扩展项是从同一个LAB中邻近宏单元借用的。
4、可配置寄存器:可单独编程为带有可编程时钟 控制的D、T、JK或SR触发器,也可将寄存器旁 路,实现组合逻辑方式。 每个寄存器支持异步清零和异步置位功能.乘 积项选择矩阵分配乘积项来控制这些操作。此外, 每一个寄存器的复位端可以由低电平有效的全局复 位专用引脚GCLRn信号来驱动。
2.4
与阵列可编程、或阵列固定
PAL
对于多个乘积项,PAL通过输出反馈和互连的方式解决, 即允许输出端的信号再馈入下一个与阵列。
时序电路的实现: 时序电路由组合电路及存储单元构成(锁存 器、触发器、RAM),组合电路部分的可编 程问题已解决,只要加上锁存器、触发器 即可。
例2-3:PALl6V8的部分结构图:输出反 馈、D触发器
LEn
5)输出驱动: LE有两个输出驱动内部互连,一个驱动局部互 连.另一个驱动行或列的快速通道Fast Track的 互连输出,这两个输出可以单独控制.可以实现 在一个LE中,LUT驱动一个输出,而寄存器驱动 另一个输出.因而在—个LUT中的触发器和LUT 能够用来完成不相关的功能.能够提高LE的资 源利用率。
2、OLMC单元的组态:
1)OLMC的结构:
OLMC中有4个多路选择器,通过不同的 选择方式可以产生多种输出结构。
这些输出结构分别属于三种模式,一旦确 定了某种模式,所有的OLMC都将工作在同 一种模式下。 2)组态简介 可配置成 组合输出 组合输出双向口 寄存器输出 寄存器输出双向口 专用输入等。
3)简单模式:特点:三态门固定 A、反馈输入结构:
“与一或”阵列没输出功能,但可作为相邻单元信 号反馈输入,该单元反馈输入端信号来自另一个相 邻单元。
B、输出反馈结构
C、简单模式输出结构
编辑ABEL文本文件*.ABL,生成JED网表文件
简单PLD早期器件,规模小,只能实现通用数字逻 辑电路(如74系列)的一些功能,由 “与一或”门阵 列和输入输出单元组成。
2、组合电路剖析: 由基本门构成: 与、或、非、异或门等 可由单一基本门构成 可化为“与-或”表达式 3、时序电路剖析 由组合电路和触发器构成 =>可编程电路结构
2.1 电路符号与简化符号
一、电路符号 :原理图输入用常用符号描述
二、结构介绍用的简化符号
2.2 PROM工作原理
Programmable ROM 可编程只读存储器
两种不同的级联方式
“与”级联链
2.4 ns
“或”级联链
LE 1
0.6 ns
LE1 IN [3..0] LUT
IN [3..0]
LUT
LE2 IN [4..7] LUT IN [4..7] LUT
LE2
16位地址译码速度可达 2.4 + 0.6x3=4.2 ns
LEn IN [(4n-1)..4(n-1)] LUT IN [(4n-1)..4(n-1)] LUT
缺点: 1、为适应不同应用需要,PAL的输出I/O 结构很多,应用设计者在设计不同功能的 电路时,要采用不同输出I/O结构的PAL 器件。带来使用、生产的不便。 2、PAL一般采用熔丝工艺生产.一次可编 程,修改不方便。
被GAL取代
2.5 GAL
1985年,Lattice 1、特点: 1)采用EEPROM工艺,具有电可擦除重 复编程的特点。 2)在“与-或”阵列结构上沿用了PAL 的与阵列可编程、或阵列固定的结构。 3)输出结构较大改进,增加了输出逻辑 宏单元OLMC(Output Logic Macro Cell)。
FLEX 10K系列FPGA结构图
IOC IOC IOC IOC IOC IOC IOC IOC
. . .
. . .
. . .
. . .
嵌入式 阵列块
IOC
IOC
. . .
. . .
IOC
IOC
EAB
IOC
. . .
IOC
. . .
IOC
IOC
EAB
IOC
IOC
IOC
IOC
IOC
IOC
IOC
IOC
进位链连通LAB中的所有LE
可实现快速加法器, 比较器和计数器
进位输入 (来自上一个逻辑单元)
A1 B1
查找表 LUT 进位链
DFF
S1
LE1
A2 B2
查找表 LUT
DFF
பைடு நூலகம்
S2
进位链
LE2 进位输出 (到 LAB中的下一个逻辑单元)
4)级联链 (Cascade-In): 可实现多输入(Wide-Input)逻辑函数。 相邻的LUT用来并行地完成部分逻辑功能,级联链 把中间结果串接起来。级联链可以使用逻辑“与” 或 者 逻 辑 “ 或 ” 来 连 接 相 邻 LE 的 输 出 ( 图 337).每个附加的LE提供有效输入4个,其延迟会 增加少许。
PROM只能用于组合电路,输入变量的增加会引起 存储容量的增加,且按2的幂次方增加。原因:全 译码
2.3
PLA
与阵列和或阵列都可编程。 例2-2:6x3PLA与8x3PROM的比较
两者在大部分实际应用中,可实现相同的逻辑功能。
优点:乘积项数量减少,门利用率高
缺点:算法复杂、器件的运行速度下降 。 与阵列不采用全译码的方式,标准的与或表 达式已不适用,需要把逻辑函数化成最简的 与或表达式,然后用可编程的与阵列构成与 项,用可编程的或阵列构成与项的或运算。 在有多个输出时,要尽量利用公共的与项, 以提高阵列的利用率。 应用:全定制ASIC设计 ,手工化简
1、地址译码器: 完成PROM存储阵列的行的选择,由与门组成。 其字线的逻辑函数是: Wo=An-1...Ai Ao W1=An-1...Ai Ao
……
Wn=An-1...Ai Ao
2、存储矩阵 逻辑函数表示: Fo=Mp-1,oWp-1+…+Ml,oW1+MooWo F1=Mp-1,1Wp-1+…+M1,1W1+Mo,1Wo …… Fm-1=Mp-1,m-1Wp-1+…+M1,m-1W1+Mo,m-1Wo 其中: P=2n Mp-1,m-1是存储单元阵列第m-1列p-1行单元 的值。 对熔丝工艺,熔丝断相当于Mp-1,m-1=0;熔丝通 相当于Mp-1,m-1=1 是一个可编程或阵列
. . .
. . .
. . .
. . .
二、逻辑阵列块LAB(Logic Array Block) 每个LAB包含八个逻辑单元LE、相联的进位 链和级联链,LAB控制信号与LAB局部互连。
1、逻辑单元LE Logic Element或LC:Logic Cell 是FLEX10K结构中的最小单元,实现逻辑功能。 每个LE包含一个4输入的LUT、一个带有同步使 能的可编程触发器,一个进位链和一个级联链。 每个LE有两个输出可以分别驱动局部互连和快 速通道Fast Track互连,