Question

À l'heure actuelle je teste certains RTL, je me sers ncverilog, et il est très ... très lent. Je l'ai entendu dire que, si nous utilisons une sorte de cartes FPGA, alors les choses seront plus rapides. Est-ce vrai?

Était-ce utile?

La solution

Vous parlez de deux choses différentes.

ncverilog est un outil de simulation tandis qu'une carte FPGA est matériel réel. Donc, il y aura des différences. matériel réel est généralement plus rapide, mais avec un simulateur, vous pouvez avoir toutes sortes de débogage amusant. Essayer de sonder un signal spécifique est juste une question d'ajouter une ligne au banc d'essai. En outre, vous pouvez facilement apporter des modifications au modèle simulé au lieu d'avoir à redessiner la carte FPGA.

Si vous exécutez la simulation sur une machine suffisamment puissante, vous pouvez parfois approximative des performances réelles (en supposant que le FPGA est lent).

Dans l'ensemble, vous devriez faire les deux. Utilisez un simulateur pour faire votre développement de base et l'évaluation. Déplacez sur votre matériel FPGA une fois que votre conception est suffisamment bien défini.

Autres conseils

Nous avons eu les mêmes problèmes avec la vitesse de simulation aussi. Cependant, nous restons fidèles à des simulations pour la majorité de notre vérification. Chaque Sim vérifie une fonction spécifique et sont beaucoup plus rapides que sims au niveau du système. Nous avons également fait leur auto-contrôle et sont utiles pour les tests de régressions (tests unitaires).

Pour les tests à long système sur les signaux du monde réel qui prennent trop de temps pour simuler, nous déplacer vers le FPGA si nous pouvons. Nous avons besoin de re-vérifier manuellement tous ces testcases à nouveau après que les modifications de code, de sorte qu'il peut être lent à sa manière.

Parfois, cependant, FPGAing un design est tout simplement pas possible. Parfois, pleins modèles sont trop volumineux pour tenir dans un FPGA, ou la fréquence d'horloge est trop élevé. Mais rappelez-vous que vous ne devez pas nécessairement FPGA votre conception entière, il peut être suffisant pour obtenir le bloc important que vous êtes intéressé et vérifier cela pleinement.

Vous pouvez suivre l'activité sur les signaux dans une conception FPGA en cours d'exécution à l'aide d'outils logiciels « analyseur logique intégré » comme Altera ou Xilinx SignalTap ChipScope. Avant de synthèse / mapper votre RTL à l'appareil, vous pouvez utiliser ces outils pour fixer des sondes souples aux signaux que vous voulez regarder. Vous pouvez définir des déclencheurs pour que les valeurs d'un signal sont consignées uniquement dans certaines conditions. Ensuite, vous générez le bitfile et programmer l'appareil avec JTAG. L'analyseur logique communique avec votre PC sur JTAG et enregistre l'activité sur vos sondes, que vous pouvez ensuite analyser.

Il est un peu compliqué à mettre en place, car ces outils ne sont pas particulièrement faciles à utiliser, mais vous obtiendrez des résultats beaucoup plus rapidement que la simulation RTL.

Quel genre de RTL vous tester? Si vous utilisez FPGA conseils, vous pouvez compiler votre code à condition d'avoir l'outil pour le bon FPGA. Depuis FPGA sont reprograammable, alors bien sûr vous pouvez tester votre code sur la carte, et ont la cible (FPGA) exécuter votre code (RTL)

Mais il n'y a plus une simulation, il est un test, avec un matériel donné, à une vitesse d'horloge donnée. Et vous ne recevez pas beau résultat à l'écran, vous devez utiliser la sonde physique et la portée. De plus, vous ne recevez pas de voir comment l'interne de votre code fonctionne.

Verilog ou VHDL simulation est un peu comme le code en cours d'exécution à l'aide d'un débogueur. test FPGA est plus comme le débogage avec printf. La grande différence est que lors de la simulation, votre CPU doit simuler le comportement de tous ceux qui porte logique qui résulte de votre code. Sur le FPGA, il n'y a pas de simulation, vous venez de « run » le code, il est donc beaucoup plus rapide, mais vous avez moins d'informations.

Vous devez utiliser la simulation pour les composants très petits, puis testez votre programme tout sur un FPGA.

Vous vous demandez probablement au sujet des accélérateurs de simulation de matériel. Voici un d'entre eux: GateRocket

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top