¿Cuándo usan las tablas de verdad el término "No importa"?

6
  1. ¿En qué situación se puede usar el término Don't-care ?

  2. Supongamos que quiero usar 6 símbolos: necesito 3 bits, que a su vez pueden generar 8 combinaciones. Dado que las dos últimas combinaciones no son útiles en mi caso, ¿debo ponerlas en 0 o Don't care ?

Esta es la tabla de verdad de los símbolos útiles

0 0 0 | 1
0 0 1 | 0
0 1 0 | 0
0 1 1 | 1
1 0 0 | 0
1 0 1 | 1
------

El resultado de las combinaciones a continuación no existe, o es irrelevante

1 1 0
1 1 1
    
pregunta Machine Gun

3 respuestas

6

Las tablas de verdad se utilizan para dos propósitos principales, pero distintos:

  • Indica a una persona o programa que está implementando cierta lógica lo que se requiere que haga la lógica

  • Indica a una persona o programa que está usando algo de lógica lo que se debe esperar que haga la lógica

En cualquiera de las situaciones, una línea "no importa" en una entrada es una forma abreviada de indicar que el circuito en cuestión se comportará de manera idéntica cuando la entrada sea alta o baja. En muchos contextos, implicará que la entrada en cuestión no afectará o no afectará en absoluto al estado de salida; Idealmente, las excepciones a eso se anotarían claramente, pero en la práctica no lo están. Puede ser bueno tener una anotación para indicar esa situación. Por ejemplo, considere un mux con la siguiente tabla de verdad:

Sel A B   Out
0   0 X    0
0   1 X    1
1   X 0    0
1   X 1    1
X   0 0    0
X   1 1    1

Desde un punto de vista lógico combinatorio estático puro, las dos últimas líneas son redundantes. Hay, sin embargo, una razón importante para ellos. En su ausencia, si A y B son altos y Sel cambia de alto a bajo, no habría garantía de que la salida deba permanecer alta; para decirlo de otra manera, las primeras cuatro líneas definen el estado de la salida cuando Sel input es un máximo válido y cuando es un mínimo válido, pero solo las dos últimas líneas especifican el estado de salida cuando Sel está en un nivel que no es ni alto ni bajo válido (p. ej., durante la transición).

Con respecto a los resultados, las especificaciones de "no importa" solo son relevantes cuando la verdad se usa para especificar qué lógica es necesario para hacer. Muchas herramientas de síntesis harán que las salidas se comporten de alguna manera específica para todas las combinaciones de entradas cuyo comportamiento no se especifique de otra manera. Considere, por ejemplo, la siguiente tabla de verdad:

A B C   Q
0 0 X   0
1 0 0   0
0 1 0   0
1 0 1   1
0 1 1   1

Nada especifica explícitamente lo que debería hacer Q si se configuran A y B . Es totalmente posible que esta lógica se coloque detrás de los circuitos que nunca configurarán A y B simultáneamente [por ejemplo. estarán activos en diferentes fases no superpuestas de un reloj de varias fases], en cuyo caso el Q=(A or B) and C sería probablemente la realización óptima. En algunos idiomas, sin embargo, se requiere que las salidas sean bajas para combinaciones de entradas no especificadas, y en otros se requiere que las salidas mantengan su estado actual. Si la tabla de verdad incluyera una línea que especificara el estado de salida como "no importa" cuando A y B son altos, entonces una persona o programa que implementa el diseño sabría que Q=(A or B) and C sería una realización aceptable. De lo contrario, si se requiriera que la salida mantuviera su valor cuando tanto A como B fueran altos, sería necesario agregar mucha complejidad adicional al circuito (¡incluso posiblemente un pestillo!), Pero tal complejidad no sirve ninguna función útil.

    
respondido por el supercat
3

Para los símbolos de entrada colectivos que no son relevantes en términos de la salida que producen, debe tratar sus salidas como "no importa". Una vez que se dé cuenta del diseño (por ejemplo, a través de puertas lógicas), ellos, por supuesto, producirán una salida definida, pero al no especificar cuál, están permitiendo que sean tratados como comodines, de modo que los valores específicos que optimizan su realización final (en términos de número de puertas, área física, velocidad, etc.) son elegidos. Si, en cambio, los especifica de manera prematura, es posible que no permita que su herramienta de síntesis (o usted mismo) alcance la solución más óptima.

    
respondido por el apalopohapa
2

Si estas combinaciones de entrada (110 y 111) nunca ocurrirán, no debería importarle cuál es la salida. Asignar no importa le simplificará su lógica.

    
respondido por el Szymon Bęczkowski

Lea otras preguntas en las etiquetas