逻辑运算是干啥的
逻辑“ 1 ”和逻辑“ 0 ”可以分别表示电路的接通和断开、事件的是和否、逻辑推理的真和假等。
数字逻辑电路中“ 1 ”表示高电平,“ 0 ”表示低电平。
数字电路它主要进行数字信号的处理(即信号以0与1两个状态表示)
同时具有算术运算和逻辑运算功能
基本逻辑运算
与
表达式 Y = A * B (0/1对应 假/真 有一个假就是假,都是真结果为真)(给他看做成乘法,俩个数相乘 有0得0,两个都是1才得1)
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
或
表达式 Y = A + B (0/1对应 假/真 有一个真 就是真)(给他看做成加法,俩个数相加 大于等于1 就得1)
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
非
Y = A` (0/1对应 假/真 按相反就行, 1 非得 0 , 0非得1 )
A | Y |
---|---|
0 | 1 |
1 | 0 |
复合逻辑运算
逻辑电路运算规律
分配率
A(B+C) = A * B + A * C (分配率)
A = 0 , B = 1 , C = 1
逻辑运算 Y = A(B+C) = 0 与 ( 1 或 1 ) = 0
逻辑运算 Y = A * B + A * C = ( 0 与 1 ) 或( 0 与 1 ) = 0 或 0 = 0
结合率
ABC = ( A * B )C (结合率)
A+B+C = (A + B ) +C (结合率)
A = 0 , B = 1 , C = 1
逻辑运算 Y = A B C = A 与 B 与 C = 0 与 1 与 1 = 0
逻辑运算 Y = (A * B ) C = (A 与 B)与 C = ( 0 与 1) 与 1 = 0
逻辑运算 Y = A+B+C = A 或 B 或 C = 0 或 1 或 1 = 1
逻辑运算 Y = (A + B ) +C = (A 或 B)或 C = ( 0 或 1) 或 1 = 1
反演率
(A+B)` = A’ * B’
(A* B)’ = A’ + B’
A = 0 , B = 1
逻辑运算 Y = (A+B)` = ( 0 或 1 ) ’ = 1’ = 0
逻辑运算 Y = A’ * B’ = 0’ 与 1’ = 1 与 0 = 0
逻辑运算 Y = (A * B)’ = ( 0 与 1 ) ’ = 0’ = 1
逻辑运算 Y = A’ + B’ = 0’ 或 1’ = 1 或 0 = 1
与非
Y = (A * B )` = A’ + B’
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
或非
Y = (A + B )` = A’ * B’
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
异或(加法,奇偶校验)
Y = (A ⊕ B ) = A’ B +A B’
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
同或
Y = (A ⊙ B ) = ( A’ B +A B’ )’
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
电路简单应用
奇偶校验码
奇偶校验码 是一种校验码,用来检查传输的数据是否发生了错误
奇校验 数据流 里有奇数个1 校验码1
偶校验 数据流 里有偶数个1 校验码0
一串 11001101 编码 这串编码 首位为符号位 1 1001101 得七位数值 1001101
用异或 Y = (A ⊕ B ) 特性 偶数得 0 奇数得1
1001101 进行 1⊕0⊕0⊕1⊕1⊕0⊕1 = (1⊕0)⊕(0⊕1)⊕(1⊕0)⊕1 = 1 ⊕ 1 ⊕ 1 ⊕1= 0 是偶数 (其中有1的个数是偶数)
例如传输 0 1 1001101 ( 首位是奇偶校验位 , 第二位是符号位,,7位数字 )
检查 7位数值中1是否是偶数 如果不是偶数 进行错误处理
一位全加器
A是一串 0 001 0001 二进制,首位为符号位
B是一串 0 000 0001 二进制,首位为符号位
相加 用电路如何实现加法
首先算数值位 001 0001 和 000 0001 相加从尾一位开始
1+1 用电路如何设计
A的尾位 A1
B的尾位 B1
当前 A1 + B1 的值 是 S1 = 1 + 1 但是是二进制 S1 = 0 但是产生了一个进位1 我们把这个进位定义为 C2
这个进位C2 会参加 A2 + B2 的计算
A2 + B2 + C2 会得到 S2 和 一个进位 C3 以此类推 那用电路如何设计呢
Si 和 CI+1 如何设计呢
Si = Ai ⊕ Bi ⊕ Ci
求得Si 的方法是当Ai 和 Bi 和 Ci 这三个数中有多少个1,
0个1 Si 就是 0
1个1 Si 就是 1
2个1 Si 就是 0
3个1 Si 就是 1
Si 是不是就可以用异或 ⊕ 来判断呢 , 偶数个1 就返回0 , 奇数个1 就返回1
Si = Ai ⊕ Bi ⊕ Ci
Ci+1 = AiBi + (Ai ⊕ Bi)Ci
求得进位的方法是
如果 Ai 和 Bi 如果都是1 。 Ci+1 就是1
如果 Ai 和 Bi 其中有一个1 , Ci 也是1 。 Ci+1 就是1
Ci+1 = AiBi + (Ai ⊕ Bi)Ci
① AiBi 就是 Ai和Bi 其中都是1 , AiBi = 1 ,其他结果都是0
② (Ai ⊕ Bi) Ci 是 说 Ai 和 Bi 其中有一个1 并且 Ci也是1 , 其他结果都是0
电路 ①与② 结果就是Ci+1
Ai | Bi | Ci | Si | Ci+1 |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
串行加法器
只有一个加法器,逐位运算,进位触发器寄存进位信号,参与下一次运算
并行加法器
把一位全加器串起来,又称行波进位,依赖前一进位,进位信号逐级产生。