Information

Author(s) Nikita Tyunyayev, Aurélien Buchet
Deadline Geen deadline
Submission limit 5 submissions
every 1 hour(s)

Tags

Sign in

Introduction au logiciel

Lors de ce deuxième TP, nous allons prendre en main un HDL (Hardware Description Language, ou « langage de description de matériel »). Celui utilisé dans le livre nand2tetris. Ce premier exercice sert à prendre en main le simulateur.

https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/overview.png

Mise en place

Aucune installation n'est requise. Le simulateur est disponible en ligne à l'adresse : https://nand2tetris.github.io/web-ide/chip/

Navigateurs supportés : Chrome (ou tout navigateur basé sur Chromium), Edge ou Opera.

Téléchargement des projets

Nous allons commençer par télécharger les exercices du livre nand2tetris

  1. Cliquez sur l'icône Paramètres (engrenage) dans le simulateur.
https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/settings.png
  1. Sélectionnez Download Projects et sauvegardez le fichier ZIP.
https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/download_projects.png https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/gdrive.png
  1. Décompressez le ZIP dans un emplacement approprié.

Le dossier extrait contient des sous-dossiers numérotés (0, 1, 2, …), correspondant chacun aux projets d'un chapitre du livre nand2tetris. Par exemple, le dossier 1 contient des fichiers .hdl, .cmp et .tst, des squelettes de portes logiques à implémenter.

Créez un nouveau dossier appelé LINFO1140 au même niveau que les dossiers numérotés. C'est là que vous placerez vos circuits personnalisés.

Chargement du dossier dans le simulateur

  1. Dans le simulateur, cliquez sur Select Folder et sélectionnez le dossier que vous venez d'extraire.
https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/select_folder.png

Ce dossier nous sera utile plus tard dans le tutoriel.

Exemple : implémenter la porte Not

Pour se familiariser avec le simulateur, commençons par implémenter la porte Not du Projet 1.

Sélectionnez-la depuis le menu déroulant du simulateur.

https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/not.png

L'éditeur affiche le squelette suivant :

CHIP Not {
    IN in;
    OUT out;

    PARTS:
    // Remplacez ce commentaire par votre code.
}

Ce squelette déclare un circuit appelé Not avec une entrée (in) et une sortie (out). Pour l'implémenter, complétez la section PARTS en utilisant des portes Nand — la seule primitive disponible.

L'implémentation complète :

CHIP Not {
    IN in;
    OUT out;

    PARTS:
    Nand(a=in, b=true, out=out);
}

Cela fonctionne car NAND(x, 1) = NOT(x).

Exécution des tests

Le panneau de droite affiche une suite de tests pour le circuit. Vous pouvez :

  • Exécuter les tests un par un avec Step.
  • Exécuter tous les tests d'un coup avec Run.
https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/tests.png

Après chaque test, les valeurs courantes des entrées et sorties s'affichent dans le panneau central. L'onglet Output du panneau de droite affiche la table de vérité complète générée par les tests, ce qui vous permet de vérifier votre implémentation.

https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/tests_results.png

Écrire ses propres blocs logiques

Pour les exercices qui ne sont pas couverts par les projets existants, utilisez le dossier LINFO1140 que vous avez créé.

Pour travailler sur la porte Not dans votre propre dossier, copiez les fichier Not.hdl, Not.cmp, Not.tst depuis le dossier 1 vers le dossier LINFO1140.

Après avoir rafraîchi le simulateur (F5), la porte Not apparaîtra sous l'onglet Project LINFO1140.

https://inginious.info.ucl.ac.be/course/LSINC1102/$common/tuto_hdl/custom_gate.png

Pour travailler sur un chip MyChip, vous devez renommer les fichiers Not en MyChip et remplacer toutes les occurrences de Not dans les 3 fichiers par MyChip.

Il n'est pas possible de modifier tous ces fichiers directement depuis le simulateur, vous pouvez le faire depuis votre éditeur de texte préféré (VSCode)! Vous devez ensuite refresh la page du simulateur.


J'ai réussi à setup le logiciel

Répondez honnêtement, cette question ne sera pas prise en compte pour la note de participation.