¿Cómo hacer un Mapa de Karnaugh con entradas de "no importa"?

2

Sé que "no importa" significa que no importa si es un 0 o un 1 y cuando no importa solo son salidas, puedo entender cómo funcionan. Pero me cuesta mucho entender cómo funcionan cuando son entradas.

He leído que cuando una entrada es "No importa", toda la entrada no cuenta. Pero si una o más de las entradas ya no cuentan, ¿cómo se hace un k-map? ¿K-maps no usa los dos primeros y los dos últimos en una latitud de longitud de forma similar al marcar las salidas?

Esto es en lo que estoy trabajando actualmente:

inputs    outputs 
A B C D | Q R S
0 0 0 0 | x x 0
0 0 0 1 | 0 0 1
0 0 1 x | 0 1 1
0 1 x x | 1 0 1
1 x x x | 1 1 1

mi primer intento de hacer un k-map:

  00 01 1X
0 X    
0
0 0
1
1 0
X
X    1   1
X    

Luego, yo estaba teorizando que si no cuentan eso significa que la longitud de la broca se acorta o que no importa se cuenta como 1 o ceros. Si se acorta, estaba pensando que es así:

1XXX = 1'b1 = 1 01XX = 2'b01 = 1

pero si eso es verdad,

0 1 x x | 1 0 1
1 x x x | 1 1 1
¿

no sería así y en cambio las salidas serían idénticas?

O quizás es lo que primero pensé y es como:

0 1 x x | 1 0 1 significa poner una salida en 5,6 y 7? O tal vez sólo 7?

Finalmente, ¿cómo marca las cosas como que no les importa en el banco de pruebas? ¿Incluso los marcas en absoluto? ¿Hay una marca específica?

    
pregunta Frostypine

4 respuestas

5

Aquí se explica cómo crear el K-Map para la salida Q. Recuerde que debe hacer un Mapa de Karnaugh separado para cada una de las tres salidas.

