Le demi-additionneur (Half-adder)
Cette activité de travaux dirigés vous offre la possibilité de réaliser sous la solution de simulation électronique QSPICE, à l'aide de deux portes logiques, un demi-additionneur binaire. Nous allons ainsi réaliser ensemble le montage, le configurer et le simuler pour comprendre comment ce composant est capable de calculer la somme de deux valeurs binaires.
Modélisation d'un demi-additionneur (Half-adder) avec deux portes logiques
Pour réaliser cet additionneur, modélisons via la solution de simulation QSpice le schéma électrique ci-dessous :

Pour cela, nous pouvons créer le montage électrique suivant sous notre solution de simulation :

Pour retrouver ces portes logiques OU exclusif et la ET logique, vous devez les rechercher dans la bibliothèque de composants intégrée de la solution QSpice. Pour cela, utilisez la fonction de recherche en cliquant sur l'icône de la jumelle située dans la barre latérale de l'application des composants tel que nous la démontre la capture ci-dessous :

Pour créer les différentes valeurs possibles pour les deux variables \( a \) et \( b\) sous QSPice, nous allons utiliser deux sources de signal carrée, de type PULSE, dont l'amplitude est de 5V telles que :
- la fréquence de la première, que nous allons appelé \( a \) en référence de la variable \( a \), sera de 1 Hz,
- et la fréquence de la deuxième source, que nous allons appelé \( b \) en référence de la variable \( b \), sera de 2 Hz,
Et pour éviter les micro-impulsions dans notre résultat de la simulation, nous allons différer le début des deux sources respectivement de 0.25s pour la variable \( a \) et de 0.5s pour la variable \( b \) afin d'obtenir les différentes combinaisons possibles, soit donc les combinaisons : 00, 01, 10 et 11 pour le couple \( (a, b) \).
Pour cela, la source de nos deux générateurs \( a \) et \( b \) doivent être configurées comme suit :
- Pour la source PULSE V1, qui représente la variable \( a \), que nous connectons à la première l'entrée de notre demi-additionneur :
![]() |
![]() |
- Et pour la source PULSE V2, qui représente la variable \( b \), que nous connectons à la deuxième l'entrée de notre semi-additionneur :
![]() |
![]() |
Rajoutons ensuite une résistance à chaque sortie du demi-additionneur d'une valeur de 330Ω; soit donc \( R_{1} = 330Ω \) à la sortie \( S \) et \( R_{2} = 330Ω \) à la sortie \( R \).
Et finalement avant de lancer notre simulateur, nous devons à alimenter les deux portes logiques. Pour cela, vous aurez à ajouter une troisième source d'alimentation \( VCC \) ainsi qu'une connexion à la masse (soit la GND sous QSpice). La capture ci-dessous nous résume cela :

Ainsi, pour lancer la simulation sous QSpice, il est nécessaire d'ajouter la directive .tran pour configurer le simulateur SPICE. Cette directive permet d'indiquer le pas de la simulation et le stop time. Pour une meilleure performance, nous allons laisser, comme à chaque fois, le modulateur SPICE choisir automatiquement le pas de temps optimal pour une pour une meilleur performance d'affichage, d'où la valeur 0 après la commande .tran. La figure ci-dessous résume cela :

Pour ajouter une directive SPICE dans notre projet, nous pouvons utiliser le raccourci clavier direct ; la touche T, ou en cliquant un clic droit sur notre espace de travail pour sélectionner le sous-menu "Place Text(SPICE directive)" depuis le menu qui s'affichera comme vous le montre la capture ci-dessous :

Simulation et analyse du résultat obtenu : le demi-aditionneur
Une fois le simulateur finit ces calculs, ajoutez dans le même fenêtre de graphes les deux variables d'entrées Va et Va et les deux variables de sorties VS et VR.
A l'aide du tableau ci-dessous, relevez les différentes valeurs de \( S \enspace et \enspace R \) en fonction des différents variables de Va et de Vb:
| Va | Vb | \( S \) | \( R \) |
| 0 | 0 | ||
| 0 | 1 | ||
| 1 | 0 | ||
| 1 | 1 |
Que pouvons nous conclure ?
Réalisation et méthodologie : Le demi-additionneur binaire
Tel qu’indiqué dans les consignes de l'énoncé de cette fiche d'activité, la modélisation de notre schéma sous QSpice se représente comme suit :

