diff --git a/cours/SIN/05-logique.md b/cours/SIN/05-logique.md new file mode 100644 index 0000000..163eb65 --- /dev/null +++ b/cours/SIN/05-logique.md @@ -0,0 +1,70 @@ +--- +title: Logique combinatoire +subject: Cours +export: + - format: pdf + template: courstex +kernelspec: + name: python3 + display_name: Python 3 +--- + +# Vocabulaire +:::{prf:definition} Variable logique +:nonumber: true +Une **variable logique** est une variable qui ne peut prendre que deux valeurs, dites **états logiques** : 0 et 1. +::: + +:::{prf:definition} Table de vérité +:nonumber: true +Une **table de vérité** permet de renseigner les états logiques des sorties du système en fonction de ses entrées (exemple : @tab:verite). +::: + +:::{csv-table} Table de vérité +:label: tab:verite +:header-rows: 1 +a,b,S +0,0,1 +0,1,0 +1,0,0 +1,1,1 +::: + +:::{prf:definition} Chronogramme +:nonumber: true +Un **chronogramme** permet de représenter l'évolution des états logiques d'un système en fonction du temps (exemple : @fig:chronogramme). +::: + +::::{figure} +:label: fig:chronogramme +:::{code-cell} python +:tag: [remove-input] +import matplotlib.pyplot as plt +import numpy as np + +rng = np.random.default_rng(25) + +fig, [ax_a, ax_b, ax] = plt.subplots(3, figsize=(10, 4), sharex=True, sharey=True) +ax.set(xlim=(0, 16), xticks=np.arange(0, 16), ylim=(-0.5, 1.5), yticks=(0, 1)) +ax.set(xlabel="Temps (s)", ylabel="Signal logique") + +a = rng.integers(2, size=16) +b = rng.integers(2, size=16) +S = np.equal(a, b) + +ax_a.stairs(a, lw=3, baseline=None) +ax_a.set_ylabel("a") + +ax_b.stairs(b, lw=3, baseline=None) +ax_b.set_ylabel("b") + +ax.stairs(S, lw=3, baseline=None) +ax.set_ylabel("S"); +::: + +Chronogramme +:::: + +# Fonctions logiques +Une fonction logique donne un résultat en fonction des valeurs d'entrée. +Les fonctions logiques usuelles sont ET ($a\cdot{}b$), OU ($a+b$), NON ($\bar a$) et OU exclusif (XOR, $a\oplus{}b$). Les symboles et tables de vérité sont donnés sur la [page Wikipédia des fonctions logiques](https://fr.wikipedia.org/wiki/Fonction_logique#Repr%C3%A9sentation_graphique). \ No newline at end of file