算术逻辑单元实验
实验原理
计算机除了能够进行加减运算,还要能够进行逻辑运算。实现加减运算和逻辑运算的电路称为算术逻辑单元(ALU,Arithmetic Logic Unit)。图 1是一个简单ALU的设计,虚线框内是前面实验完成的加减运算电路,只是简化了画法,将4位数据用一根较粗的信号线表示;增加了与(AND)、或(OR)、异或(XOR)逻辑运算,并通过一个四选一多路器选择运算的功能。

该ALU电路没有用非门实现逻辑非(NOT)运算,这是因为异或1可以实现取反。通过使Y各位全为1,选择异或运算可以实现对X的非运算。
-
SF(Sign Flag):符号标志。
SF=1表示结果为负数,SF=0表示结果非负。
-
ZF(Zero Flag):零标志。
ZF=1表示结果为零,ZF=0表示结果非零。
-
OF(Overflow Flag):溢出标志。
OF=1表示结果溢出,OF=0表示结果不溢出。
-
CF(Carry Flag):进位标志。
CF=1表示有进位,CF=0表示没有进位。
OF和CF由加法器产生,在前面的实验中已经完成。这个实验还需要完成符号标志和零标志的检测电路。 因为运算结果的最高位就是符号位,所以符号标志的生成逻辑非常简单,逻辑方程如下:
SF=F3
一种简单的零标志生成方法是,将运算结果的每一位进行或运算,如果结果为0,则零标志为1。以4位二进制为例,产生零标志的逻辑方程如下:

进位标志和溢出标志必须由加法电路产生,而零标志和符号标志通常根据ALU的输出产生。 所以,进位标志和溢出标志只有在加减运算时才有意义;而零标志和符号标志对加减运算和逻辑运算都有意义。 |
实验任务
验证任务
通过仿真验证ALU的各项运算功能。算术运算可参考加减运算电路实验的验证任务,包括标志位的测试;逻辑运算除了测试与、或、异或运算外,也要测试逻辑非运算。
使用的运算数据应有助于检验各种运算结果是否正确。
对于算术运算,应有助于标志位的验证;对于逻辑运算,应有助于验证按位逻辑运算的四种可能。
例如,如果简单地使用“1”和“2”进行加法运算,既不能验证进位标志,也无法验证溢出标志;而进行逻辑与运算,也未能覆盖 |
保存验证结果数据,进行分析并给出结论。