二进制乘除法
二进制乘法:$N$ 进制的乘法本质上就是移位加法。
例如十进制:$1213 = 12 3 + 12 (1\ll1) = 12 3 + 12 * 10 = 36 + 120 = 146$
二进制同理:
$$
\begin{align}
& 1010 * 1101 \
&= (1010 \ll 3) + (1010 \ll 2) + (1010 \ll 0)\
&= 101\ 0000 + 10\ 1000 + 1010 \
&= 1000\ 0010\
\end{align}
$$
二进制除法 加减交替法,详见:http://courseware.eduwest.com/courseware/0013/content/0002/030003.htm
BCD 码
8421 码:利用 8,4,2,1 的权值对每位数进行编码。
例如 $7 = 4 + 2 + 1$ ,编码为 $0111$
例如 $13$ 编码为 $0001\ 0011$。(而不是 $1101$)
8421 码的加法
8421 码进行加法,如果:
- 结果小于 9 则正确。
- 结果大于 9 则错误,需要加 6 修正。
为啥是加 6 修正呢?怎么不是加 5 ?
考虑 $16$ 的十六进制表示:$0001\ 0000$
再考虑 $16$ 的 BCD 表示:$0001\ 0110$
可以发现,当产生进位时,是按照十六进制的规则演算的,而 BCD 是十进制的进位规则,因此需要加 $6$ 从而修正为 BCD 码。对于不是 16 的其它数字,进位(即结果大于等于 10)的时候都需要加 6 修正。这可以通过穷举证明。
格雷码
格雷码的表示范围:$[0,15]$
格雷码的特点:相邻整数之间的格雷码只有一位变化。
格雷码的构造方法:
- $0$ 的格雷码是 $0000$
- 最低位取反得到下一个格雷码。$1: 0001$
- 最右边的 $1$ 左边的位取反得到下一个格雷码 $2: 0011$
- 交替 2,3 两个规则可生成接下来的格雷码。
二进制转格雷码的方法
例如 $0111$,从左往右下标记作 $0, 1, 2, \cdots$
- $g_0 = b_0$
- $gi = b{i} \oplus b_{i-1}$
生成过程:
- $\underbrace{0}_{0}111$
- $\underbrace{01}_{1}11$
- $0\underbrace{11}_{0}1$
- $01\underbrace{11}_{0}$
所以格雷码是 $0100$
格雷码转二进制的方法: 实际上是上述的逆运算
例如:$1011$
- $b_0 = g_0$
- $b_i = gi \oplus b{i-1}$
得到结果:$1101$
循环冗余校验(CRC)
CRC 生成原理:https://www.bilibili.com/video/BV1V4411Z7VA
检验原理:
逻辑门
与门:
或门:
非门:
与非门:
或非门:
异或门:
同或门:
三态门:
布尔代数系统
基本代数定律:
- 交换
- 结合
- 分配
运算法则:
- $A+0=A$
- $A+1=1$
- $A \cdot 0=0$
- $A \cdot 1=A$
- $A+A=A$
- $A+\bar{A}=1$
- $A \cdot A=A$
- $A \cdot \bar{A}=0$
- $\bar{\bar{A}}=A$
- $A+A B=A$
- $A+\bar{A} B=A+B$
- $(A+B)(A+C)=A+B C$
德摩根律:
- \bar{XY} = \bar{X} + \bar{Y}
- $\bar{X+Y} = \bar{X}\bar{Y}$
布尔表达式
- SOP 形式(乘积项之和,析取范式)
- 最小项之和形式(主析取范式):利用的是布尔表达式可穷举
- POS 形式(和项的乘积,或与表达式,合取范式)
- 最大项之积形式(主合取范式)
与非门用作通用件
或非门用作通用件
半加器和全加器
半加器计算两数之和。全加器计算三数之和。输出的是本位和进位。
并行二进制加法器
通过若干进位级联的全加器级联一个半加器,可以得到这种加法器。缺点是进位需要一级一级传输。
超前进位加法器
原理:
首先看普通的并行加法器(如图),其进位输出表达式如下:
全加器 1 :
$$
C{\text {out } 1}=C{\mathrm{g} 1}+C{\mathrm{pl}} C{\text {in } 1}
$$
全加器 2 :
$$
\begin{aligned}
C{\mathrm{in} 2} &=C{\text {out } 1} \
C{\text {out } 2} &=C{\mathrm{g} 2}+C{\mathrm{p} 2} C{\text {in2 }}=C{\mathrm{g} 2}+C{\mathrm{p} 2} C{\text {out } 1}=C{\mathrm{g} 2}+C{\mathrm{p} 2}\left(C{\mathrm{g} 1}+C{\mathrm{pl}} C{\text {in1 }}\right) \
&=C{\mathrm{g} 2}+C{\mathrm{p} 2} C{\mathrm{g} 1}+C{\mathrm{p} 2} C{\mathrm{pl}} C{\text {in } 1}
\end{aligned}
$$
全加器 3:
$$
\begin{aligned}
C{\mathrm{in} 3} &=C{\text {out } 2} \
C{\text {out } 3} &=C{\mathrm{g} 3}+C{\mathrm{p} 3} C{\text {in } 3}=C{\mathrm{g} 3}+C{\mathrm{p} 3} C{\text {out } 2}=C{\mathrm{g} 3}+C{\mathrm{p} 3}\left(C{\mathrm{g} 2}+C{\mathrm{p} 2} C{\mathrm{g} 1}+C{\mathrm{p} 2} C{\mathrm{pl}} C{\text {in1 }}\right) \
&=C{\mathrm{g} 3}+C{\mathrm{p} 3} C{\mathrm{g} 2}+C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{g} 1}+C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{pl}} C{\text {inl }}
\end{aligned}
$$
全加器 4:
$$
C{\text {in4 }}=C{\text {out } 3}
$$
$$
\begin{aligned}
C{\text {out } 4} &=C{\mathrm{g} 4}+C{\mathrm{p} 4} C{\text {in } 4}=C{\mathrm{g} 4}+C{\mathrm{p} 4} C{\text {out } 3} \
&=C{\mathrm{g} 4}+C{\mathrm{p} 4}\left(C{\mathrm{g} 3}+C{\mathrm{p} 3} C{\mathrm{g} 2}+C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{gl}}+C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{pl}} C{\text {in1 }}\right) \
&=C{\mathrm{g} 4}+C{\mathrm{p} 4} C{\mathrm{g} 3}+C{\mathrm{p} 4} C{\mathrm{p} 3} C{\mathrm{g} 2}+C{\mathrm{p} 4} C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{g} 1}+C{\mathrm{p} 4} C{\mathrm{p} 3} C{\mathrm{p} 2} C{\mathrm{pl}} C_{\text {in } 1}
\end{aligned}
$$
观察之后就能发现,进位输出只和 $C{\text {in } 1}, C{\mathrm{p} 1}, C{\mathrm{p} 2}, \cdots$ 有关,展开 $C{\mathrm{p} 1}, C_{\mathrm{p} 2}, \cdots$ 又都只和输入的 $A_1, A_2, \cdots , B_1, B_2,\cdots$ 有关
所以可以根据这些表达式设计电路,直接接到各个 $C_{\text {in }$ 端口上,从而实现超前进位。比如这样:
比较器
比较器是这样子的:
用法大家应该秒懂。
四位比较器比较两个八位二进制数
触发器
RS 触发器
注意:默认是低有效!
状态方程:
$Q = S' + RQ$
$S + R = 1$
对于高有效 RS 触发器:
$Q = S + R' Q$
$S \cdot R = 0$
触发条件:
输入变化
D 触发器
D 锁存器
状态方程:
$Q = D$
触发条件:
使能端有效,输入信号。
“空翻”现象在锁存器普遍存在。解决方法是改为边沿触发。
D 寄存器
触发条件:
处于上升沿,输入信号。
下降沿 JK 寄存器
状态方程:
$Q = JQ' + K'Q$
触发条件:
下降沿,J = 1 置 1,K = 1 置 0. J = K = 0,维持状态。J = K = 1,翻转。
上升沿 T 触发器
相当于 JK 的两个输入端合并,并改成上升沿触发。
状态方程:
$Q = T!Q + !TQ = T \circ + Q$
触发条件:
上升沿,T = 0 维持,T = 1 翻转。
例题
常识问题
【例子】 八路数据分配器,数据输入端有多少个?
【分析与解答】 数据端只有一个。(三个地址端,一个使能端,八个输出端)
【例子】 $\odot$ 是啥玩意儿?
同或,又叫异或非。$F = AB + A'B'$
moore型状态机和mealy型状态机的区别
moore 的输出只和当前状态有关。
mealy 的输出和当前状态和输入都有关。
布尔代数公式
01 律:$A \cdot 1 = A, a \cdot 0 = 0$ $A + 0 = A, A + 1 = 1$
交换律,结合律,分配律,互补律,还原律
重叠率:$A \cdot A = A, A + A = A$
反演(德摩根)律: $\bar{AB} = \bar{A} + \bar{B}$, $\bar{A+B} = \bar{A} \cdot \bar{B}$
常用公式:
- $AB + AB' = A$ (并项)
- $A+AB = A$ (吸收)
- $A + A'B = A + B$ (消因子) (证明方法:利用 $(A+A')(A+B) = A+B$
- $AB + A'C + BC = AB + A'C$ (消项) (证明方法:展开 BC)
【例子】 $E \operatorname{and} E = ?$
【分析与解答】 考察的是数字逻辑化简公式的重叠率. $A \cdot A = A$
【例子】 用德摩根律求反函数之于 $F = A(B'+(C'D+E'G))$
【分析与解答】 肯定是 $A'$ 打头,直接排除 BC。
最小项和最大项的性质
上图来自:http://www.qacn.net/viewchapter.aspx?topicid=7&chapterid=164
【例子】 对于一个逻辑函数,其任意两个最小项的与为,所有最大项的与为。
任意两个最小项,相当于二进制序列穷举情况的任意两个,对于一种取值,只能使得一个为 1. 所以与为 0.
最大项就是合取范式的项,一种取值里面只有一个最大项是 0,所以所有最大项的与最后要乘以0,还是 0.
【例子】 $F = \Sigma _m(1,2,3), G = \Pi _M(1,2,3)$,则 $F, G$ 的关系是?
【分析与解答】 互补的。原因看上边的图。
【例子】 求 $F = A'B + BC + AB'C'$ 的标准与或表达式。
【分析与解答】
A'B => 01X => 2, 3
BC => X11 => 3, 7
AB'C' => 100 => 4
所以是 $\Sigma _m(2,3,4,7)$
竞争和冒险
竞争就是信号的各个输出端口不是同时输出。
冒险就是电路短暂错误输出(毛刺)
如何判断静态冒险
- 功能冒险:只要输入信号不是按照循环码的规律变化,组合逻辑就可能产生功能冒险,且不能通过修改设计加以消除,只能通过对输出采用时钟采样来消除。
- 逻辑冒险:在某种情况出现
- $F = A + A'$ ,则有“0”冒险
- $F = A \cdot A'$,则有“1”冒险。
如何消除冒险
- 冗余项法
- 选通法:只选择稳定期间的值
- 滤波电容:减小毛刺(影响输出波形)
下面着重说说冗余项法:
$F = \bar{A}D + \bar{A}C + AB \bar{C}$
当 $BCD = 101$ 时:
$F = \bar{A} + A$,出现 “0” 冒险。
增加一个 $B\bar{C}D$ 冗余项,可消除冒险。
为什么冗余项可以消除冒险?
上面的例子,如果不加冗余项,那么输出 $F = 0$,是所谓 $0$ 冒险的叫法来源,体现在输出上就是一个朝下的毛刺,那么我们让它等于 $1$,这毛刺就没啦,所以加个冗余项,输出 $F = 1$,消除了冒险。
体现在卡诺图上,冒险就是相切项:
增加冗余项使得不相切:
【例子】 4.对于功能冒险,在下面几种说法中,只有_D_是正确的。
- A)只有一个变量发生变化时,会发生功能冒险。
- B)可以通过增加冗余项的方法,消除功能冒险。
- C)输入变量发生变化,发生了功能冒险,变化前后的输出逻辑值不同。
- D)可以通过增加选通脉冲消除功能冒险的影响。
【分析与解答】
- A. 功能冒险通过循环码(只变一个输入)消除,A 说反了。
- B. 那是消除逻辑冒险
- C. 不一定啊
- D. 选通法,没毛病。
TTL 和 CMOS 逻辑电路的区别
- TTL 高电平(一般5V)范围比 CMOS(一般12V) 小(当然,CM0S 也有很多 3.5V)
- TTL 输入悬空则为高电平。CMOS 输入端不可悬空,考试考到了就当是低电平。
- TTl 是双极性,功耗大,集成度低,但是速度快。CMOS 是单极性,功耗低,集成度高,速度慢。
http://www.360doc.com/content/18/0916/09/908538_787051226.shtml
由于功耗等原因,现在 CPU 都是 CMOS 的。
扇入系数和扇出系数
扇入系数:门电路允许的输入端数目。vice versa.
【例子】 _D_系数反映了逻辑门的带负载能力,是指一个逻辑门能够驱动同类型门的个数。
A)输入
B)输出
c)扇入
D)扇出
用简单集成芯片实现组合逻辑
【例子】 问下面实现了个啥函数:
A) $\Sigma _m (m(1,3,4))$
B) $\Sigma _m (m(1,3,4,6))$
C) $\Sigma _m (m(0,2,5,7))$
D) 以上都不对
【分析与解答】 首先排除 D。
然后我们看,输出是 $(1F1' \cdot 1F3' \cdot 2F0' \cdot 2F2') ' = 1F1 + 1F3 + 2F0 + 2F2$ (德摩根)
当 $A = 0$ 时,有效的是第二组的 $F_0, F_2$,对应 $BC = 00, 10$。
当 $A = 1$ 时,有效的时第一组的 $F_1, F_3$,对应 $BC = 01, 11$。
所以输出是 $000, 010, 101, 111$,十进制的 $0,2, 5, 7$,选 C.
各种 FF 的状态方程
【例子】 这俩干嘛的:
【分析与解答】 第一个看到 $CP$ 有非门,说明是下降沿触发的 JKFF。
$$
Q &= Q'Q' + AQ\
&=Q' + AQ \text{重叠律}\
&=Q'+A
$$
第二个是上升沿触发的 TFF。
$$
Q &= (AT)Q' + (AT)'Q \
&= (AQ')Q' + (AQ')'Q\
&= AQ' + (AQ')'Q \text{重叠律} \
&= AQ' + (A'+ Q) Q \text{反演律}\
&= AQ' + A'Q + Q \text{分配律}\
&= AQ' + Q \text{吸收律}\
&= A + Q' \text{消因子}
$$
选 A.
用卡诺图判断函数关系
首先明确有哪些关系,一般是蕴含,互补,相等,等等。(集合间关系)
【例子】 用卡诺图判断 $F = AB + BC + AC$ 与 $G = \bar{A}\bar{B} + \bar{B} \bar{C} + \bar{A} \bar{C}$ 关系。
用通用门实现逻辑函数
NAND
【例子】 用 NAND 门,实现 $F = ABC+ABC+BCD+BC$
【分析与解答】
hi~
请问我可以获取一份md格式的笔记吗?
我的QQ:914451417,邮箱lyle@hdu.edu.cn。
非常感谢!
已发,请您注意查收
已查收,谢谢啦!