1、7.存储器、复杂可编程逻辑器存储器、复杂可编程逻辑器 和现场可编程门阵列和现场可编程门阵列7.1 只读存储器只读存储器7.2 随机存取存储器随机存取存储器7.3 复杂可编程逻辑器件复杂可编程逻辑器件*7.4 现场可编程门阵列现场可编程门阵列*7.5 用用EDA技术和可编程器件的设计例题技术和可编程器件的设计例题教学基本要求:教学基本要求: 掌握半导体存储器字、位、存储容量、地址等基掌握半导体存储器字、位、存储容量、地址等基本概念。本概念。 掌握掌握RAM、ROM的工作原理及典型应用。的工作原理及典型应用。 了解存储器的存储单元的组成及工作原理。了解存储器的存储单元的组成及工作原理。 了解了解C
2、PLD、FPGA的结构及实现逻辑功能的编程的结构及实现逻辑功能的编程原理。原理。概概 述述半导体存贮器半导体存贮器能存放大量二值信息的半导体器件。能存放大量二值信息的半导体器件。可编程逻辑器件是一种通用器件,其逻辑功能是由用户可编程逻辑器件是一种通用器件,其逻辑功能是由用户通过对器件的编程来设定的。它具有集成度高、结构灵通过对器件的编程来设定的。它具有集成度高、结构灵活、处理速度快、可靠性高等优点。活、处理速度快、可靠性高等优点。存储器的主要性能指标存储器的主要性能指标取快速度取快速度存储时间短存储时间短存储数据量大存储数据量大存储容量大存储容量大7.1 只读存储器只读存储器7.1 .1 RO
3、M的的 定义与基本结构定义与基本结构7.1.2 两维译码两维译码7.1.3 可编程可编程ROM7.1.4 集成电路集成电路ROM7.1.5 ROM的读操作与时序图的读操作与时序图7.1.6 ROM的应用举例的应用举例存储器存储器 RAM (Random-Access Memory) ROM(Read-Only Memory)RAM(随机存取存储器随机存取存储器): 在运行状态可以随时进行读或写操作。在运行状态可以随时进行读或写操作。 存储的数据必须有电源供应才能保存存储的数据必须有电源供应才能保存, 一旦掉电一旦掉电, 数据全部丢失。数据全部丢失。ROM(只读存储器只读存储器):在正常工作状态
4、只能读出信息。:在正常工作状态只能读出信息。 断电后信息不会丢失,常用于存放固定信息(如程序、常数等)。断电后信息不会丢失,常用于存放固定信息(如程序、常数等)。固定固定ROM可编程可编程ROMPROMEPROME2PROMSRAM(Static RAM):静态:静态RAMDRAM (Dynamic RAM):动态动态RAM7.1 只读存储器只读存储器几个基本概念:几个基本概念:存储容量(存储容量(M):存储二值信息的总量。:存储二值信息的总量。字数:字的总量。字数:字的总量。字长(位数):表示一个信息多位二进制码称为一个字,字长(位数):表示一个信息多位二进制码称为一个字, 字的位数称为字长
5、。字的位数称为字长。存储容量(存储容量(M)字数字数位数位数地址:每个字的编号。地址:每个字的编号。字数字数=2n (n为存储器外部地址线的线数)为存储器外部地址线的线数) Y0 Y1 Y7 A4 X1 X31 X0 列列 地地 址址 译译 码码 器器 行行 地地 址址 译译 码码 器器 A5 A3 A2 A1 A0 A6 A7 只读存储器,工作时内容只能读出,不能随时写入,所只读存储器,工作时内容只能读出,不能随时写入,所以称为只读存储器。以称为只读存储器。(Read-Only Memory)ROM的分类的分类按写入情况划分按写入情况划分 固定固定ROM可编程可编程ROMPROMEPROME
6、2PROM按存贮单元中按存贮单元中器件划分器件划分 二极管二极管ROM三极管三极管ROMMOS管管ROM7.1 .1 ROM的的 定义与基本结构定义与基本结构存储矩阵存储矩阵 地址译码地址译码器器地址输地址输入入7.1.1 ROM的定义与基本结构的定义与基本结构数据输出数据输出控制信号输控制信号输入入输出控制电路输出控制电路地址译码器地址译码器存储矩阵存储矩阵输出控制电路输出控制电路1)ROM(二极管(二极管PROM)结构示意图结构示意图 D3 D2 D1 D0 +5V R R R R OE A0 A1 A1 A0 Y0 Y1 Y2 Y3 2 线线- -4 线线 译译码码器器 存储存储矩阵矩阵
7、位线位线字线字线输出控制电路输出控制电路M=4 4地址译码器地址译码器 D3 D2 D1 D0 +5V R R R R OE A0 A1 A1 A0 Y0 Y1 Y2 Y3 2 线线- -4 线线 译码器译码器 字线与位线的交点都是一个字线与位线的交点都是一个存储单元。交点处有二极管存储单元。交点处有二极管相当存相当存1 1,无二极管相当存,无二极管相当存0 0当当OE=1时输出为高阻状态时输出为高阻状态000101111101111010001101地地 址址A1A0D3D2D1D0内内 容容当当OE=0时时 A6 A7 A4 A5 D0 +VDD R R R R Y0 Y1 Y14 Y15
8、 4线线 | 1 16 6线线 译译码码器器 1 16 6 线线-1线线数数据据选选择择器器 A2 A3 A0 A1 A2 A3 A0 A1 S2 S3 S0 S1 I0 I1 I14 I15 Y 字线字线存储存储矩阵矩阵位线位线字线与位线的字线与位线的交点都是一个交点都是一个存储单元。存储单元。交点处有交点处有MOS管相当存管相当存0,无,无MOS管管相当存相当存1。7.1.2 两维译码两维译码该存储器的容量该存储器的容量=?7.1.3 可编程可编程ROM(256X1位位EPROM)256个存储单元排成个存储单元排成16 16的矩阵的矩阵行译码器从行译码器从16行中选出要行中选出要读的一行读
9、的一行列译码器再从选中的一行存列译码器再从选中的一行存储单元中选出要读的一列的储单元中选出要读的一列的一个存储单元。一个存储单元。如选中的存储单元的如选中的存储单元的MOS管管的浮栅注入了电荷,该管截的浮栅注入了电荷,该管截止,读得止,读得1;相反读得;相反读得07.1.4 集成电路集成电路ROM D7 D0 PGM 输输出出缓缓冲冲器器 Y 选选通通 存存储储阵阵列列 CE OE 控控制制逻逻辑辑 Y 译译码码 X 译译码码 A16 A0 VPP GND VCC AT27C010, 128K 8位位ROM CEOEPGM工作模式工作模式A16 A0VPPD7 D0读读00XAiX数据输出数据
10、输出输出无效输出无效X1XXX高阻高阻等待等待1XXAiX高阻高阻快速编程快速编程010AiVPP数据输入数据输入编程校验编程校验001AiVPP数据输出数据输出7.1.5 ROM的读操作与时序图的读操作与时序图(2)加入有效的片选信号)加入有效的片选信号CEOE(3)使输出使能信号)使输出使能信号 有效,经过一定延时后,有效数有效,经过一定延时后,有效数据出现在数据线上;据出现在数据线上;CEOE(4)让片选信号)让片选信号 或输出使能信号或输出使能信号 无效,经过一定延无效,经过一定延时后数据线呈高阻态,本次读出结束。时后数据线呈高阻态,本次读出结束。(1)欲读取单元的地址加到存储器的地址
11、输入端;)欲读取单元的地址加到存储器的地址输入端; tCE tAA 读读出出单单元元的的地地址址有有效效 CE tOE OE D7 D0 数数据据输输出出有有效效 tOZ tOH A16 A0 (1) 用于存储固定的专用程序用于存储固定的专用程序(2) 利用利用ROM可实现查表或码制变换等功能可实现查表或码制变换等功能 查表功能查表功能 查某个角度的三角函数查某个角度的三角函数 把变量值(角度)作为地址码,其对应的函数值作把变量值(角度)作为地址码,其对应的函数值作为存放在该地址内的数据,这称为为存放在该地址内的数据,这称为 “造表造表”。使用时,。使用时,根据输入的地址根据输入的地址(角度角
12、度),就可在输出端得到所需的函数,就可在输出端得到所需的函数值,这就称为值,这就称为“查表查表”。 码制变换码制变换 把欲变换的编码作为地址,把最终的把欲变换的编码作为地址,把最终的目的编码作为相应存储单元中的内容即可。目的编码作为相应存储单元中的内容即可。7.1.6 ROM的应用举例的应用举例CI3 I2 I1 I0二进制码二进制码O3O2O1O0格雷码格雷码CI3 I2 I1 I0格雷码格雷码O3O2O1O0二进制码二进制码00 0 0 00 0 0 010 0 0 00 0 0 000 0 0 10 0 0 110 0 0 10 0 0 100 0 1 00 0 1 110 0 1 00
13、 0 1 100 0 1 10 0 1 010 0 1 10 0 1 000 1 0 00 1 1 010 1 0 00 1 1 100 1 0 10 1 1 110 1 0 10 1 1 000 1 1 00 1 0 110 1 1 00 1 0 000 1 1 10 1 0 010 1 1 10 1 0 101 0 0 01 1 0 011 0 0 01 1 1 101 0 0 11 1 0 111 0 0 11 1 1 001 0 1 01 1 1 111 0 1 01 1 0 001 0 1 11 1 1 011 0 1 11 1 0 101 1 0 01 0 1 011 1 0 01
14、 0 0 001 1 0 11 0 1 111 1 0 11 0 0 101 1 1 01 0 0 111 1 1 01 0 1 101 1 1 11 0 0 011 1 1 11 0 1 0用用ROM实现二进制码与格雷码相互转换的电路实现二进制码与格雷码相互转换的电路 C(A4)I3 I2 I1 I0(A3A2A1A0)二进制码二进制码O3O2O1O0(D3D2D1D0)格雷码格雷码C(A4)I3 I2 I1 I0(A3A2A1A0) 格雷码格雷码O3O2O1O0(D3D2D1D0)二进制码二进制码00 0 0 00 0 0 010 0 0 00 0 0 000 0 0 10 0 0 110
15、 0 0 10 0 0 100 0 1 00 0 1 110 0 1 00 0 1 100 0 1 10 0 1 010 0 1 10 0 1 000 1 0 00 1 1 010 1 0 00 1 1 100 1 0 10 1 1 110 1 0 10 1 1 000 1 1 00 1 0 110 1 1 00 1 0 000 1 1 10 1 0 010 1 1 10 1 0 101 0 0 01 1 0 011 0 0 01 1 1 101 0 0 11 1 0 111 0 0 11 1 1 001 0 1 01 1 1 111 0 1 01 1 0 001 0 1 11 1 1 011
16、 0 1 11 1 0 101 1 0 01 0 1 011 1 0 01 0 0 001 1 0 11 0 1 111 1 0 11 0 0 101 1 1 01 0 0 111 1 1 01 0 1 101 1 1 11 0 0 011 1 1 11 0 1 0C=A4I3 I2 I1 I0=A3A2A1A0O3O2O1O0=D3D2D1D0 A4 A3 A2 A1 C I3 I2 I1 ROM D1 D2 D3 D4 CE OE A0 I0 O3 O2 O1 O0 用用ROM实现二进制码与格雷码相互转换的电路实现二进制码与格雷码相互转换的电路 7.2 随机存取存储器(随机存取存储器(RA
17、M)7.2.1 静态随机存取存储器静态随机存取存储器(SRAM)7.2.2 同步静态随机存取存储器(同步静态随机存取存储器(SSRAM)7.2.4 存储器容量的扩展存储器容量的扩展7.2.3 动态随机存取存储器动态随机存取存储器7.2 随机存取存储器(随机存取存储器(RAM) I/O 电电路路 I /O0 OE An-1 WE I /Om-1 CE A0 Ai Ai+1 存存储储 阵阵 列列 行行译译码码 列列 译译 码码 7.2.1 静态随机存取存储器静态随机存取存储器(SRAM)1 SRAM 的本结构的本结构CE OE WE =100高阻高阻CE OE WE =00X输入输入CE OE W
18、E =010输出输出CE OE WE =011高阻高阻SRAM 的工作模式的工作模式 工作模式工作模式 CE WE OE I /O0 I /Om -1 保持保持 (微功耗微功耗) 1 X X 高阻高阻 读读 0 1 0 数据输出数据输出 写写 0 0 X 数据输入数据输入 输出无效输出无效 0 1 1 高阻高阻 T8 T7 VDD VGG T6 T1 T4 T2 T5 T3 Yj (列列选选择择线线) Xi (行行选选择择线线) 数数据据线线 数数据据线线 D D 位位线线 B 位位线线 B 存存储储单单元元 1. RAM存储单元存储单元 静态静态SRAM(Static RAM)双稳态存储单元
19、双稳态存储单元电路电路列存储单元公用的门列存储单元公用的门控制管,与读写控制电路相接控制管,与读写控制电路相接Yi 1时导通时导通本单元门控制管本单元门控制管:控控制触发器与位线的制触发器与位线的接通。接通。Xi =1时导通时导通来自列地址译码来自列地址译码器的输出器的输出来自列地址译码来自列地址译码器的输出器的输出 T8 T7 VDD VGG T6 T1 T4 T2 T5 T3 Yj (列列选选择择线线) Xi (行行选选择择线线) 数数据据线线 数数据据线线 D D 位位线线 B 位位线线 B 存存储储单单元元 1. RAM存储单元存储单元 静态静态SRAM(Static RAM)T5、T
20、6导通导通T7 、T8均导通均导通Xi =1Yj =1触发器的输出与数据触发器的输出与数据线接通,该单元通过线接通,该单元通过数据线读取数据。数据线读取数据。触发器与位线接通触发器与位线接通 tAA 读出单元的地址有效 tRC tOHA 地址 输出数据 上一个有效数据 数据输出有效 tLZOE CE OE 数据输出 数据输出有效 tHZCE tHZOE tDOE tLZCE tACE tRC 高阻 (a)(b) 3.SRAM的读写操作及时序图的读写操作及时序图读操作时序图读操作时序图3.SRAM的写操作及时序图的写操作及时序图写操作时序图写操作时序图 tHD tSD 地址有效 tWC 地址 C
21、E 数据 输入数据有效 tAW tSA tSCE tHA WE tSA tHD tSD 地址有效 tWC 地址 CE 数据 输入数据有效 tAW tHA WE A1 A0 输输入入 寄寄存存器器 I /O OE WE CE 地地址址 寄寄存存器器 丛丛发发控控制制逻逻辑辑 D1 D0 Q1 Q0 读读写写控控制制逻逻辑辑 A CP ADV 存存储储阵阵列列 地地址址译译码码 输输入入驱驱动动 输输 出出 放放 大大 A1 A0 写写地地 址址寄寄 存存器器 数数据据选选择择器器 7.2.2 同步静态随机存取存储器同步静态随机存取存储器(SSRAM)SSRAM是一种高速是一种高速RAM。与。与S
22、RAM不同不同, SSRAM的读写的读写操作是在时钟脉冲节拍控制下完成的。操作是在时钟脉冲节拍控制下完成的。 A1 A0 输输入入 寄寄存存器器 I /O OE WE CE 地地址址 寄寄存存器器 丛丛发发控控制制逻逻辑辑 D1 D0 Q1 Q0 读读写写控控制制逻逻辑辑 A CP ADV 存存储储阵阵列列 地地址址译译码码 输输入入驱驱动动 输输 出出 放放 大大 A1 A0 写写地地 址址寄寄 存存器器 数数据据选选择择器器 寄存地址线上的地址寄存地址线上的地址寄存要写入的寄存要写入的数据数据ADV=0:普通模式读写普通模式读写ADV=1:丛发模式读写丛发模式读写WE =0:写操作写操作
23、=1:读操作读操作 WE寄存各种使能控制信号,生成最终的寄存各种使能控制信号,生成最终的内部读写控制信号;内部读写控制信号;2 2位二进制计数器位二进制计数器, , 处理处理A1A0ADV=0:普通模式读写普通模式读写 C P A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 W E A D V C E A 1 2 3 4 5 6 7 8 9 10 11 O (A 1) O (A 4) O (A 7) I (A 8) O (A 2) O (A 3) I (A 5) I (A 6) I/O 片片选选无无效效=0:写操作写操作WE=1:读操作读操作WE普通模式读写模式普通模式
24、读写模式:在每个时钟有效沿锁存输入信号在每个时钟有效沿锁存输入信号,在一在一个时钟周期内个时钟周期内,由内部电路完成数据的读由内部电路完成数据的读(写写)操作。操作。读读A1地址地址单元单元数据数据I/O输输出出A1数据数据;开始开始读读A2数据数据I/O输输出出A2数据数据;开始开始读读A3 数据数据I/O输输出出A6数据数据;开始开始读读A7数据数据开始开始读读A4地址地址单元单元数据数据I/O输输入入A5数据数据;开始开始写写A6数据数据I/O输输出出A4数据数据;开始开始写写A5数据数据, CP A1 A2 A3 WE ADV CE A 1 2 3 4 5 6 7 8 9 10 11
25、O(A1) O(A2+1O(A2) I (A3) O(A1+1) O(A1+2O(A2+2) O(A2+3) O(A2) I (A3+1) I/O 读读A2地址地址单元单元数据数据丛发丛发模式模式读读A2+1中的中的数据数据丛发丛发模式模式读读A2+2中的中的数据数据丛发丛发模式模式读读A2+3中的中的数据数据丛发丛发模式模式重新重新读读A2中的中的数据数据 ADV=1:丛发模式读写丛发模式读写丛发模式读写模式:在有新地址输入后丛发模式读写模式:在有新地址输入后,自动产生后续地址自动产生后续地址进行读写操作进行读写操作,地址总线让出地址总线让出读读A1地址地址单元单元数据数据丛发丛发模式模式读
26、读A1+1中的中的数据数据丛发丛发模式模式读读A1+2中的中的数据数据在由在由SSRAM构成的计算机系统中,由于在时钟构成的计算机系统中,由于在时钟有效沿到来时,地址、数据、控制等信号被锁有效沿到来时,地址、数据、控制等信号被锁存到存到SSRAM内部的寄存器中,因此读写过程的内部的寄存器中,因此读写过程的延时等待均在时钟作用下,由延时等待均在时钟作用下,由SSRAM内部控制内部控制完成。此时,系统中的微处理器在读写完成。此时,系统中的微处理器在读写SSRAM的同时,可以处理其他任务,从而提高了整个的同时,可以处理其他任务,从而提高了整个系统的工作速度。系统的工作速度。 SSRAM的使用特点:的
27、使用特点: 1、动态存储单元及基本操作原理、动态存储单元及基本操作原理 T 存储单元存储单元写操作写操作:X=1 =0WET导通,电容器导通,电容器C与位线与位线B连通连通 输入缓冲器被选输入缓冲器被选通,数据通,数据DI经缓冲经缓冲器和位线写入存器和位线写入存储单元储单元 如果如果DI为为1,则向,则向电容器充电,电容器充电,C存存1;反之电容器放反之电容器放电电,C存存0 。 - 刷新刷新R行选线行选线XOD读读/写写WEID输出缓冲器输出缓冲器/灵敏放大器灵敏放大器刷新缓冲器刷新缓冲器输入缓冲器输入缓冲器位位线线B7.2.3 动态随机存取存储器动态随机存取存储器读操作读操作:X=1 =1
28、WET导通,电容器导通,电容器C与位线与位线B连通连通 输出缓冲器输出缓冲器/灵敏放大器灵敏放大器被选通,被选通,C中存储的数据中存储的数据通过位线和缓冲器输出通过位线和缓冲器输出 T / 刷新刷新R行选线行选线XODWEID输出缓冲器输出缓冲器/灵敏放大器灵敏放大器刷新缓冲器刷新缓冲器输入缓冲器输入缓冲器位位线线B每次读出后,必须及时每次读出后,必须及时对读出单元刷新,即此对读出单元刷新,即此时刷新控制时刷新控制R也为高电平,也为高电平,则读出的数据又经刷新则读出的数据又经刷新缓冲器和位线对电容器缓冲器和位线对电容器C进行刷新。进行刷新。7.2.4 存储器容量的扩展存储器容量的扩展 位扩展可
29、以利用芯片的并联方式实现。位扩展可以利用芯片的并联方式实现。CEA11A0WED0 D1 D2 D3WECEA0A114K4位位I/O0 I/O1 I/O2 I/O3D12 D13 D14 D15CEA0A114K4位位I/O0 I/O1 I/O2 I/O3WE1. 字长(位数)的扩展字长(位数)的扩展-用用4KX4位的芯片组成位的芯片组成4KX16位位的存储系统。的存储系统。7.2.4 RAM存储容量的扩展存储容量的扩展2. 2. 字数的扩展字数的扩展用用用用8KX8位的芯片组成位的芯片组成32KX8位的存储系统。位的存储系统。RAM1D D0 0D D7 7A A0 0A A1212CE1
30、芯片数芯片数=4=4RAM1D D0 0D D7 7A A0 0A A1212CE1RAM1D D0 0D D7 7A A0 0A A1212CE1RAM1D D0 0D D7 7A A0 0A A1212CE1系统地址线数系统地址线数=15=15系统系统:A0 A14 A13 A14?2000H2001H2002H3FFFH 4000H400H4002H5FFFH 6000H6001H6002H7FFFH 0000H0001H0002H1FFFH芯片芯片:A0 A12 32K8位存储器系统的地址分配表位存储器系统的地址分配表各各RAM芯片芯片译码器译码器有效输有效输出端出端扩展的地扩展的地址
31、输入端址输入端A14 A138K8位位RAM芯片地址输入端芯片地址输入端 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0对应的十对应的十六进制地六进制地址码址码 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 01 1 1 1 1 1 1 1 1 1 1 1 10000H0001H0002H1FFFH 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0
32、0 1 01 1 1 1 1 1 1 1 1 1 1 1 12000H2001H2002H3FFFH 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 01 1 1 1 1 1 1 1 1 1 1 1 14000H400H4002H5FFFH Y0 Y1 Y2 Y3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 01 1 1 1 1 1 1 1 1 1 1 1 16000H60
33、01H6002H7FFFH A12 A0 C E W E D7 D0 8K 8 位位 ( ) 8K 8 位位 ( ) 8K 8 位位 ( ) 8K 8 位位 ( ) D7 D0 A12 A0 W E A1 A0 A14 A13 EN Y0 Y1 Y2 Y3 13 13 13 13 13 8 8 8 8 8 74139 A12 A0 C E W E D7 D0 A12 A0 C E W E D7 D0 A12 A0 C E W E D7 D0 字数的扩展可以利用外加译码器控制存储器芯片的片选输入字数的扩展可以利用外加译码器控制存储器芯片的片选输入端来实现。端来实现。 7.3 复杂可编程逻辑器件复
34、杂可编程逻辑器件(CPLD)7.3.1 CPLD的结构的结构7.3.2 CPLD编程简介编程简介7.3 复杂可编程逻辑器件复杂可编程逻辑器件(CPLD) 与与PAL、GAL相比,相比,CPLD的集成度更高,有更多的的集成度更高,有更多的输入端、乘积项和更多的宏单元;输入端、乘积项和更多的宏单元;每个块之间可以使用可编程内部连线每个块之间可以使用可编程内部连线(或者称为可编程或者称为可编程的开关矩阵的开关矩阵)实现相互连接。实现相互连接。CPLD器件内部含有多个逻辑块,每个逻辑块都相当于器件内部含有多个逻辑块,每个逻辑块都相当于一个一个GAL器件器件; 逻辑块 逻辑块 逻辑块 逻辑块 逻辑块 逻
35、辑块 逻辑块 逻辑块 7.3.1 CPLD的结构的结构 可 编 程 内 部 连 线 矩 阵 I/O I/O 更多成积项、更多宏单元、更多的输入信号。更多成积项、更多宏单元、更多的输入信号。通用的通用的CPLD器件逻辑块的结构器件逻辑块的结构 内部可编程连线区 n 宏单元 1 宏单元 2 宏单元 3 可编程乘积项阵列 乘积项分配 宏单元 m 内部可编程连线区 m m I/O 块 Xilinx XG500: 90个个36变量的乘积项变量的乘积项,宏单元宏单元36个个Altera MAX7000:80个个36变量的乘积项变量的乘积项,宏单元宏单元16个个 到上一个宏单元到上一个宏单元 来自上一个宏单
36、元来自上一个宏单元 乘积项分配电路乘积项分配电路 G G3 3 S S8 8 G G2 2 G G1 1 S S6 6 S S7 7 乘积乘积项置项置位位 全局复位全局复位 M M2 2 S S1 1 S S2 2 S S3 3 S S4 4 S S5 5 1 1 0 0 M M1 1 M M4 4 G G5 5 G G4 4 全局时钟全局时钟 3 3 S S R R D/TD/T C CLKLK FFFF M M5 5 全局置位全局置位 乘积项乘积项复位复位 乘积项输出使能乘积项输出使能 OEOE M M3 3 到内部可编到内部可编程连线区程连线区 PTOE PTOE 到下一个宏单元到下一个
37、宏单元 来自下一个宏单元来自下一个宏单元 到到 I/OI/O 单元单元 OUTOUT 到到 I/OI/O 单元单元 3 3 XG500系列乘积项分配和宏单元系列乘积项分配和宏单元可编程可编程数据分配数据分配器器可编程数据可编程数据选择器选择器宏输出宏输出可编程内部连线可编程内部连线可编程内部连线的作用是实现逻辑块与逻辑块之间、逻辑块与可编程内部连线的作用是实现逻辑块与逻辑块之间、逻辑块与I/O块之间以及全局信号到逻辑块和块之间以及全局信号到逻辑块和I/O块之间的连接。块之间的连接。 连线区的可编程连接一般由连线区的可编程连接一般由E2CMOS管实现。管实现。可编程连接原理图可编程连接原理图 内
38、部连线内部连线 宏单元或宏单元或I/O 连线连线 E2CMOS 管管 T 当当E2CMOS管被编程为导通时,管被编程为导通时,纵线和横线连通;未被编程为截纵线和横线连通;未被编程为截止时,两线则不通止时,两线则不通。I/O单元是单元是CPLD外部封装引脚和内部逻辑间的接口。每个外部封装引脚和内部逻辑间的接口。每个I/O单元对应一个封装引脚,对单元对应一个封装引脚,对I/O单元编程,可将引脚定单元编程,可将引脚定义为输入、输出和双向功能。义为输入、输出和双向功能。 I/O单元单元 到其他到其他 I/O 单单元元 输入缓冲输入缓冲 输出缓冲驱输出缓冲驱动动 VCCINT D1 D2 VCCIO I
39、/O 1 0 M 到到内内部部可可编编程程连连线线区区 OUT PTOE 来来自自宏宏单单元元 全全局局输输出出使使能能 可编程可编程接地接地 可编程可编程 上拉上拉 摆率摆率控制控制 到其他到其他 I/O 单元单元 r r r OE 数据选择器数据选择器提供提供OE号。号。OE=1, I/O引引脚为输出脚为输出7.3.2 CPLD编程简介编程简介编程过程(编程过程(Download或或Configure):将编程数据写入这些):将编程数据写入这些单元的过程。单元的过程。用户在开用户在开发软件中发软件中输入设计输入设计及要求。及要求。检查、分析检查、分析和优化。完和优化。完成对电路的成对电路的
40、划分、布局划分、布局和布线和布线编程的实现:由可编程器件的开发软件自动生成的。编程的实现:由可编程器件的开发软件自动生成的。生成生成编程编程数据数据文件文件写入写入CPLD计算机根据用户编写的源程序运行开发系统软件,产生相应的计算机根据用户编写的源程序运行开发系统软件,产生相应的编程数据和编程命令,通过五线编程电缆接口与编程数据和编程命令,通过五线编程电缆接口与CPLD连接连接。 将电缆接到计算机的并行口,通将电缆接到计算机的并行口,通过编程软件发出编程命令,将编程过编程软件发出编程命令,将编程数据文件(数据文件(* *JEDJED)中的数据转换成)中的数据转换成串行数据送入芯片。串行数据送入
41、芯片。编程条件编程条件(1)专用编程电缆;()专用编程电缆;(2)微机;()微机;(2)CPLD编程软件。编程软件。 将多个将多个CPLD器件以串行的方式连接起来,一次完成多个器件器件以串行的方式连接起来,一次完成多个器件的编程。这种连接方式称为菊花链连接。的编程。这种连接方式称为菊花链连接。 TDO TDI TMS TCK EPM7032S SDI1 SDI2 SDI3 SDOSDOSDOU1 U2 U3 EPM7032S EPM7032S 多个多个CPLD器件串行编程器件串行编程 FPGA和和CPLD的内部结构稍有不同。通常,的内部结构稍有不同。通常,FPGA中的中的寄存器资源比较丰富,适
42、合同步时序电路较多的数字系统;寄存器资源比较丰富,适合同步时序电路较多的数字系统;CPLD中组合逻辑资源比较丰富,适合组合电路较多的控制中组合逻辑资源比较丰富,适合组合电路较多的控制应用。在这两类可编程逻辑器件中,应用。在这两类可编程逻辑器件中,CPLD提供的逻辑资源提供的逻辑资源较少,而较少,而FPGA提供了最高的逻辑密度、最丰富的特性和极提供了最高的逻辑密度、最丰富的特性和极高的性能,已经在通信、消费电子、医疗、工业和军事等高的性能,已经在通信、消费电子、医疗、工业和军事等各应用领域当中占据重要地位。各应用领域当中占据重要地位。 目前生产目前生产FPGA的公司主要有的公司主要有Xilinx
43、、Altera、Actel、Lattice、QuickLogic等,等,生产的生产的FPGA品种和型号繁多。尽管这些品种和型号繁多。尽管这些FPGA的具体结构和性能指标各有特色,的具体结构和性能指标各有特色,但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块,从而实现不同的设计。源连接这些逻辑功能块,从而实现不同的设计。 7.4 现场可编程门阵列现场可编程门阵列7.4.1 FPGA中编程实现逻辑功能的基本原理中编程实现逻辑功能的基本原理 目前绝大部分目前绝大部分FPGA都采用查找表(都采用查找
44、表(Look Up Table,LUT)技术,如)技术,如Altera的的ACEX、APEX、Cyclone、Stratix系列,系列,Xilinx的的Spartan、Virtex系列系列等。这些等。这些FPGA中的最基本逻辑单元都是由中的最基本逻辑单元都是由LUT和触发器组成的。和触发器组成的。 查找表简称为查找表简称为LUT(Look-Up Table),本质上就是一个,本质上就是一个RAM。目前。目前FPGA中多使用中多使用4输入的输入的LUT,所以每一个,所以每一个LUT可以看成一个有可以看成一个有4位地址线位地址线的的16x1的的RAM。当用户通过原理图或。当用户通过原理图或HDL语
45、言描述了一个逻辑电路以后,语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出该地址对应的内容,然后输出即可。行查表,找出该地址对应的内容,然后输出即可。由于由于LUT主要适合主要适合SRAM工艺生产,所以目前大部分工艺生产,所以目前大部分FPGA都是基于都是基于SRAM工艺的。而工艺的。而SRAM工艺的芯片在掉电后信息就会丢失,因此需要外加一片专用的配置芯片。在上工
46、艺的芯片在掉电后信息就会丢失,因此需要外加一片专用的配置芯片。在上电的时候,由这个专用配置芯片把数据加载到电的时候,由这个专用配置芯片把数据加载到FPGA中,中,FPGA就可以正常工作。就可以正常工作。 典型的典型的FPGA通常包含通常包含三类基本资源三类基本资源:可编程逻辑功能块、可编程逻辑功能块、可编程输入可编程输入/输出块和可编程互连资源输出块和可编程互连资源,基本结构如图所示。,基本结构如图所示。可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;可编能块通常规则地排成一个阵列结构,分布
47、于整个芯片;可编程输入程输入/输出块完成芯片内部逻辑与外部管脚之间的接口,输出块完成芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;可编程内部互连资源包括各种长围绕在逻辑单元阵列四周;可编程内部互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入辑块或输入/输出块连接起来,构成特定功能的电路。用户输出块连接起来,构成特定功能的电路。用户可以通过编程决定每个单元的功能以及它们的互连关系,从可以通过编程决定每个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。不同厂家或不同型号的而实现所需的逻辑功能。不同
48、厂家或不同型号的FPGA,在,在可编程逻辑块的内部结构、规模、内部互连的结构等方面经可编程逻辑块的内部结构、规模、内部互连的结构等方面经常存在较大的差异。常存在较大的差异。7.4.2 FPGA的结构的结构XC4000系列系列FPGA基本结构基本结构1. 可编程逻辑模块可编程逻辑模块CLBFPGA器件器件XC4000系列的系列的CLB结构结构CLB与互连资源的互连关系与互连资源的互连关系XC4000的的IOB结构结构 2. 输入输出模块输入输出模块IOB3. 可编程布线资源可编程布线资源FPGA中有多种布线资源,包括局部布线资源、通用布线资源、中有多种布线资源,包括局部布线资源、通用布线资源、I
49、/O布线资源、专用布线资源和全局布线资源,它们分别承担布线资源、专用布线资源和全局布线资源,它们分别承担了不同的连线任务。了不同的连线任务。7.4.3 FPGA编程简介编程简介1. 配置(编程)数据配置(编程)数据2. 配置数据的装入配置数据的装入随着微电子技术、随着微电子技术、EDA技术、以及应用系统需求的发展,技术、以及应用系统需求的发展,FPGA正在逐渐成为数字系统开发的平台,并将在以下方面继续完善正在逐渐成为数字系统开发的平台,并将在以下方面继续完善和提高:和提高:(1) 高集成度、大容量、低成本、低电压、低功耗;高集成度、大容量、低成本、低电压、低功耗;(2) 资源多样化;资源多样化;(3) 适用于片上系统:处理器、高速串行适用于片上系统:处理器、高速串行I/O、DSP等等;等等;(4) 深亚微米工艺的使用。目前基于深亚微米工艺的使用。目前基于90nm工艺的工艺的FPGA已经商已经商用,正在向用,正在向65nm挺进;挺进;(5) 各种软硬各种软硬IP库的发展和完善;库的发展和完善;(6) 动态可重构技术实用化。动态可重构技术实用化。FPGA技术的发展趋势技术的发展趋势7.5 用用EDA技术和可编程器件的设计例题技术和可编程器件的设计例题例例7.5.1 设计一个定时器设计一个定时器例例7.5.2 设计一个具有时、分、秒计时的电子钟电路设计一个具有时、分、秒计时的电子钟电路