Je me demande quelle est la différence entre la composante d'une entité. Je voudrais savoir dans quels cas il vaut mieux utiliser des composants plutôt que des entités. Merci beaucoup.
Je me demande quelle est la différence entre la composante d'une entité. Je voudrais savoir dans quels cas il vaut mieux utiliser des composants plutôt que des entités. Merci beaucoup.
Réponses:
Voici une analogie qui aide certaines personnes (en particulier celles issues de l'électronique physique):
A component
dit au compilateur "il va y avoir quelque chose avec ce genre de broches appelé à un moment donné, mais ne vous inquiétez pas pour l'instant". Il définit en quelque sorte un "socket". Vous pouvez continuer à décrire ce que "les fils" à cette "prise" etc.
An entity
est quelque chose de spécifique avec un nom et un ensemble de broches, que le compilateur peut ensuite "brancher" à cette "prise" (et donc être connecté aux "fils").
Notez que vous n'avez pas besoin d' un, component
vous pouvez faire une "instanciation directe" ce qui signifie que le compilateur connaît déjà une entité, donc le "socket" n'a pas besoin d'être défini séparément. En fait, ce serait mon approche recommandée, car sinon component
c'est un niveau supplémentaire à garder synchronisé.
Vous devez utiliser des composants si vous mélangez Verilog et VHDL et devez utiliser un bloc Verilog dans le VHDL. Ensuite, component
c'est le socket et ce n'est que bien plus tard que le compilateur / élaborateur peut brancher le Verilog dans le socket.
Une entité est une véritable interface avec une unité de conception qui peut avoir plusieurs architectures. Une entité définit comment les éléments entrent et sortent, tandis que l'architecture définit le fonctionnement de l'unité de conception. Vous pouvez donc avoir plusieurs façons d'implémenter la même fonction, qui seraient décrites par la même entité.
Un composant est une unité de conception idéale ou "virtuelle". Lorsque vous effectuez une conception descendante (c'est-à-dire que vous assemblez le niveau supérieur avant la conception des blocs de niveau inférieur), vous pouvez utiliser un composant pour décrire le type d'interface que vous attendez pour vos unités de conception. Vous pouvez penser à cela comme un espace réservé ou une boîte noire pour une future mise en œuvre réelle.
À l'aide de configurations, vous pouvez lier une instance de composant spécifique à une définition d'entité. Ici, vous pouvez définir quel port doit se connecter à quel port. Cela mappe la façon dont le composant défini dans le sens idéal correspond à l'entité qui a été réellement implémentée.
Dans la pratique , j'ai constaté que les composants sont généralement inutiles et créent un autre niveau d'abstraction qui n'est généralement pas utilisé. Vous pouvez ignorer l'utilisation (et le besoin) de composants en instanciant directement l'entité et en référençant l'architecture à utiliser pour cette instance de l'entité.
Par exemple:
MyDesignUnit : entity library_name.entity_name(architecture_name)
port map(
...
De [1] ci-dessous:
Il existe une distinction importante entre une entité, un composant et une instance de composant dans VHDL. L'entité décrit une interface de conception, le composant décrit l'interface d'une entité qui sera utilisée comme instance (ou sous-bloc) et l'instance de composant est une copie distincte du composant qui a été connecté à d'autres parties et signaux. . Pour les comparer avec le processus de conception de la planche à pain avec des pièces détachées. L'entité et l'architecture sont comme le livre de données décrivant l'interface et les schémas de fonctionnement de la pièce. Le composant est semblable à la brève liste des broches fournie avec la pièce pour décrire comment il doit être connecté. L'instance de composant est la pièce proprement dite, dont vous pouvez en avoir plusieurs qui fonctionnent chacune indépendamment.
Voir [1] pour le contexte et plus de détails.
Il existe de nombreux didacticiels VHDL en ligne, par exemple [2] [3] ... Livre (PDF de 84 pages) [4] A l'air bien [5] Principalement pour les liens [6]
Une entité est une unité de conception dont les ports d'entrée-sortie sont spécifiés. L'entité définit simplement les ports externes tandis que le fonctionnement interne est spécifié par l'architecture correspondante. Un composant est l'unité de conception complète composée à la fois de l'entité et de l'architecture. La première étape est la déclaration du composant (en spécifiant son nom et ses ports) puis l'instanciation du composant (mappage de port).