1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
---
tags:
- sorbonne
- informatique
- architecture-des-ordinateurs
semestre: 3
---
On s'intéresse à comment on construit un ordinateur
## Logique booléenne
Deux valeurs : vrai (1) ou faux (0)
|> ordre -> 0 < 1
|> table de vérité est une énumération exhaustive des valeurs possibles d'une fonction booléenne
Complément = not ($\lnot$), noté par $\bar a$
Addition = or ($\lor$), noté par $a+b$
Multiplication = and ($\land$), noté par $a.b$
N'importe quelle fonction peut être écrite comme une composition de not, or et and
-> forme un algèbre (ici c'est l'algèbre de Boole)
**voir le diapo pour la définition formelle**
> [!warning] L'addition est distributive !
> $a+(b.c) = (a+b).(a+c)$
> |> n'est pas le cas dans l'algèbre classique des nombres
Comment on représente une fonction à partir des éléments élémentaires ?
|> on utilise la forme normale disjonctive (DNF)
|> DNF est une somme de termes où chaque terme contient un produit utilisant tous les paramètres
|> exemple : $\text{DNF}_s = (\bar a.b.c) + (a.\bar b.\bar c) + (a.\bar b.c)$
|> on la construit en énumérant dans tous les termes une configuration d'entrée telle que $s$ donne $1$
|> exemple : le DNF précédant indique que $s$ vaut 1 avec $(0,1,1)$, $(1,0,0)$ et $(1,0,1)$
Deux fonctions booléennes sont équivalentes ssi elles ont la même table de vérité
|> on dit que la table de vérité est canonique
-> ⚠ ce n'est pas le cas avec l'expression algébrique
|> par contre, si on peut réduire à une expression algébrique commune, alors elles sont aussi équivalentes
**voir le diapo pour les circuits logiques**
**rattraper cours sur les graphes et temps de propagation**
Toutes les opérations sur un bit sont extensibles sur $n$ bits
|> sauf qu'au lieu d'utiliser $1$ opérateur, on en utilise $n$ !
Multiplexeur permet de sélectionner une entrée, définition :
```elixir title="définition d'un multiplexeur avec deux entrées"
# la troisième valeur est c, il s'agit de la commande
def mux2(a,b,0), do: a
def mux2(a,b,1), do: b
```
Formellement, on a : $\text{mux2}(a,b,c) = a.\bar c+b.c$
**rattraper fin cours sur les circuits logiques**
Décodeur converti une entrée $n$ bits en sortie $p$ bits
|> permet de déterminer les adresses, les champs suivants...
|