教学内容与考核标准
授课教师:
内容:基本知识、逻辑运算、逻辑函数化简(列表法不要求)、逻辑门电路、组合逻辑电路、触发器、时序逻辑电路、中规模逻辑电路
理论 40 学时 + 实验 36 学时
考核方式:雨课堂考勤 + 课程中心作业 + 期末考试
数制
常用数制:十进制 (Decimal)、二进制 (Binary)、十六进制 (Hexadecimal)、八进制 (Octal)
数字的表示法:
(N)R=(KnKn−1...K1K0.K−1K−2...)R=Kn×Rn+Kn−1×Rn−1+...+K1×R1+K0×R0+K−1×R−1+K−2×R−2+...
第二个等号后面的表示法称为 “按权展开法”。注意十六进制数的按权展开需要将字母换成对应的十进制数
数制转换
按权展开法会将数字转换成十进制的,因此其他进制转十进制非常简单。下面介绍其他进制转换。
本部分在考试中仅作选择或填空题。选择自己可以熟练掌握的技巧,不需要考虑方法是否学过。
1. 十进制转二进制
正规方法:整数除 2 取余;小数乘 2 取整。
除 2 取余,除到商为 0 为止
乘 2 取整,乘到积为 1 或精度的后一位为止。期间,如果整数部分有进位,舍去进位。当得到精度的后一位(如要求 4 位小数,则进行 5 次乘法)时,如果整数部分为 0,则不进位;如果整数部分为 1,则进位。
其他方法:按位展开,逐次递减
由于其他进制转十进制很容易,因此如果想降低知识点负担,对于其他进制转二进制,只需要先转成十进制,然后再转成二进制即可。
2. 二进制转八进制
整数从右到左、小数从左到右,将数字按三位三位划分(三位二进制数最多表示到 7),不足三位的用 0 补齐。然后分别计算三位数字对应的八进制数,连接起来即可。
(11100101.01)2=(011)2(100)2(101)2.(010)2=(3)8(4)8(5)8.(2)8=(345.2)8
八转二是逆过程,每一个八进制数用三位二进制数表示即可。
3. 二进制转十六进制
整数从右到左、小数从左到右,将数字按四位四位划分(四位二进制数最多表示到 F,即 15),不足四位的用 0 补齐。然后分别计算四位数字对应的十六进制数,连接起来即可。
(11100101.01)2=(1110)2(0101)2.(0100)2=(E)16(5)16.(8)16=(E5.8)16
十六转二是逆过程,每一个十六进制数用四位二进制数表示即可。
有符号数表达
对于有符号数,数字的最高位(最左端)是符号位,用 “0” 表示正数,用 “1” 表示负数。符号位之后的位才表示数值。例如 01010=+1010
符号位只有一位,如果计算时发现符号位出现进位现象,舍弃进位。
通常将用 “+”、“-” 表示正、负的二进制数称为符号数的真值,而把将符号和数值一起编码表示的二进制数称为机器数或机器码。
1. 原码
数值位和无符号数一样,再加上符号位,就得到了原码。整数的符号位加在数值位最高位的左端,小数的符号位在整数部分上。
如 +1101 的原码是 01101,−1101 的原码是 11101;+0.1011 的原码是 0.1011,−0.1011 的原码是 1.1011。
原码虽然表示简单,但计算较为不便。例如,9+(−3)=6,但在原码表示中,9+(−3)=(01001)2+(10011)2=(11100)2=−12,很明显是错误的!
2. 反码
相比原码,正数反码不变,而负数反码的数值位按位取反。如 +1101 的反码是 01101,而 −1101 的反码是 10010。
反码是解决原码带来的计算问题的一个过渡方案。这句话的意思是:它仍然有问题,比如反码仍然算不对上面的 9+(−3)。
3. 补码
相比原码,正数补码不变,而负数补码的数值位按位取反后还要加 1。如 −1101 的补码是 1(0010+1)=10011。
也可以这么看:对于负数,数值位从右到左(即最低位)数直到遇到第一个 1,这些位不变,之后的位取反,即 −1101=1(110) 反1=10011,−10110=1(101) 反10=101010
补码解决了原码和反码的计算问题,这次就算对了 9+(−3) 。计算机中的运算均采用补码形式。
码制
如果说数制表示数字,那么码制就表示信息。
BCD 码
BCD 码全称二 - 十进制 (Binary Coded Decimal) 码,通过四位二进制数对一位十进制数编码以传递信息。例如,对于十进制的 12,我们不是直接转换成 1100,而是对 1 和 2 分别进行 BCD 编码。
由于一位十进制数仅由 0 ~ 9 表示,但四位二进制数可以表示 24=16 种状态,于是每种 BCD 码仅取出其中 10 种作为有效编码,其余 6 种是无效编码(称为 “冗余码”)。
BCD 码有何好处?首先是转换方便。计算机只需要每四位二进制数按照映射表转换成一位十进制数,然后拼接即可得到完整的十进制数字,这比整体按权展开要容易得多。
其次,由于 BCD 按位编码,所以它可以精确表示十进制小数。如 0.1 在一种 BCD 码下表示为 0000.0001,但如果乘 2 取整就会得到一个无限循环小数 0.000110011001100...,计算机无法精确表示一个具有无限位的数,于是会出现精度问题。
本课主要学习 8421 码和余 3 码,2421 码仅作了解
1. 8421 码
8421 码是最常用的一种有权码。8421 码到十进制的转换和普通二进制数相同(按权展开),它们表示出来的 0 ~ 9 也完全相同。注意,1010 ~ 1111 是冗余码。
8421 码表示的二进制数字和其对应十进制数字字符的 ASCII 码的低四位相同,因此使用 8421 码可以简化 BCD 码与对应 ASCII 码的转换。
8421 码按位编码,如:
(258)10=(0010 0101 1000)8421 码
(0001 0001 0100 0101)8421=(1145)10
8421 码之间的计算:如果某一位的和 ≤ 9,且没有产生进位,无需调整;如果某一位的和 > 9,或者产生了进位(虽然和 ≤ 9 但向高位进了一位),则必须进行加 6 调整(即加上 0110)。和之后的余 3 码相比,8421 码的调整规则就多了一点。
17+18=0001 0111+0001 1000=0010 1111(进位 + 低四位和 > 9,需要调整)
调整:0010 1111+0000 0110=(0011 0101)8421 码=35
2. 2421 码
2421 码也是一种有权码,它的权是 2、4、2、1。0101 ~ 1010 是冗余码。
(258)10=(0010 1011 1110)2421 码
(0001 0001 0100 1011)2421 码=(1145)2421 码
3. 余 3 码
余 3 码是 8421 码加上 0011 形成的一种无权码,得名于其比 8421 码多 3,如 (5)10=(0101)8421 码+(0011)2=(1000) 余 3 码。0000、0001、0010、1101、1110、1111 是冗余码。
余 3 码是一种对 9 的自补代码,可以给运算带来方便。两个余 3 码相加的运算规则是:如果有进位,结果每四位加 3;如果没有进位,结果每四位减 3。注意将结果转换回十进制时使用的是余 3 码。
余 3 码同样按位编码。
(256)10=((0010)8421+(0011)2 (0101)8421+(0011)2 (0110)8421+(0011)2) 余 3 码=(0101 1000 1001) 余 3 码
(1000 1001 1001 1011) 余 3 码=(5668)10
计算:
13+67=0100 0110+1001 1010=1110 0000(进位,需要调整)
调整:1110 0000+0011 0011=(1011 0011) 余 3 码=80
几种 BCD 码的映射表:
十进制数字 |
8421 码 |
2421 码 |
余 3 码 |
备注 |
0 |
0000 |
0000 |
0011 |
|
1 |
0001 |
0001 |
0100 |
|
2 |
0010 |
0010 |
0101 |
|
3 |
0011 |
0011 |
0110 |
|
4 |
0100 |
0100 |
0111 |
|
5 |
0101 |
1011 |
1000 |
|
6 |
0110 |
1100 |
1001 |
|
7 |
0111 |
1101 |
1010 |
|
8 |
1000 |
1110 |
1011 |
|
9 |
1001 |
1111 |
1100 |
|
无效码 |
1010 - 1111 |
0101 - 1010 |
0000 - 0010 和 1101 - 1111 |
未使用的编码组合 |
可靠性编码
用于校验 / 纠错,提高信息传输的可靠性。
格雷码
格雷码的特点:任意两个相邻的数,其格雷码仅有一位不同。可以有效避免多位跳变,提高系统可靠性。
二进制码转格雷码:
设二进制码为 B=Bn−1Bn−2…Bi+1Bi…B1B0,对应格雷码为 G=Gn−1Gn−2…Gi+1+Gi…G1G0
有:
Gn−1=Bn−1(最高位相同)
Gi=Bi+1⊕Bi(其他位为高位二进制与当前位异或)
格雷码转二进制码:
逆向计算。二进制码的最高位(最左边)与格雷码的最高位相同。将产生的每一位二进制码,与下一位相邻的格雷码相加(舍去进位),作为二进制码的下一位。
奇偶校验码
奇偶校验码仅校验,不纠错(因为无法判断出错位置),只能检测奇数个 bit 错误。
-
奇校验
如果给定一组数据位中 1 的个数是奇数,补一个 bit(0 或 1)在最右方,使得总的 1 的个数是奇数。例:0000001, 补一个 bit 为 0, 得到 00000010。
-
偶校验
如果一组给定数据位中 1 的个数是奇数,补一个 bit(0 或 1)在最右方,使得总的 1 的个数是偶数。例:0000001, 补一个 bit 为 1, 得到 00000011。
reference: 奇偶校验位
逻辑代数基础
逻辑代数是逻辑电路的数学表达。
代数系统概述
逻辑变量以大写字母表示。逻辑变量的取值只有 “0” 和 “1” 两种可能
三大基本逻辑运算:
- 与 (AND)
- F=A⋅B
- 对应逻辑电路中的 “或门”
- 或 (OR)
- F=A+B
- 对应逻辑电路中的 “与门”
- 非 (NOT)
- F=A
- 对应逻辑电路中的 “非门”/“反相器”
在一个表达式中,如果既有与运算又有或运算,则按先与后或的规则进行运算。
“与” 也称 “逻辑乘”,只要有一个变量为假 (0),那么运算结果也为假,和一般乘法相同
“或” 也称 “逻辑加”,只要有一个变量为真 (1),那么运算结果也为真,和一般加法相似
五大公理:
-
交换律
-
结合律
-
分配律
- A+(B⋅C)=(A+B)⋅(A+C)
- A⋅(B+C)=A⋅B+A⋅C
- 0-1 律
- A+0=A,A⋅0=0
- A+1=1,A⋅1=A
- 互补律
- A+A=1,A⋅A=0
三种基本逻辑运算可以描述各种逻辑关系,对这些关系使用数学描述,即可得到逻辑函数。
F=f(A1,A2,...,An)
逻辑函数的取值同样是 “0” 或 “1”。如果对应于逻辑变量 A1,A2,...,An 的任意一组取值,逻辑函数 F1 和 F2 的取值均相等,则 F1=F2。
表示逻辑函数的方法,除了上面给出的逻辑表达式之外,还有真值表和卡诺图两种。
基本定理
由五大公理可推出八大定理:
-
0-1 律
-
重叠律(你,莫的选择)
- A+A=A,A⋅A=A
- 吸收律
- A+A⋅B=A,A⋅(A+B)=A
- 消除律
- A+A⋅B=A+B,A⋅(A+B)=A⋅B
- 对合律(双重否定表肯定)
- A=A
- 互补律
- A+B=A⋅B,A⋅B=A+B
- 并项律
- A⋅B+A⋅B=A,(A+B)⋅(A+B)=A
- 包含律
- A⋅B+A⋅C+B⋅C=A⋅B+A⋅C
- (A+B)⋅(A+C)⋅(B+C)=(A+B)⋅(A+C)
重要规则
三个重要规则:
- 代入规则
A(B+C)=AB+AC,令 C=C+D,则 A[B+(C+D)]=AB+A(C+D)
- 反演规则(摩根定理)
一切运算 “反过来”:“⋅” 和 “+” 互换,“0” 和 “1” 互换,原反变量互换,保持运算顺序不变。
F=A+B⋅(C+DE)→F=A⋅[B+C⋅(D+E)]
可以求反函数。
- 对偶规则
与反演规则相比,对偶规则不需要原反变量的互换。得到的是函数的对偶式 F′
F=A+B⋅(C+DE)→F′=A⋅[B+C⋅(D+E)]
如果 F=F′,则 F 为自对偶函数。
如果 F=G,则 F′=G′。
复合逻辑
- 与非逻辑
F=A⋅B⋅C⋅...
- 或非逻辑
F=A+B+C+...
- 与或非逻辑
F=AB+CD+...
- 异或逻辑
F=A⊕B=AB+AB
- 同或逻辑
F=A⊙B=AB+AB
同或和异或既互为相反,又互为对偶。由于同或可以由异或取反得到,因此实践中通常用异或实现同或。
逻辑函数表达式
基本形式
-
与 - 或表达式(积之和)
-
或 - 与表达式(和之积)
最小项和最大项
包含所有 n 个变量的与项,共有 2n 种组合。每个变量以原变量或反变量形式出现且仅出现一次,在 2n 种变量组合中,每个最小项仅在一种组合下为 1,其余均为 0
相同变量构成的不同最小项的与和必定为 0;全部最小项的或和必定为 1。
包含所有 n 个变量的或项,也有 2n 种组合。每个变量以原变量或反变量形式出现且仅出现一次,在 2n 种变量组合中,每个最大项仅在一种组合下为 0,其余均为 1
相同变量构成的不同最小项的或和必定为 1。
相同变量构成的最大项 Mi 和最小项 mi 互补,即 Mi=mi。
标准形式
用 mi 或 Mi 替代变量。
-
标准与 - 或(最小项)
-
标准或 - 与(最大项)
转化为标准形式
表达式化简
目标:项数最少,每一项中的变量也最少的表达形式
-
代数化简法
-
卡诺图化简法
卡诺图是一种图形化的逻辑函数化简方法,通过格雷码排列的方式将逻辑相邻的最小项放在物理相邻的位置。由于当变量大于 5 时难以构造,故一般只用到 4 变量
集成门电路(了解)
电平
逻辑值 0 和 1 在数字电路中体现就是电平。电平分为高电平和低电平。一般来讲,高电平对应 “1”,低电平对应 “0”。
正逻辑:高电平对应 “1”,低电平对应 “0”,现代的大部分接口使用正逻辑。
负逻辑:高电平对应 “0”,低电平对应 “1”,仅用于早期或特殊接口。
高低电平之间的差值越大,逻辑值 “1” 和 “0” 的在物理层面的区别越明显,电路工作越可靠。
电路不会一直稳定。为了应对电压波动,实际的高低电平判定有范围,如理想的低电平是 0V,实际可能 0.5V 也可以判定为低电平。
组合逻辑电路
输出仅取决于该时刻的输入,而与过去的输入值无关,没有反馈回路。
分析组合电路的步骤
- 确定电路的输入和输出
- 识别电路的输入变量(通常用 A、B、C 等表示)
- 确定电路的输出变量(通常用 Y、F 等表示)
- 从输入到输出逐级分析
- 从输入端开始,逐级向输出端分析
- 写出每个门电路的逻辑表达式
- 将各级表达式代入,得到最终的逻辑函数
- 化简逻辑函数
- 列出真值表
- 根据化简后的逻辑函数
- 列出所有输入组合对应的输出值
- 描述电路功能
- 根据真值表分析电路实现的逻辑功能
- 确定电路的应用场合