ROM实验

实验目的

  1. 熟悉ROM的功能特性及用法。

  2. 了解七段数码管的显示原理。

实验原理

ROM(Read Only Memory),即只读存储器,是指在应用系统中只能读出、不能写入的半导体随机存储器。 在计算机中,存放引导程序代码是ROM的一个典型应用场景。 也可以用来存放固定不变的数据,如字符点阵数据。

此外,还可以用ROM实现逻辑功能。 将ROM的地址看作逻辑电路的输入,而对应单元的内容就是逻辑电路的输出。 例如,可以用8X1位的ROM实现3输入1输出的任何组合逻辑功能。

本实验用ROM实现七段数码管的译码。 七段数码管主要由七个条形的发光二极管(LED)组成,它们排列成类似数字 “8” 的形状。 这七个段分别被标记为a、b、c、d、e、f、g,有些数码管还有一个小数点段,标记为dp。 当在某段LED上施加一定的正向电压时,该段LED点亮。 通过不同的组合,可用来显示数字0~9和少量字母符号, 如图 1所示。

mem 7seg display
图 1. 七段数码管及十六进制数字形

在实际应用中,通常使用七段译码器将输入的二进制代码转换为七段数码管各个笔段所需的驱动信号, 电路框图如图 2所示。 在本实验中,图中“7段译码”由ROM实现。

mem 7seg decode
图 2. 七段显示译码电路框图

实验任务

设计任务

按照图 2电路原理用ROM设计七段显示译码电路。图中“7段译码”由ROM实现,4位二进制数据输入作为ROM的地址,ROM的输出是地址所对应十六进制数字的七段编码(包含小数点实际是八段)。

  1. 绘制电路图。

    ROM组件位于「组件 ➤ 存储器 ➤ ROM」(Components ➤ Memory ➤ ROM)。 ROM组件的属性设置为「数据位数:8;地址位数:4」。

    显示组件位于「组件 ➤ 输入输出 ➤ 显示 ➤ 7段数码管」(Components ➤ IO ➤ Displays ➤ Seven-Segment Display)。

    ROM组件输出的8位数据需经过分线器组件拆分为8个1位数据连接到数码管的输入端口。
  2. 初始化ROM数据

    现实世界ROM芯片的内容是在生产阶段固定下来的;仿真实验中,需要在编辑状态下初始化其内容。仿真状态模拟了芯片的应用阶段,无法改变ROM内容。

    ROM单元的内容存放数码管每个段的是否需要点亮的信息。 例如,0号单元存放数字“0”所对应的七段编码;1号单元存放数字“1”所对应的七段编码,以此类推。 在ROM组件的属性窗口点击「编辑」按钮,用下面的数据初始化ROM的前8个存储单元。

    0b00111111
    0b00000110
    0b01011011
    0b01001111
    0b01100110
    0b01101101
    0b01111101
    0b00000111
  3. 完善数据使电路能够显示“8~F”

    理解数码管显示原理,编写“8~F”的显示数据,填入ROM的后8个存储单元。

验证任务

通过仿真验证实验电路及初始化的七段编码是否正确。 使ROM组件的sel为1,通过输入组件输入4位二进制数,七段数码管应显示对应数字;同时观察ROM组件输出的8位数据应与初始化数据一致。