\documentclass[a4paper,french,12pt]{article} \title{Logique Programmable} \author{Catherine MARECHAL --- \href{mailto:catherine.marechal@efrei.fr}{\nolinkurl{catherine.marechal@efrei.fr}}} \date{Dernière compilation~: \today{} à \currenttime} \usepackage{../cours} \begin{document} \maketitle \tableofcontents \section{Prérequis} \subsection{Logique booléenne} Un composant discret n'a pas plus de 4 portes en alimentation continue. 7400 (gamme commerciale) ou 5400 (gamme militaire) 2 entrées et 1 sortie (3 broches) * 4 portes = 12 broches Plusieurs technologies sont possibles~: \begin{itemize} \item chimique \item hydrraulique \item pneumatique \item mécanique \item électromécanique \item éctrique \item électronique (ce qui nous intéresse) \end{itemize} On détermine un état bas et un état haut~: \begin{itemize} \item état bas < tension VIL (input low) \item état haut > tension VIH (input high) \end{itemize} Quand on passe de l'un à l'autre, c'est pour une très courte période. Pour les fonctions de base, voir \url{http://www.futurlec.com/IC74LS00Series.shtml} Avec \texttt{AND} et \texttt{OR} on peut fabriquer toutes les briques possibles. En notation booléenne~: \begin{itemize} \item H (high) = 1 = vrai \item L (low) = 0 = faux \end{itemize} \subsubsection{Suiveur} La sortie est égale à l'entrée ($S = E$). \begin{center} Table de vérité~: \begin{tabular}{c|c} E & S \\ \midrule L & L \\ H & H \\ \end{tabular} \end{center} \subsubsection{Inverseur} La sortie est l'inverse de l'entrée ($S = \bar{E}$). \begin{center} Table de vérité~: \begin{tabular}{c|c} E & S \\ \midrule L & H \\ H & L \\ \end{tabular} \end{center} \subsubsection{OU logique --- \texttt{OR} ($+$)} Pour que $S$ soit vrai il suffit qu'\emph{une seule} entrée soit vraie. Pour que $S$ soit faux il faut que \emph{toutes} les entrées soient fausses. \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $E_1 + E_2$ \\ \midrule 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & L \\ L & H & H \\ H & L & H \\ H & H & H \\ \end{tabular} \end{multicols} \end{center} \begin{align*} a + 0 &= a \\ a + 1 &= 1 \\ a + a &= a \\ a + \bar{a} &= 1 \\ \end{align*} \subsubsection{ET logique --- \texttt{AND} ($\cdot$)} C'est l'inverse du OU\@. Pour que $S$ soit vrai il faut que toutes les entrées soient vraies. \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $E_1 \cdot E_2$ \\ 0 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & L \\ L & H & L \\ H & L & L \\ H & H & H \\ \end{tabular} \end{multicols} \end{center} \subsubsection{OU exclusif --- \texttt{XOR} ($\oplus$)} Pour que $S$ soit vrai il faut \emph{soit} que $E_1$ soit vrai \emph{soit} que $E_2$ soit vrai. \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $E_1 \oplus E_2$ \\ \midrule 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & L \\ L & H & H \\ H & L & H \\ H & H & L \\ \end{tabular} \end{multicols} \end{center} \begin{align*} a \oplus 0 &= a \\ a \oplus 1 &= \bar{a} \\ a \oplus a &= 0 \\ a \oplus \bar{a} &= 1 \\ \end{align*} \subsubsection{Non OU --- \texttt{NOR} ($\overline{+}$)} Pour que $S$ soit vrai, il faut que $E_1$ et $E_2$ soient faux. Théorême de Morgan~: $\overline{a + b} = \bar{a} \cdot \bar{b}$ \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $\overline{E_1 + E_2}$ \\ \midrule 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 0 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & H \\ L & H & L \\ H & L & L \\ H & H & L \\ \end{tabular} \end{multicols} \end{center} \subsubsection{Non ET --- \texttt{NAND} ($\overline{\cdot}$)} Pour que $S$ soit vrai il suffit qu'entrée soit fausse. Théorême de Morgan~: $\overline{a \cdot b} = \bar{a} + \bar{b}$ \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $\overline{E_1 \cdot E_2}$ \\ \midrule 0 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & H \\ L & H & H \\ H & L & H \\ H & H & L \\ \end{tabular} \end{multicols} \end{center} \subsubsection{Non OU exclusif --- \texttt{NO XOR} ($\overline{\oplus}$)} Pour que $S$ soit vrai il faut que les entrées soient identiques. \begin{center} Tables de vérité~: \begin{multicols}{2} \begin{tabular}{c|c|c} $E_1$ & $E_2$ & $\overline{E_1 \oplus E_2}$ \\ \midrule 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \\ \end{tabular} \begin{tabular}{c|c|c} X & Y & S \\ \midrule L & L & H \\ L & H & L \\ H & L & L \\ H & H & H \\ \end{tabular} \end{multicols} \end{center} \subsection{Algèbre booléenne} Le ET est prioritaire sur le OU\@. \begin{tabularx}{\linewidth}{XX} \toprule \multirow{2}{*}{élément neutre} & $a \cdot 1 = a$ \\ & $a + 0 = a$ \\ \midrule \multirow{2}{*}{élément absorbant} & $a \cdot 0 = 0$ \\ & $a + 1 = 1$ \\ \midrule \multirow{2}{*}{idempotence} & $a \cdot a = a$ \\ & $a + a = a$ \\ \midrule \multirow{2}{*}{complément} & $a \cdot \bar{a} = 0$ \\ & $a + \bar{a} = 1$ \\ \midrule \multirow{2}{*}{commutativité} & $a \cdot b = b \cdot a$ \\ & $a + b = b + a$ \\ \midrule \multirow{2}{*}{associativité} & $a \cdot (b \cdot c) = (a \cdot b) \cdot c = a \cdot b \cdot c$ \\ & $a + (b + c) = (a + b) + c = a + b + c$ \\ \midrule \multirow{2}{*}{distributivité} & $a \cdot (b + c) = (a \cdot b) + (a \cdot c) = a \cdot b + a \cdot c$ \\ & $a + (b \cdot c) = (a + b) \cdot (a + c)$ \\ \midrule \multirow{2}{*}{théorême de Morgan} & $\overline{a \cdot b} = \bar{a} + \bar{b}$ \\ & $\overline{a + b} = \bar{a} \cdot \bar{b}$ \\ \midrule consensus & $a \cdot b + \bar{a} \cdot c + b \cdot c = a \cdot b + \bar{a} \cdot c$ \\ \bottomrule \end{tabularx} \subsection{Fonctions booléennes} On cherche à simplifier les fonctions pour limiter le nombre de portes logiques utilisées. Une fonction booléenne est une application de $\{0,1\}_n$ dans $\{0,1\}$. Elle peut être écrite par une table~: \begin{center} \begin{multicols}{2} \begin{tabular}{cccc} $x_2$ & $x_1$ & $x_0$ & $y$ \\ \midrule 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 0 \\ 0 & 1 & 1 & 1 \\ 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 \\ 1 & 1 & 0 & 1 \\ 1 & 1 & 1 & 1 \\ \end{tabular} ou par une expression~: $y = f(x_2,x_1,x_0) = x_2 \cdot x_1 + \overline{x_2} \cdot x_0$. \end{multicols} \end{center} \subsubsection{Minterme, maxterme} Soit $f(x,y,z)$. $\bar{x} \cdot y$ est un minterme. $x \cdot y \cdot \bar{z}$ est un minterme complet. $\bar{x} + y$ est un maxterme. $x + y + \bar{z}$ est un maxterme complet. \begin{tabular}{ccc|cc} \toprule x & y & z & minterme associé & maxterme associé \\ \midrule 0 & 0 & 0 & $\bar{x} \cdot \bar{y} \cdot \bar{z}$ &\\ 0 & 1 & 1 & $\bar{x} \cdot y \cdot z$ &\\ 1 & 0 & 1 & $x \cdot \bar{y} \cdot z$ &\\ 1 & 1 & 1 & $x \cdot y \cdot z$ &\\ \bottomrule \end{tabular} \end{document}