Comme vous pouvez le constater, nous avons ajouté une source d'alimentation V3 d'une valeur de 5V pour alimenter les portes logiques. Il est à noter que si nous n'alimentons pas ces composants par une source de tension 5V (dans notre cas), ces deux composants ne fonctionneront pas !
Et afin de pouvoir lancer la simulation, vous devez aussi configurer les différents éléments suivants tels que :
- les deux résistances \( R_{1} \) et et \( R_{2} \) à 330Ω respectivement.
- les deux sources V1 et V2 tout en ajoutant une annotation; soit \( a \) ou \( b\) sur chaque fil électrique qui entrant à notre demi-additionneur.
- la directive pour le simulateur SPICE telle que : .tran 0 5
Petit rappel : pour ajouter une annotation sur un fil électrique, appelé Wire sous QSpice, vous pouvez appuyer directement sur la touche N au clavier ou faire appel au sous-menu en cliquant avec le bouton droit sur notre espace de travail puis en choisissant le sous-menu "Place a Net Name". La photo ci-dessous nous rappelle ce sous-menu :

Une fois que notre projet est correctement modélisé et configuré, nous pouvons lancer le simulateur à partir du bouton Run (disponible dans le menu principal ou dans le sous-menu du clic droit sur notre espace de travail) ou bien directement en appuyant sur la touche F5 de notre clavier. Dès que le simulateur termine son calcul, et qu'aucun message d'erreur n'apparaît dans la fenêtre Output, nous pouvons ajouter une par une les différentes coubres à analyser de notre montage à citer V(a), V(b), V(S) et V(R). La fenêtre ci-dessous nous résume cela :

Depuis ces 4 courbes, nous pouvons maintenant remplir les différentes valeurs binaires lues à la sortie de notre composant \( S \) et \( R \); soit respectivement la somme et la retenue résultantes de cette fonction arithmétique d'addition binaire, en fonction des deux variables \( a \) et \( b \) injectées à son entrée :
| a | b | \( S \) | \( R \) |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Pour vous détailler comment lire les différentes valeurs à la sortie de ce montage, nous allons appliquer cette règle :
- Si V= 0V ⇒ la valeur logique correspond à 0,
- Et si V ≅ 5V ⇒ la valeur logique correspond à 1.
Pour mieux comprendre comment nous avons rempli ce tableau, nous vous proposons la figure ci-dessous qui vous détaille les différentes valeurs possibles de \( a \) et \( b \) injectées à son entrée ainsi que les valeurs respectives de la somme \( S \) et de la retenue \( R \) à la sortie de notre demi-additionneur :

Ainsi, nous confirmons que nous avons bien modélisé un demi-additionneur binaire sous QSPICE avec deux portes logiques ; soit une porte logique ET et une porte logique OU Exclusive.
Il est également à noter que ce composant, comme vous pouvez le constater, ne dispose pas d'une entrée \( R_{-1} \). Ce qui ne lui permet pas, en cas d'une opération arithmétique de la somme de deux mots binaires, la prise en compte de la valeur de la retenue envoyée de l'étage d'addition précédent (en cas d'un montage en cascade de plusieurs additionneurs binaires). D'où son nom : le demi-additionneur binaire.
Et si on réalise un deuxième opérateur arithmétique : le demi-soustracteur ?
Comme nous l'avons réalisé ensemble le demi-additionneur, nous vous proposons aussi de réaliser un demi-soustracteur avec des portes logiques uniquement :
Un petit rappel de cours, une révision complète, que pensez-vous? Notre cours que nous proposons portant sur les opérateurs arithmétiques est ainsi intéressant pour vous accomplir cette tâche :



