Concatenación en el mapeo de puertos

2

Usando Vivado 2015.2, VHDL. Recibí una advertencia "[Synth 8-1565] real para el puerto formal b no es un nombre estático ni una expresión estática global"

ADD1: Adder_32_33
PORT MAP (
A => a1,
B => a1&"0", -- warning here
CLK => clock,
S => s1
);

Sim funciona bien. ¿Se puede ignorar esta advertencia? ¿Hay alguna solución además de agregar una nueva señal?

    
pregunta Jason Merkie

1 respuesta

2

La advertencia se muestra porque otras herramientas VHDL, como el simulador ModelSim VHDL, no admiten este tipo de asignación de puertos (para la señal B).

Otra solución sería utilizar un mapeo de puertos segmentados para B , por ejemplo:

ADD1: Adder_32_33
PORT MAP (
A => a1,
B(32 downto 1) => a1,  -- assign upper bits of B
B(0) => '0', -- assign (single) bit 0 of B only
CLK => clock,
S => s1
);

Esto supone que el puerto B se declara con un rango de (32 downto 0) .

Tenga en cuenta que siempre deben asignarse todos los bits de un puerto.

    
respondido por el Martin Zabel

Lea otras preguntas en las etiquetas