SchoolWork-LaTeX/数字逻辑及实验/作业/第五章作业.tex

263 lines
15 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[全部作业]{subfiles}
\fancyhead{}
\fancyhead[C]{\mysignature}
% 1、2、10、11、3、4、7、8、13
\setcounter{chapter}{4}
\begin{document}
\renewcommand{\bar}{\xoverline}
\chapter{异步时序电路}
\begin{enumerate}
\columnseprule=0.5pt
\item 分析下图所示电路。
\begin{enumerate}
\item 写出状态流程表,画出状态转换图。
\item 假定系统初始状态为$Y_1=0$,画出下图所示输入波形对应的输出波形,并据此分析电路功能。
\end{enumerate}
\includegraphics[width=1\linewidth]{imgs/2023-12-24-15-02-47.png}
\begin{multicols}{2}
\begin{zhongwen}
\noindent
先写出激励方程和输出方程:
$$
\begin{aligned}
&Y_1=\overline{\overline{x_1\ \overline{x_2}}\ \overline{x_2\ y_1}}=x_1 \overline{x_2}+x_2y_1\\
&Y_2=\overline{y_1}\ x_1\ x_2\\
&z=Y_2\\
\end{aligned}
$$
再写出状态流程表:
\includexopp{5.1.1}
$x_1x_2y_1y_2$作为系统总态,画出状态转换图:
\includexopp{5.1.2}
再画出波形图:
\includexopp{5.1.3}
于是可以分析出功能为:当$x_2$$x_1$之前先变为1时输出$x_1x_2$否则输出0。
\end{zhongwen}
\end{multicols}
\item 分析下图所示电路。
\begin{enumerate}
\item 写出状态流程表,画出状态转换图。
\item 假定系统初始状态为$Y_1Y_2=00$,画出在下图所示输入波形下的输出波形,并据此分析电路功能。
\end{enumerate}
\includegraphics[width=1\linewidth]{imgs/2023-12-24-16-04-57.png}
\begin{multicols}{2}
\begin{zhongwen}
\noindent
先写出激励方程和输出方程:
$$
\begin{aligned}
&Y_1=\overline{\overline{y_1\ y_2}\ \overline{y_1\ x_1}\ \overline{y_2\ x_2}}=y_1y_2+y_1x_1+y_2x_2 \\
&Y_2=\overline{\overline{y_2\ x_2}\ \overline{\overline{y_1}\ y_2}\ \overline{\overline{y_1}\ \overline{x_2}}}=y_2x_2+\bar{y_1}y_2+\bar{y_1}x_1\bar{x_2} \\
&z=y_1y_2x_2 \\
\end{aligned}
$$
再写出状态流程表:
\includexopp{5.2.1}
$x_1x_2y_1y_2$作为系统总态,画出状态转换图:
\includexopp{5.2.2}
再画出波形图:
\includexopp{5.2.3}
于是可以分析出功能为:当$x_1$为0时输出为0$x_1$出现上升沿后,输出$x_2$的第一个脉冲(如果$x_1$$x_2$的脉冲期间上升,则输出当前脉冲)。
\end{zhongwen}
\end{multicols}
\pagebreak[4]
\item 设计一个基本型异步时序电路,输入$x_1$$x_2$,输出$z$。如果输入变量个数按二进制增加则输出为1反之输出为0.所谓按二进制增加是指$x_1x_2=00\to 10\to 11$$00\to 10\to 11$
\begin{multicols}{2}
\begin{zhongwen}
\noindent
$S_0,S_1,S_2,S_3$表示系统状态,画出状态转换图:
\includexopp{5.3.1}
图中的$S_1$$S_2$状态的输出为1$S_0$$S_3$状态的输出为0。
再写出状态流程表:
\includexopp{5.3.2}
显然状态已经最简了,无法合并了。
之后分配状态,根据输出,$S_1,S_2$应该相邻,$S_0,S_3$应该相邻。
为了避免竞争,$S_0,S_1$应该相邻,$S_2,S_3$应该相邻。
因此可以分配$S_0=00,S_1=01,S_2=11,S_3=10$
重新写出状态流程表:
\includexopp{5.3.3}
据此分别画出$Y_1,Y_2,z$的卡诺图:
\includexopp{5.3.4}
检查任意项,不会发生临界竞争。\\
于是可以得到激励方程和输出方程:
$$
\begin{aligned}
&Y_1=y_1x_1+y_1x_2+x_1x_2=\overline{\overline{x_1y_1}\ \overline{x_2y_1}\ \overline{x_1x_2}} \\
&Y_2=\bar{y_1}x_1+\bar{y_1}x_2+x_1x_2 = \overline{\overline{\bar{y_1}x_1}\ \overline{\bar{y_1}x_2}\ \overline{x_1x_2}} \\
&z=y_2 \\
\end{aligned}
$$
则可以画出逻辑电路图:
\includexopp{5.3.5}
\end{zhongwen}
\end{multicols}
\pagebreak[4]
\item 设计一个单脉冲发生器,两个输入为$x_1$$x_2$,输出$z$,其中$x_1$为连续的脉冲信号,$x_2$为一个开关信号,要求当$x_2$从高跳变到低后,$z$输出一个完整的$x_1$脉冲,并只有在输出$z$变低以后,$x_2$才能再次由低到高,其波形如下图所示。
\begin{center}
\noindent
\includegraphics[width=0.8\linewidth]{imgs/2023-12-24-20-23-25.png}
\end{center}
\begin{zhongwen}
\begin{multicols}{2}
“并只有在输出$z$变低以后,$x_2$才能再次由低到高”这句话是根据输出限制输入?那也就是说只是限制输入的变化的情况的,用来简化题目的。
根据波形图可以划分出5个状态\\
$S_0$:初始状态,$x_2$为0$z$保持0\\
$S_1$$x_2$变为1$z$仍然为0\\
$S_2$$x_2$$x_1$为1时从1变0当前脉冲不能算等待下一个$x_1$的脉冲;\\
$S_3$$x_2$$x_1$都是0下一个$x_1$上升沿即可将$z$置为1\\
$S_4$$x_2$从1变0后$x_1$的首个脉冲期间,$z$为1。\\
直接画出状态流程表:
\includexopp{5.4.1}
根据隐含表查看状态是否可以化简:
\includexopp[1.5]{5.4.2}
可以发现$S_1$$S_2$等价(对啊,之前怎么没想到呢,$S_1$$S_2$都是等待转换到$S_3$的状态,也就是说要转换到$S_3$必须要输入为00因此状态可以合并。
接下来分配状态,根据输出,$S_0,\{ S_1,S_2 \},S_3$应该相邻;为了避免竞争,$\{ S_1,S_2 \},S_3$应该相邻,$S_4,S_0$应该相邻,$S_3,S_4$应该相邻。
因此可以分配$S_0=00,\{ S_1,S_2 \}=01,S_3=11,S_4=10$。重新写出状态流程表:
\includexopp{5.4.3}
据此分别画出$Y_1,Y_2,z$的卡诺图:
\includexopp{5.4.4}
检查任意项,不会发生临界竞争。
于是可以得到激励方程和输出方程:
$$
\begin{aligned}
&Y_1=y_2 \bar{x_1} \bar{x_2}+y_1 x_1 \bar{x_2}=\overline{\overline{y_2 \bar{x_1} \bar{x_2}}\ \overline{y_1x_1 \bar{x_2}}} \\
&Y_2=x_2+y_2 \bar{x_1}+ \bar{y_1}y_2 = \overline{\bar{x_2}\ \overline{y_2 \bar{x_1}}\ \overline{\bar{y_1} y_2}}\\
&z=y_1 \bar{y_2} \\
\end{aligned}
$$
则可以画出逻辑电路图:
\end{multicols}
\includexopp[1.5]{5.4.5}
\end{zhongwen}
\item[7.] 试用基本型异步时序电路的设计方法设计一个负边沿触发的D触发器要求写出详细的设计过程。提示将时钟$CP$与激励$D$作为异步电路的两个输入。
\begin{zhongwen}
首先考虑状态如何设计输出为1和输出为0肯定是两个不同的状态那么先假设就这两个状态。之后考虑状态如何转换输出为0到输出为1的条件是$D$为1并且$CP$下降沿。如果将输入状态用$D$$CP$表示那么就是从11变化到10的时候。那么在状态流程表上就是这样的。
\includexopp[1.5]{5.7.1}
可以看到对于状态A从11变成10的时候$CP$下降沿的时候$D$为1要改变状态到B但是从00到10的时候$CP$不是下降沿不改变状态同理对于状态B从01变成00的时候$CP$下降沿的时候$D$为0要改变状态到A但是从10到00的时候$CP$不是下降沿)不改变状态。
但是一个系统总态只能对应一个激励状态也就是状态流程表中一个格子只能填一个状态因此这就需要拆分状态。将A拆分为$A_1,A_2$,其中$A_1$表示不改变状态的情况,$A_2$表示要改变到B的情况同理将B拆分为$B_1,B_2$,其中$B_1$表示不改变状态的情况,$B_2$表示要改变到A的情况。即可得到状态流程表如下
\includexopp[1.5]{5.7.2}
图中的稳定状态已经圈出。可以注意到:系统总态为$11A_1$的格子的激励状态为$A_2$,不是稳定状态,因此这也就避免了系统总态从$11A_1$$10A_1$的情况,所以$10A_1$的激励状态就可以填入$A_1$了,同理系统总态为$00A_2$的格子的激励状态为$A_1$,这也不是稳定状态,这也就避免了系统总态从$00A_2$$10A_2$的情况,所以$10A_2$的激励状态就可以填入$B$了($B_1$$B_2$均可)。因此这样就解决了拆分前无法填入的问题。
另外还可以注意到系统总态为$01A_1$$01A_2$的这两个格子只填了A代表着填入$A_1$$A_2$均可,因为这里填$A_1$还是$A_2$不会影响输出也不会影响接下来的状态转换。
之后根据状态相邻的关系分配状态避免竞争。观察从不稳定状态转化到稳定状态的过程,可以看到$A_1A_2$应该相邻,$B_1B_2$应该相邻。因此可以分配状态如下:$A_1: 00, A_2: 01, B_1: 11, B_2:00$。之后可以得到新的状态流程表:
\includexopp[1.5]{5.7.3}
其中,系统总态($D,CP,y_1,y_2$)为$1001$的格子虽然只要填入B对应的状态就可以了也就是1d但是为了防止竞争的产生这是填入了11同理系统总态为$0010$的格子也填入了00而不是0d。
于是可以画出$Y_1,Y_2,z$的卡诺图:
\includexopp[0.9]{5.7.4}\\
要注意防止卡诺圈相切造成冒险。
于是可以得到激励方程和输出方程(这里就不化成与非的形式了,电路图中直接使用与非门即可):
$$
\begin{aligned}
&Y_1=y_1y_2+y_1CP+y_1D+y_2D \bar{CP} \\
&Y_2=\bar{y_1}CP+y_1y_2 \bar{CP}+\bar{y_1}y_2D+y_1D \bar{CP}+y_2D \bar{CP} \\
&z=y_1 \\
\end{aligned}
$$
则可以画出逻辑电路图:
\includexopp[1.5]{5.7.5}
\end{zhongwen}
\pagebreak[1]
\item[8.] 试用基本型异步时序电路的设计方法设计一个正边沿触发的JK触发器要求写出详细的设计过程。提示将时钟$CP$与激励$J$$K$作为异步电路的3个输入。
\begin{multicols}{2}
\begin{zhongwen}
\noindent
同样用上题的做法,先画出未拆分状态的状态流程表:
\includexopp{5.8.1}
拆分状态后的状态流程表:
\includexopp{5.8.2}
分配状态后:
\includexopp{5.8.3}
$Y_1,Y_2$的卡诺图($z=y_1$,不用画了):
\includexopp{5.8.4}
激励方程与输出方程:\\
$Y_1=y_1 \bar{y_2}+ y_1 \bar{K}+ \bar{y_2} J\ CP + y_1K \bar{CP}$ \\
$Y_2=y_1K \bar{CP} + y_1y_2K+y_2K\ CP+\bar{y_1}y_2\ CP+\bar{y_1} \bar{J}\ CP$ \\
$z=y_1$ \\
逻辑电路图:
\includexopp{5.8.5}
\end{zhongwen}
\end{multicols}
\pagebreak[4]
\item[10.] 分析在下面的状态流程表中是否存在临界竞争。若存在则试用最简单的方法消除之。\\
\includegraphics[width=1\linewidth]{imgs/2023-12-27-20-54-39.png}
\begin{multicols}{2}
\begin{zhongwen}
\includexopp{5.10.1}
可以看到存在临界竞争。当系统总态(用$x_1x_2y_1y_2$表示为0111时和1100时会发生临界竞争。可以直接改变对应位置的激励状态来消除临界竞争
\includexopp{5.10.2}
\end{zhongwen}
\end{multicols}
\item[11.] 试分析下图电路的可靠性,并在不改变电路逻辑功能的前提下修改电路,以确保工作稳定。
\begin{center}
\includegraphics[width=0.5\linewidth]{imgs/2023-12-27-21-09-40.png}
\end{center}
\begin{multicols}{2}
\begin{zhongwen}
首先写出激励方程和输出方程(好像输出就是激励)。
$$
\begin{aligned}
Y_1&=\overline{\overline{y_1\ \overline{x_1}}\ \overline{x_1\ y_2}}=y_1 \bar{x_1}+x_1y_2 \\
Y_2&=\overline{\overline{x_1\ y_2}\ \overline{y_1x_2 \bar{x_1}}\ \overline{y_1x_1 \bar{x_2}}\ \overline{\bar{x_1} \bar{x_2} \bar{y_1}}} \\
&= x_1y_2+y_1x_2 \bar{x_1}+y_1x_1 \bar{x_2}+\bar{x_1} \bar{x_2} \bar{y_1} \\
\end{aligned}
$$
之后写出状态流程表:
\includexopp{5.11.1}
$Y_1$应增加冗余项 $y_1y_2$$Y_2$应增加冗余项$y_1y_2x_2$\\
消除临界竞争,$Y_1$需要再增加一项$y_1x_1 \bar{x_2}$
$Y_1=y_1 \bar{x_1}+x_1y_2+y_1y_2+y_1x_1 \bar{x_2}$ \\
$Y_2=x_1y_2+y_1x_2\bar{x_1}+y_1x_1 \bar{x_2}+ \bar{x_1} \bar{x_2} \bar{y_1} + y_1y_2x_2$ \\
逻辑电路图修改为:
\includexopp{5.11.2}
\end{zhongwen}
\end{multicols}
\item[13.] 试用$D$触发器设计一个13进制异步计数器。
\begin{multicols}{2}
\begin{zhongwen}
$x$作为输入,$y_0,y_1,y_2,y_3$作为从低位到高位的输出,画出时序波形图:
\includexopp{5.13.1}
假设D触发器为上升沿有效。根据时钟选择的原则$CP_0=x$,画出$y_0$的卡诺图如下:
\includexopp{5.13.2}
$D_0=Q_{0,n+1}=\bar{Q_3} \bar{Q_0}+\bar{Q_2} \bar{Q_0}$
$CP_1=\bar{y_0}$,观察可以发现每次$y_0$的下降沿都会触发$y_1$翻转,所以$Q_1$可以接成T触发器。
$CP_2=x$,其实$CP_2$的卡诺图不需要画了反正当作全1了。画出$y_2$的卡诺图如下:
\includexopp[2]{5.13.3}
$D_2=Q_{2,n+1}=\bar{Q_3} Q_2 \bar{Q_1} + \bar{Q_3} Q_2 \bar{Q_0} + \bar{Q_2}Q_1Q_0$
$CP_3=\bar{y_2}$,同样观察可以发现每次$y_2$的下降沿都会触发$y_3$翻转,所以$Q_3$也可以接成T触发器。
所以画出逻辑电路图如下:
\includexopp{5.13.4}
\end{zhongwen}
\end{multicols}
\end{enumerate}
\end{document}