期末考试整理.pdf

判断题

看脸。


化简题

前置知识

根据电路图写出真值

电路名称 逻辑表示 图片
与门 F = AB image.png
或门 F = A + B + C image.png
非门 F = A̅ 期末考试整理 - 图3
与非门 期末考试整理 - 图4 image.png
或非门 期末考试整理 - 图6 image.png
异或门 期末考试整理 - 图8 image.png
同或门 期末考试整理 - 图10 image.png

循环码

循环码的特点有两个:

  • 任何相邻的两个码组中,仅有一位代码不同
  • 一组循环码除去最高位之后是对称的

循环码的构成演示如下:
期末考试整理 - 图12
简单来说就是低位进行对称,新增的最高位前半全是0,后半全是1,即可构成循环码。
衍生到四位就是:
image.png

公式化简

布尔代数定律

基本定律 期末考试整理 - 图14 期末考试整理 - 图15 期末考试整理 - 图16
期末考试整理 - 图17 期末考试整理 - 图18 期末考试整理 - 图19
期末考试整理 - 图20 期末考试整理 - 图21 期末考试整理 - 图22
结合律 期末考试整理 - 图23 期末考试整理 - 图24
交换律 期末考试整理 - 图25 期末考试整理 - 图26
分配率 期末考试整理 - 图27 期末考试整理 - 图28
摩根 期末考试整理 - 图29 期末考试整理 - 图30
吸收律 期末考试整理 - 图31
期末考试整理 - 图32
期末考试整理 - 图33
期末考试整理 - 图34

重点记住这里的吸收律。

布尔代数基本规则

  1. 代入规则

任何一个含有变量A的等式,如果将所有出现A的位置都代入同一个逻辑函数,则恒等式成立。
例如等式:
B(A+C)=BA+BC
现将所有出现A的地方都代入函数A+D,则有
B[(A+D)+C]=B(A+D)+BC=BA+BD+BC

  1. 反演规则

反演规则是用于求解一个逻辑函数F的非函数期末考试整理 - 图35
步骤如下:
将F表达式中的与**·**换成或**+**,或**+**换成与**·**
将原变量换成非变量,非变量换成原变量
③ 将逻辑1换成0,0换成1。

在替换的时候注意需要先与后或,也就是先把与运算转为或运算

例如:
期末考试整理 - 图36

注意:期末考试整理 - 图37期末考试整理 - 图38不等价,前者是AB一起取反,后者是分开取反之后再相乘。

  1. 对偶规则

某个逻辑恒等式成立的话,其对偶式也成立。
F是一个逻辑表达式,把F中的与·换成或+,或+换成与·;
1换成00换成1,所得的新的逻辑函数式叫F的对偶式,记为F'

在替换的时候注意需要先与后或,也就是先把与运算转为或运算

例如:
期末考试整理 - 图39
期末考试整理 - 图40

化简技巧

  1. 并项法

利用期末考试整理 - 图41 把两个项合并为一项,这样可以消去这个变量A,例如:
期末考试整理 - 图42

  1. 吸收法

利用期末考试整理 - 图43,消去多余项B,例如:
期末考试整理 - 图44

  1. 消去法

利用期末考试整理 - 图45消去多于项期末考试整理 - 图46,例如:
期末考试整理 - 图47

  1. 💡配项法

利用期末考试整理 - 图48,提出括号之后,就可以去消去更多的项,例如:
期末考试整理 - 图49

卡诺图化简

最小项

A, B, C 三个逻辑变量的最小项有23=8个,分别为:A’B’C’, A’B’C, A’BC’, A’BC, AB’C’, AB’C, ABC’, ABC 其中A’表示A的非,其余类推。
image.png

二进制编码的十进制表达就是符号表示的下标。

如何写出最小项

利用配项法。
例如:写出期末考试整理 - 图51的最小项表达式:
image.png

卡诺图的结构

image.png
image.png

注意:拿这里的00为例,不是代表A = 0,B = 0,而是在最小项中,最终A与B的结果为0,实际A、B的取值还是1。横纵坐标都是循环码。所以AB从上到下分别是:00 01 11 10,对应的就是二位循环码

卡诺图化简

  1. 不带有无关项

