Pregunta sobre la instanciación de VHDL

0

Tengo una pregunta sobre la instanciación. Como la imagen que se muestra a continuación, si mi código principal es 3.vhd. Quiero instanciar la entidad aaa y bbb en la entidad MAIN. ¿Es la regla que debo escribir el "componente" en "paquete", como muestra 1.vhd? (Según tengo entendido, toda la entidad debe tener su paquete, si se va a crear una instancia. Y el componente simplemente enumera el puerto de esta entidad). Después de eso, agregue "use package.all", y luego podemos instanciar aaa y bbb en la arquitectura de MAIN. ¿Hay algo mal?

No estoy familiarizado con VHDL, pero parece que verilog no tenía este "paquete". Un módulo puede ser instanciado en otros módulos.

Gracias! :)

    
pregunta Nobody

1 respuesta

2

Para configuraciones simples, puedes salirte directamente con entidades de instanciación:

entity aaa is
    port( ... );
end entity;

architecture foo of aaa is
begin
    ...
end architecture;

Y luego en el otro archivo fuente:

architecture foo of main is
begin
    AAA : entity work.aaa
        port map( ... );
end architecture;

Esa es la forma más rápida de no repetirte demasiado.

Las declaraciones separadas component dentro de package se vuelven útiles si tiene partes intercambiables y múltiples configuration s diferentes que las combinan de diferentes maneras. A menos que lo necesite, vaya con la instanciación directa de la entidad.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas