第6章 半导体存储器和可编程逻辑器件 6.1 概述 6.2 ROM(只读存储器) 6.3 RAM (随机存取存储器) 6.1 概述 6.2 ROM(只读存储器) 6.3 RAM (随机存取存储器) 6.4 SAM (顺序存取存储器) 6.5 PLD可编程组合逻辑器件 6.6 FPGA(现场可编程门阵列) 本章小结
6.1 概述 6.1.1 半导体存储器的分类 1. 按制造工艺分类(如表6.1所示): 对速度要求较高的场合,用作高速缓冲存储器 表6.1 半导体存储器按制造工艺分类表 对速度要求较高的场合,用作高速缓冲存储器 工作速度快、功耗高、价格较高 双极型 对容量要求较高的场合,用作主存储器 集成度高、功耗小、价格低、工艺简单 MOS型 半导体存储器 使 用 场 合 特 点 类 型 名 称
2. 按功能分类(如表6.2所示) 半导体存储器 名 功能 称 特 点 类型 按部件分类 只能从其中读出数据,不 表6.2 半导体存储器按功能分类表 名 称 功能 类型 特 点 半导体存储器 ROM(只 读存储 器) 1.NMOS、CMOS(掩膜存储器) 2.PROM(可编程存储器) 3.EPROM(可擦除改写存储器) 4.E2PROM(电改写PROM) 5.FLASH(闪速存储器) 只能从其中读出数据,不 能写入数据。数据可长期 保留,断电也不消失,具 有非易失性,适用于长期 存放的数据 按部件分类 1.SRAM 双极 (静态存储器) PMOS NMOS CMOS 2.DRAM PMOS (动态存储器) NMOS RAM(随 机存取 存储器) 可在任何时刻从存储器中 读出数据或向其中写入数 据,其数据不可长期保留, 断电后立即消失。 SAM(顺 序存取 按照一定的顺序存取存储 器,有先入先出型(FIFO) 和先入后出型(FILO)两种
6.1.2 半导体存储器的主要技术指标 半导体存储器的主要技术指标有存储容量和存取时间。 6.1.2 半导体存储器的主要技术指标 半导体存储器的主要技术指标有存储容量和存取时间。 存储容量指存储器所能存放二进制信息的总量,常用“字数×位数”来表示。容量越大,表明能存储的二进制信息越多。 2. 存取时间指进行一次(写)存或(读)取所用的时间,一般用读(或写)的周期来描述。读写周期(存取周期)指连续两次读(或写)操作的最短时间间隔,读写周期包括读(写)时间和内部电路的恢复时间。读写周期越短,则存储器的存储速度越高。
6.2 ROM(只读存储器) 6.2.1 固定ROM(掩模只读存储器) 固定只读存储器在制造时由生产厂家利用掩模技术直接把 器中的内容用户不能改变只能读出。这类存储器结构简单、集 成度高、价格便宜,一般大批量生产。ROM的电路结构包括地址 译码器、存储单元矩阵和输出缓冲器3部份,如图6.2所示。地 址译码器的作用是将输入地址代码译成相应的控制信号。 图6.2 (a) 4×4ROM电路结构 (b) 4×4ROM电路符号
图中地址代码A0、A1,经过地址译码器后输出W0~W3高电平有 效的“字线”,可选择存储矩阵中的22个字。存储单元矩阵实际上 是一个编码器,编码器中和字线相交的线称为位线,字线与位线 构成矩阵。当地址译码器的输出线中有一条为高电平时,编码器 的“或阵列”中和该输出为高电平字线相交的每条位线上将输出一 个二值代码。通常,把每条位线上输出的二值代码称为一个“位”, 把与高电平字线相交的所有数据线(位线)输出的二值代码称为一 个“字”。“位”线上的输出将进入输出缓冲器,输出缓冲器的作用: ①提高存储器的带负载能力,使输出电平与CMOS电路的逻辑 电平匹配; ②利用缓冲器的三态控制功能便于将存储器的输出端与系统 的数据总线直接相连。 如图6.3所示,存储矩阵中的每个存储单元可以利用二极管、 晶体管、熔丝或其他存储元件构成,该图为二极管构成的具有两 位地址输入码和四位数据输出的ROM电路。
地址译码器是一个“与阵列”逻辑结构,二输入信号A1A0可以构成 (00、01、10、11)4个不同的地址,将这4个地址代码分别译成W0~W3 利用二极管矩阵构成的两位输入码的ROM电路图 ROM简化表示 图6.3 地址译码器是一个“与阵列”逻辑结构,二输入信号A1A0可以构成 (00、01、10、11)4个不同的地址,将这4个地址代码分别译成W0~W3 高电平有效“字线”。存储单元阵列是一个由二极管组成的“或阵列”编 码器,字线和位线的每个交叉点是一个存储单元,交叉点处接在二 极管时相当于存数据“1”,否则,相当于存数据“0”,如图6.3(a)所 示。当A1A0=00时,字线W0=1,称作字线W0被选中;其他字线为0。字 线W0的高电平加到下面的两个“或门”上,使得D1D2输出高电平,D2D3 输出低电平,即D3D2D1D0=0011。因此,在00字单元中存放着一个4位 字W0,W0的值为0011。当A1A2=01时,字线W1为高电平,字线W1的高电 平加到下面的三个“或门”上,使得D2D1D0=111,即相当于存入数据 “7”。同理可得W2=1001,W3=1111,如表6.3所示。
表6.3 图6.3(a) ROM中存放的数据 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 D3 D2 D1 D0 A1 A0 存储数据 地址 为了简化ROM的电路,可以将图6.3(a)电路中的“与-或”矩阵交叉点有存储元件处加黑点,无存储元件处不加黑点,将电源、电阻、二极管(或三极管、MOS管)等元器件省略简化成图6.3(b)所示的ROM图。这种简化图称为“ROM阵列逻辑图”。
6.2.2 PROM、EPROM、E2PROM可编程只读存储器 4. Flash(快省存储器)
6.3 RAM (随机存取存储器) ※6.3.1 集成RAM的基本结构和工作原理 常用的SRAM集成芯片有2114(1K×4位),6116(2K×8 位),6264(8K×8位),62128(16K×8位)和62256(32K×8位) 等。1024×4位的MOS静态RAM集成芯片2114的框图如图6.10 所示,对应的控制、输入/输出的真值表如表6.5所示。 表6.5 真值表
从结构框图上看,引脚线包括地址线、数据线和控制线三 组线。A0~A9为10条地址线,表明有210=1024=1K字;D1~D4为4 条数据线,表明每字有4位,容量为1K×4位。控制线包括片选 信号 和读/写信号线 。当片选信号 =1时,芯片处于维 持状态,数据线D1~D4为高阻浮置状态,不能对该芯片进行读、 写操作。 CS R/W 当片选信号 =0时,该芯片被选中,处于工作状态,即可对该芯片进行读、写操作。当 =0时,有 =1,执行读操作。 CS R/W 当 =0,同时 =0时,执行写操作。RAM中的存储单元通常 都排列成矩阵形式,称为存储矩阵。地址译码采用行、列双译码 方式,地址码分成两部分分别送到行、列译码器,由行和列两个 译码器分别完成译码。地址线A0~A3进行列译码,可选中Y0~Y15 共16列中的一列。地址线A4~A9进行行译码,可选中X0~X63共64 行中的一行。只有行方向的选择线和列方向的选择线交叉的那个 字才被选中。 CS
※6.3.2 RAM的存储单元 存储单元是存储器的核心部分,按所采用器件类型可 分为双极型和MOS型两类,按照工作方式可分为静态和动态 两类。 1.静态RAM存储单元 2. 动态RAM存储单元
6.3.3 集成RAM芯片SRAM6264 常用的普通集成RAM芯片SRAM6264的封装图和电路符 图6.13 (a) NMOS、SRAM6264的封装图 (b) NMOS、SRAM6264的电路符号 常用的普通集成RAM芯片SRAM6264的封装图和电路符 号分别如图6.13(a)(b)所示。图中 , 是片选信号, 是允许与入信号, 是允许输出(即读出信号),A0~A12 是地址输入代码;I∕O0~I∕O7是8位数据输出,VDD为 电源电压,GND接地,NC悬空。 CS1 CS2 OE WE RAM的容量用“字数×位数”,6264的存储容量为“8192字 ×8位”。当存储容量不够时,可以进行字位扩展。
图6.13 (a) NMOS、SRAM6264的封装图 (b) NMOS、SRAM6264的电路符号
... 6.3.4 存储容量的扩展 1.位扩展 若一个存储器的字数用一片集成芯片已经够用,而位数不够用,则用 6.3.4 存储容量的扩展 1.位扩展 若一个存储器的字数用一片集成芯片已经够用,而位数不够用,则用 “位扩展”方式将多片该型号集成芯片连接成满足要求的存储器。扩展的方 法如图6.14所示,将多片同型号的存储器芯片的地址线、读/写控制线 和片选信号 相应连在一起,而将其数据线分别引出接到存储器的数据总线上。 R/W CS I/O0 1024×4RAM (0) A R/W CS 1 ... 1024×4RAM (1) 1024×4RAM (3) 9 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 I/O12 I/O13 I/O14 I/O15 图6.14 位扩展连接图
2.字扩展 若每一片存储器的数据位数够而字线数不够时,则需要采用“字线扩 展”的方式将多片该种集成芯片连接成满足要求的存储器。扩展的方法如 图6.15所示,将各个芯片的数据线、地址线和读写 控制线分别接在 一起,而将片选信号线 单独连接。 CS R/W 图6.15 RAM的字扩展连接法
3. 字、位同时扩展 在很多情况下,要组成的存储器比现有的存储芯片的字数、位数都多, 需要字位同时进行扩展。扩展时可以先计算出所需芯片的总数及片内地址 线、数据线的条数,再用前面介绍的方法进行扩展。如图6.16所示,先进行 位扩展,再进行字扩展。 图6.16 字位同时扩展的连接法
※6.4 SAM(顺序存取存储器) 所谓顺序存取存储器就是只能按照一定的顺序进行存取 的存储器。根据存取的顺序的不同,有先入先出型(FIFO)如 图6.15所示,与先入后出型 (FILO)两种。 图6.17 FIFO(先入先出)型SAM电路
6.5 PLD可编程组合逻辑器件 6.5.1 PLA(可编程逻辑阵列)和FPLA(现场可编程逻辑阵列) 1. 因为任何一个逻辑函数都可以用“与或式”表示,所以任何逻辑函数都可以用一个“与门”阵列和一个“或门”阵列来实现。 2. 而FPLA(现场可编程阵列)则是由可编程“与阵列”和可 编程“或阵列”两部分组成。输入变量对应于“与阵列”的列线,输出函数对应于“或阵列”的列线,通过“与阵列”和“或阵列”网格点上二极管的不同编排,可得到不同函数。 3. FPLA应用设计举例.因为FPLA芯片内的总乘积项数是有 限的,所以对逻辑函数进行化简很有必要,目的在于尽量减少 乘积项数。
1. PAL种类繁多,但基本结构类似,由可编程的“与”逻辑阵列, 固定的“或”逻辑阵列组成,只是输入个数和输出电路的结构不 同,其基本结构如图6.20所示。 2. 为了适应各种组合逻辑电路和时序逻辑电路的设计,具有 不同输出结构和反馈结构的PAL器件应运而生。下面逐一介 绍: ①专用输出结构如图6.20(a) 图6.20 (a) b
②可编程输入输出结构如图 6.21所示 ③“异域”输出结构 如图6.22所示 ④算术运算反馈结构 如图6.23所示 3.PAL应用设计举例 图6.21 三态输出缓冲器结构 图6.22 异或输出结构 图6.23 算术运算反馈结构 ③“异域”输出结构 如图6.22所示 ④算术运算反馈结构 如图6.23所示 3.PAL应用设计举例
6.5.3 GAL(可重编程通用阵列逻辑) 1. GAL器件的基本结构 如图6.25所示。GAL器件的基本结构包括输入缓冲电路、可编程的“与阵列”,固定的“或阵列”,可编程的输出电路――输出逻辑宏单元(OLMC)和输出三态缓冲器等五个部分组成。 图6.25 GAL的基本结构
2. GAL16V8芯片的基本结构 GAL16V8是20脚器件,型号标记中16表示输入端有16个引脚,8则表示OLMC有8个,最多有8个引脚作为输出端。器件的逻辑结构图和引脚图分别如图6.26(a)、(b)所示。 (b) GAL16V8的引脚图 (a)GAL16V8的逻辑结构框图 图图6.26 GAL16V8的逻辑结构图和引脚图
GAL16V8的每一个输出端对应一个输出逻辑宏单元,输出 逻辑宏单元结构如图6.27所示,它包含四个部分: 3. GAL16V8输出逻辑宏单元(OLMC) GAL16V8的每一个输出端对应一个输出逻辑宏单元,输出 逻辑宏单元结构如图6.27所示,它包含四个部分: 图6.27 输出逻辑宏单元(OLMC)的结构
6.6 FPGA(现场可编程门阵列) 6.6.1 FPGA器件的基本结构 XC4000系列的FPGA器件采用了CMOS SRAM编程技术,器件的基本结构如图6.33所示。 图6.33 XC4000系列FPGA基本结构
所示,有C1~C4共4个输入控制信号,通过编程将其映射成4个 内部的控制信号EC、DIN、S/R和H1。 1. 组合逻辑部分 如图6.34(b)中左虚线框内电路所示 2. 存储部分 如图6.34(b)中右虚 线框外右侧电路所示,两 个边沿D触发器共用一个时 钟CLK和时钟允许信号EC, 分别通过各自的选择电路 来选择时钟信号。 3. 控制部分 如图6.34(b)上侧部分 所示,有C1~C4共4个输入控制信号,通过编程将其映射成4个 内部的控制信号EC、DIN、S/R和H1。 图6.34 (b)CLB与互连资源的互连关系
CLB是FPGA的重要组成部分,多个CLB以二维阵列的形式分布在器件的中部。XC4000系列的CLB结构如图6.34(a)所示。 图6.34 (a) FPGA器件XC4000系列的CLB结构
6.6.3 IOB(可编程I/O) IOB分布在FPGA器件的四周,先提供了器件外部引出端和内部逻辑之间的连接,其结构如图6.35所示。 图6.35 XC4000的IOB结
全局连线主要用于传送一些公共信号如全局时钟信号、公 6.6.4 PIR(可编程内部连线资源) 遍布器件内部的可编程互连资源PIR,可以将器件内部任意两点连接起来,能将FPGA中数目很大的CLB和IOB连接成各种复杂的数字系统。PIR主要由纵横分布在CLB阵列之间的金属线网络和位于纵横线交叉点上的可编程开关矩阵PSM组成。 1. 通用单/双长线连接 它主要用于CLB之间的连接,在这种结构中,任意两点间的 连接都要通过开关矩阵PSM。 2. 全局连接 全局连线主要用于传送一些公共信号如全局时钟信号、公 用制信号。 3. 长线连接 长线主要用于长距离或多分支信号的传送。
本章小结 1. 半导体存储器主要用于计算机的程序或数据的存储,它分为ROM和RAM两种。RAM是随机存取存储器,它的读写速度很高,它分为动态(DRAM)和静态(SRAM)两种。DRAM是靠寄生电容存储信息,需要定时刷新,否则信息会丢失。DRAM的功耗小,结构简单,在容量大的计算机中被广泛应用。SRAM主要用于存储容量小的微型机中。PROM是(可编程只读存储器),可用来存储程序、固定数据,这些程序及数据以二进制码的形式事先存入PROM中,断电时它们不会丢失,在使用时只供读出,而不能随时写入,故称为可编程只读存储器。若能多次擦除多次编程的ROM称为EPROM(可擦除可编程只读存储器),能快速擦除快速写入信息的ROM称为Flash(快省存储器)。
本章小结 3. 可编程逻辑器件PLD按照有无寄存功能分为组合PLD和时序PLD两类。按照电路结构的不同,则有PLA和PGA型两大类。即 PAL(可编程阵列逻辑) FPLA(现场可编程逻辑阵列) GAL(含ISPGAL)(通用阵列逻辑) PLA PGA(FPGA)(现场可编程门阵列,在线可编程 逻辑器件) 寄存PLD
2. PROM、EPROM除了存储数据外,还可以编程逻辑函数,具有这种可编程逻辑函数功能的器件还包括PLA、 PAL和GAL等。PLA主要由与阵列、或阵列构成,两个阵 列都是可编程的。PAL则由可编程的与阵列、固定的或阵 列和输出电路三部分构成,与阵列采用双极型熔丝结构。 GAL由与阵列、或阵列和输出逻辑宏单元三部分组成, GAL是采用2CMOS工艺制造,可多次进行改写,使用方便,借助开发的硬件和软件,可以用GAL实现所有中、小规模数字集成器件。PAL的功能不如GAL,但是读写速度比GAL高。
目前用得最多的是GAL器件和FPGA器件。PLD器件,尤其是FPGA器件的显著优点是:高速度(ns级),高可靠性,且具有加密功能,不易被人仿冒制作,具有无限次编程的能力,且高密度集成(1百万门/片的芯片正在推出),体积小,功能强大,易学易用,开发周期短,投资费用低。 4. PLD器件的发展方向是更高(密度),更强(功能)和更加方便的在线可编程,并将大部分电子设计领域如MCU(微控单元)、MPU(微处理单元)、DSP(数字信号处理)、A/D或D/A等,以软硬核形式“四合一”于PLD器件之中,这样无疑会给电子设计理念带来重大变化。