实验目的

帮助学生掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉 Logisim\text{Logisim} 平台基本功能,能在 Logisim\text{Logisim} 中实现多位可控加减法电路。

主要任务

Logisim\text{Logisim} 中打开 alu.circ\text{alu.circ} 文件,在对应子电路中利用已经封装好的一位全加器设计 88 位串行可控加法电路。定义 X,YX,Y 为两输入数字,SubSub 为加减控制信号,SS 为运算结果输出,CoutCout 为进位输出,OFOF 为有符号运算溢出位。

实验原理

利用一位全加器作为基本的加法单元,低位 FAFA 的进位输出直接送入相邻的高位 FAFA 的进位输入,构成一个串行进位链。
SubSub00 时,实现的是 88 位串行加法器。SubSub11 时,要实现 XYX-Y。若实现的是减法,YY 需要转化成其补码形式(按位取反再加 11),实现方式是将 Y0Y7Y_0\sim Y_7SubSub 进行异或运算,SubSub 作为运算 X0+Y0X_0+Y_0 的进位输入,如此就对送入加法器的 YY 进行了一次求补操作。于是,当 Sub=0Sub=0,即使经过为实现减法而设计的求补电路,对运算结果仍然不会产生影响,实现的仍旧是 X+YX+Y;而当 Sub=1Sub=1,实现 XYX-YYiY_i 经过求补电路后,同 XiX_i 一起输入 FAFA,输出对应的 SiS_i
符号溢出根据运算过程中最高数据位的进位与符号位的进位位是否一致进行检测。设运算时最高有效数据位产生的进位信号为 CDC_D,符号位产生的进位信号为CFC_F,令 V=CDCFV=C_D\oplus C_F。当且仅当 CD,CFC_D,C_F 两者同步,即 V=0V=0 时,才不会发生溢出。在本实验背景下,CoutCout 即为 CFC_FOFOF 即为 VV

电路图

1.png