\documentclass[]{scrartcl} \usepackage{geometry} \geometry{ a4paper, top=18mm, bottom=19mm, } \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{amsmath} \usepackage[pdftex,pdfa,hidelinks,breaklinks]{hyperref} \usepackage{url} \usepackage{xmpincl} \usepackage{hyperxmp} \usepackage{karnaugh-map} \usepackage[affil-it]{authblk} \usepackage{graphicx} \graphicspath{ {./img/} } \renewcommand{\figurename}{Obrázek} \renewcommand{\tablename}{Tabulka} \date{\today} \title{Protokol 4 - Sekvenční úloha - semafor} \author{M et Z} \begin{document} \affil{FAI UTB ve Zlíně, Softwarové inženýrství (SWI)} \maketitle \renewcommand{\contentsname}{Obsah} \tableofcontents \newpage \section*{Zadání} \addcontentsline{toc}{section}{Zadání} \begin{enumerate} \item Navrhněte sekvenční logický obvod pro řízení světelné signalizace na křižovatce obvod pro řízení světelné signalizace na křižovatce splňující následující časování: \begin{itemize} \item 4 časové jednotky svítí červená \item 1 časovou jednotku svítí současně červená a žlutá \item 4 časové jednotky svítí zelená \item 1 časovou jednotku svítí žlutá \item Přechod na začátek sekvence \end{itemize} \begin{enumerate} \item Dle zadaného časování semaforu sestavte pravdivostní tabulku obsahující číslo hodinového impulsu h-i, výstupy čítače $Q_0$ až $Q_3$ a stav světelné signalizace semaforu R (červená), Y (žlutá) a G (zelená). \item Za použití Karnaughových map proveďte minimalizaci logických funkcí pro ovládání jednotlivých světelných signálů semaforu. KM budou celkem tři s rozměrem 4x4 buněk. Neurčité stavy označte znakem x a doplňte je takovou logickou hodnotou ($x1$ nebo $x0$), aby bylo dosaženo co nejlepší minimalizace logické funkce. \item Upravte logické funkce do tvaru vhodného pro realizaci pomocí logických členů NAND. Použijte De Morganových zákonů pro nahrazení logických součtů logickými součiny. \item Navrhněte schéma zapojení kódovacího obvodu s využitím hradel NAND s libovolným počtem vstupů. \end{enumerate} \item Ověřte funkci semaforu v obvodovém simulátoru a zaznamenejte časový digram jednotlivých světelných signálů. \begin{enumerate} \item Sestavte výsledný logický obvod, který bude tvořen čítačem 7493, na jehož výstupy bude připojen navržený kódovací obvod pro světelnou signalizaci. Nezapomeňte správně připojit resetovací vstupy čítače MR1 a MR2. Jako šablonu obvodu pro Circuit simulátor použijte soubor „Semafor.txt“, kde je již vložen obvod čítače a příslušné výstupy semaforu včetně nastavení grafického výstupu. \item V protokolu uveďte kompletní schéma zapojení obvodu a změřený časový diagram světelných signálů semaforu v Circuit simulátoru. \end{enumerate} \end{enumerate} \newpage \section{Návrh sekvenčního logického obvodu} \subsection{Pravdivostní tabulka} \begin{table}[!hbt] \centering \begin{tabular}{||r|cccc|ccc||} \hline \textbf{h-i} & \[\textbf{Q_3}\] & \[\textbf{Q_2}\] & \[\textbf{Q_1}\] & \[\textbf{Q_0}\] & \textbf{R} & \textbf{Y} & \textbf{G} \\ \hline\hline $0$ & $0$ & $0$ & $0$ & $0$ & $1$ & $0$ & $0$ \\ $1$ & $0$ & $0$ & $0$ & $1$ & $1$ & $0$ & $0$ \\ $2$ & $0$ & $0$ & $1$ & $0$ & $1$ & $0$ & $0$ \\ $3$ & $0$ & $0$ & $1$ & $1$ & $1$ & $0$ & $0$ \\ $4$ & $0$ & $1$ & $0$ & $0$ & $1$ & $1$ & $0$ \\ $5$ & $0$ & $1$ & $0$ & $1$ & $0$ & $0$ & $1$ \\ $6$ & $0$ & $1$ & $1$ & $0$ & $0$ & $0$ & $1$ \\ $7$ & $0$ & $1$ & $1$ & $1$ & $0$ & $0$ & $1$ \\ $8$ & $1$ & $0$ & $0$ & $0$ & $0$ & $0$ & $1$ \\ $9$ & $1$ & $0$ & $0$ & $1$ & $0$ & $1$ & $0$ \\ $10$ & $1$ & $0$ & $1$ & $0$ & $1$ & $0$ & $0$ \\ $11$ & $1$ & $0$ & $1$ & $1$ & $x$ & $x$ & $x$ \\ $12$ & $1$ & $1$ & $0$ & $0$ & $x$ & $x$ & $x$ \\ $13$ & $1$ & $1$ & $0$ & $1$ & $x$ & $x$ & $x$ \\ $14$ & $1$ & $1$ & $1$ & $0$ & $x$ & $x$ & $x$ \\ $15$ & $1$ & $1$ & $1$ & $1$ & $x$ & $x$ & $x$ \\ \hline \end{tabular} \caption{Pravdivostní tabulka obvodu pro světelnou signalizaci} \label{truthtable} \end{table} \newpage \subsection{Karnaughovy mapy} \subsubsection{Karnaughova mapa pro výstup R} \begin{figure}[!hbt] \centering \begin{karnaugh-map}[4][4][1][$Q_1Q_0$][$Q_3Q_2$] \indeterminants{11,12,13,14,15} \minterms{0,1,2,3,4,10} \maxterms{5,6,7,8,9} \implicant{0}{4} \implicant{0}{2} \implicant{15}{10} \end{karnaugh-map} \vspace{-20pt} \caption{Karnaughova mapa pro výstup R} \end{figure} \subsubsection{Karnaughova mapa pro výstup Y} \begin{figure}[!hbt] \centering \begin{karnaugh-map}[4][4][1][$Q_1Q_0$][$Q_3Q_2$] \indeterminants{11,12,13,14,15} \minterms{4,9} \maxterms{0,1,2,3,5,6,7,8,10} \implicant{13}{11} \implicant{4}{12} \end{karnaugh-map} \vspace{-20pt} \caption{Karnaughova mapa pro výstup Y} \end{figure} \subsubsection{Karnaughova mapa pro výstup G} \begin{figure}[!hbt] \centering \begin{karnaugh-map}[4][4][1][$Q_1Q_0$][$Q_3Q_2$] \indeterminants{11,12,13,14,15} \minterms{5,6,7,8} \maxterms{0,1,2,3,4,9,10} \implicant{12}{8} \implicant{5}{15} \implicant{7}{14} \end{karnaugh-map} \vspace{-20pt} \caption{Karnaughova mapa pro výstup G} \end{figure} \newpage \subsection{Úprava logických funkcí} \subsubsection{Rovnice pro výstup R} \[Y=Q_2\bar{Q_1}\bar{Q_0}+\bar{Q_2}\bar{Q_3}+\bar{Q_2}Q_1\]\\ \vspace{-20pt} \[Y=\overline{(\overline{(Q_2\bar{Q_1}\bar{Q_0})}\overline{(\bar{Q_2}\bar{Q_3})}\overline{(\bar{Q_2}Q_1)})}\]\\ \subsubsection{Rovnice pro výstup Y} \[Y=Q_2\bar{Q_1}\bar{Q_0}+Q_3Q_0\]\\ \vspace{-20pt} \[Y=\overline{(\overline{(Q_2\bar{Q_1}\bar{Q_0})}\overline{(Q_3Q_0)})}\]\\ \subsubsection{Rovnice pro výstup G} \[Y=Q_0\bar{Q_1}\bar{Q_3}+Q_2\bar{Q_1}Q_0+Q_2Q_1\]\\ \vspace{-20pt} \[Y=\overline{\overline{(Q_0\bar{Q_1}\bar{Q_3})}\overline{(Q_2\bar{Q_1}Q_0)}\overline{(Q_2Q_1)}} \subsection{Schéma zapojení} \begin{figure}[!hbt] \centering \includegraphics[width=0.99\textwidth]{circuit} \caption{Schéma zapojení obvodu ve funkci semaforu} \label{circuit} \end{figure} \newpage \section{Ověření funkce semaforu v obvodovém simulátoru} \subsection{Diagram průběhu} \begin{figure}[!hbt] \centering \includegraphics[width=0.99\textwidth]{semaphorediagram} \caption{Diagram průběhu zapojení ve funkci semaforu} \label{circuit} \end{figure} \newpage \section{Závěr} V tomto protokolu bylo naším úkolem sestavit pravdivostní tabulku sčítače a využít ji k funkci semaforu.\\ Ke každému semaforu bylo tedy nutné vytvořit Karnaughovu mapu a za její pomoci vytvořit obvody k jednotlivým výstupům.\\ Nevyužité stavy čítače bylo možné využít k lepší minimalizaci rovnic. \end{document}