存储器数据通路实验

实验目的

  1. 掌握存储器的工作特性和使用方法。

  2. 理解实验电路的操作时序,掌握数据通路信息加工过程。

  3. 锻炼分析问题与解决问题的能力。

实验原理

图 1是本实验的存储器数据通路,该数据通路使用了前面实验中的ALU、三端口寄存器堆和RAM、ROM存储器。 和运算器数据通路实验相比,运算部分基本没有变化,新增加了存储器。 DI是RAM的数据输入端口,写入RAM的数据由寄存器堆的RD2读端口提供。 RAM的地址A来自ALU运算结果F。 RAM的读出数据DO通过多路器连接到寄存器堆的写端口WD,可以写入寄存器堆。 ROM作为七段译码器,连接数码管显示WD端口的数值。

存储器数据通路
图 1. 存储器数据通路

运算相关的信息加工过程在运算器数据通路实验中已经熟悉。 下面着重分析存储器相关的信息传递路径。

寄存器数据写入RAM的信息传递路径

要将数据写入RAM,需准备要写入的数据并提供要写入单元的地址。 RAM的数据输入DI来自寄存器堆的读端口2,所以只能将某一寄存器的值写入RAM的存储单元;换句话说,需要写入RAM的数据必须先存放于某一寄存器中。 RAM的地址A来自ALU的输出F,因此只能通过ALU运算(通常用加法运算)产生RAM地址。从运算器数据通路实验已经知道,ALU的运算数据可以来自RD1、RD2或立即数Imm;但这里RD2已用于提供要写入RAM的数据,所以只能用RD1加上立即数来指定RAM的地址。 信息传递路径如图 2绿色通路所示。

mem path2 2
图 2. 寄存器数据写入RAM的信息传递路径

读出RAM数据写入寄存器的信息传递路径

RAM的地址仍然由ALU产生,RAM输出数据DO要传送到寄存器堆的写端口WD需要经过多路器的选择。 信息传递路径如图 3绿色通路所示。

mem path2 3
图 3. 读出RAM数据写入寄存器的信息传递路径

实验任务

设计任务

用Digital仿真软件按照图 1绘制电路图。

  1. 可以在前面运算器数据通路实验电路图的基础上扩充。

  2. ROM和数码管电路可以直接复制ROM实验中完成的电路。

验证任务

通过仿真验证数据通路,并保存仿真过程数据文件。

  1. 常数写入寄存器堆

    将2个非零常数存入R2、R3寄存器。 信息传递路径与运算器数据通路实验基本相同,不同之处是寄存器堆写端口WD增加了一个多路选择器,写入数据来自ALU的运算结果时,WDsel应为0。

  2. ALU运算结果存入寄存器

    • 以寄存器R2、R3作为运算数,执行某种ALU运算,运算结果存入R1寄存器;

    • 以寄存器R2和立即数(ImmediateData)作为运算数,运算结果存入R3;

  3. 寄存器数据写入RAM

    理解图 2信息传递路径,完成以下验证。

    • 以R2作为RAM的地址,将R1的内容写入该地址单元;

    • 以立即数Imm作为RAM的地址,将R3的内容写入该地址单元。

      注意立即数应与R2的值不相同,以免覆盖上面写入的单元。

      RAM地址A=RD1+Imm。 若要以R2作为RAM的地址,则RA1=2,同时使Imm=0。 若要以立即数Imm作为RAM的地址,则应使用R0的值(恒为0)作为RD1,即RA1=0。

  4. 读出RAM数据并写入寄存器

    理解图 3信息传递路径,先后将上面写入RAM两个存储单元的内容读出,分别存入R3和R1寄存器。即:

    • 以立即数Imm作为RAM的地址,读出该地址单元的内容并写入R1寄存器;

    • 以R2作为RAM的地址,读出该地址单元的内容并写入R3寄存器。

实验结果分析

对上述验证任务的实验数据进行分析,判断结果的正确性。 此外还应检查ROM输出和数码管显示是否正确,ROM的输出(Seg)为数码管的段值,数码管显示的数字应与WD相同。

若结果与预期不符,尝试独立分析故障现象并排除故障,锻炼分析问题与解决问题的能力。