1.在Logisim上设计一个1位的全加器FA;
①首先进行逻辑功能分析:全加器应该有三个输入端口:两个输入端口表示加法的两个运算数,另一个输入端口表示来自低位的进位;同时还有两个输出端口:一个输出端口表示加法运算的结果,另一个输出端口表示向高位的进位。
②在逻辑功能分析的基础上列出下面的真值表,其中A和B表示两个加数,CI表示来自低位的进位,S表示运算结果,CO表示向高位的进位。
③根据上面列出的真值表得到组合逻辑表达式如下:
S=A’B’CI+A’BCI’+AB’CI’+ABCI; CO=A’BCI+AB’CI+ABCI’+ABCI;
④对上述的组合逻辑表达式进行化简,得到的结果如下:
S=A⊕B⊕CI; CO=AB+ACI+BCI;
⑤根据上面的化简结果进行如下的电路设计:
经过验证后可知该电路满足真值表,因此全加器的设计电路是正确的
2.在Logisim设计一个用4个FA构成的一个四位的加减法器,在引脚输出结果,输入采用手动设置引脚。
①由于该电路需要进行减法,因此首先进行全减器的设计分析:全减器应有三个输入端,两个输入端分别表示该位的被减数和减数,另一个输入端表示右边一位向本位的借位;应有两个输出端,分别表示减法结果和本位向高位的借位;
②根据上述分析列出全减器的真值表如下,其中A和B分别表示被减数和减数,CI表示低位向本位的借位,S表示减法结果,CO表示本位向高位的借位:
③根据上面的真值表列出输出逻辑表达式如下:
S=A’B’CI+A’BCI’+AB’CI’+ABC; CO=A’B’CI+A’BCI’+A’BCI+ABCI;
④对上述的组合逻辑表达式进行化简,可以得到如下结果:
S=A⊕B⊕CI; CO=A’CI+A’B+BCI;
经过观察得知,S的结果和全加器的结果相同,CO的结果相当于对全加器中的CO中的输入A取反,由此可以得到全减器的设计思路。
⑤根据上面的设计思路设计出如下的电路:“加减控制”用0表示加法,1表示减法。
接着由四个一位的全加全减器进行串行连接,得到四位的全加全减器,设计如下:
经过验证可得该电路是正确的。
3.将加减法器的手动输入改为计数器C1、C2的32位输出值,分别作为32位加减法器输入X,Y,利用Logisim库中的加法器实现。
①首先进行设计分析:使用两个计数器作为输入,并配上一个加法器,加法操作可以较为简单地实现;使用加法器来实现减法操作则考虑到使用到补码运算,由于默认两个数字都是正数,因此被减数直接使用原码即可(正数的原码和补码相同),对于减数,则通过一个数据选择器根据所给出的功能选择原码或者补码,再进行运算即可(此处默认两个运算数和运算结果都是正数)
②根据上面的分析设计如下所示的电路,可以验证电路是正确的。
相关资源:
一位加减法电路文件
四位加减法器电路文件
32位加减法器电路文件