只读存储器 (ROM) 与随机存取存储器 (RAM) 一起是任何计算机系统的主要存储单元,但与 RAM 不同的是,在 ROM 中,二进制信息是永久存储的。现在,要存储的这些信息由设计者提供,然后存储在 ROM 中。一次,它被存储,它保留在单元内,即使电源被关闭和再次打开。
通过称为 ROM 编程的过程,信息以位的形式嵌入到 ROM 中。在这里,编程是指硬件程序,它指定将要插入到设备硬件配置中的位。这就是使 ROM 成为可编程逻辑设备 (PLD) 的原因。
可编程逻辑器件
可编程逻辑器件 (PLD) 是一种 IC(集成电路),内部逻辑门通过电子路径连接,其行为类似于保险丝。在原始状态下,所有保险丝都完好无损,但是当我们对这些设备进行编程时,我们会沿路径烧毁某些保险丝,这些保险丝必须移除才能实现特定配置。这就是 ROM 中发生的情况,ROM 仅由基本逻辑门组成,这些逻辑门以存储指定位的方式排列。
通常,PLD 可以有数百到数百万个通过数百到数千条内部路径互连的门。为了显示这种设备的内部逻辑图,使用了一种特殊的符号,如下所示-
第一个图像显示了表示逻辑门输入的传统方式,第二个符号显示了显示逻辑门输入的特殊方式,称为阵列逻辑符号,其中每条垂直线代表逻辑门的输入。
ROM的结构
ROM的框图如下-
块结构
- 它由 k 条输入线和 n 条输出线组成。
- k 输入行用于获取我们想要访问 ROM 内容的输入地址。
- 由于 k 个输入行中的每一行都可以是 0 或 1,所以有 2 这些输入线可以引用的总地址,并且这些地址中的每一个都包含 n 位信息,这些信息作为 ROM 的输出给出。
- 这样的 ROM 被指定为 2 xn ROM。
内部结构
- 它由两个基本组件组成——解码器和或门。
- 解码器是一种组合电路,用于将任何编码形式(如二进制、BCD)解码为更广为人知的形式(如十进制形式)。
- 在 ROM 中,解码器的输入将采用二进制形式,输出将表示其十进制等效值。
- 解码器表示为 lx 2 ,也就是说,它有 l 个输入,有 2 个输出,这意味着它将采用 l 位二进制数并将其解码为 2 十进制数。
- ROM 中存在的所有或门都将解码器的输出作为它们的输入。
ROM的分类
- 掩码 ROM——在这种类型的 ROM 中,ROM 的规范(其内容及其位置)由制造商以特定格式的表格形式从客户那里获取,然后为路径制作相应的掩码以产生所需的输出.这是昂贵的,因为供应商向客户收取制作特定 ROM 的特殊费用(推荐,仅当需要大量相同的 ROM 时)。
用途 –它们用于网络操作系统、服务器操作系统、激光打印机字体存储、电子乐器中的声音数据。
- PROM –它代表可编程只读存储器。它首先被准备为空白存储器,然后被编程来存储信息。 PROM 和 Mask ROM 的区别在于 PROM 作为空白存储器制造并在制造后进行编程,而 Mask ROM 在制造过程中进行编程。
要对 PROM 进行编程,需要使用 PROM 编程器或 PROM 刻录机。对 PROM 进行编程的过程称为烧写 PROM。此外,其中存储的数据不可修改,因此称为一次性可编程设备。用途——它们有多种不同的应用,包括手机、视频游戏机、RFID 标签、医疗设备和其他电子产品。
- EPROM –它代表可擦除可编程只读存储器。它克服了 PROM 的缺点,即一旦编程,固定模式是永久的,不能改变。如果位模式已经建立,则 PROM 将无法使用,如果必须更改位模式。
EPROM 已经克服了这个问题,因为当 EPROM 被放置在特殊的紫外线下一段时间后,短波辐射会使 EPROM 恢复到其初始状态,然后可以进行相应的编程。再次擦除内容,使用 PROM 编程器或 PROM 刻录机。
用途——在 EEPROM 出现之前,一些微控制器,如某些版本的 Intel 8048,飞思卡尔 68HC11 使用 EPROM 来存储它们的程序。
- EEPROM –代表电可擦除可编程只读存储器。它与 EPROM 类似,不同之处在于,EEPROM 通过施加电信号而不是紫外线而返回到其初始状态。因此,它提供了擦除的便利,因为即使存储器位于计算机中,也可以这样做。它一次擦除或写入一个字节的数据。
用途 –用于存储计算机系统 BIOS。
- Flash ROM –它是 EEPROM 的增强版本。 EEPROM 和 Flash ROM 的区别在于,在 EEPROM 中,在特定时间只能删除或写入 1 个字节的数据,而在闪存中,数据块(通常为 512字节)可以在特定时间删除或写入。因此,Flash ROM 比 EEPROM 快得多。
用途 –许多现代 PC 的 BIOS 存储在闪存芯片上,称为闪存 BIOS,它们也用于调制解调器。
对只读存储器 (ROM) 进行编程
要了解如何对 ROM 进行编程,请考虑一个 4 x 4 ROM,这意味着它总共有 4 个地址存储信息,每个地址都有一个 4 位信息,该信息是永久性的,必须给出为输出,当我们访问特定地址时。需要执行以下步骤来对 ROM 进行编程 –
- 构建一个真值表,它将决定 ROM 的每个地址的内容,并根据该表对特定的 ROM 进行编程。
因此,4 x 4 ROM规格的真值表描述如下:
该真值表显示,在位置 00 处,要存储的内容是 0011,在位置 01 处,内容应该是 1100,依此类推,这样每当输入特定地址时,就会获取该特定地址处的内容。由于使用 2 个输入位,4 个输入组合是可能的,并且这些组合中的每一个都包含 4 位信息,因此该 ROM 是 4 X 4 ROM 。
- 现在,基于总数。 ROM中的地址及其内容的长度,决定了解码器以及编号。要使用的或门。
一般来说,对于 2 xn ROM, akx 2 解码器是用的,总没有。或门的数量等于总数。存储在 ROM 中每个位置的位。因此,在这种情况下,对于 4 x 4 ROM,要使用的解码器是 2 x 4 解码器。
以下是一个 2 x 4 解码器 –2 x 4 解码器的真值表如下:
当两个输入都为 0 时,则只有 D 为1,其余为0,当输入为01时,则只有D 高等等。 (请记住,如果解码器的输入组合解析为特定的十进制数 d,那么在输出端,位于距离顶部 d + 1 位置的终端将为 1,其余为 0)。
现在,由于我们希望每个地址在 4 x 4 ROM 中存储 4 位,因此,将有 4 个或门,解码器的 4 个输出中的每一个都被输入到 4 个或门中的每一个,其输出将是 ROM 的输出,如下所示 –
此图中的十字符号表示两条线之间的连接完好无损。现在,由于解码器有 4 个或门和 4 条输出线,因此总共有 16 个交叉点,称为交叉点。
- 现在,根据真值表对两条线之间的交点进行编程,以便 ROM(或门)的输出与真值表一致。
为了对交叉点进行编程,最初所有交叉点都保持不变,这意味着它在逻辑上相当于一个闭合的开关,但是这些完好的连接可以通过向这些保险丝施加高压脉冲而熔断,这将断开两个互连线,这样就可以操纵 ROM 的输出。因此,要对 ROM 进行编程,只需查看指定 ROM 的真值表并消除(如果需要)连接。根据真值表,4 x 4 ROM 的连接如下所示 –
请记住,叉号用于表示连接完好无损,如果没有叉号则表示没有连接。
在该图中,由于从指定 ROM 的真值表中可以看出,当输入为 00 时,则输出为 0011,因此我们从解码器的真值表中知道,输入 00 给出的输出为只有 D 为 1,其余为 0,因此要从或门获得输出 0011,D 的连接前两个或门已被吹走,使输出为 0,而后两个或门将输出为 1,这是所需要的。
同理,当输入为 01 时,则输出应为 1100,输入为 01,在解码器中只有 D 为 1,其余为 0,因此要获得所需的输出,前两个或门与 D 的连接完好无损 ,而最后两个或门的连接被吹走了。其余的也遵循相同的程序。
所以,这就是 ROM 的编程方式,因为这些门的输出每次都将保持不变,因此信息永久存储在 ROM 中,即使在打开和关闭时也不会改变。
参考-
- A. Anand Kumar 的数字电路基础