SchoolWork-LaTeX/数字逻辑及实验/平时作业/第四章作业.tex
423A35C7 5906ac1efc 重构目录层次
0-课程笔记
1-平时作业
2-实验报告
3-期末大作业
2024-09-02 18:32:58 +08:00

330 lines
14 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}
\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时输出012时输出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}