Lógica Tristate equivalente en la lógica NMOS

0

Supongamos que tengo 3 señales generadas por la lógica NMOS. Cada una de esas señales tiene un pin de habilitación asociado que cuando se activa, el valor de la señal aparecerá en la salida (debo tener en cuenta que las señales A, B, C se originan en diferentes áreas del circuito, por lo que se usa una compuerta OR). las señales de habilitación serían inconvenientes). Se me ocurrió una manera que creo que debería funcionar, su diagrama de circuito se muestra a continuación.

EDITAR: una elaboración sobre la aplicación en la que me gustaría usar esto en: Tengo una serie de registros, y cada uno tiene un pin habilitado. Cuando un registro habilite el pin es alto, quiero que el valor almacenado en el registro correspondiente aparezca en un bus

En la lógica de CMOS, se podría lograr algo similar configurando los pines deshabilitados a alta impedancia y teniendo solo el pin habilitado que controla la línea de salida (esto requeriría que solo una línea de habilitación sea alta a la vez, lo que es cierto de todos modos ).

Mi pregunta es si hay algún inconveniente en el método que tengo en el diagrama del circuito. Soy consciente de que la velocidad en la que puede funcionar la coquet está limitada por el tiempo que la línea de salida puede aumentar y que el circuito consumirá más energía que la versión CMOS.

Estoy particularmente interesado en la cantidad de señales con las que podría funcionar y cualquier otra cosa que debería saber antes de implementar esto en un PCB.

    
pregunta Michal

1 respuesta

3

Este es un ejemplo de una arquitectura clásica de bus de Open Collector que utiliza MOSFETS para lograr el equivalente de drenaje abierto.

Esta técnica era muy común antes de los días de lógica de 3 estados (TriState es una marca registrada incidentalmente) en computación discreta, donde cada registro de procesador era de hecho un cierre de tipo octal D .

La configuración que tienes debe funcionar bien para lo que quieres lograr. Tenga en cuenta que esto es intrínsecamente seguro, ya que lo peor que puede ocurrir si hay más de una salida activa al mismo tiempo son datos incorrectos.

El inconveniente es uno de la velocidad; conducir un punto bajo a la salida tomará un corto período de tiempo, pero el bus tendrá que volver a cargar antes de que pueda salir un nivel alto (que no cambiaría el estado de la línea de bus común).

Decir que esto se ha probado y probado es una subestimación.

Editar: respondió al número de colectores / drenajes

El número de dispositivos en el bus sí afecta la temporización ya que actúan como una carga capacitiva. El tiempo que se tarda en cambiar el estado de la línea es proporcional a R * C. El término C es constante y está determinado por el número de dispositivos y la longitud de la línea común real. El término R es diferente dependiendo de si la línea se está bajando o se está liberando para ir a lo alto.

Cuando un solo dispositivo tira de la línea a un nivel bajo (y esto se ve afectado por la cantidad de dispositivos, ya que el dispositivo que se enciende debe descargar el bus del estado alto, que es proporcional a la cantidad de dispositivos presentes), actúa como un sumidero de corriente con el drenaje a la resistencia de la fuente como el término R.

Cuando se apaga, el término R se convierte en la resistencia de pull-up que es mucho más grande. Esta es la razón por la que los pull-ups activos en la lógica de 3 estados fueron un gran avance.

    
respondido por el Peter Smith

Lea otras preguntas en las etiquetas