Si necesito envolver un diseño de VHDL de nivel superior previamente existente para un FPGA con puertos INOUT en otra nueva entidad de nivel superior ... ¿cuál es la forma correcta de pasar a través de la PARTE de un puerto INOUT?
Por lo general, solo quito el INOUT de la capa que no está en la parte superior y lo reemplace con puertos direccionales ... pero mi cliente quiere mantener ese código completamente sin cambios (por lo tanto, el HDL admite dos diseños de placa diferentes).
Supongamos que la entidad old_top_level
tiene un puerto SPARE_IO : INOUT std_logic_vector(7 downto 0)
. Otra entidad new_top_level
tiene SPARE_IO_WRAPPED : INOUT std_logic_vector(7 downto 0)
.
Necesito redireccionar un solo elemento de SPARE_IO.
El siguiente trabajo (definido en el cuerpo de new_top_level):
SPARE_IO_WRAPPED(6 downto 0) <= SPARE_IO(6 downto 0);
SPARE_IO(6 downto 0) <= SPARE_IO_WRAPPED(6 downto 0);
SPARE_IO(7) <= SOMETHING_ELSE;
Parece que se compila, pero eso no dice mucho.
EDIT Lo edité para aclarar que la señal INOUT no se transmite completamente, por lo que no puedo usar el MAPA DEL PUERTO.