VHDL: pregunta de instancia

1

Tengo que hacer una instancia de varios componentes

Supongo que el código para esta instancia sería algo como esto:

componentA: componentB port map(
output_ca => input_cb
); 
componentA: componentC port map(
output_ca => input_cc
); 

Pero sé que parte del código anterior es incorrecto, porque 'ouput_ca' tiene 6 bits y input_cb, y input_cc tiene solo 3 bits cada uno de ellos. ¿Cómo se escribiría este código de una buena manera? Muchas gracias por tu ayuda.

    
pregunta Peterstone

1 respuesta

6

Debe usar algunas señales, no puede mapear directamente de un pin a otro (también estoy usando instancias directas para evitar crear declaraciones component - vea también mi respuesta aquí ):

signal aout : std_logic_vector(5 downto 0);

A: entity work.componentA port map(
    output_pin => aout
); 
B: entity work.componentB port map(
    input_pin => aout(5 downto 3)
); 
C: entity work.componentC port map(
    input_pin => aout(2 downto 0)
); 

Aparte

Pareces estar confundido en tu sintaxis de creación de instancias. Usted escribió:

componentA:componentB port map (...

lo que implica que el componente A se conecta al componente B.

Lo que realmente se dice es

individual_name_of_component: name_of_entity

Así que seleccionas un entity que estás creando a la derecha de : y le das un nombre a la izquierda.

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas