4 votos

puerto inout en VHDL Módulo RS232 de Digilent

Estoy mirando el componente de referencia RS232 de Digilent disponible en http://www.digilentinc.com/Products/Detail.cfm?Prod=S3EBOARD para el kit de inicio de Spartan 3E. Comencé a armar un banco de pruebas, pero el código VHDL contiene un puerto 'inout'.

He estado mirando el código del componente RS232, y no veo cómo el puerto RDA es nunca un puerto de entrada - RDA es "Read Data Available", que indica que hay una palabra lista para ser leída; 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 esto es una función de entrada en absoluto.

¿Alguna idea? Gracias a todos por su ayuda.

8voto

GSerg Puntos 33571

En VHDL, si un puerto es declarado "out", puede ser asignado, pero no puede ser usado en otro lugar dentro del módulo. Específicamente, la asignación en la línea 155 sería marcada como un error:

OE <= RDA;

Hacer que el puerto sea "inout" permite este uso.

Sin embargo, los puertos inout son "desordenados" por una serie de razones, 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 utiliza en todas partes dentro del módulo, y luego asignar esa señal al puerto de salida sólo una vez.

RDA <= RDA_int;

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X