logical_editor
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| logical_editor [2025/12/08 10:37] – mistert2 | logical_editor [2025/12/12 14:07] (Version actuelle) – mistert2 | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| {{ :: | {{ :: | ||
| - | # SimuLogic — Simulateur logique | + | SimuLogic — Simulateur logique |
| *Lazarus / FreePascal — Octobre 2025* | *Lazarus / FreePascal — Octobre 2025* | ||
| - | --- | ||
| - | ## Objectif du projet | + | |
| + | **Objectif du projet** | ||
| SimuLogic est un environnement développé sous Lazarus / FreePascal permettant : | SimuLogic est un environnement développé sous Lazarus / FreePascal permettant : | ||
| - | - de construire et simuler des circuits logiques combinatoires et séquentiels ; | + | * de construire et simuler des circuits logiques combinatoires et séquentiels ; |
| - | - de composer progressivement un micro-contrôleur rudimentaire, | + | |
| - | - un gestionnaire de bus, | + | |
| - | - une mémoire ROM contenant un programme, | + | |
| - | - une RAM 8 bits, | + | |
| - | - un registre d’instruction (IR), | + | |
| - | - un registre accumulateur (A), | + | |
| - | - une unité arithmétique et logique (ALU), | + | |
| - | - un compteur ordinal (PC), | + | |
| - | - un contrôleur / unité de commande capable de décoder les instructions. | + | |
| - | L’objectif est un outil pédagogique puissant, simple d' | ||
| - | --- | + | L’objectif est un outil pédagogique puissant, simple d' |
| - | ## Philosophie du logiciel | ||
| - | ### 1. Le concret d’abord | + | **Philosophie du logiciel** |
| - | SimuLogic rend visibles : | + | 1. Le concret d’abord |
| + | |||
| + | SimuLogic rend visibles : | ||
| + | |||
| + | * la propagation des bits, | ||
| + | * le rôle des bascules et des fronts d’horloge, | ||
| + | * la circulation des données dans les bus. | ||
| - | - la propagation des bits, | ||
| - | - le rôle des bascules et des fronts d’horloge, | ||
| - | - la circulation des données dans les bus, | ||
| - | - le fonctionnement interne d’un micro-contrôleur. | ||
| L’élève observe le système fonctionner étape par étape, ce qui ancre les concepts abstraits dans l’expérience concrète. | L’élève observe le système fonctionner étape par étape, ce qui ancre les concepts abstraits dans l’expérience concrète. | ||
| - | ### 2. Une logique unifiée : combinatoire + séquentielle | + | 2. Une logique unifiée : combinatoire + séquentielle |
| Le moteur interne repose sur deux passes : | Le moteur interne repose sur deux passes : | ||
| - | 1. Passage séquentiel — traitement des signaux mémorisés (@signal) | + | |
| - | 2. Passage combinatoire — propagation logique instantanée | + | 2. Passage combinatoire — propagation logique instantanée |
| Cette architecture clarifie la différence entre mémoire et logique et permet de créer des circuits fiables et pédagogiques. | Cette architecture clarifie la différence entre mémoire et logique et permet de créer des circuits fiables et pédagogiques. | ||
| - | ### 3. Construire un micro-contrôleur, | ||
| - | Chaque composant du micro-contrôleur est représenté par un bloc : | + | **Construction de circuits** |
| - | + | ||
| - | - PC (compteur ordinal) | + | |
| - | - IR (registre d’instruction) | + | |
| - | - A (accumulateur) | + | |
| - | - ALU (arithmétique et logique) | + | |
| - | - ROM (programme) | + | |
| - | - RAM (mémoire de données) | + | |
| - | - BUS (sélection de sources) | + | |
| - | - CTRL (décodage d’instruction) | + | |
| - | + | ||
| - | L’utilisateur peut câbler son propre micro-contrôleur et observer son fonctionnement interne, ce qu'un matériel réel ne permet pas de manière aussi transparente. | + | |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | ## Construction de circuits | + | |
| L' | L' | ||
| - | - portes logiques (AND, OR, XOR, NOT…) | + | * portes logiques (AND, OR, XOR, NOT…) |
| - | - multiplexeurs | + | |
| - | - bascules (RS, JK, D, T) | + | |
| - | - compteurs | + | |
| - | - bus 4 ou 8 bits | + | |
| - | - registres | + | |
| - | - RAM et ROM | + | |
| - | - afficheurs (LED, 7 segments) | + | |
| - | - labels (renommage et routage local) | + | |
| - | - notes | + | |
| Chaque bloc possède : | Chaque bloc possède : | ||
| - | - des entrées et sorties nommées, | + | * des entrées et sorties nommées, |
| - | - des équations logiques internes en notation RPN, | + | |
| - | - un préfixe automatique évitant les collisions de noms. | + | |
| Les connexions se font intuitivement par clic, même dans des circuits complexes. | Les connexions se font intuitivement par clic, même dans des circuits complexes. | ||
| - | --- | + | **Simulation** |
| - | ## Simulation | + | * Simulation |
| + | * Affichage direct de : | ||
| + | * l’état des bits, | ||
| + | * les valeurs des bus, | ||
| + | * l’état des registres, | ||
| + | * le cycle d' | ||
| - | - Simulation en temps réel via timer ou en mode pas-à-pas. | ||
| - | - Affichage direct de : | ||
| - | - l’état des bits, | ||
| - | - les valeurs des bus, | ||
| - | - l’état des registres, | ||
| - | - le cycle d' | ||
| La mémoire interne peut être inspectée et figée pour analyser un cycle. | La mémoire interne peut être inspectée et figée pour analyser un cycle. | ||
| - | --- | ||
| - | |||
| - | ## Simulation d’un micro-contrôleur rudimentaire | ||
| - | |||
| - | ### Pipeline minimal | ||
| - | |||
| - | 1. **FETCH** | ||
| - | - PC fournit l’adresse | ||
| - | - ROM renvoie l’octet d’instruction | ||
| - | - IR se charge | ||
| - | |||
| - | 2. **DECODE** | ||
| - | - Le contrôleur active LOAD_A, ALU_SEL, BUS_SEL, RAM_RW, etc. | ||
| - | |||
| - | 3. **EXECUTE** | ||
| - | - ALU calcule | ||
| - | - Accumulateur ou RAM mis à jour selon l’instruction | ||
| - | |||
| - | ### Jeu d’instructions typique | ||
| - | |||
| - | - LDA imm : charger une constante | ||
| - | - ADD imm : addition immédiate | ||
| - | - STA addr : stocker A en RAM | ||
| - | - LDA addr : charger depuis la RAM | ||
| - | - JMP addr : saut inconditionnel | ||
| - | |||
| - | L’élève voit littéralement les signaux s’activer et le bus commuter, ce qui concrétise la micro-architecture. | ||
| - | |||
| - | --- | ||
| - | |||
| - | ## Public visé | ||
| - | |||
| - | - Enseignants en sciences de l’ingénieur (STI2D / SSI) | ||
| - | - Étudiants en électronique ou informatique | ||
| - | - Makers souhaitant comprendre l’intérieur d’un CPU | ||
| - | - Élèves débutants en logique numérique | ||
| - | --- | + | * Enseignants en sciences de l’ingénieur (STI2D / SSI) |
| + | * Étudiants en électronique ou informatique | ||
| + | * Élèves débutants en logique numérique | ||
| - | ## Pourquoi ce logiciel est unique ? | + | **Pourquoi ce logiciel est unique ?** |
| - | - Il combine éditeur visuel, simulateur logique, gestion des bus et micro-architecture complète. | + | * Il combine éditeur visuel, simulateur logique, gestion des bus. |
| - | - Il est basé sur Lazarus/ | + | |
| - | - Il offre une visualisation interne du micro-contrôleur, | + | |
| - | - Sa logique interne simple mais cohérente est idéale pour la formation. | + | |
| - | --- | ||
| - | ## Évolutions possibles | ||
| - | - Breakpoints et debug instruction par instruction | ||
| - | - Registres supplémentaires | ||
| - | - ALU paramétrable | ||
| - | - Jeu d’instructions étendu | ||
| - | - Export en VHDL/ | ||
| - | - Interaction avec microcontrôleurs réels via liaison série | ||
| - | --- | ||
logical_editor.1765190243.txt.gz · Dernière modification : de mistert2
