Réalisez les fonctions principales

Dans ce chapitre, nous allons vous présenter les différentes étapes pour réaliser votre mini-projet. Nous vous invitons à en prendre connaissance avant de vous lancer. ;)

Réalisez les fonctions principales



Dans ce chapitre, nous allons vous présenter les différentes étapes pour réaliser votre mini-projet. Nous vous invitons à en prendre connaissance avant de vous lancer. ;)


Étage d'addition

Quatre additionneurs à un bit connectés en cascade construisent l'additionneur à 4 bits. Vous pouvez utiliser le symbole additionneur créé précédemment. L'additionneur 4 bits peut être converti en un nouveau symbole qui sera réutilisé pour le circuit final.


Conversion hiérachique de schémas sur la base de symboles utilisateur                     

Conversion hiérarchique de schémas sur la base de symboles utilisateur

Utilisez la commande File -> Schema to New Symbol pour transférer le schéma d'additionneur 4 bits dans un seul symbole utilisateur, que l'on appellera par exemple 'ADD4.SYM'. Le symbole regroupe toutes les fonctions logiques de l'addition 4 bits, ainsi que toutes les entrées et les sorties du schéma initial.

Les symboles Bouton, Horloge, Impulsion et Clavier sont considérés comme des entrées. La LED et les afficheurs sont considérés comme des sorties. Le symbole utilisateur reprend le nom du schéma d'origine, mais utilise l'appendice  '.SYM'.


Dans la figure ci-dessous, le symbole ADD4.SYM est connecté à deux claviers et à un affichage hexadécimal pour vérifier le comportement correct de l'additionneur 4 bits. Il est important de tester soigneusement le symbole, notamment la retenue.

Vérification du bon fonctionnement du symbole ADD4 qui contient l'ensemble des portes logiques de l'addition 4 bits                     

Vérification du bon fonctionnement du symbole ADD4 qui contient l'ensemble des portes logiques de l'addition 4 bits

Étage de décodage

L’objectif du module de décodage est de scinder le résultat binaire de l’addition en deux parties décimales, l’une représentant les unités, avec une valeur de 0 à 9, l'autre les dizaines, avec une valeur de 0 à 1. Le principe du  circuit de décodage est illustré ci-dessous. Tout d'abord, le résultat Z = X + Y passe à travers un comparateur. Si Z <10, le résultat est envoyé directement au module de visualisation. Sinon, le résultat est ajusté en soustrayant 10.

La fonction Z>=10, représentée par le signal SupOrEqualTo10, peut être écrite en utilisant l'équation booléenne suivante.

Equation logique de la fonction SupOrEqualTo10                     

Équation logique de la fonction SupOrEqualTo10

Une implémentation possible de Z>=10 est donnée dans le schéma ci-dessous. Tant que Z est inférieur à 10 (0b1010), la LED SupOrEqual10 est éteinte, sinon, la LED s'allume. La logique positive a été utilisée pour plus de clarté, bien que la logique négative soit en général un meilleur choix du point de vue de la rapidité de calcul et de la consommation d'énergie lors de l'implémentation finale.

Fonction Z>=10 réalisée à base de portes logiques                     

Fonction Z>=10 réalisée à base de portes logiques

Module de soustraction

Le module soustracteur est activé lorsque le résultat Z = X + Y est supérieur ou égal à 10. Dans ce cas, une opération de soustraction Z – 10 est effectuée. Le circuit soustracteur est basé sur un additionneur avec une entrée inversée B. Par conséquent, le soustracteur de 10 peut être dérivé du circuit de soustracteur à 4 bits, avec /B prépositionné à 0b1010, soit B=0b0101, ou encore B[3]=0, B[2]=1,B[1]=0, B[0]=1. Un symbole 'sub10.SYM' est ensuite créé, avec Z en entrée et les différentes sommes, ainsi que la retenue finale en sortie.

Soustraction d'une valeur 10 à une entrée Z                     

Soustraction d'une valeur 10 à une entrée Z

Circuit complet

Pour compléter le circuit, un circuit multiplexeur décide si le résultat Z ou le résultat Z–10 est envoyé à l'écran, selon la valeur de Z. Le multiplexeur est constitué de 4 étages de multiplexeurs élémentaires. Il est situé à droite du schéma ci-dessous.

Lorsque le résultat de l'addition X+Y=Z est supérieur à 10,  la LED SeupEqu10 passe à 1 et un "1" apparaît sur l'afficheur de gauche. Le résultat Z–10 apparaît sur l'afficheur de droite. Sinon, pour toute valeur de X+Y en dessous de 10, le résultat de l'addition X+Y est transféré directement à l'afficheur de droite, sans altération. La sortie SupOrEqu10 est alors égale à 0, un "0" apparaît sur l'afficheur de gauche.

Affichage de 4+6 = 10 sous forme de deux afficheurs décimaux                     

Affichage de 4+6 = 10 sous forme de deux afficheurs décimaux

Le test de différentes valeurs de X et Y en dessous ou au-dessus de 10, permet de valider la conception de ce circuit combinatoire qui comporte plusieurs niveaux de hiérarchie.

Etes-vous prêt à réaliser votre projet ?


Remplissez le questionnaire d'auto-évaluation pour vous préparer au mieux !

En résumé

Dans cette partie,  nous vous avons guidé pas à pas pour réaliser un mini-projet d’additionneur à affichage décimal. Après une étude du cahier des charges, nous avons conçu différents blocs fonctionnels tels qu'un circuit d’addition 4 bits, un système de comparaison à 10, un étage de soustraction, ainsi qu’un étage de multiplexage. Au final, ce mini-projet a représenté une introduction assez complète aux circuits combinatoires.

Félicitations, vous êtes arrivé à la fin de ce cours ! Une fois ce projet réalisé, vous disposerez de toutes les clés pour envisager la conception de circuits combinatoires de plus en plus ambitieux. Vous serez capable de :

  • décrire les fonctions combinatoires ;

  • traduire des opérations arithmétiques en circuits logiques ;

  • manipuler les opérateurs élémentaires pour construire des fonctions combinatoires ;

  • concevoir une fonction logique combinatoire ;

  • manipuler des structures hiérarchisées élaborées ;

  • utiliser un logiciel de conception et de simulation de circuits logiques.

N'oubliez pas de réaliser les quiz à la fin de chaque partie pour valider ces compétences. Nous vous souhaitons une très bonne continuation !


Modifié le: samedi 28 décembre 2019, 22:18