Ho esperienza con Verilog/SystemVerilog ma sono nuovo di VHDL e sto cercando di capire quando utilizzare l'istanziazione dei componenti o l'istanza dell'entità. Per istanza del componente intendo il modo legacy di dichiarare componenti di un'entità prima di istanziarli. D'altra parte, l'istanza dell'entità, che è stata introdotta con VHDL-93, consente di dichiarare un'entità direttamente senza specificare il componente. Related ArticleIstanziazione componente vs Entità istanziata in VHDL
Mi sembra che Entity Instantiation sia sempre preferibile a meno che non si abbia ancora un'architettura implementata e si voglia solo definire una black box.
Questo è uno Related Question che ho trovato ma soddisfa pienamente i miei dubbi. Dal momento che è possibile definire sia la mappa generico e l'architettura per ciascun ente:
entity work.MyEntity_E(ARCH) generic map(
...)
port map(
...
);
cosa è la flessibilità aggiuntiva di fare componente di un'istanza? Quale sarebbe l'esempio più semplice che mostra qualcosa che non può essere eseguito con l'istanza dell'entità ma può essere eseguito con l'istanza componente?
Con l'istanza dell'entità, è necessario scrivere l'entità prima di poter compilare questo file ... Con un componente, è possibile posticiparlo finché non si collega (elabora) il progetto. –
Giusto, questo è quello che intendevo con "Mi sembra che Entity Instantiation sia sempre preferibile a meno che tu non abbia ancora un'architettura implementata e tu voglia solo definire una scatola nera". Mi rendo conto ora che la frase non era molto chiara. Quali sono altri benefici però? Gli articoli che ho elencato affermano che l'approccio alla creazione di componenti è più flessibile e non riesco a capire perché. – igon
IEEE Std 1076-2008 6.8 Dichiarazioni del componente "Una dichiarazione del componente dichiara un'interfaccia per un'entità di progettazione virtuale che può essere utilizzata in un'istruzione di creazione di istanze del componente Una configurazione del componente o una specifica di configurazione può essere utilizzata per associare un'istanza del componente con un'entità di progettazione che risiede in una biblioteca. " – user1155120