inputs    output 
A B C D | Q
0 0 0 0 | x
0 0 0 1 | 0
0 0 1 x | 0
0 1 x x | 1
1 x x x | 1
  1. %código%. Esta primera línea es estándar. El "no importa" es una salida. Simplemente coloque la "x" en el lugar apropiado.

  • %código%. Esta siguiente línea también es estándar. Pon el "0" donde pertenece.
  • %código%. La tercera línea contiene una entrada de "no importa". En este caso, debería haber una salida de "0" para 0000 = x y 0001 = 0 . Insértelos en el mapa:
  • %código%. De manera similar, la cuarta línea indica que debería haber un "1" en todos los casos siguientes: 001x = 0 , 0010 , 0011 y 01xx = 1 . Ponlos en el mapa:
  • %código%. Siguiendo el mismo razonamiento, la última línea hace lo siguiente:
  • ¡Ahora, haga lo mismo con sus salidas R y S!

        
    respondido por el bitsmack
    1

    Cuando una entrada es X (no importa), eso significa que la línea aplica ambos cuando la X se reemplaza por un 0 y por un 1.

    Para su ejemplo, puede ampliar su primera tabla para que sea:

    inputs    outputs 
    A B C D | Q R S
    0 0 0 0 | x x 0
    0 0 0 1 | 0 0 1
    0 0 1 0 | 0 1 1
    0 0 1 1 | 0 1 1
    0 1 0 0 | 1 0 1
    0 1 0 1 | 1 0 1
    0 1 1 0 | 1 0 1
    0 1 1 1 | 1 0 1
    1 0 0 0 | 1 1 1
    (I'll leave the remaining 7 lines to you)
    

    Una línea con 1 X se expandirá a 2 líneas, una línea con 2 X se expandirá a 4 líneas, ... (n X se expandirá a \ $ 2 ^ n \ $ líneas)

    Con respecto a su pregunta sobre cómo marcar un no importa en un banco de pruebas (suponiendo que todavía esté hablando de entrada , no importa, no las salidas), debe hacer que su banco de pruebas pase a través de todas las combinaciones de entrada \ $ 2 ^ n \ $ como hicimos al ampliar la tabla anterior.

        
    respondido por el Justin
    1

    Como dijiste "no importa, no importa si es un 0 o un 1" . Entonces, si se dice que la salida correspondiente a la entrada "1x" es '1', entonces significa que la salida será '1' si el primer bit (MSB) es '1'. LSB puede ser '0' o '1'. En otras palabras, la salida será '1' tanto para "10" como para "11".

    Un ejemplo más: si quiero escribir la tabla de verdad para el sistema, con 4 líneas de entrada, cuya salida será '1' si el último bit de la combinación de entrada (LSB) es '0', preferiré escribir :

    input   output
    --------------
    xxx0       1
    xxx1       0
    -------------
    

    en lugar de enumerar todas las 16 combinaciones. Porque esto es compacto.

    Siempre que encuentre x en la secuencia de entrada, reemplace x con todas las combinaciones posibles. Algunos ejemplos se dan:

    $$ \ begin {array} {rll} \ text {símbolo} & \ text {números equivalentes} & \ text {significado} \\ \ hline \ mathrm {\ color {red} {x}} & \ Rightarrow \ color {rojo} {0}, \ color {rojo} {1} & \ text {cualquier número de 1 bit} \\ \ mathrm {\ color {red} {xx}} & \ Rightarrow \ color {rojo} {00}, \ color {rojo} {01}, \ color {rojo} {10}, \ color {rojo} {11} & \ text {cualquier número de 2 bits} \\ \ mathrm {1 \ color {red} {x}} & \ Rightarrow 1 \ color {rojo} {0}, 1 \ color {rojo} {1} & \ text {cualquier número de 2 bits que comience con 1} \\ \ mathrm {\ color {red} {xx} 1} & \ Rightarrow \ color {rojo} {00} 1, \ color {rojo} {01} 1, \ color {rojo} {10} 1, \ color {rojo} {11} 1 & \ text {cualquier número de 3 bits terminando con 1} \\ \ mathrm {1 \ color {rojo} {x} 00} & \ Rightarrow 1 \ color {rojo} {0} 00,1 \ color {rojo} {1} 00 & \ text {cualquier 4 bits sin comenzar con 1 y terminando con 00} \\ \ hline \ end {array} $$

        
    respondido por el nidhin
    1

    Al dibujar un mapa de Karnaugh, puede ser importante distinguir entre:

    1. Casos en los que el circuito debe comportarse de manera idéntica cuando una entrada en particular es baja y estable cuando es alta.

    2. Casos en los que el comportamiento del circuito no debería verse afectado por una entrada.

    Los dos casos pueden parecer sinónimos, pero a veces puede haber una gran diferencia. Considera la tabla de verdad:

    abc
    00X -> 0
    01X -> 1
    1X0 -> 0
    1X1 -> 1
    X00 -> 0
    X11 -> 1
    

    Uno podría simplemente dibujar el circuito como una tabla de verdad:

       |00 01 11 10 bc
    ---+--------------
    a=0| 0  0  1  1
    a=1| 0  1  1  0
    

    pero eso no daría todo el panorama, ya que eso haría Sugiera que el circuito podría implementarse como una suma de productos:

    out=!a*b*!c + !a*b*c + a*!b*c + a*b*c
    

    pero tal salida puede fallar brevemente cuando una entrada, incluso una que debería no tiene efecto - cambia de alto a bajo o viceversa. Por ejemplo, si las entradas cambian de 010 a 011, aunque la salida debería ser alto en ambos estados, puede haber un momento en el que ni! a b ! c ni ! a b c se registra como verdadero [ya que "c" no es estable alto y no es estable bajo]. Si una entrada realmente necesita ser "no importa", puede ser una buena idea dibujar un óvalo alrededor de los estados que deben comportarse como una unidad, y garantizar que se utiliza un solo término de producto para abarcar todos ellos.

    Tenga en cuenta que, si bien dos términos de producto serían suficientes para manejar la tabla de verdad, garantizar que las transiciones en una entrada de "no importa" no afectarán a la salida requerirá la adición de una tercera. El hecho de no tener un término de producto que abarque uno de los óvalos rellenos puede llevar a lo que se denomina peligros lógicos. En algunos diseños no importan, pero en otros pueden ser mortales.

        
    respondido por el supercat

    Lea otras preguntas en las etiquetas