\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}