一、设计要求
利用Logisim平台中现有运算部件构建一个8位可控加减法器,可支持八位加减法,利用已经封装全加器和逻辑门进行连接,要求实现相应的输出,判断是否溢出。
二、方案设计
实验原理: [A]补+[B]补 = [A+B]补(mod2^n+1) 公式1
[A-B]补 = [A]补+[-B]补(mod2^n+1) 公式2
FA为全加器,利用全加器实现加减法,难点在于实验减法,对输入的[Y]补各位取反加一即为[-Y]补,利用公式2,就可以将减法转化为加法再利用全加器进行各位运算。
设计图如下:
1.利用异或门实现是否取反,以此来进行加减法,让Y的各位和sub进行异或运算,再和X各位通过FA全加器进行相加(如果做加法无需取反加一所以让sub为0;做减法则需要取反加一因此应让sub为1)
2.实现溢出判断,通常用符号位产生的进位与次高位进位进行异或操作后,OF为1即为溢出,反之,为0时无溢出,因此让Cout和次高位进行异或,通过结果OF来判断是否溢出。
输入引脚区:X(被加数或被减数)Y(加数或减数) Sub为1时做减法 ,Sub为0时做加法
输入的X和Y均为补码
输出引脚区:S为输出的相应的补码 Cout为最高位进位位 Overflow位为符号溢出位标志 之后为有符号位和无符号位的对应输出的真值
利用已经封装完整的全加器FA
1:输入X(Xi)
2:输入Y (Yi)
3:低位向本位进位 (Cin)
4:输出 (Si)
5:本位向高位进位 (Cout)
三、实验步骤
第一步,准备所需器材,八个全加器FA、若干异或门,输入引脚,输出引脚等
第二步,连接电路,将Y0位与Sub位连接在异或门,再将异或门输出结果和X0位分别连接在FA的Y位和X位处,
以此类推,共八组,连接完整
第三步,将八个FA连接起来,将sub与FA的“3”连接,将各个FA的“4”与之相对应的输出引脚连接;
第四步,将符号位进位“5”和Cout连接再与次高位进位与异或门连接,异或门输出端和OF连接
四、故障与调试
判断溢出输出异常
故障分析:溢出端连接错误,判断溢出,可采用一位符号位判断溢出;
正确接法如图:
五、测试与分析
自测运行结果图:
六、 实验总结
8位可控加减法电路设计,首先更加深刻学习其原理,异或门的运用,全加器的应用,然后是补码加减法的原理,同时,我学习并掌握了溢出概念和判断,对于加法,只有在正数+正数与负数+负数这两种情况下才可能出现溢出,而符号不同的两个数相加是不会溢出的,可采用一位符号位进行溢出判断。