Hardware vs Software
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 2 sur 90.
Nous écrivons du code pour le logiciel et le matériel, mais ils fonctionnent de manière complètement différente ! Comprendre ces différences est la clé pour penser comme un concepteur de matériel.
Le logiciel s'exécute étape par étape. Le matériel exécute tout en même temps.
Logiciel (C, Python, Java) :
- Fait une chose, puis la suivante
- Les variables apparaissent et disparaissent
- Le temps est approximatif
Matériel (Verilog) :
- Exécute plusieurs tâches en même temps
- Les circuits existent en permanence
- Le temps est exact
Exemple : Un site web se charge étape par étape. Un interrupteur s'allume instantanément. C'est là toute la différence.
Pourquoi c'est important : Lorsque vous écrivez du Verilog, vous décrivez un circuit qui fonctionne en parallèle, indéfiniment, avec un cadencement précis.
Aide-mémoire
Exécution logicielle vs matérielle :
- Logiciel (C, Python, Java) : s'exécute étape par étape, les variables apparaissent/disparaissent, le temps est approximatif
- Matériel (Verilog) : tout s'exécute en parallèle, les circuits existent indéfiniment, le temps est exact
En écrivant du Verilog, vous décrivez un circuit qui s'exécute en parallèle, indéfiniment, avec un timing précis.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1Introduction
Qu'est-ce que VerilogHardware vs SoftwareNiveaux d'abstraction de conceptionVotre premier moduleCommentaires4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloOpérateurs de comparaisonRécapitulatif - Mathématiques simplesOpérateurs bit à bit7Assignation et portes logiques
Assignation continueAssignation avec opérateursPrimitives de portes intégréesPortes AND OR NOTPortes XOR XNORRécapitulatif - Circuit à portes logiques10Prise de décision
Instruction IfIf - ElseRécapitulatif - Comparateur simpleInstruction CaseCasex et CasezRécapitulatif - Conception d'ALU2Types de données
Type WireType RegEntiers et RéelsVecteursTableauxParamètresRécapitulatif - Déclarer des signaux5Opérateurs - Partie 2
Opérateurs logiquesOpérateurs de réductionOpérateurs de décalageOpérateur de concaténationOpérateur conditionnelRécapitulatif - Défi sur les opérateurs11Boucles
Boucle ForBoucle WhileBoucle RépéterBoucle InfinieInstruction DisableRécapitulatif - Modèles de boucles3Système de numération
Représentation binaireNombres avec tailleNombres sans tailleNombres négatifsValeurs spéciales X et ZRécapitulatif - Formats de nombres6Modules
Structure d'un modulePorts d'entrée et de sortiePorts InoutInstanciation de moduleMappage de ports par nomMappage de ports par ordreRécapitulatif - Créer un module9Blocs procéduraux
Bloc AlwaysBloc InitialListe de sensibilitéAffectation bloquanteAffectation non bloquanteRécapitulatif - Always vs Initial12Projet Multiplexeur
Conception d'un Mux 2 vers 1Conception d'un Mux 4 vers 115Contrôleur de feux de circulation
Définition des étatsLogique de la machine à états