步骤如下:

  • 得到函数的真值表或将函数化为最小项之和的标准形式
  • 画出函数的卡诺图
  • 合并最小项(即“画圈”)
    1. 在最小项处标注1
    2. 1格一个也不能漏,否则表达式与函数不等
    3. 包围圈中的1必须是相邻连续的(矩形边界可以互通,也就是同一行最左边格子和最右边格子视为相邻,同理同一列最上边格子和最下边格子视为相邻
    4. 包围圈中1的数量只能是2n个,n一般等于0,1,2,3,4…
    5. 包围圈越大越好
    6. 包围圈可以互相重叠

举个例子:
![SSV}]OXB0GQC}W8`51CMEQ.png
首先画出卡诺图:
![Y3]%KQ8NU]1V``E6IAP4ZK.png
画圈:
image.png
这里一共四个包围圈:绿色(2个1) + 紫色(2个1) + 红色(4个1) + 黄色(4个1)

黄色是因为四个边角视为相邻。

最后根据包围圈进行合并,每个包围圈中留下**恒为1****恒为0**的项
例如在绿色包围圈中,D一直都是1,A和C一直都是0,所以绿色包围圈留下期末考试整理 - 图56
在黄色包围圈中,B和D一直都是0,所以黄色包围圈留下期末考试整理 - 图57
紫色包围圈中,B和D一直都是1,A一直都是0,所以紫色包围圈留下期末考试整理 - 图58
在红色包围圈中,A和C一直都是1,所以红色包围圈留下期末考试整理 - 图59
把以上四个包围圈相加可得:
期末考试整理 - 图60

  1. 带有无关项

与上面唯一的区别是无关项Φ可以被视作1用于连接原本不相邻的1,但是包围圈无需完全包围所有的无关项,仍然只需要包围1即可,此外的过程同上。
见书上P27页 例题19


分析题

电路分析

给出电路,画出波形

电路图如下:
image.png
输入波形如下
image.png
其中波形在上表示**1**,波形在下表示**0**,写出各个输出口对应的逻辑表达式即可,根据逻辑表达式和各项输入获取输出口在每一个时间间隔的输出:
image.png
例如这里的期末考试整理 - 图64,在第一个时间间隔中,A = 1,B = 0,X1应该为1,所以最终波形在上,后面的时间同理。

给出电路,写出电路表达式并化简

列写布尔表达式法
image.png
从左往右依次把布尔表达式写出可得:
期末考试整理 - 图66
由前面的基本定律等化简可得:
期末考试整理 - 图67

给出波形,分析电路逻辑关系或表达式

书上P59第8题(节省篇幅就不画图了)。
步骤如下:
① 写出所有F为1的时候,ABCD所在的状态,如果是1就表示为X,如果是0就表示为期末考试整理 - 图68
比如在第一次F = 1的时候,此时A=0,B=0,C=0,D=1,写作期末考试整理 - 图69
以此类推可得:
期末考试整理 - 图70
② 对F进行化简(优先找到相同项最多的表达式进行合并)
期末考试整理 - 图71

化简答案不唯一。

时序电路分析

前置知识

如下图所示:
image.png
期末考试整理 - 图73为上升沿触发的时钟信号;
期末考试整理 - 图74为下降沿触发的时钟信号;

  • SR触发器

SR触发器的示意图如下:
image.png
image.png
CLK是一个脉冲信号,其逻辑值会随着时间运算改变。
功能表如下:

输入 输出 说明
S R CLK 期末考试整理 - 图77 期末考试整理 - 图78
0 0 × 期末考试整理 - 图79 期末考试整理 - 图80 保持
0 1 0 1 置0
1 0 1 0 置1
1 1 不稳定

状态方程(也叫特征方程)为:
期末考试整理 - 图81

  • D触发器

D触发器的逻辑示意图如下:
image.png

这里CP后面的小圆圈代表:对时钟信号的负脉冲有效,也就是对下降沿敏感 上面的SR没有小圆圈,所以对上升沿敏感 小三角表示是将时钟信号转换成窄脉冲,使触发器按边沿方式工作。

其特性表如下:

输入 输出 说明
D CLK 期末考试整理 - 图83 期末考试整理 - 图84
1 1 0 置位(存1)
0 0 1 复位(存0)

特征方程为:
期末考试整理 - 图85

  • JK触发器

JK触发器逻辑示意图如下:
image.png
功能表如下:

输入 输出 说明
J K CLK 期末考试整理 - 图87 期末考试整理 - 图88
0 0 期末考试整理 - 图89 期末考试整理 - 图90 保持
0 1 0 1 置0
1 0 1 0 置1
1 1 期末考试整理 - 图91 期末考试整理 - 图92 交替

特征方程为:
期末考试整理 - 图93
JK触发器和D触发器还有强制输入端期末考试整理 - 图94期末考试整理 - 图95.

  • PRE的作用就是让触发器强置为**1**
  • CLR的作用就是让触发器强置为**0**

这两个强制输入信号都是低电平有效,并且不能同时作用,优先级高于JK输入信号。
两个强制输入信号也叫异步输入,一般都处于高电平状态。

  • 激励方程输出方程

激励方程:激励方程也叫作驱动方程,出现在多个触发器(锁存器)组成的时序电路当中,用于表示各个触发器的输入端的输入
输出方程:也就是整个电路中最终的输出结果。

分析同步时序电路功能

类似于下面的。

根据时序电路写状态方程和状态图

下图是一个由JK触发器构成的8位计数器:
image.png

详细可以参照书上P75页。

① 首先根据电路图写出J``K两个输入端的激励方程
期末考试整理 - 图97
② 由JK触发器的特征方程
期末考试整理 - 图98
写出电路的状态方程
期末考试整理 - 图99
③ 写出Q的真值表:

初始状态Q全为0,次态代入上述状态方程即可获得。

时钟个数 PS(现态) NS(次态)
Q2 Q1 Q0 Q2 Q1 Q0
1 0 0 0 0 0 1
2 0 0 1 0 1 0
3 0 1 0 0 1 1
4 0 1 1 1 0 0
5 1 0 0 1 0 1
6 1 0 1 1 1 0
7 1 1 0 1 1 1
8 1 1 1 0 0 0
9(循环) 0 0 0 0 0 1

时钟个数1时候的次态就是时钟个数2时候的现态。 这里记住:越在电路后面的触发器表示的二进制位数越高。 所以触发器表示的顺序是2,1,0

④ 这里输出方程比较简单,就是直接把三个输出端Q组合成一个二进制数即可,所以最终输出的状态图为:
image.png

建议画成圆形,这里实在不太好画所以画的方形。


应用题

设计电路

组合电路设计

例如:设计一个多数表决电路,以判断A、B、C三人中是否多数赞同
首先根据题意写出真值表
image.png
写出F输出为1的表达式:
image.png
所以F的表达式为:
期末考试整理 - 图103
最后根据表达式画出电路图即可。

画电路图的时候先确定所有的输入,这里就是A B C,然后从最后倒退门电路,比如这里F最后是由一个四或门组成的。

设计某个功能电路

同上

时序电路的设计

步骤:

  1. 确定输入输出变量建立原始状态表
  2. 对原始状态表进行简化
  3. 状态编码
  4. 由状态转移表建立最简单的激励函数和输出函数表达式
  5. 画出逻辑图

    时序电路例题

    使用与非门D触发器设计一个同步时序逻辑电路,以检测输入的信号是否为连续的1 1 0

① 首先需要确定有多少输入和输出,这里很明显,只有一个输入信号,输出也只有一个,也就是判断信号是否是连续的110,一般记录输入为x,最后的输出为Z
② 根据题意建立状态表
信号是一位一位输入的,总共需要三位进行判断,一位一位来:
期末考试整理 - 图104
从面可以看出,只有第二种情况Z可以输出1,其余情况都是0。一般来说这就代表了8种状态,但由于本题是连续形式判断,所以并不是三位三位分隔判断,可以出现以下情况:
image.png
前三位并不符合要求,但是2-4位符合。
③ 画出状态图
所以首先设立一个初始状态S1,代表空值,这种状态下有两种后续情况:x输入的是0,这已经不符合110的判断了,所以直接回滚到S1状态,如果x输入是1,那么进入到下一步进行继续判断,此时设立一个新的状态S2,同理于上,可以画出如下的状态图:
image.png

其中0/1表示的是,此时x输入为0,Z输出为1

以上会发现总共有三个状态,如果要用二进制编码表示这三种状态,至少需要2位,因为22 =4 >3。
这里就需要两个**D**触发器(题目提供的),输出端口称为y1y2。三个状态我们从小到大分别用y表示可得:期末考试整理 - 图107
④ 写出状态表
根据上面的状态方程和输入分析,我们知道,如果状态S1(二进制表示就是y1 = 0,y2 = 0)为现态:

  • x输入为**1**的时候,就会进入状态S2(二进制表示就是y2 = 1,y1 = 0),此时次态为**S****2**
  • x输入为**0**的时候,就会进入状态S1(二进制表示就是y2 = 0,y1 = 0),此时次态为**S****1**

于是可以以此类推上面三种状态的互相转换,每个状态对应两个输入,也就是有6种情况:

输入条件C 现态PS 次态NS 激励 输出
x y**2 y1** y**2n+1 y1**n+1 D**2 D1** Z
0 0 0 0 0 0 0 0
1 0 0 1 0 1 0 0
0 1 0 0 0 0 0 0
1 1 0 1 1 1 1 0
0 1 1 0 0 0 0 1
1 1 1 1 1 1 1 0

这里的激励是由于D触发器特征方程得来的,D = yn+1

⑤ 写出D的激励函数
这里的做法是画卡诺图

  • 取y**2n+1恒为`1`的情况 | X\y2y**1 | 0 0 | 0 1 | 1 1 | 1 0 | | —- | —- | —- | —- | —- | | 0 | | | | | | 1 | 1 | | 1 | 1 |

对卡诺图化简可得期末考试整理 - 图108

这里写成的形式是因为题目只提供了与门和非门

  • 取y**1n+1恒为`1`的情况 | X\y2y**1 | 0 0 | 0 1 | 1 1 | 1 0 | | —- | —- | —- | —- | —- | | 0 | | | | | | 1 |
    | | 1 | 1 |

对卡诺图化简可得期末考试整理 - 图109
⑥ 写出输出函数,也就是当y2 = 1,y1 = 1的时候,也就是处于状态S3的时候,此时x输入为0,Z输出为1,那么也就是:期末考试整理 - 图110
⑦ 最后根据以上的状态转换方程等,画出逻辑图(P96页 图3.54)(这真教不了,家人们自求多福吧)

注意:由于是同步时序电路,所以一定要加上一个CLK连接各个触发器

VHDL

VHDL设计

  • 逻辑操作符号 | AND | OR | NOT | NAND | NOR | XOR | XNOR | | —- | —- | —- | —- | —- | —- | —- | | 与操作 | 或操作 | 非操作 | 与非操作 | 或非操作 | 异或 | 同或 |

  • 头文件定义

    1. //定义头文件
    2. LIBRARY IEEE;
    3. USE IEEE.STD_LOGIC_1164.ALL;
  • 实体定义

    1. ENTITY [实体名称] IS // 开始实体定义
    2. PORT([输入端口名称];IN bit;[输出端口名称];OUT bit); // 定义实体中的输入输出端口
    3. END ENITITY [实体名称]; // 结束实体定义

    实体名称不可以是保留字,详情参见书上P152

  • 结构体

    1. ARCHITECTURE [结构体名称] OF [结构体对应的实体] IS
    2. BEGIN // 开始定义标志
    3. [结构体实际内容]
    4. END ARCHITECTURE [结构体名称]; // 结束定义标志
  • 调用组件(元件) ``` ARCHITECTURE [结构体名称] OF [结构体对应的实体] IS

    COMPONENT [元件/组件名称] IS

    1. PORT([输入端口名称];IN bit;[输出端口名称];OUT bit); // 定义y元件中的输入输出端口

    END COMPONENT; SIGNAL [信号输入端口描述]

    BEGIN G1:[元件/组件名称] PORT MAP([组件输入输出功能描述]); // 其中G1作为标识符号,可任意取

END ARCHITECTURE [结构体名称]; // 结束定义标志 ```

例题参见书上P156页 例8

结构体相关

在VHDL程序中, 结构体能包含若干个流程,用于描述系统内部的结构和行为,与顺序无关,可以并行运行 。