Un projet sur l’analyse de l’ALU 4 bits

Un projet sur l'analyse de l'ALU 4 bits

Un projet de dernière année sur « l’analyse de l’ALU 4 bits » soumis par Vasu Singh (de l’Université NorthCap, Gurugram, Haryana) à extrudesign.com.

Un projet sur l'analyse de l'ALU 4 bits

1. Introduction

Dans ce projet, nous allons construire le cœur d’un simple CPU 4 bits, l’ALU (Arithmetic Logic Unit).

Croyez-le ou non, les ordinateurs existaient avant l’apparition des microcontrôleurs et des processeurs. Auparavant, ils étaient construits à l’aide de pièces discrètes, notamment de simples circuits intégrés et des transistors.

Les processeurs sont sans doute le centre de l’électronique moderne, qu’il s’agisse d’un appareil mobile ou d’un circuit de contrôle pour une usine. Mais comment fonctionnent les processeurs ? Que se passe-t-il à l’intérieur ?

UNE CPU se compose de trois sections principales : mémoire pour les variables (registres), circuits de commande (microcode), et le ALU. Les ALU (Unité Logique Arithmétique) est la partie d’un processeur qui effectue des calculs et des tests de condition.

Par exemple, si vous souhaitez additionner deux nombres binaires, c’est l’ALU qui se charge de produire le résultat. Si votre programme doit exécuter du code si deux valeurs sont égales, c’est l’ALU qui effectue la comparaison entre les valeurs, puis définit des indicateurs si la condition est remplie ou non.

Les processeurs modernes se composent de millions de transistors (même des milliards maintenant !) et ne peuvent pas être dupliqués à la maison. Mais un simple processeur (disons, un Z80, par exemple) n’a que 8 500 transistors. Les ordinateurs du passé (comme la plupart des ordinateurs centraux IBM) étaient construits avec des puces discrètes des séries 4000 et 7400.

Cela signifie que nous pouvez construire un CPU à la maison !!! Alors pourquoi attendre ?

Ce projet sera une ALU 4 bits discrète qui sera construite avec des puces de la série 7400.

2. Analyse théorique de l’ALU 4 bits

Parce que ce projet est assez complexe, vous aurez besoin des éléments suivants :

  • Compréhension de base des circuits combinés
  • Compréhension de base des portes logiques et de leur construction à partir de portes universelles

2.1 Circuits combinés

2.1.1. Multiplexeur (IC NO – 74151)

Le multiplexeur ou MUX est un commutateur numérique, également appelé sélecteur de données. Circuit avec plusieurs lignes d’entrée, une ligne de sortie et plusieurs lignes de sélection. Il accepte les informations binaires de plusieurs lignes ou sources d’entrée et en fonction de l’ensemble de lignes sélectionnées, une ligne d’entrée particulière est routée sur une seule ligne de sortie.

L’idée de base du multiplexage est illustrée dans la figure ci-dessous dans laquelle les données de plusieurs sources sont acheminées vers la ligne de sortie unique lorsque le commutateur d’activation est sur ON. Par conséquent, les multiplexeurs sont également appelés circuits combinatoires « plusieurs vers un ».

Multiplexeur

La figure ci-dessous montre le schéma fonctionnel d’un multiplexeur composé de n lignes d’entrée, m lignes de sélection et une ligne de sortie. S’il y a m lignes de sélection, alors le nombre de lignes d’entrée possibles est de 2m.

Multiplexeur

2.1.2. Pilote de décodeur (IC NO – 7447)

Les Décodeur est un composant essentiel du décodeur BCD à sept segments Un décodeur n’est rien, mais un circuit logique combinatoire principalement utilisé pour convertir un BCD en un nombre décimal équivalent.

Pilote de décodeur

La conception du circuit, ainsi que le fonctionnement, dépendent principalement des concepts de Algèbre de Boole ainsi que des portes logiques.

Un circuit d’affichage à LED à sept segments peut être construit avec huit LED. Les bornes communes sont anode sinon cathode. Un affichage à sept segments à anode générale comprend 8 broches où 7 broches sont des broches d’entrée marquées de a à g et la 8e broche est connectée à l’alimentation.

2.1.3. Additionneur BCD (formé par des additionneurs binaires/parallèles 4 bits) (IC NO – 7483)

Dans ce cas, si la sortie de somme à 4 bits n’est pas un chiffre BCD valide, ou si la retenue C3 est générée, alors la décimale 6 (0 1 1 0) doit être ajoutée à la somme pour obtenir le résultat correct. La figure suivante montre l’additionneur BCD 4 bits. L’additionneur BCD peut être mis en cascade pour ajouter des nombres à plusieurs chiffres 1009 en connectant le report d’un étage au report dans l’étage suivant.

