Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Architecture Processeur & UAL (Logisim)

Cover

Conception, modélisation et simulation de circuits logiques numériques sous Logisim : réalisation d'une Unité Arithmétique et Logique (UAL / ALU) 8 bits modulaire et d'une architecture de processeur synchrone complet avec jeu d'instructions (ISA) dédié.

Ce projet a été développé pour explorer les fondations matérielles des systèmes informatiques (from logic gates to processor execution). La maîtrise de ces briques élémentaires apporte une compréhension approfondie des mécanismes d'exécution bas niveau, directement valorisable dans l'analyse de performance et l'optimisation algorithmique.


📐 1. Unité Arithmétique et Logique 8 bits (ALU)

L'UAL implémentée prend en charge deux opérandes 8 bits (Operand A, Operand B) et exécute des opérations arithmétiques et logiques sélectionnées via un code opération (Opcode) sur 4 bits.

ALU 8-bit Schema

Table des Opcodes de l'UAL

Opcode (Binaire)MnémoniqueTypeDescription
0000NOPContrôleAucune opération (No Operation)
0001HALTContrôleArrêt de l'exécution
0010ADDArithmétiqueAddition ($A + B$) avec retenue
0011SUBArithmétiqueSoustraction ($A - B$)
0100MULArithmétiqueMultiplication matérielle ($A \times B$)
0101DIVArithmétiqueDivision entière ($A / B$) & calcul du reste
0110ANDLogiqueOpération logique ET bit à bit ($A \land B$)
0111ORLogiqueOpération logique OU bit à bit ($A \lor B$)
1000XORLogiqueOpération logique OU exclusif ($A \oplus B$)

Caractéristiques du Circuit

  • Décodage : Décodeur 4 bits vers lignes de commande.
  • Routage : Multiplexeurs multi-voies associés à des encodeurs de priorité (Priority Encoders).
  • Indicateurs d'état (Flags) : Détection de résultat nul (Zero), de dépassement de capacité (Overflow) et de retenue (Carry).
  • Fichier source : Models/ALU/ALU8bits.circ.

🖥️ 2. Architecture CPU Complète (Gate-Level Design)

Conception intégrale au niveau des portes d'un processeur synchrone comprenant son banc de registres, son unité de contrôle, son décodage d'instructions et son bus d'interconnexion.

CPU V1 Architecture

Format d'Instruction Machine

Chaque instruction est codée sous un mot binaire structuré :

+-------------------+--------------------+------------------------+--------------------+
| Opcode (3 bits) | Dest Reg (3 bits) | Src 1 / Imm (4 bits) | Src 2 Reg (3 bits)|
| [12 : 10] | [9 : 7] | [6 : 3] | [2 : 0] |
+-------------------+--------------------+------------------------+--------------------+
  • Bits [12:10] (3 bits) : Opcode de l'instruction assembleur.
  • Bits [9:7] (3 bits) : Adresse du registre de destination.
  • Bits [6:3] (4 bits) : Valeur immédiate (ex. pour LOAD) ou adresse registre source 1 (3 bits).
  • Bits [2:0] (3 bits) : Adresse du registre source 2.

Jeu d'Instructions Assembleur (ISA)

Code (3b)MnémoniqueSyntaxe / ExempleDescription
000ADDADD R_dest, R_src1, R_src2Addition de deux registres
001LOADLOAD R_dest, #immChargement d'une valeur immédiate 4 bits
010SOUSSOUS R_dest, R_src1, R_src2Soustraction de deux registres
011CMP (==)CMP R_src1, R_src2Comparaison d'égalité et mise à jour des drapeaux
100AND (&&)AND R_dest, R_src1, R_src2Opération logique ET
101OR (||)OR R_dest, R_src1, R_src2Opération logique OU
110JUMPJUMP addrSaut inconditionnel vers une adresse
111JUMP_IFJUMP_IF addrSaut conditionnel asservi aux drapeaux (Zero / Overflow)

Registres & Signaux d'État

  • Banc de registres : Matrice séquentielle architecturée avec des bascules D (D Flip-Flops).
  • Flags matériels :
    • Flag 1 : Zero (activé si le résultat de l'opération vaut 0).
    • Flag 2 : Overflow (activé lors d'un débordement arithmétique).
  • Fichier source : Models/Olds/ALU.circ.

🚀 Utilisation avec Logisim

  1. Téléchargez et installez Logisim (ou Logisim-evolution).
  2. Ouvrez le projet désiré :
    • UAL 8 bits : File > Open > Models/ALU/ALU8bits.circ
    • CPU V1 : File > Open > Models/Olds/ALU.circ
  3. Activez l'horloge et la simulation (Simulate > Ticks Enabled / Ctrl+K) pour observer l'exécution pas-à-pas et la propagation des signaux sur les bus.

📄 Licence

Ce projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.

About

CPU Schema

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors