330 lines
14 KiB
TeX
330 lines
14 KiB
TeX
|
\documentclass[全部作业]{subfiles}
|
|||
|
\usepackage{fp}
|
|||
|
|
|||
|
\fancyhead{}
|
|||
|
\fancyhead[C]{\mysignature}
|
|||
|
% 1、2、5、8、10、11、15、18、20
|
|||
|
\setcounter{chapter}{3}
|
|||
|
|
|||
|
\begin{document}
|
|||
|
\renewcommand{\bar}{\xoverline}
|
|||
|
\chapter{同步时序电路}
|
|||
|
|
|||
|
\begin{enumerate}
|
|||
|
\cnitem[1] 在下图所示电路中,设初始状态为$Q_1=Q_2=Q_3=0$。
|
|||
|
\includexopp[0.8]{4.1.0}
|
|||
|
\begin{enumerate}
|
|||
|
\itemsep 1em
|
|||
|
\item 写出状态转换表,画出状态转换图。
|
|||
|
|
|||
|
% multicols只能两栏一样
|
|||
|
% 两栏不一样可以用vwcol,不过可能不一定能处理非文本。
|
|||
|
% 还是用minipage吧
|
|||
|
\begin{zhongwen}
|
|||
|
\begin{minipage}{0.8\linewidth}
|
|||
|
$$
|
|||
|
\begin{aligned}
|
|||
|
&Q_{1(n+1)}=X\oplus Q_{1n} \\
|
|||
|
&Q_{2(n+1)}=(Q_{1n}X)\oplus Q_{2n} \\
|
|||
|
&Q_{3(n+1)}=(Q_{2n}Q_{1n}X)\oplus Q_{3n} \\
|
|||
|
&Z_1=Q_{2n}Q_{3n} \\
|
|||
|
&Z_2=\overline{Q_{3n}} \\
|
|||
|
\end{aligned}
|
|||
|
$$
|
|||
|
状态转换表为:
|
|||
|
\begin{table}[H]
|
|||
|
% \centering
|
|||
|
\begin{tabular}{c|c|cc|cc}
|
|||
|
\toprule
|
|||
|
$状态$ & $Q_3Q_2Q_1$ & $次态X=0$ & $次态X=1$ & $输出Z_1$ & $输出Z_2$ \\
|
|||
|
\midrule
|
|||
|
$S_0$ & $000$ & $000$ & $001$ & $0$ & $1$ \\
|
|||
|
$S_1$ & $001$ & $001$ & $010$ & $0$ & $1$ \\
|
|||
|
$S_2$ & $010$ & $010$ & $011$ & $0$ & $1$ \\
|
|||
|
$S_3$ & $011$ & $011$ & $100$ & $0$ & $1$ \\
|
|||
|
$S_4$ & $100$ & $100$ & $101$ & $0$ & $0$ \\
|
|||
|
$S_5$ & $101$ & $101$ & $110$ & $0$ & $0$ \\
|
|||
|
$S_6$ & $110$ & $110$ & $111$ & $1$ & $0$ \\
|
|||
|
$S_7$ & $111$ & $111$ & $000$ & $1$ & $0$ \\
|
|||
|
\bottomrule
|
|||
|
\end{tabular}
|
|||
|
\end{table}
|
|||
|
\end{minipage}
|
|||
|
\begin{minipage}{0.2\linewidth}
|
|||
|
状态转换图为:\\(输出为$Z_1Z_2$)\\
|
|||
|
\includexopp{4.1.1}
|
|||
|
\end{minipage}
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\item 分别画出$X=0$和$X=1$的输出波形。
|
|||
|
|
|||
|
\begin{minipage}{0.3\linewidth}
|
|||
|
\includexopp{4.1.2.1}
|
|||
|
$$
|
|||
|
X=0
|
|||
|
$$
|
|||
|
\end{minipage}
|
|||
|
\hfill
|
|||
|
\begin{minipage}{0.6\linewidth}
|
|||
|
\includexopp{4.1.2.2}
|
|||
|
$$
|
|||
|
X=1
|
|||
|
$$
|
|||
|
\end{minipage}
|
|||
|
|
|||
|
\end{enumerate}
|
|||
|
|
|||
|
\item 分析下图电路,画出状态转换图并说明其逻辑功能。
|
|||
|
|
|||
|
% \includegraphics[width=0.8\linewidth]{imgs/2023-11-26-19-03-38.png}
|
|||
|
\includexopp[0.8]{4.2.0}
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
\noindent % 可以取消缩进
|
|||
|
\begin{minipage}{0.55\linewidth}
|
|||
|
输出与当前时刻输入相关,为米利模型。
|
|||
|
$$
|
|||
|
\begin{aligned}
|
|||
|
&Q_{1(n+1)}=X \overline{Q_{1n}}+X Q_{1n}=X \\
|
|||
|
&Q_{2(n+1)}=Z \overline{Q_{2n}}+Z Q_{2n}=Z \\
|
|||
|
&Z=(X+Q_{1n})\ \overline{Q_{2n}} \\
|
|||
|
\end{aligned}
|
|||
|
$$
|
|||
|
状态转换表:
|
|||
|
\begin{table}[H]
|
|||
|
\begin{tabular}{c|c|cc}
|
|||
|
\toprule
|
|||
|
$\multirow{2}{*}{现态}$ & \multirow{2}{*}{$编码Q_1Q_2$} & \multicolumn{2}{c}{$次态Q_{1(n+1)}Q_{2(n+1)}/输出Z$} \\
|
|||
|
$ $ & $ $ & $X=0$ & $X=1$ \\
|
|||
|
\midrule
|
|||
|
$S_0$ & $00$ & $00/0$ & $11/1$ \\
|
|||
|
$S_1$ & $01$ & $00/0$ & $10/0$ \\
|
|||
|
$S_2$ & $10$ & $01/1$ & $11/1$ \\
|
|||
|
$S_3$ & $11$ & $00/0$ & $10/0$ \\
|
|||
|
\bottomrule
|
|||
|
\end{tabular}
|
|||
|
\end{table}
|
|||
|
\end{minipage}
|
|||
|
\begin{minipage}{0.45\linewidth}
|
|||
|
状态转换图:\\
|
|||
|
\includexopp{4.2.1}
|
|||
|
\end{minipage}
|
|||
|
|
|||
|
没看出这是什么逻辑功能。
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[5] 试用1个4位二进制同步计数器构成一个可变进制同步计数器。该计数器有一个控制端$S$,要求当$S=0$时实现十进制计数功能,$S=1$时实现十二进制计数功能。画出电路图和状态转换图。
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
当$S=0$时,计数器从0到9计数,即当计数器等于9时传递清零信号;
|
|||
|
当$S=1$时,计数器从0到11计数,即当计数器等于11时传递清零信号。
|
|||
|
设$Q_3$为高位,$Q_0$为低位。由于9为二进制的1001,在计数为0到8时不会出现$Q_3$和$Q_0$同时为1的情况,因此可以直接将$Q_3$和$Q_0$通过一个与非门来检测是否到达9;同理,12为二进制的1011,在计数为0到10时不会出现$Q_0,Q_1,Q_3$同时为1的情况,因此可以直接将$Q_0,Q_1,Q_3$通过一个与非门来检测是否到达11,这里为了利用之前检测9用到的与非门,于是增加了一个非门和一个二输入与非门。之后这两种检测的输出需要通过$X$来进行选择,当$X=0$时选择检测9的输出,当$X=1$时选择检测11的输出,之后将输出传递回同步计数器的清零输入端,这样在下一个时刻,计数器就清零了,并且检测到输出后可以通过一个非门,就可以表示进位输出了。
|
|||
|
|
|||
|
\includexopp[0.9]{4.5.1}
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[8] 设计一个“110”序列检测器。当连续输入“110”后输出为1,其余情况输出为0。
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
首先设$Q_0$为第一级状态,$Q_1$为第二级状态,用$Q_1Q_0$表示状态,使用两位的移位寄存器,即为左移。使用米利模型,则可以可以画出状态转换图如下:
|
|||
|
|
|||
|
\includexopp[2]{4.8.1}
|
|||
|
|
|||
|
由于状态转换图比较简单,因此不需要状态转换表和卡诺图,可以直接画出逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[2]{4.8.2}
|
|||
|
|
|||
|
其中$X$为输入,$CP$为时钟信号,$Y$为输出。
|
|||
|
|
|||
|
如果使用摩尔模型,同样利用移位寄存器,可以直接一步画出逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[2]{4.8.3}
|
|||
|
|
|||
|
其中$X$为输入,$CP$为时钟信号,$Y$为输出。
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[10] 设计一个串行4位奇偶校验电路。一组4位数码从$X_1$输入,输入到第4个数码时,字同步信号$X_2=1$,表示一个字(4位)输入结束。当4个数码中的“1”的个数为奇数时,输出$Z=1$,否则输出为0。
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
根据题意,可以设$S_0$表示当前已经接收的1的个数为偶数,$S_1$表示当前已经接收的1的个数为奇数,输入用$X_1X_2$表示,使用米利模型,则可以画出状态转换图如下:
|
|||
|
|
|||
|
\includexopp[2]{4.10.1}
|
|||
|
|
|||
|
用$Q=0$表示$S_0$,$Q=1$表示$S_1$,$Q_n$表示现态,$Q_{n+1}$表示次态,$Y$表示输出,则可以画出卡诺图如下:
|
|||
|
|
|||
|
\includexopp[2]{4.10.2}
|
|||
|
|
|||
|
因此$Q_{n+1}=X_1 \bar{X_2} \bar{Q_n} + \bar{X_1} \bar{X_2} Q_n$,$Y=X_1X_2 \bar{Q_n} + \bar{X_1} X_2 Q_n$。由于表达式和JK触发器的表达式接近,所以可以使用JK触发器,于是可以将$Q_{n+1}$的表达式写为$Q_{n+1}=X_1 \bar{X_2} \bar{Q_n} + \overline{X_1+X_2}Q_n$,因此$J=X_1 \bar{X_2}$,$K=X_1+X_2$,于是画出逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[1.5]{4.10.3}
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[11] 试用JK触发器设计一个同步四进制计数器,它有2个控制端,其功能如下:
|
|||
|
|
|||
|
\begin{table}[H]
|
|||
|
\centering
|
|||
|
\tabcolsep=2em
|
|||
|
\begin{tabular}{cc||cc}
|
|||
|
\toprule
|
|||
|
$X_1X_2$ & 功能 & $X_1X_2$ & 功能 \\
|
|||
|
\midrule
|
|||
|
$00$ & 保持 & $10$ & 减法计数 \\
|
|||
|
$01$ & 加法计数 & $11$ & 本输入不允许出现 \\
|
|||
|
\bottomrule
|
|||
|
\end{tabular}
|
|||
|
\end{table}
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
用$Q_1Q_0$表示计数的状态,其中$Q_1$为高位,$Q_0$为低位。则可以画出$Q_1$和$Q_0$的卡诺图如下:
|
|||
|
|
|||
|
\includexopp[1.3]{4.11.1}
|
|||
|
|
|||
|
由于JK触发器的状态转换方程为$Q_{n+1}=J \bar{Q_n}+\bar{K}Q_n$,因此需要将卡诺图表达成这样的形式,因此在$Q_{1(n+1)}$的卡诺图上,$Q_{1n}=0$的部分圈1,$Q_{1n}=1$的部分全部取反,也就是圈0(但仍然是写成积之和的形式,仍然是0表示反变量输入),在$Q_{0(n+1)}$的卡诺图上同理。
|
|||
|
|
|||
|
% $$
|
|||
|
% \begin{aligned}
|
|||
|
% Q_{1(n+1)} & = \bar{X_2}Q_{1n}Q_{0n}+\bar{X_1}Q_{1n} \bar{Q_{0n}}+\bar{X_1} \bar{X_2}Q_{1n}+X_1 \bar{Q_{1n}} \bar{Q_{0n}}+X_2 \bar{Q_{1n}}Q_{0n} \\
|
|||
|
% &=(\bar{X_2}Q_{0n}+\bar{X_1} \bar{Q_{0n}}+\bar{X_1} \bar{X_2})Q_{1n}+(X_1 \bar{Q_{0n}}+X_2Q_{0n}) \bar{Q_{1n}} \\
|
|||
|
% \end{aligned}
|
|||
|
% $$
|
|||
|
|
|||
|
$$
|
|||
|
Q_{1(n+1)}=\bar{Q_{1n}}(X_1 \bar{Q_{0n}}+X_2Q_{0n})+Q_{1n} \overline{X_2Q_{0n}+X_1\bar{Q_{0n}}}
|
|||
|
$$
|
|||
|
$$
|
|||
|
Q_{0(n+1)}=(X_2+X_1)\bar{Q_{0n}} + \overline{X_1+X_2} Q_{0n}
|
|||
|
$$
|
|||
|
|
|||
|
比较JK触发器的状态转换方程可得到:
|
|||
|
|
|||
|
$$
|
|||
|
J_1=X_1 \bar{Q_{0n}}+X_2 Q_{0n}
|
|||
|
$$
|
|||
|
% $$
|
|||
|
% \begin{aligned}
|
|||
|
% K_1 & = \overline{\bar{X_2}Q_{0n}+\bar{X_1} \bar{Q_{0n}}+\bar{X_1} \bar{X_2}} \\
|
|||
|
% & = \overline{\bar{X_2}Q_{0n}}\ \overline{\bar{X_1} \bar{Q_{0n}}}\ \overline{\bar{X_1}\bar{X_2}} \\
|
|||
|
% & = (X_2+\bar{Q_{0n}})(X_1+Q_{0n})(X_1+X_2) \\
|
|||
|
% \end{aligned}
|
|||
|
% $$
|
|||
|
$$
|
|||
|
K_1=X_2Q_{0n} + X_1\bar{Q_{0n}}
|
|||
|
$$
|
|||
|
$$
|
|||
|
J_0=X_1+X_2
|
|||
|
$$
|
|||
|
$$
|
|||
|
K_0=X_1+X_2
|
|||
|
$$
|
|||
|
|
|||
|
则画出逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[1.5]{4.11.2}
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[15] 试用D触发器设计一个同步时序电路,能够满足下列状态转换图要求。
|
|||
|
|
|||
|
\includexopp[1.5]{4.15.0}
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
从状态转换图可以看出是米利模型,用$Q_1Q_2Q_3$表示状态,$X$表示输入,$Y$表示输出,则可以画出卡诺图如下:
|
|||
|
|
|||
|
\includexopp[1.5]{4.15.1}
|
|||
|
|
|||
|
$$
|
|||
|
Q_{1(n+1)}=\bar{Q_{3n}}X
|
|||
|
$$
|
|||
|
$$
|
|||
|
Q_{2(n+1)}=\bar{Q_{3n}} \bar{X} + Q_{2n}Q_{3n}X
|
|||
|
$$
|
|||
|
$$
|
|||
|
Q_{3(n+1)}=\bar{Q_{1n}} \bar{Q_{2n}} \bar{Q_{3n}} \bar{X} + \bar{Q_{1n}}Q_{3n}\bar{X}
|
|||
|
$$
|
|||
|
$$
|
|||
|
Y=\bar{Q_{1n}}\bar{Q_{2n}}Q_{3n}+\bar{Q_{1n}}Q_{3n}X
|
|||
|
$$
|
|||
|
|
|||
|
检查冗余状态,冗余状态的次态只能为$000,010,100$三种,均在正常状态,冗余状态检查通过。
|
|||
|
|
|||
|
逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[1.5]{4.15.2}
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[18] 设计一个单双脉冲发生电路,要求如下:
|
|||
|
当控制端$M=0$时,产生单脉冲序列,如下图(a)所示。其中脉冲宽度为1个时钟周期,间隔宽度为10个时钟周期。
|
|||
|
当控制端$M=1$时,产生双脉冲序列,如下图(b)所示。其中脉冲宽度均为1个时钟周期,两个脉冲之间的间隔为1个时钟周期,每组脉冲之间的间隔宽度为10个时钟周期。
|
|||
|
|
|||
|
\includexopp[1.2]{4.18.0}
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
由于需要精确10个时钟周期,考虑用计数器实现。当$M=0$时,输出的周期为11个时钟周期,于是可以让计数器从0到10计数;当$M=1$时,输出的周期为13个时钟周期,于是可以让计数器从0到12计数。而输出可以检测计数器的状态,当计数器的状态为10或12时输出1,否则输出0,这样当$M=0$时计数器到达10后就回到1了,所以是单脉冲序列;当$M=1$时计数器的状态为10时输出1,11时输出0,12时输出1,所以是双脉冲序列。
|
|||
|
|
|||
|
\includexopp[1.2]{4.18.1}
|
|||
|
|
|||
|
上图中$CP$为时钟信号,$M$为控制端,$Y$为输出端。
|
|||
|
\end{zhongwen}
|
|||
|
|
|||
|
\cnitem[20] 试用JK触发器(每个触发器只有一组JK输入)和必要的门电路设计一个满足下列状态关系的同步时序电路,要求电路尽可能简单。
|
|||
|
|
|||
|
\includexopp{4.20.0}
|
|||
|
|
|||
|
\begin{zhongwen}
|
|||
|
首先使用隐含表法进行状态化简:
|
|||
|
|
|||
|
\includexopp[2]{4.20.1}
|
|||
|
|
|||
|
可知$S_0$与$S_5$等价,$S_1$、$S_4$、$S_6$等价。
|
|||
|
于是原状态转换表可化为:
|
|||
|
|
|||
|
\begin{table}[H]
|
|||
|
\centering
|
|||
|
\tabcolsep=2em
|
|||
|
\begin{tabular}{c|c|c|c|c}
|
|||
|
\toprule
|
|||
|
\multirow{2}{*}{现态} & \multicolumn{2}{c}{次态} \vline& \multicolumn{2}{c}{输出} \\
|
|||
|
$ $ & $X=0$ & $X=1$ & $X=0$ & $X=1$ \\
|
|||
|
\midrule
|
|||
|
$S_0$ & $S_0$ & $S_1$ & $0$ & $1$ \\
|
|||
|
$S_1$ & $S_1$ & $S_3$ & $0$ & $0$ \\
|
|||
|
$S_2$ & $S_3$ & $S_1$ & $1$ & $0$ \\
|
|||
|
$S_3$ & $S_0$ & $S_1$ & $1$ & $1$ \\
|
|||
|
\bottomrule
|
|||
|
\end{tabular}
|
|||
|
\end{table}
|
|||
|
|
|||
|
根据状态编码的分配规则,将$S_0S_1S_2S_3$分别编码为$00,01,10,11$。
|
|||
|
用$Q_1Q_0$表示状态,$Y$表示输出。
|
|||
|
则卡诺图如下:
|
|||
|
|
|||
|
\includexopp{4.20.2}
|
|||
|
|
|||
|
$$
|
|||
|
Q_{1(n+1)}=Q_{1n} \overline{X+ \bar{Q_{0n}}}+\bar{Q_{1n}}Q_{0n}X
|
|||
|
$$
|
|||
|
$$
|
|||
|
Q_{0(n+1)}=Q_{0n} \overline{0}+\bar{Q_{0n}}X
|
|||
|
$$
|
|||
|
$$
|
|||
|
Y=Q_{1n} \bar{X}+\bar{Q_{0n}} X+Q_{1n} \bar{Q_{0n}}
|
|||
|
$$
|
|||
|
|
|||
|
$$
|
|||
|
J_1=Q_{0n}X
|
|||
|
$$
|
|||
|
$$
|
|||
|
K_1=X+\bar{Q_{0n}}
|
|||
|
$$
|
|||
|
$$
|
|||
|
J_0=X
|
|||
|
$$
|
|||
|
$$
|
|||
|
K_0=0
|
|||
|
$$
|
|||
|
|
|||
|
逻辑电路图如下:
|
|||
|
|
|||
|
\includexopp[1.5]{4.20.3}
|
|||
|
\end{zhongwen}
|
|||
|
\end{enumerate}
|
|||
|
\end{document}
|