Algèbre de Boole & Logique combinatoire

Théorèmes de l'algèbre de Boole, simplification d'expressions, tables de Karnaugh.

L'algèbre de Boole

L'algèbre de Boole est le système mathématique qui sous-tend toute la logique numérique. Définie par George Boole en 1854, formalisée par Claude Shannon pour les circuits en 1937.

Trois opérations fondamentales :

  • AND (·) : produit logique
  • OR (+) : somme logique
  • NOT (¬) : complément

Théorèmes fondamentaux

Identités de base

ThéorèmeANDOR
IdentitéA · 1 = AA + 0 = A
NullA · 0 = 0A + 1 = 1
IdempotenceA · A = AA + A = A
ComplémentA · Ā = 0A + Ā = 1
Involution¬(¬A) = A

Commutativité et associativité

A · B = B · A          A + B = B + A
(A · B) · C = A · (B · C)    (A + B) + C = A + (B + C)

Distributivité

A · (B + C) = (A · B) + (A · C)
A + (B · C) = (A + B) · (A + C)

Lois de De Morgan

Fondamentales pour la simplification et l'implémentation NAND/NOR :

¬(A · B) = ¬A + ¬B     (NOT AND = OR des compléments)
¬(A + B) = ¬A · ¬B     (NOT OR = AND des compléments)

En VHDL :

-- De Morgan 1 : NOT (A AND B) = (NOT A) OR (NOT B)
o_y <= NOT (i_a AND i_b);  -- équivalent à :
o_y <= (NOT i_a) OR (NOT i_b);
 
-- De Morgan 2 : NOT (A OR B) = (NOT A) AND (NOT B)
o_y <= NOT (i_a OR i_b);   -- équivalent à :
o_y <= (NOT i_a) AND (NOT i_b);

Simplification d'expressions

Méthode algébrique

F = A·B + A·B̄
  = A·(B + B̄)    (distributivité)
  =1           (complément)
  = A             (identité)
F = A·B + A·C + B·C
  = A·B + A·C + B·C·(A + Ā)     (A + Ā = 1)
  = A·B + A·C + A·B·C + Ā·B·C
  = A·B·(1 + C) + A·C + Ā·B·C
  = A·B + A·C + Ā·B·C
  = A·(B + C) + Ā·B·C

Tables de Karnaugh (K-map)

Pour les fonctions à 2-4 variables, les tables de Karnaugh permettent une simplification visuelle.

K-map 2 variables :

B=0B=1
A=0F(0,0)F(0,1)
A=1F(1,0)F(1,1)

Exemple — K-map 3 variables :

Fonction : F(A,B,C) = Σ(1,3,5,7) → F = C

AB=00AB=01AB=11AB=10
C=00000
C=11111

Le groupe de 8 → F = C

Règles des K-maps :

  • Regrouper les '1' en groupes de 2ⁿ (1, 2, 4, 8...)
  • Les groupes peuvent se chevaucher
  • Les bords se raccordent (torique)
  • Plus le groupe est grand, plus la simplification est forte

Forme canonique

Somme de produits (SOP — Sum of Products)

F = A·B·C̄ + A·B̄·C + Ā·B·C

Chaque terme (minterm) correspond à une ligne de '1' dans la table de vérité.

Produit de sommes (POS — Product of Sums)

F = (A+B+C̄) · (A++C) · (Ā+B+C)

Chaque terme (maxterm) correspond à une ligne de '0' dans la table de vérité.


Application en VHDL

-- Expression non simplifiée
o_f <= (i_a AND i_b AND NOT i_c) OR
       (i_a AND NOT i_b AND i_c) OR
       (NOT i_a AND i_b AND i_c);
 
-- Après simplification (exemple)
-- → Le synthétiseur simplifie automatiquement !
-- Vous n'avez pas besoin de simplifier manuellement
-- Le synthétiseur utilise ses propres algorithmes (ESPRESSO, etc.)

Le synthétiseur VHDL effectue la simplification logique automatiquement — il n'est pas nécessaire de simplifier à la main pour la synthèse. Cependant, comprendre la simplification aide à comprendre le hardware produit.