2009-03-31 4 views
3

Actuellement, je suis en train de tester certains RTL, j'utilise ncverilog, et c'est très ... très lent. J'ai entendu dire que si nous utilisons des cartes FPGA, les choses seront plus rapides. Est-ce pour de vrai?Évaluation RTL basée FPGA

+0

Que considérez-vous comme très lent? Minutes ou heures. –

+1

@ Brian: Quand il vient à une seule série de tests, la différence de temps sera dans l'ordre d'une minute. Mais, quand nous courons un test complet, la différence est de l'ordre de jour ~ (je veux dire, jours ~~) – Alphaneo

Répondre

3

Vous parlez de deux choses différentes.

NCVerilog est un outil de simulation tandis qu'une carte FPGA est un véritable matériel. Donc, il y aura des différences. Le matériel réel sera 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 à la base de test. En outre, vous pouvez facilement modifier le modèle simulé au lieu de devoir repenser la carte FPGA. Si vous exécutez la simulation sur une machine suffisamment puissante, vous pouvez parfois approximer les performances du monde réel (en supposant que le FPGA soit lent).

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

+0

Bonne réponse (facile à comprendre pour un débutant comme moi). Je vous remercie! – Alphaneo

2

Quel type de RTL testez-vous? Si vous utilisez des cartes FPGA, alors vous pouvez compiler votre code à condition d'avoir le bon 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 est plus une simulation, il est un test, avec une donnée matériel, à une vitesse d'horloge donnée. Et vous n'obtenez pas de résultat agréable à l'écran, vous devez utiliser une sonde physique et une portée. De plus, vous n'avez pas à voir comment l'interne de votre code fonctionne.

La simulation verilog ou VHDL est un peu comme le code d'exécution utilisant un débogueur. Le test FPGA est plus proche du débogage avec printf. La grande différence est que lors de la simulation, votre CPU doit simuler le comportement de toutes les portes logiques qui résultent de votre code. Sur le FPGA, il n'y a pas de simulation, il vous suffit de 'lancer' le code, donc c'est beaucoup plus rapide, mais vous avez moins d'informations.

Vous devez utiliser la simulation pour les très petits composants, puis tester l'ensemble de votre programme sur un FPGA.

3

Nous avons également rencontré les mêmes problèmes de vitesse de simulation. Cependant, nous nous en tenons à des simulations pour la majorité de notre vérification. Chaque sim vérifie une fonction spécifique et est beaucoup plus rapide que les sims au niveau du système. Nous les avons également auto-vérifiés et utiles pour les tests de régression (tests unitaires).

Pour les tests de systèmes longs sur des signaux du monde réel qui prennent trop de temps à simuler, nous les transférons au FPGA si nous le pouvons. Nous devons re-vérifier manuellement tous ces testcases après le changement de code, de sorte qu'il peut être lent à sa manière. Parfois, cependant, FPGAing une conception n'est tout simplement pas réalisable. Parfois, les conceptions complètes sont trop grandes pour tenir dans un FPGA, ou la fréquence d'horloge est trop élevée. Mais rappelez-vous que vous n'avez pas forcément besoin d'un FPGA pour l'ensemble de votre conception, cela peut suffire à obtenir le bloc important qui vous intéresse et à le vérifier complètement.

3

Vous pouvez suivre l'activité des signaux dans une conception FPGA en cours d'exécution en utilisant des outils logiciels «embedded logic analyser» comme Altera SignalTap ou Xilinx ChipScope. Avant de synthétiser/mapper votre RTL sur l'appareil, vous utiliserez ces outils pour attacher des sondes douces aux signaux que vous souhaitez regarder. Vous pouvez définir des déclencheurs afin que les valeurs d'un signal ne soient enregistrées que dans certaines conditions. Ensuite, vous générez le bitfile et programmez l'appareil avec JTAG. L'analyseur logique communique avec votre PC via JTAG et consigne 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.

1

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

+1

GateRocket a cessé ses activités l'année dernière. – FarhadA