next up previous contents index
Next: Programmation orientée objets Up: Suite du simulateur Previous: Portes primitives   Contents   Index


Portes assemblée

Dans cette section, nous montrons comment assembler des portes pour en définir une autre, plus complexe. Nous reprenons l'exemple de la porte XOR présentée dans le chapitre précédent. Rappelons que le schéma logique de la porte XOR est tel que présenté à la figure 11.2.

Figure 11.2: Construction d'une porte XOR.

Nous définissons le constructeur de cette porte par :

(define (porte:xor agenda
                   entrée-1
                   entrée-2
                   sortie)
  (let ([c-A (connexion:créer)]
        [c-B (connexion:créer)]
        [c-C (connexion:créer)]
        [c-D (connexion:créer)])
    (porte:not agenda entrée-1 c-A)
    (porte:not agenda entrée-2 c-B)
    (porte:and agenda c-A entrée-2 c-C)
    (porte:and agenda c-B entrée-1 c-D)
    (porte:or  agenda c-C c-D sortie)))

Cette fois-ci, il n'existe pas de procédure de calcul. A la place, nous avons des connexions internes que nous relions à des portes internes, sans savoir d'ailleurs, si elles sont primitives ou pas.

La porte XOR réalisée prend en compte les retards introduits par les portes qui la composent. Si nous constations que la porte introduit des retards trop importants, il faudrait la réaliser comme une porte primitive, avec une fonction de calcul.

Nous avons maintenant une méthode universelle pour construire des portes aussi complexes que nous le souhaitons.


next up previous contents index
Next: Programmation orientée objets Up: Suite du simulateur Previous: Portes primitives   Contents   Index
© 1993 to 2001 Erian Concept