参考教材:数字电路与逻辑设计(第2版)邬春明
目录
1. 数制和编码
通过学习数制和编码,可以帮助我们从现实世界走入硬件的世界;
1.1. 数制
以生活中普遍使用的十进制为基准,是按10进位,那么按2进位就是二进制,按R进位就是R进制(R代表任意值)。通常用括号括住数字,随后在右下角写上R代表R进制。
例如:
需要掌握的是R进制与十进制之间互相转化的规则。
R进制转化为十进制:按权对位,展开相加(以二进制为例)
以小数点左边的数字的权重为0开始,左边权增加,右边权减小。如上例子的权分别是3,2,1,0,-1,-2,-3。然后每个数字按权对位计算幂次方,随后相加。
十进制转化为R进制:(以二进制为例)
整数部分:除R(这里是2)取余,余数倒写
小数部分:乘以R(这里是2)取整,往复循环,直至无小数
1.2. 原码,反码,补码
了解了如何将十进制转化为二进制后,就可以进入硬件世界了。在计算机中常常会遇到“加减乘除”四则运算,但计算机只会做加法,于是为了方便计算机,引入了原码,反码,补码的概念。
正数和负数的原码表示:分别在前面加上0或1(这就是符号位);
正数的反码和补码都等于原码;
负数的反码为原码的符号位不变,其余位取反;负数的补码为反码的基础上+1。
1.3. 常用编码
BCD码
为了用二进制表示十进制,我们选用4位二进制数,最多有2^4=16种组合。这样用二进制表示十进制的码称为BCD码(binary coded decimal),按照不同的表示方法有8421码(分别是4个bit位的权),余3码(在8421码的基础上+3)。
可靠性编码:避免出现“毛刺”的格雷码
如果在常规的数字增加时,能有尽量少的bit位跳转,那么会减少出现问题的概率,出现了格雷码。格雷码的数值每次增加只有一个bit位跳转。
格雷码可以有效避免波形出现“毛刺”。当8421码的7(0111)变为8(1000)时,4个bit都变化了,但实际中,各位不可能同时变化的,如果一位一位的变化,则产生了三个中间态,那么这下7到8的变化过程中就出现了“毛刺”。
可靠性编码:降低传输出错的奇偶校验码
在原来的信息码最后加上一位数,使得整个码中1的个数为奇数(奇校验码)或者偶数(偶校验码)。这样数据在传输过后,收到数据的一方可以通过检查数码中1的个数来检查是否出错,当然只能检查出一个bit位出错的情况(但这也是出错的大部分情况了)
2. 逻辑代数和运算
2.1. 逻辑变量与逻辑运算
逻辑变量分为两类,输入逻辑变量和输出逻辑变量。逻辑变量的基本逻辑运算是与或非(运算符号分别是 · ,+,—),而复合逻辑运算是基本逻辑运算的组合,常见的如下:
需要注意的是:异或等于同或非
2.2. 逻辑代数的基本公式
由于电路的不同组合可以等同于不同的逻辑运算,通过逻辑运算化简,则最后可以简化电路的组合,其基本公式如下:
2.3. 逻辑代数的基本定理
代入定理:在等式两边,将逻辑变量替换为任意一个逻辑表达式,等式成立。
原理就在于逻辑变量和逻辑表达式都只有0和1两种取值,可以一一对应
反演定理:用于求反的一个定理。将逻辑表达式的与或符号互换,0和1互换,原变量和反变量互换等三种互换后可以得到反逻辑表达式
对偶定理:求对偶式的定理。与反演定理类似,只是原变量和反变量不互换,原来的逻辑表达式则得到对偶表达式
2.4. 逻辑代数的常用公式
无论什么定理或公式,其都是根据表达式任意一边只有0或1(真或假)两种结果的内涵得来的。由此可以推导一下上述公式/定律。
吸收定律2:如果A为真,由于是或运算,必输出为真,因此等式右边可以用A(真)来表示。如果A为假,那么AB必假,右边也就为A。
吸收定律3:等式左边,A是真则为真,A为假,则等式左边化简为B。因此左边就等同于A+B。
多余项定律:这个需要推导(具体见书)
3. 逻辑函数及其表达式
3.1. 逻辑函数的表示方法
如果事件Y的真假由多个逻辑变量A,B,C决定,可记为Y=f(A, B, C),这样的函数称为逻辑函数,逻辑函数有五种表示方法:真值表,逻辑式(函数式),卡诺图,逻辑图(电路图),波形图。
真值表
逻辑式(函数式)
卡诺图
逻辑图(电路图)
波形图
3.2. 逻辑函数的标准形式
最小项
如果Y=f(A, B, C),那么其最小项如下:
将原变量的非看作0,原变量看作1,那么上述最小项可以看作是2进制的000,001...111,将其分别记作m0,m1,...m7。
最小项的性质:
任意一个最小项都对应着且只对应一种变量取值使得Y=1;
任意两个最小项的乘积为0;
全部最小项的和为1;
3.3. 逻辑函数表达方式间的转化
1.已知真值表或卡诺图,求逻辑表达式:
找到使得Y=1的所有项,写出来相加即可得到逻辑表达式(卡诺图同理,卡诺图是真值表的另一种形式)
2. 已知逻辑表达式,求真值表,卡诺图和逻辑图
3. 已知逻辑图,求逻辑表达式
4. 逻辑函数的化简(了解)
1.卡诺图化简
根据表达式,画卡诺图,随后圈卡诺圈。如果是4个变量,那么卡诺圈最多圈中2^(4-1)=8个1,而且只能是圈2,4,8个1(2的n次幂)。最后将表示圈中的1的组合写出。
2.含无关项的卡诺图化简
无关项表示取0或1对结果没有影响的项,比如8421码中,出现1010到1111的值是没有影响的。这样的无关项在图中画x,x是可以圈的。