单周期数据通路实验

实验目的

1.理解单周期数据通路的组成结构。

2.掌握单周期数据通路信息加工过程。

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

实验原理

图 1是本实验的单周期数据通路,该数据通路使用了前面实验中的ALU和三端口寄存器堆,2个读端口向ALU的两个输入端提供运算数据,1个写端口接收ALU的运算结果,可以一个周期完成读数据、运算、存结果。

单周期数据通路300dpi
图 1. 单周期数据通路

实验任务

  1. 设计

    用Digital仿真软件按照图 1绘制电路图。 ALU和三端口寄存器堆使用前面实验完成的。

  2. 仿真

    编写测试用例完成以下验证操作。

    1. 将2个常数存入R1、R2寄存器

      常数通过ImmediateData输入引脚送入。从图 1可以看出,ImmediateData并没有直接连在寄存器堆的写端口,而是经过多路器后送到了ALU的Y输入端;所以要将ImmediateData送到寄存器堆的写端口,必须经过ALU。在前面寄存器堆的实验中已经设计R0寄存器的值恒为0,可以用ALU将ImmediateData加上R0寄存器值,将ImmediateData传送到寄存器堆的写端口。

      存入的常数应有助于判别下面将要验证的各种运算结果是否正确,可参考加减运算电路实验

      例 1给出了一个测试用例,该测试用例试图向R0寄存器写入数据“5”,用来验证R0寄存器的值是否恒为零。

      例 1. 数据通路测试用例
      Clock	WE	WA	RA1	RA2	IM	Ysel	M	S0	S1	F	O	Z	S	C
      0	    1	0	0	0	0x5	1	    0	0	0	X	X	X	X	X (1)
      1	    1	0	0	0	0x5	1	    0	0	0	0x5	0	0	0	0 (2)
      1 该行给出Clock为0的激励数据,实现操作:R0+5→R0;预期响应“X”表示任意值,即不参与比较。
      2 该行给出Clock为1的数据,激励数据应保持不变,如果R0恒为零,输出F应为5;如果R0被写入5,输出F会变为10。

      Clock从0到1的变化也可用字母“C”表示,故上面两行可用一行代替如下:

      Clock	WE	WA	RA1	RA2	IM	Ysel	M	S0	S1	F	O	Z	S	C
      C	    1	0	0	0	0x5	1	    0	0	0	0x5	0	1	0	0
    2. 完成以下运算并验证结果是否正确。

      R1 + R2 → R3;

      R1 − R2 → R3;

      R1 ⊕ 0b1111 → R3;

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

  3. 实验结果分析

    对测试用例数据、测试结果进行详细分析说明,并给出结论。

预习要求

理解实验原理,初步编写测试用例数据。