263 lines
15 KiB
TeX
263 lines
15 KiB
TeX
\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} |