Quelle est la différence entre le code comportemental et structurel en VHDL?


Réponse 1:

Le code comportemental VHDL est pour les utilisateurs de dire aux synthétiseurs (Xilinx ISE, Quartus II, compilateur RTL, etc.) de synthétiser tous les circuits logiques numériques pour effectuer une fonction spécifique en fonction des comportements écrits dans le code. Ainsi, les synthétiseurs détermineront à quoi ressemble le circuit à partir des comportements du code et les utilisateurs ne se soucient que de la fonctionnalité du code.

D'un autre côté, le code structurel est pour les utilisateurs de dire aux synthétiseurs de synthétiser exactement le circuit qu'ils ont voulu et conçu. Ainsi, les utilisateurs peuvent avoir un contrôle total sur l'apparence du circuit pour exécuter la fonction souhaitée. En utilisant du code structurel, les utilisateurs veulent prendre soin non seulement de la fonctionnalité mais également de la structure des circuits pour de nouvelles optimisations (vitesse, zones, etc.).

Par exemple, vous voulez implémenter un ajout de 2 nombres A et B. En utilisant du code comportemental, écrivez simplement: S <= A + B; Ensuite, les synthétiseurs synthétiseront ou choisiront les structures pour effectuer l'addition. Il peut s'agir d'ajouts en série normaux ou de tout autre élément à effectuer l'ajout. À l'aide du code structurel, vous allez concevoir la structure que vous souhaitez appliquer pour effectuer l'ajout. Par exemple, pour améliorer la vitesse de l'additionneur, vous concevez un Carry look ahead Adder, puis vous écrivez le code structurel pour celui-ci.

Consultez l'exemple complet de VHDL comportemental et structurel pour un additionneur complet: code VHDL pour Full Adder


Réponse 2:

Le code structurel dans n'importe quel HDL est la substance qui décrit des choses comme le câblage et les choses physiques. Le code comportemental est utilisé pour décrire des modèles de choses connectées entre les fils.

Il y a un léger chevauchement dans Verilog parce que le code comportemental pour les éléments primitifs est en C et intégré dans le simulateur, et les UDP sont une version plus simple du code comportemental pilotée par table.