Qu'est-ce qui me ferait choisir Verilog ou VHDL plutôt que la conception schématique sur CPLD ou FPGA?

13

Je n'ai absolument aucune expérience en logique programmable, j'utilise principalement des microcontrôleurs dans mes projets mais récemment, je devais travailler avec la vidéo et le microcontrôleur est tout simplement trop lent pour ce dont j'avais besoin, alors j'ai commencé à jouer avec des CPLD.

J'ai pu obtenir de bons résultats avec le CPLD uniquement en utilisant une conception schématique, mais lors de la recherche d'informations sur les CPLD, je suis tombé sur de nombreux exemples en utilisant VHDL et Verilog. Je suis curieux de savoir ce qui pourrait me donner envie de définir mon appareil dans l'une de ces langues. Que peuvent-ils faire que la conception schématique ne peut pas? Sont-ils principalement utilisés pour des fonctions?

Jusqu'à présent, je n'ai utilisé que des CPLD, les conceptions de FPGA bénéficient-elles plus que les CPLD de l'utilisation de ces langues?

Bruno Ferreira
la source
1
Vous trouverez probablement des outils de synthèse fournis par le fournisseur pour Verilog et VHDL pour les pièces grand public. Le choix est donc purement d'opinion. Je vous encourage à regarder les deux et à décider laquelle vous préférez. Xilinx fournit de bons exemples dans les deux langues, je pense que d'autres fournisseurs le font aussi.
David
3
Vous devez absolument vous éloigner de la capture schématique pour la conception logique. Cela semble plus facile au début, mais c'est illusoire. Mon 0,02 $ sur les langues: VHDL est une abomination, utilisez Verilog.
Markt
@markt, pourquoi pensez-vous que le VHDL est si mauvais?
stanri
2
On pourrait tout aussi bien dire que Verilog est une abomination, utilisez VHDL. VHDL s'attend à ce que vous disiez exactement ce que vous voulez, tandis que Verilog devine. Mais c'est juste mon 0,02 £.
Brian Drummond
1
@markt, j'ai commencé avec VHDL, donc à un moment j'ai apprécié son caractère fortement typé. Cela m'a obligé à réfléchir à ce que je voulais et à créer de bonnes habitudes au début. Maintenant, je suis trop loin dans le camp SystemVerilog pour me soucier trop de toute façon, honnêtement.
stanri

Réponses:

14

La conception schématique n'est utile que lorsque vous ne liez que quelques modules standard (compteurs, additionneurs, mémoire, etc.). Mais l'implémentation d'un algorithme réel (par exemple, un algorithme de hachage de cryptographie) est presque impossible de se passer d'un HDL (comme VHDL ou Verilog), car il n'y a aucun moyen de décrire un système à un niveau de comportement avec des symboles schématiques.

La plupart des projets sont réalisés en HDL de type comportemental car ils sont trop complexes pour être synthétisés à la main et dessinés schématiquement à l'aide de primitives logiques.

Les CPLD sont généralement utilisés pour la logique de collage et moins utilisés pour le traitement, et généralement la logique est facile à implémenter schématiquement, donc je pense que vous avez raison lorsque vous suggérez que les conceptions basées sur FPGA bénéficient davantage de l'utilisation d'un HDL.

Jay Carlson
la source
Vous pouvez faire des choses très complexes dans un système schématique symbolique. J'irais jusqu'à dire que tout ce qui peut être fait dans un HDL pourrait être implémenté dans un système basé sur des schémas, mais au prix de la maintenabilité. Tant que le jeu d'outils peut définir des blocs de symboles qui agissent comme un seul symbole, vous pouvez faire à peu près n'importe quoi.
Connor Wolf
1
Un bon exemple ici est labview. Il s'agit d'une interface de programmation symbolique où les gens ont conçu des systèmes massivement complexes qui automatisent des usines entières. Le résultat final est presque impossible à maintenir, mais c'est possible (note: je ne parle pas de savoir si c'est une bonne idée, juste la viabilité de base).
Connor Wolf
"La plupart des projets sont réalisés en HDL de type comportemental ..." n'est pas compatible et en fait ce n'est PAS la façon dont les flux de conception fonctionnent.
espace réservé
@ConnorWolf Je dois être en désaccord avec le fait que le code Labview est aussi incontrôlable - pas que je suis un grand fan. Il y a quelques bonnes pratiques qui aident vraiment. Pour moi, c'est généralement l'abandon à tout espoir de compatibilité avant ou arrière qui provoque des problèmes de maintenance, par opposition à tout ce qui est inhérent au langage G;)
Scott Seidman
4