Additionneur BCD (formé par des additionneurs binaires/parallèles 4 bits) (

2.2 Portes logiques

Une porte logique est un dispositif qui agit comme un bloc de construction pour les circuits numériques. Ils exécutent des fonctions logiques de base qui sont fondamentales pour les circuits numériques. La plupart des appareils électroniques que nous utilisons aujourd’hui auront une certaine forme de portes logiques.

Par exemple, les portes logiques peuvent être utilisées dans des technologies telles que les smartphones, les tablettes ou dans les dispositifs de mémoire.

Dans un circuit, les portes logiques prendront des décisions basées sur une combinaison de signaux numériques provenant de ses entrées. La plupart des portes logiques ont deux entrées et une sortie. A un instant donné, chaque terminal est dans l’une des deux conditions binaires, faux ou vrai. False représente 0 et représente vraiment 1. Selon le type de porte logique utilisé et la combinaison d’entrées, la sortie binaire sera différente.

Il existe 7 portes logiques de base :

ET (7408), OU (7432), XOR (7486), PAS (7404), NAND (7400), NOR (7402) et XNOR (74266).

Construction de base de la porte ET & OU à partir de portes universelles (respectivement NAND et NOR)

Construction de base de la porte ET & OU à partir de portes universelles (respectivement NAND et NOR)

Construction de base de la porte ET & OU à partir de portes universelles

Nous avons besoin de deux portes NAND pour créer une porte ET. La première porte NAND renvoie HIGH si l’une des entrées est LOW ou si les deux entrées sont LOW. Ensuite, la deuxième porte NAND est configurée comme une porte NON pour inverser la sortie de la première porte NAND.

Construction de base de la porte ET & OU à partir de portes universelles (respectivement NAND et NOR)

De même, nous avons maintenant besoin de deux portes NOR pour créer une porte OU. La première porte NOR renvoie LOW si l’une des entrées est HIGH ou si les deux entrées sont HIGH. Ensuite, la deuxième porte NOR est configurée comme une porte NON pour inverser la sortie de la première porte NOR.

2.3 LED et affichage à 7 segments

Une diode électroluminescente (DEL) est un dispositif semi-conducteur qui émet de la lumière lorsqu’un courant électrique le traverse. (fil plus long – anode et fil plus court – cathode)

Affichage LED et 7 segments

Pour l’affichage à 7 segments – Voir 2.1.2

3. Analyse expérimentale de l’ALU 4 bits

3.1 Pré-requis du projet

3.1.1 Matériel

Différentes portes logiques, Mux, Breadboard, additionneur binaire 4 bits, pilote de décodeur, 7 segments LED fils d’affichage LED

3.1.2 Logiciel :

Bricoler CAO : Avoir une estimation de la structure interne du circuit intégré et du schéma des broches des circuits combinatoires.

Frittage : Avoir une estimation sur les connexions matérielles sur Breadboard.

Protée : Avoir une idée sur, comment concevoir le circuit en plusieurs étapes.

3.2 Quelques images des premiers essais

Analyse de l'ALU 4 bits

(Défaut : l’entrée des portes NOR est connectée dans l’ordre inverse et la sélection des sorties du multiplexeur n’a pas lieu)

Analyse de l'ALU 4 bits

(Défaut : utilisation incorrecte des concepts lors de l’utilisation de portes logiques, inconvénient : certains circuits intégrés ne sont pas disponibles)

Analyse de l'ALU 4 bits

Première tentative réussie…

(Avantage : apprendre à concevoir un circuit approprié en le divisant en 2-4 sous-parties, bien comprendre le fonctionnement de l’ensemble du circuit)

3.3 Schéma fonctionnel

Diagramme

3.4 Organigramme

organigramme pour l'analyse ALU 4 bits

3.5 Débogage sur le matériel

Après avoir eu la bonne idée de la conception et du fonctionnement du circuit sur le logiciel Proteus, maintenant vient le tour de mettre le circuit sur le matériel.

Cette fois, un circuit soigné et propre a été réalisé par nos soins sur 3 planches à pain différentes.

L’image pour la même chose est fournie ci-dessous :

Analyse de l'ALU 4 bits
Analyse de l'ALU 4 bits
Analyse de l'ALU 4 bits

(La faute: Impossible d’obtenir des sorties correctes sur l’affichage LED même après 6 essais différents…)

(Résultat final: Lors de la connexion du 3rd broche des deux pilotes de décodeur sur LOW, a constaté que les affichages LED à 7 segments sont cassés, les 7 segments LED ne brillent pas…)

3.6 Conception finale de l’ALU

Analyse de l'ALU 4 bits

Conclusion

La conception de l’ALU 4 bits a été conçue en utilisant les sous-blocs du pilote de décodeur, le multiplexeur 8:1 et des portes comme NAND, AND, OR, & Inverter, etc…

L’ALU effectue un total de sept opérations, dont six sont des opérations logiques et une est une opération arithmétique. La seule opération arithmétique effectuée est l’additionneur BCD et les six opérations logiques sont AND, OR, XOR, NAND, NOR, XNOR, & NOT.

Portée future

Une fois l’ALU terminée, nous pouvons maintenant additionner mathématiquement et traiter logiquement deux des nombres de 4 bits donnés. Mais cet ALU n’est qu’une petite pièce du puzzle !

Pour nos prochaines étapes, nous pouvons ajouter un soustracteur, attacher un registre à la sortie de l’ALU et le renvoyer. Ensuite, nous pourrions créer un contrôleur de mémoire capable de diffuser des nombres à partir d’une puce et d’effectuer des opérations sur ces nombres. Ce serait à ce stade que nous pourrions faire en sorte que ces nombres stockés en mémoire décident de l’opération que l’ALU fera.

C’est là qu’il cesse de devenir un ALU et devient un simple CPU !!

Crédit: Le projet sur l’analyse de l’ALU 4 bits est réalisé par Vasu Singh et Dinesh Joon sous la direction du Dr Sharda Vashist et du Dr Vandana Khanna, département d’ingénierie informatique de l’Université NorthCap, Gurugram, Haryana, INDE.