Quería preguntar si es posible usar un pin de inout como inout y normal out? Los dos comportamientos deben ser conmutados a través de un MUX. El motivo de esta implementación de aspecto extraño es que tengo dos placas y quiero usar el mismo flujo de bits. En una placa, el mismo pin está conectado a un LED a través de GPIO y en la otra a mi conexión de bus I2C. El software intenta detectar el I2C y, si tiene éxito, establece un registro. Si no, lo borra.
LED_or_SDA : inout std_logic; -- port definition
process (register)
begin
if ( register = '1') then -- software sets this register
LED_or_SDA <= I2C_SDA; -- here I want to use it as inout
else
LED_or_SDA <= gpio_reg; -- here I want to use it as normal out
end if;
end process;
Esta implementación arroja el error "la red de relleno bidireccional está generando primitivas que no son de búfer" durante la conversión. ¿Hay una solución para esto?