La porte logique OU (BC547)
Pour se familiariser avec les portes logiques, nous vous proposons de réaliser ensemble une fonction logique, que nous allons la nommer pour l'instant la fonction logique inconnue à l'aide de deux transistors BC547 sous la solution QSPICE. Si vous ne disposez toujours pas de cette solution de simulation sur votre machine, il est demandé de la télécharger et de l'installer afin de pouvoir avancer avec cette activité proposée.
Pour cette porte logique inconnue, nous allons modéliser le schéma électrique ci-dessous sous la solution de simulation QSPICE :

Une fois le montage est créé sous la solution, paramétrez les différents composants tels que :
- \( R_1 = 10K \),
- \( R_2 = 10K \) et,
- \( V_{CC} = 6V \)
Ajoutez ensuite deux générateurs de signal carré sur les deux entrées A et B d'une valeur respective de 1V et pour une fréquence 1 Hz. Quelle fonction logique avons-nous réalisée ?
Réalisation et simulation : La porte logique OU (BC547)
Modélisation sous la solution QSPICE
Pour commencer, modélisons le schéma proposé de la porte logique inconnue sous la solution de simulation comme ci-dessous :

Pour placer les deux transistors dans notre espace de travail, vous devez rechercher dans la bibliothèque de composants intégrée de la solution QSpice le composant NPN Bipolar Transistor (pour transistor NPN) puis le placer en deux exemplaires. Pour cela, vous pouvez utiliser la fonction de recherche intégrée dans la fenêtre Symbol & IP Browser de la solution de simulation en cliquant directement sur l'icône de la jumelle située dans la fenêtre, comme nous l'explique la capture ci-dessous :

Puis dans la fenêtre qui apparaît, tappez le mot NPN pour retrouver le composant NPN Bipolar Transistor à placer :

Ensuite, une fois que vous avez placé les deux transistors dans votre espace de travail, il vous est demandé de charger le fichier bibliothèque du transistor BC547 à partir de la fenêtre de configuration de chaque transistor. La capture ci-dessous nous explique comment faire cela :

Vous pouvez télécharger ce fichier bibliothèque directement depuis ce lien BC547.txt ou de le créer par vous-même directement en copiant/collant son contenu ci-dessous dans un fichier .txt :
.model BC547 NPN( Vtf=1.7 Cjc=7.306p Nc=2 Tr=46.91n Ne=1.307
+ Cje=22.01p Isc=0 Xtb=1.5 Rb=10 Rc=1
+ Tf=411.1p Xti=3 Ikr=0 Bf=400 Fc=.5
+ Ise=14.34f Br=6.092 Ikf=.2847 Mje=.377 Mjc=.3416
+ Vaf=74.03 Vjc=.75 Vje=.75 Xtf=3 Itf=.6
+ Is=14.34f Eg=1.11 )
Maintenant, pour générer les différentes valeurs binaires possibles pour les deux entrées A et B sous la solution QSPice, nous allons appliquer deux sources de signal carré, de type PULSE, de la même fréquence et dont chacune à une amplitude est de 5V telles que :
- le premier générateur, que nous allons appeler \( V_1 \), alimentera l'entrée \( A \) de la porte logique, et,
- le deuxième générateur, nommé \( V_2 \) pour alimenter la deuxième entrée \( B \).
Sauf que la source \( V_2 \) est en avance de phase de 0.25s par rapport la première source \( V_1 \). Pour vous faciliter cette implémentation, la configuration des deux générateurs \( V_1 \) et \( V_2 \) sera ainsi comme suit :
- Pour le premier générateur \( V_1 \), qui alimentera la variable \( A \), nous allons créer le signal carré en appliquant la fonction PULSE :
![]() |
![]() |
- Et pour le deuxième générateur \( V_2 \), qui attaquera la deuxième entrée pour la variable \( B \), nous allons aussi créer un signal carré avec la même fonction PULSE :
![]() |
![]() |
Et finalement, ajoutons une résistance à l'émetteur du transistor Q2 d'une valeur 10kΩ pour absorber le courant sortant des deux transistors Q1 et Q2.
Simulation de la porte logique
Avant de lancer la simulation sous QSpice, il est obligatoire d'ajouter une directive .tran à notre projet afin d'indiquer au simulateur SPICE les informations nécessaires pour notre simulation voulue telles que :
- le pas de la simulation et
- le stop time pour indiquer au simulateur la durée totale à simuler.
Pour votre culture, la syntaxe de la fonction .tran est comme suit : Syntax: .TRAN <Tstep> <Tstop> [Tstart [dTmax]]
Pour une meilleure performance d'analyse, il est recommandé de laisser le simulateur SPICE de choisir automatiquement son pas de simulation optimal. Pour cela, nous allons indiquer la valeur 0 après la commande .tran.
Pour ajouter cette directive SPICE dans votre projet, vous pouvez utiliser le raccourci du clavier direct ; via la touche T, ou bien à partir du sous-menu "Place Text(SPICE directive)" depuis le menu déroulant qui s'affichera une fois que vous cliquez sur votre espace de travail un clic droit. La capture ci-dessous vous présente cela :

Ensuite placez la directive où vous le souhaitez dans votre espace de travail et tapper la valeur .tran 0 5. La figure ci-dessous vous résume cela :

Maintenant, nous avons terminé la préparation de notre projet. Nous pouvons donc passer à la simulation de cette porte logique inconnue sous QSPICE. Votre schéma doit ressembler à l’exemple présenté dans la capture d’écran ci-dessous.

Simulation et analyse du résultat obtenu : le demi-aditionneur
Maintenant, une fois que notre projet est correctement schématisé, vous pouvez lancer la simulation. Pour cela, il vous convient de :
- cliquez sur le bouton Run disponible dans le menu principal ou depuis le sous-menu en cliquant un clic droit dans votre espace de travail.
- en appuyant sur la touche F5 de notre clavier.
Une fois le module SPICE termine ses calculs, et qu'aucun message d'erreur ne bloque la simulation, vous pouvez ajouter les les courbes V(a), V(b) et V(q) une par courbe pour interpréter le résultat. La fenêtre ci-dessous nous résume cela :

Maintenant, depuis ces 3 courbes, vous pouvez lire les différentes combinaisons possibles pour remplir la table de vérité de cette porte logique; soit donc le résultat sortant pour les deux entrées des deux variables \( A \) et \( B \) :
| a | b | q |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Pour précision, comment nous avons lu ces différentes courbres, nous avons appliqué les règles ci-dessous sur les différentes tensions :
- Si V = 0V ⇒ la valeur logique correspond à 0,
- Et si V ≥ 0V ⇒ la valeur logique correspond à 1. Soit donc V(a) et V(b) présente une valeur de 1V et V(q) une valeur ≅ de 0.5V
Pour vous expliquer davantage, regardons ensemble le chronogramme logique annoté qui vous détaille les différentes valeurs possibles des variables logiques \( A \), \( B \) et \( q \) de notre montage :

Ainsi, nous avons réalisé une fonction logique OU sous QSPICE avec deux transistors uniquement de la référence BC547 et deux résistances..