Quelques aspects pratiques en plus de l'excellente réponse de Jay:

  • Bugs. Les outils schématiques ont tendance à être plus bogués * que le reste du jeu d'outils. Cela est peut-être dû à la préférence de Verilog / VHDL par rapport aux schémas dans l'industrie, et donc la saisie schématique est accordée moins d'attention par les développeurs de logiciels.
  • La vitesse. Le schéma doit d'abord être converti en HDL avant de le passer à l'outil de synthèse. Cela peut avoir un impact négatif sur les temps de construction. Le HDL généré peut également ne pas être très lisible si vous devez l'inspecter pour une raison quelconque.
  • Portabilité. Selon la quantité de primitives spécifiques au fournisseur utilisées, Verilog et VHDL sont plus ou moins portables entre les appareils. Les schémas de portage vous obligent à tout redessiner ou à vous fier aux capacités d'importation / exportation fournies (le cas échéant).

* Mon bug préféré dans Xilinx ISE était l' incapacité de sélectionner des fils verticaux.

wailashi
la source
2

Il existe de nombreux avantages d'un HDL (Hardware Description Languages) en tant que norme d'entrée de conception.

La description de la fonctionnalité peut être à un niveau supérieur, les conceptions basées sur HDL peuvent être synthétisées en une description au niveau de la porte d'une technologie choisie, Une conception HDL est plus facilement comprise qu'une liste nette au niveau de la porte ou une description schématique et des HDL réduire les erreurs en raison de la vérification de type forte.

Les langages de description du matériel VHDL et Verilog ont été conçus pour modéliser le matériel dans le but de modéliser à un niveau d'abstraction plus élevé qui comprend des fonctionnalités telles que la concurrence, le calendrier, la hiérarchie, la réutilisation des composants, le comportement d'état, le comportement synchrone, le comportement asynchrone, la synchronisation et le parallélisme inhérent .

Des problèmes surviennent pendant la synthèse, la mise en correspondance de la description de la conception avec un processus spécifique et la mise en œuvre de la porte. Cela nécessite que vous ne puissiez pas utiliser les fonctionnalités de haut niveau du HDL - vous devez produire "Verilog / VHDL synthétisable"

Vous avez donc HDL pour la synthèse et HDL pour la simulation et le sous-ensemble qui est synthétisable est spécifique à l'outil.

Vous ne pouvez pas passer d'une description de conception comportementale à une net-list / layout. Mais vous pouvez structurer votre conception pour avoir des composants comportementaux qui ont également un aspect synthétisable qui peut être comparé les uns aux autres. Vous commencez avec le comportement, puis une fois que cela fonctionne, vous réécrivez pour la synthèse (qui est un sous-ensemble). Vous passez du général au spécifique et construisez des bancs d'essai en cours de route.

espace réservé
la source
1

Un autre avantage est que les HDL ont tous les mêmes avantages que les langages de programmation normaux en ce qu'ils peuvent être utilisés dans des systèmes de contrôle de version standard, diff-ed pour examiner les changements, etc.

mhz
la source
0

En plus de ce qui a déjà été dit: la représentation textuelle est tout simplement beaucoup plus facile à gérer, en particulier dans les grands projets. Vous pouvez (quoique avec d'énormes difficultés) convertir n'importe quel HDL synthétisable en schéma, mais des centaines de lignes de texte brut sont plus faciles à travailler que des centaines d'éléments schématiques.

valplo
la source