\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. \subsubsection{Suiveur} sortie = entrée ($S = E$) Table de vérité~: \begin{tabular}{c|c} E & S \\ \midrule L & L \\ H & H \\ \end{tabular} \subsubsection{Inverseur} La sortie est l'inverse de l'entrée ($S = \overline{E}$). Table de vérité~: \begin{tabular}{c|c} E & S \\ \midrule L & H \\ H & L \\ \end{tabular} \subsubsection{OU logique (\texttt{OR})} pour que S soit vrai il suffit qu'une seule entrée soit vraie pour que S soit faux il faut que toutes les entrées soient fausses en notation booléenne, on associe le 0 à faux: + veut dire OU E1 = 0, E2 = 0 -> E1 + E2 = 0 E1 = 0, E2 = 1 -> E1 + E2 = 1 E1 = 1, E2 = 0 -> E1 + E2 = 1 a + 0 = a a + 1 = 1 a + a = a a + a barre = 1 table de vérité: X Y | S L L | L L H | H H L | H H H | H H (high) = 1 = vrai L (low) = 0 = faux ET logique (AND): inverse du OU: pour que S soit vrai il faut que toutes les entrées soient vraies en notation booléenne, le AND se note par un point médian E1 = 0, E2 = 0 -> E1 + E2 = 0 E1 = 0, E2 = 1 -> E1 + E2 = 0 E1 = 1, E2 = 0 -> E1 + E2 = 0 E1 = 1, E2 = 1 -> E1 + E2 = 1 table de vérité: X Y | S L L | L L H | L H L | L H H | H XOR (OU exclusif): pour que S soit vrai il faut SOIT que E1 soit vrai SOIT que E2 soit vrai en notation booléenne, le XOR se note par un + dans un cercle E1 = 0, E2 = 0 -> E1 + E2 = 0 E1 = 0, E2 = 1 -> E1 + E2 = 1 E1 = 1, E2 = 0 -> E1 + E2 = 1 E1 = 1, E2 = 1 -> E1 + E2 = 0 table de vérité: X Y | S L L | L L H | H H L | H H H | L a XOR 0 = a a XOR 1 = a barre a XOR a = 0 a XOR a barre = 1 NOR (non OU): on rajoute une barre sur le OU des entrées: pour que S soit vrai, il faut que E1 et E2 soient faux théorême de Morgan: (a+b)barre = a barre . b barre E1 = 0, E2 = 0 -> E1 + E2 = 1 E1 = 0, E2 = 1 -> E1 + E2 = 0 E1 = 1, E2 = 0 -> E1 + E2 = 0 E1 = 1, E2 = 1 -> E1 + E2 = 0 table de vérité: X Y | S L L | H L H | L H L | L H H | L NAND (non ET): pour que S soit vrai il suffit qu'entrée soit fausse théorême de Morgan: (a.b)barre = a barre + b barre E1 = 0, E2 = 0 -> E1 + E2 = 1 E1 = 0, E2 = 1 -> E1 + E2 = 1 E1 = 1, E2 = 0 -> E1 + E2 = 1 E1 = 1, E2 = 1 -> E1 + E2 = 0 table de vérité: X Y | S L L | H L H | H H L | H H H | L NO XOR (non OU exclusif): pour que S soit vrai il faut que les entrées soient identiques E1 = 0, E2 = 0 -> E1 + E2 = 1 E1 = 0, E2 = 1 -> E1 + E2 = 0 E1 = 1, E2 = 0 -> E1 + E2 = 0 E1 = 1, E2 = 1 -> E1 + E2 = 1 table de vérité: X Y | S L L | H L H | L H L | L H H | H Il y a des temps de propagation. Ils peuvent être négligeables ou pas. Ces temps de propagation vont limiter la fréquence d'utilisation. le ET est prioritaire sur le OU élément neutre a.1 = a a+0 = a élément absorbant a.0 = 0 a+1 = 1 idempotence a.a = a a+a = a complément a.a barre = 0 a+a barre = 1 commutativité a.b = b.a a+b = b+a associativité a.(b.c) = (a.b).c = a.b.c a+(b+c) = (a+b)+c = a+b+c distributivité a.(b+c) = (a.b)+(a.c) = a.b + a.c a+(b.c) = (a+b).(a+c) théorême de Morgan (a.b) barre = a barre + b barre (a+b) barre = a barre . b barre consensus a.b+a barre . c + b.c = a.b + a barre . c 5. fonctions booléennes: on cherche à simplifier 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 ou par un expression. x2 x1 x0 y 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 par une expression: y = f(x2,x1,x0) = x2 . x1 + x2 barre . x0 soit f(x,y,z) x barre . y est un minterme x . y . z barre est un minterme complet x barre + y est un maxterme x + y + z barre est un maxterme complet x y z minterme associé maxterme associé 0 0 0 x barre . y barre . z barre = 1 0 1 1 x barre . y . z = 0 1 0 1 x . y barre . z = 0 1 1 1 x . y . z \end{document}