Question

Je suis chargé de vérifier certains codes RTL basés sur Verilog. Maintenant, coder le banc d'essai RTL avec verilog semble être très difficile (pour moi). Je voudrais donc essayer l'une des solutions suivantes. - Essayez de fournir une interface PLI à la RTL et appelez ainsi les fonctions 'C pour les tests - Utilisation du système 'C pour l’interfaçage des fonctions' C

PS: J'ai déjà un code C complet qui a été utilisé pour tester le modèle comportemental. Je suis nouveau dans le monde de la programmation matérielle. Tous les indicateurs seraient grandement appréciés.

Était-ce utile?

La solution

Si vous avez déjà du code C complet utilisé pour tester le modèle comportemental, vous devez simplement ajouter une interface PLI (ou DPI) qui vous permettra d'appeler ce code c à partir de Verilog.

SystemC est fondamentalement C ++ avec un grand nombre de classes qui vous permettent de modéliser HW. Je ne vois pas en quoi vous auriez intérêt à apprendre SystemC pour la tâche que vous tentez, car vous disposez déjà d'un modèle C sur lequel vous pouvez tester le matériel. Learning SystemC est probablement trop cher pour ce que vous essayez de faire.

FYI. Si vous voulez apprendre quelque chose qui est très utilisé dans l'industrie aujourd'hui, alors je vous conseillerais d'apprendre SystemVerilog. De nos jours, SystemVerilog, fondamentalement verilog avec un tas de fonctionnalités de langage logiciel de haut niveau intégrées; avec "VMM", une "méthodologie de vérification" (c’est-à-dire un groupe de bibliothèques), semble faire fureur en ce qui concerne la vérification matérielle.

Autres conseils

Il n’est pas facile de répondre à la question sans connaître votre DUV (périphérique en cours de vérification) ou le code C que vous avez. Vous avez besoin de moyens pour stimuler et vérifier votre conception. Ici, vous avez probablement besoin de passer du niveau de transaction au niveau de transaction (structures de données C) vers le niveau de broche. Les interfaces SystemVerilog ou SystemC peuvent constituer une approche. Je n'ai pas encore utilisé les interfaces DPI / PLI.

Avoir un "état de l'art" " testbench, vous devriez envisager d'utiliser l'une des méthodologies de testbench existantes, à savoir VMM ou OVM . Ils vous fourniront également de la documentation pour vous aider à démarrer.

On dirait que vous devriez vous procurer un outil tel que les simulateurs de Mentor's ou de Cadence, qui combinent le code RTL et SystemC dans un système unique. Pas gratuit, certes, mais ils sont la solution car cela existe dans la pratique.

La solution structurellement correcte dont vous avez besoin est que le C ou le SystemC appelle la RTL, et non l'inverse. Cela implique d'intégrer un simulateur RTL à votre programme C ou SystemC. C’est certes faisable, mais c’est une très grosse entreprise.

De plus, je pense que l’utilisation de SystemVerilog a beaucoup de sens.

J'ai utilisé à la fois pour SystemC et System Verilog / VMM à des fins de vérification, et la réponse est que cela dépend. Lorsque j’étais avec une start-up qui disposait d’un budget restreint pour essayer de sortir son premier ASIC, SystemC était un choix naturel, car il fonctionnait sur notre simulateur à petit budget, contrairement à SystemVerilog. Avec SystemC, vous n'avez pas besoin d'utiliser le PLI ou le DPI. En fait, vous instanciez votre modèle SystemC en tant que composant de votre banc de test, ce qui est intéressant.

Cependant, SystemC est une bibliothèque C ++ qui n’a PAS une syntaxe très intuitive. Vous devez avoir un arrière-plan C ++ décent avant d'essayer d'apprendre la bibliothèque SystemC. Les livres disponibles sont pour la plupart des sots, à l’exception de "SystemC from the Ground Up". par David Black.

Cela dit, d'après ce que j'ai vu, SystemC est naturellement un langage de modélisation de haut niveau, pas un langage de vérification, et personne qui dispose d'un budget pour acheter de vrais simulateurs n'utilise plus SystemC à des fins de vérification. D'un point de vue général du développement de carrière, j'utiliserais System Verilog s'il est disponible. De plus, vous pouvez toujours utiliser le DPI pour vous connecter à votre modèle C pour le contrôle des sorties, qui utilise toujours des générateurs, des moniteurs et des tableaux de bord écrits en SV / VMM.

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