存储器应用实验

实验目的

  1. 熟悉静态随机存取存储器RAM的工作特性和使用方法;

  2. 熟悉只读存储器ROM的工作特性和使用方法;

  3. 熟悉寄存器堆的工作特性和使用方法;

  4. 理解实验电路的操作时序,掌握存储器写入和读出数据的过程。

实验原理

实验电路如图 1所示。该电路将静态随机存取存储器RAM、只读存储器ROM和寄存器堆组织到一起,构成了一个应用电路。

mem path 1
图 1. 存储器应用电路图

实验任务

设计任务

按照图 1绘制电路图。 其中ROM的容量为16×8位,ROM的初始化数据为七段译码;RAM容量为16×4位;寄存器堆为4×4位,其中R0恒为0;加法器计数器组件的数据位数均为4位。

验证任务

依次完成以下仿真任务,通过仿真验证数据的正确性,并保存仿真过程数据文件。

  1. 数据写入寄存器堆

    将2个常数分别存入R1、R2寄存器。

    常数通过Imm输入引脚送入。 从图 1可以看出,Imm并没有直接连在寄存器堆的WD写端口,而是送到了加法器的B输入端;而加法器的输出经过一个多路器后连接到WD写端口。所以要将Imm送到寄存器堆的写端口,必须经过加法器。 在前面寄存器堆的实验中已经设计R0寄存器的值恒为0,可以用加法器将Imm加上R0寄存器值,就能够将Imm传送到加法器的输出端;再通过WDsel控制多路器将Imm传送到寄存器堆的写端口。 信息传递路径如图 2所示。

    mem path 2
    图 2. 常数存入寄存器的信息传递路径
  2. 验证R0恒为0

    尝试将一个非零数据写入R0寄存器,检查R0是否被改变。

  3. 寄存器数据写入RAM

    将R1和R2寄存器的内容,分别写入到RAM的两个存储单元中。

    图 1可以看出,RAM的数据输入来自寄存器堆的读端口2,可以利用上一个任务已经存入数据的寄存器,将其值写入存储器的某一存储单元。 存储器的地址来自加法器的输出,因此可以用Imm加上R0来指定存储器的地址。 信息传递路径如图 3所示。

    mem path 3
    图 3. 寄存器数据写入存储器的信息传递路径
  4. 从RAM读出数据并写入寄存器堆

    将上面已经存入RAM的数据读出并写入R3寄存器。

    RAM的读出控制端ld在图 1中固定接“1”,即始终允许读出。 但要传送到寄存器堆的写端口WD还需要经过多路器的选择。 信息传递路径如图 4所示。

    mem path 4
    图 4. 存储器数据写入寄存器的信息传递路径
  5. 检查ROM输出

    在上述任务的操作中,每当Clk时钟触发写入寄存器堆或RAM时,计数器加1,数码管显示的数字应递增。

实验结果分析

对上述验证任务的实验数据进行分析,判断结果的正确性。

总结RAM、ROM和寄存器堆的功能特性和使用方法。