Exercice de logique sous YosysDigitalJS

Multiplexeur

On souhaite implémenter le multiplexeur à deux entrées.

  1. Déclarez un module mux2 ayant pour entrées E0, E1 et Sel, et pour sortie S.

  2. Cliquez sur Synthesize and simulate! pour vérifier l’absence d’erreurs de syntaxe.

  3. Décrivez le comportement du multiplexeur.

  4. Vérifiez son comportement en utilisant le schéma interactif à droite.

On souhaite maintenant utiliser ce module pour réaliser un multiplexeur à quatre entrées.

  1. Cliquez sur SystemVerilog (en haut de la fenêtre) pour sauvegarder votre module, en remplaçant le nom circuit.sv par mux2.sv.


Pour pouvoir choisir l’emplacement et le nom du fichier, sous Firefox, vous devez avoir activé l’option Préférences/Fichiers et applications : Toujours me demander.


  1. Ajoutez le module au projet en cliquant sur Parcourir (en dessous de Additional SystemVerilog files) et en sélectionnant le fichier mux2.sv.

  2. Déclarez un module top ayant pour entrées un signal E codé sur quatre bits, un signal Sel sur deux bits, et pour sortie S.

  3. Instanciez autant de modules mux2 que nécessaire.

  4. Vérifiez le comportement du module top en utilisant le schéma interactif à droite.


Avant de passer à l’exercice suivant, vous allez devoir réinitialiser l’outil pour supprimer l’utilisation de mux2.sv dans le projet. Pour cela, appuyez simultanément sur Ctrl + F5. Attention, cela efface toutes les données, sauvegardez préalablement votre code si vous souhaitez en conserver une copie.


Décodeur 2 vers 4

On souhaite implémenter un décodeur  vers 4.

  1. Déclarez un module dec24 ayant un signal d’entrée E sur deux bits et un signal de sortie S sur quatre bits.

  2. Décrivez le comportement du décodeur en utilisant les opérateurs booléens décrits dans la section §1.4.5 du guide de SystemVerilog (annexe A du polycopié).

  3. Vérifiez son comportement en utilisant le schéma interactif à droite.

Décodeur sept segments

On souhaite implémenter un décodeur qui servira à piloter un afficheur sept segments. Lorsqu’un signal de commande est à l’état logique ’0, le segment correspondant est allumé.

  1. Déclarez un module dec7seg ayant un signal d’entrée E sur quatre bits et un signal de sortie sur sept bits ayant pour nom SevenSeg0 (ce nom va faire apparaître un afficheur virtuel).

  2. Cliquez sur Synthesize and simulate! Sur le schéma interactif à droite, vous voyez apparaître l’afficheur.

  3. Décrivez le comportement du décodeur.

  4. Vérifiez son comportement en utilisant le schéma interactif à droite.

On souhaite maintenant piloter deux afficheurs sept segments.

  1. Sauvegardez votre module et ajoutez-le au projet (vous en aurez aussi besoin pour d’autres séances).

  2. Déclarez un module top ayant un signal d’entrée E sur huit bits, et deux signaux de sortie tous deux sur sept bits ayant pour noms protégés SevenSeg0 et SevenSeg1.

  3. Instanciez autant de modules dec7seg que nécessaire.

  4. Vérifiez le comportement du module top en utilisant le schéma interactif à droite.