赞
踩
从https://download.csdn.net/download/m0_74045503/88435139下载,先安装Java运行环境JDK,在运行Logisim。
一位半加器是一个数字电路,,用于执行二进制加法中的最低有效位(LSB)的加法。它可以将两个输入位(A和B)相加,并产生两个输出:和(S)和进位(C)。其逻辑如下:和(S)输出是两个输入位的异或(XOR)运算。即,S=A⊕B。 进位(C)输出是两个输入位的与(AND)运算,即,C=A*B。下图为半加器的真值表:
A | B | C | S |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
确保测试正确后,做出如下图的电路:
1位全加器是一种数字电路,用于执行二进制加法中的位加法。它和半加器不同之处在于,它可以处理来自前一位的进位。1位全加器接受三个输入:分别是两个待相加的位(A,B),和前一位的进位(C-in)。产生两个输出:和(S)以及进位(C-out)。其逻辑如下:和(S)的输出是A,B,C-in的异或运算结果。即,S=A⊕B⊕C-in。进位(C-in)的输出有两个部分,第一个部分是A和B的与运算,第二个部分是A和B的异或运算与C的与运算。
确保运算正确后,做出如下真值表:
要求:当输入一个4位二进制数后,补码电路将输出对应的4位二进制补码。
补码原理如下:
(1)正数与原码相同;
(2) 负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。 同一个数字在不同的补码表示形式中是不同的。比如10进制数值-15的二进制原码是10001111,其补码在8位二进制中是11110001,然而在16位二进制补码表示中,不足位数要用符号位补全,也就是1111111111110001。
因为正数和负数的补码运算规则不一样,取决与输入二进制数的最高位(符号位)。从简单入手,可以先只考虑输入为负数情况的补码运算。补码运算中有一个加1运算,需要用全加器实现。 4位全加器可以用4个1位(bit)全加器级联得到。
真值表如下:
正数输入 | 输出 | 负数输入 | 输出 |
---|---|---|---|
0001 | 0001 | 1001 | 1111 |
0010 | 0010 | 1010 | 1110 |
0100 | 0100 | 1100 | 1100 |
0011 | 0011 | 1011 | 1101 |
0101 | 0101 | 1101 | 1011 |
0110 | 0110 | 1110 | 1010 |
0111 | 0111 | 1111 | 1001 |
一种四位数二进制补码电路如下图:
于正数和负数的补码不同但是最高位与原码相同,所以把原码看成是三位数,最高位直接不变。首先考虑负数和正数都可行的取反数字逻辑表达式,该表达书不用引入其他外来输入,我自己是用的最高位数字,然后分别得到进位,之后用全加器输出每一位即可。
首先根据题目要求按先后顺序做出每一部分的真值表,在根据真值表列出逻辑表达式并化简1然后设计出相应的逻辑电路。
建议自学逻辑表达式的化简 ↩︎
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。