Guide du débutant sur l'utilisation de Modelsim pour la simulation FPGA et ASIC
Tutoriel – Utiliser Modelsim pour la simulation, pour les débutants.
Modelsim est un programme créé par Mentor Graphics utilisé pour simuler vos conceptions VHDL et Verilog. Il s'agit du programme de simulation le plus utilisé dans les domaines des affaires et de l'éducation. Ce tutoriel explique d'abord pourquoi la simulation est importante, puis montre comment vous pouvez acquérir Modelsim Student Edition gratuitement pour votre usage personnel.
La simulation est une étape critique de la conception de FPGA et d'ASIC. La simulation permet au concepteur de stimuler sa conception et de voir comment le code qu'il a écrit réagit au stimulus. Une bonne simulation testera tous les états possibles de la conception pour garantir que tous les scénarios d’entrée seront traités de manière appropriée. Avez-vous oublié une instruction if quelque part ? Avez-vous pensé à donner toutes les tâches possibles en matière d'énoncé de cas ? Ce sont des types d’erreurs très faciles à commettre lorsque vous ne simulez pas votre conception. Commençons.
Avez-vous téléchargé et installé Modelsim sur votre ordinateur ? Obtenez-le ici. Effectuez l'installation avec les paramètres par défaut. Notez que vous devrez demander une licence à Mentor Graphics . À la fin de l'installation, vous devez sélectionner Terminer et une fenêtre de navigateur s'ouvrira avec le formulaire de demande de licence. Cliquer sur un lien de demande de licence existant à partir du favori de votre navigateur ou à partir d'un lien publié sur le Web ne fonctionnera pas.
Le code que nous allons simuler est la conception VHDL ci-dessous. Le code réel n’est pas important, donc si vous apprenez Verilog, ce n’est pas grave ! Vous n'avez pas besoin de connaître le VHDL pour ce tutoriel. Le code VHDL crée un simple And Gate et lui fournit quelques entrées via un banc de test. Copiez le code ci-dessous dans and_gate.vhd et le banc de test dans and_gate_tb.vhd.
and_gate.vhd :
library ieee; use ieee.std_logic_1164.all; entity and_gate is port ( input_1 : in std_logic; input_2 : in std_logic; and_result : out std_logic ); end and_gate; architecture rtl of and_gate is signal and_gate : std_logic; begin and_gate <= input_1 and input_2; and_result <= and_gate; end rtl;
and_gate_tb.vhd :
library ieee; use ieee.std_logic_1164.all; entity and_gate_tb is end and_gate_tb; architecture behave of and_gate_tb is signal r_SIG1 : std_logic := '0'; signal r_SIG2 : std_logic := '0'; signal w_RESULT : std_logic; component and_gate is port ( input_1 : in std_logic; input_2 : in std_logic; and_result : out std_logic); end component and_gate; begin and_gate_INST : and_gate port map ( input_1 => r_SIG1, input_2 => r_SIG2, and_result => w_RESULT ); process is begin r_SIG1 <= '0'; r_SIG2 <= '0'; wait for 10 ns; r_SIG1 <= '0'; r_SIG2 <= '1'; wait for 10 ns; r_SIG1 <= '1'; r_SIG2 <= '0'; wait for 10 ns; r_SIG1 <= '1'; r_SIG2 <= '1'; wait for 10 ns; end process; end behave;
Ouvrons Modelsim. Vous êtes accueilli avec une fenêtre qui ressemble à ceci
Fenêtre principale de Modelsim
Pour exécuter votre simulation, vous devez créer un projet. Cliquez sur Fichier -> Nouveau -> Projet. Vous verrez la fenêtre présentée à gauche. Choisissez un emplacement pour votre nouveau projet et donnez-lui le nom and_gate. Les projets dans Modelsim portent l'extension de fichier .prj. Laissez les autres paramètres à leurs valeurs par défaut. Cela dit simplement que tout le code sera compilé dans la bibliothèque « work ».
Cliquez sur Ajouter un fichier existant comme indiqué dans l'image de droite. Accédez à l'emplacement où vous avez téléchargé and_gate.vhd et and_gate_tb.vhd et ajoutez les deux à votre projet. Conservez les autres paramètres par défaut. Cliquez sur OK lorsque vous avez terminé.
Fenêtre du projet Modelsim – Fichiers ajoutés au projet
Notez maintenant que les fichiers ont été ajoutés avec succès à votre projet. Vous voyez ces deux points d'interrogation bleus dans la figure de la fenêtre du projet Modelsim ci-dessus ? Cela signifie que Modelsim n'a pas encore compilé les fichiers. Vous devrez compiler les fichiers sources. Pour cela, faites un clic droit sur and_gate.vhd, cliquez sur Compile, puis cliquez sur Compile All. Vous devriez voir des messages dans la fenêtre de la console apparaître en vert indiquant que la compilation a réussi, comme indiqué dans la capture d'écran ci-dessous.
Résultats d'une compilation réussie
Pour démarrer votre simulation, cliquez sur Simuler dans la barre de menu, puis cliquez sur Démarrer la simulation. Cela ouvre la fenêtre Démarrer la simulation. Cliquez sur le signe plus à côté de work, puis cliquez sur le signe plus à côté de and_gate_tb. Assurez-vous de sélectionner and_gate_tb et non and_gate car nous voulons simuler la conception au niveau du banc de test. Une fois and_gate_tb mis en surbrillance, cliquez sur OK.
Fenêtre de simulation Modelsim – Prête pour la simulation
J'y suis presque ! La simulation est prête et attend. Désormais, la majorité du temps que vous utiliserez Modelsim sera consacré à l’affichage de la forme d’onde. La vue de forme d'onde contient des ondes (0 et 1 binaires, chiffres hexadécimaux, chiffres binaires, types énumérés, etc.) pour tous les signaux de votre conception. Il montre comment votre module réagit à différents stimulus. La figure suivante vous montre à quoi ressemble votre vue de forme d'onde, mais vous devez d'abord ajouter des signaux à surveiller. Dans cet exemple, nous surveillerons tous les signaux dans le banc de test. Pour ce faire, faites un clic droit sur and_gate_tb dans la fenêtre de simulation et cliquez sur Ajouter une vague . Vous pouvez également cliquer et faire glisser les signaux vers la fenêtre de forme d'onde à partir d'autres fenêtres de Modelsim.
Voici votre fenêtre de forme d'onde. Tous les signaux du banc de test ont été ajoutés en tant que signaux que vous pouvez surveiller. Pour exécuter la simulation, cliquez sur l'icône avec un petit morceau de papier et une flèche vers le bas à côté du temps de 100 ns. Cela exécutera votre simulation pendant 100 nanosecondes. Regardez comment les signaux changent ! Félicitations! Vous avez créé votre première simulation Modelsim !
Ce didacticiel vous a montré comment créer votre propre projet dans Modelsim, ajouter des fichiers à votre projet, compiler vos fichiers sources, démarrer votre simulation et afficher vos formes d'onde. Vous êtes prêt à explorer tous les exemples de cette page Web et à exécuter les simulations par vous-même. Utilisez la barre latérale en haut de la page pour la navigation.
VHDL
- Automatisez le développement FPGA avec Jenkins, Vivado et GitHub sur un VPS Linux
- Variables - Exemple VHDL
- Comment arrêter la simulation dans un testbench VHDL
- Différence entre un signal et une variable en VHDL
- Enregistrements - Exemple VHDL
- Comment utiliser la boucle et la sortie en VHDL
- Comment créer une instruction simultanée en VHDL
- Exemples de conversions VHDL
- Comment utiliser le type VHDL le plus courant :std_logic