![]()
![]()
![]()
![]()
![]()
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.
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: Programmation orientée objets Up: Suite du simulateur Previous: Portes primitives   Contents   Index © 1993 to 2001 Erian Concept