puerto de salida en el módulo VHDL RS232 de Digilent

4

Estoy viendo el componente de referencia de Digilent RS232 disponible en enlace para el Spartan 3E Kit de inicio. Comencé a armar un banco de pruebas, pero el código VHDL contiene un puerto 'inout'.

He estado buscando en el código del componente RS232, y no veo cómo el puerto RDA es un puerto de entrada. RDA es "Leer datos disponibles", lo que indica que hay una palabra lista para ser leer; Lo veo como una función de salida. Pensé que estaría claro por qué esto era "inout" después de leer el código, pero no puedo ver cómo se trata de una función de entrada.

¿Algún pensamiento? Gracias por tu ayuda, todos.

    
pregunta trayres

1 respuesta

6

En VHDL, si un puerto se declara "fuera", se puede asignar, pero no se puede usar en ningún otro lugar dentro del módulo. Específicamente, la asignación en la línea 155 se marcaría como un error:

OE <= RDA;

Hacer que el puerto "inout" hace que este uso sea permitido.

Sin embargo, los puertos de entrada están "desordenados" por varios motivos, y trato de evitarlos siempre que sea posible. Otro enfoque es declarar una segunda copia de la señal (por ejemplo, RDA_int ) que se usa en todas partes dentro del módulo, y luego asignar esa señal al puerto de salida solo una vez.

RDA <= RDA_int;
    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas