Verificación de circuitos

Acabamos de recibir una gran colección de circuitos digitales de un fabricante no demasiado de fiar. Nos informa de qué conexiones hay, y entre qué elementos de los circuitos. Nos dice, además, qué función deben desempeñar tales elementos. Hemos de averiguar si los elementos son los que se supone que son. Deseamos que el número de comprobaciones necesario para saber si el fabricante ha instalado realmente los elementos correctos resulte lo menor posible. Estos circuitos utilizan sólo elementos de dos tipos, puertas lógicas O y puertas lógicas Y. Cada una de ellas queda caracterizada por una tabla de verdad, que pone en correspondencia los estados de sus entradas con el estado de la salida (véanse las tablas al pie). La salida de una puerta Y solamente es 1 cuando las dos entradas son 1, mientras que la salida de una puerta O es 1 cuando al menos una de sus entradas es 1.

Como ejercicio preliminar, supongamos que el circuito se encuentra en la configuración de tres elementos que vemos abajo a la izquierda. Se sospecha que la puerta O (elemento 3) puede ser en realidad una puerta Y, y que una o ambas puertas Y (elementos 1 y 2) pueden ser en realidad puertas O. Cabe probar el circuito introduciendo un valor binario (bien un 1, bien un 0) en cada una de las entradas (A, B, C y D) y observando qué valores se obtienen en las salidas (E y F). Basta una comprobación para determinar si las puertas lógicas de este circuito están correctamente rotuladas. Ahora bien, qué entradas se han de utilizar para la prueba, y qué valores deben esperarse?.
Fijémonos ahora en el circuito de cuatro elementos que vemos abajo a la derecha. ¿Cuál es el número mínimo de ensayos necesarios para verificar el circuito, y qué entradas habrán de aplicarse en cada caso? Como segundo problema, responde a la misma cuestión para un circuito con idéntica configuración, pero que contenga cuatro puertas Y. Por último, volvamos a la primera ilustración y consideremos todas las posibles combinaciones de puertas Y y O que se pudieran disponer con esta configuración de tres elementos. ¿Qué combinaciones pueden ser comprobadas utilizando sólo un ensayo?
Sígueme en redes sociales
error20
fb-share-icon0
Tweet 18k
fb-share-icon20

21 comentarios en «Verificación de circuitos»

  1. Creo que en el circuito de la izquierda no basta con una comprobación.

    Spoiler
    Para comprobar si una puerta es O o Y es necesario que los valores introducidos sean diferentes (es decir, nos vale 0,1 o 1,0, pero no 0,0 ni 1,1)

    Por lo tanto, para comprobar si el elemento 1 es una puerta O o una puerta Y debemos asegurarnos de que los valores de entrada sean diferentes. El valor de entrada A ya lo sabemos, porque lo hemos elegido nosotros; pero también debemos saber el otro valor de entrada, el que viene del elemento 2. Pero como tampoco sabemos si el elemento 2 es una puerta O o una puerta Y, la única manera de saber a ciencia cierta el valor de salida del elemento 2 es introducir dos valores iguales en el elemento 2, es decir: B=C=0 o bien B=C=1. De esta manera conseguiremos saber qué tipo de puerta es el elemento 1, pero no podremos saber qué tipo de puerta es el elemento 2.

  2. Cómo verificar el circuito de la izquierda con dos comprobaciones:

    Spoiler
    Introducimos los siguientes valores de entrada: [1,0,0,1]
    De esta manera nos aseguramos que el valor de salida del elemento 2 sea un 0. Ahora ya conocemos todos los valores de entrada de los elementos 1 y 3. Para el elemento 1 tenemos los valores de entrada 1,0, por lo tanto si el valor de salida es 0 será una Y, y si es 1 será una O. Para el elemento 3 lo mismo.
    Ahora ya sabemos qué tipo de puertas son el elemento 1 y 3, nos falta saber el elemento 2.
    Para ello introducimos los siguientes valores:
    A: Si el elemento 1 resultó ser una puerta O, introducimos un 0 en A. Si el elemento 1 resultó ser una puerta Y, introducimos un 1 en A.
    B y C: 0,1 o 1,0
    D: es indiferente
    El valor de salida del elemento 2 será 1 si el elemento 2 es una puerta O y 0 si el elemento 2 es una puerta Y. Por lo tanto el valor de salida del elemento 1 será 1 si el elemento 2 es una puerta O y 0 si el elemento 2 es una puerta Y. Ahora ya sabemos qué tipo de puerta es el elemento 2.

  3. No entiendo la última parte del enunciado:
    «Como segundo problema, responde a la misma cuestión para un circuito con idéntica configuración, pero que contenga cuatro puertas Y»

    Entiendo que cuando dice «que contenga cuatro puertas Y» se refiere a «cuatro puertas que el fabricante marcó como Y», no a que las puertas sean necesariamente Y (si las puertas fueran necesariamente Y ya sabríamos qué tipo de puertas son y no habría nada que resolver).
    Pero el hecho de que el fabricante marque una puerta como O o como Y no afecta para nada al problema, ya que el fabricante se puede equivocar, por lo tanto esa información no nos sirve.
    Es decir: a la hora de comprobar el circuito lo único que importa es la configuración. La identificación que le ponga el fabricante a cada elemento es totalmente indiferente, no afecta al problema.

    Por lo tanto no tiene sentido proponer otro problema con la misma configuración pero diferentes identificaciones por parte del fabricante, ya que ES EL MISMO PROBLEMA.

  4. Un truco para resolver el segundo circuito:

    Spoiler
    Reducimos el problema a un problema más simple en el cual sustituimos las entradas B y C y el elemento 2 por una sola entrada, de modo que nos queda un problema con tres entradas y tres elementos.
    Calculamos cuántos ensayos hacen falta para resolver el problema reducido y luego sólo habría que añadirle un ensayo más para comprobar el elemento 2.

  5. Hola Encías Joe, voy a darte el problema con el ejemplo más sencillo. Tenemos que verificar un circuito constituido por un sólo elemento: una puerta Y, con entradas A, B y salida C. Para verificar que es una puerta Y con un sólo ensayo nos basta. Para ello introducimos valores distintos a la entradas A y B. Si obtenemos un 0 en la salida C hemos comprobado que es efectivamente es una puerta Y. En caso de obtener un 1 se trata de una puerta O. Con valores iguales en las entradas, el valor de la salida es la misma tanto en la puerta O como en la Y y no podemos garantizar que con ese ensayo la puerta que estamos verificando sea Y. Es cuestión de aplicar este razonamiento sin modificar las configuración de los circuitos. Espero haberme explicado.

  6. No, si tú te has explicado perfectamente, pero creo que no me has entendido a mí.

    No sé por qué me explicas eso, ya que por mis respuestas es evidente que ya lo había entendido, de hecho en mi primera respuesta digo textualmente «Para comprobar si una puerta es O o Y es necesario que los valores introducidos sean diferentes (es decir, nos vale 0,1 o 1,0, pero no 0,0 ni 1,1)» que es básicamente lo mismo que acabas de decir tú.

    Pero no has mencionado nada sobre los errores o sinsentidos que señalo en el enunciado. Ni tampoco sobre por qué no me deja subir la respuesta detallada al circuito 2

  7. Disculpa Encías Joe, se me ha pasado leer tu primer comentario, un despiste que ya me ha pasado otra veces, en otro contexto.. alguien que lea esto puede dar fe de ello 😉
    En cuanto a los errores o sinsentidos del enunciado, comentas que el tipo de puertas es irrelevante para la comprobación del circuito y que para su verificación sólo importa la configuración o ‘cableado’ del mismo. Te he entendido bien?.
    Si es así, el autor y yo discrepamos contigo. La solución que él da al circuito de 4 elementos cuando cambiamos todas las puertas al tipo Y, manteniendo la misma configuración, es distinta a la del circuito original del enunciado tanto en los valores que debemos dar en las entradas como al número de ensayos, (spoiler).
    Envíame tu respuesta detallada del circuito 2 a kiikirikii@hotmail.com y la publico. Ya ha pasado en alguna ocasión que alguien ha enviado un comentario y no sale publicado, ignoro la causa. Saludos.

  8. Solución circuito 2 de Encías Joe:

    Spoiler
    E=(0110)
    si E da 1, E.1=(0001)
    si E.1 da 1, E1.1=(1000)
    si E.1.1 da 1, E1.1.1=(0100)
    si E.1.1.1 da 1, Sol={OOOO}
    si E.1.1.1 da 0, Sol={OYOO}
    si E.1.1 da 0, E1.1.2=(0100)
    si E.1.1.2 da 1, Sol={YOOO}
    si E.1.1.2 da 0, Sol={YYOO}
    si E.1 da 0, E.1.2=(1000)
    si E.1.2 da 1, E1.2.1=(0100)
    si E.1.2.1 da 1, Sol={OOYO}
    si E.1.2.1 da 0, Sol={OYYO}
    si E.1.2 da 0, E1.2.2=(0100)
    si E.1.2.2 da 1, Sol={OOOY}
    si E.1.2.2 da 0, Sol={OYOY}
    si E da 0, E.2=(0111)
    si E.2 da 1, E2.1=(1110)
    si E.2.1 da 1, E2.1.1=(1011)
    si E.2.1.1 da 1, Sol={YOYO}
    si E.2.1.1 da 0, Sol={YYYO}
    si E.2.1 da 0, E2.1.2=(1011)
    si E.2.1.2 da 1, Sol={OOYY}
    si E.2.1.2 da 0, Sol={OYYY}
    si E.2 da 0, E.2.2=(1110)
    si E.2.2 da 1, E2.2.1=(1011)
    si E.2.2.1 da 1, Sol={YOOY}
    si E.2.2.1 da 0, Sol={YYOY}
    si E.2.2 da 0, E2.2.2=(1011)
    si E.2.2.2 da 1, Sol={YOYY}
    si E.2.2.2 da 0, Sol={YYYY}

  9. Una pregunta: verificar un circuíto es…
    A) Descubrir de qué tipo es realmente cada una de las puertas del circuito
    B) Descubrir si es cierto o no que todas las puertas del circuito están bien identificadas. [Pero en el caso de que no lo estén no hace falta descubrir cuál o cuáles están mal]

    Yo entiendo que verificar un circuito es la opción A, y como tal lo estoy resolviendo. Y si es así, las identificaciones que aporta el fabricante no sirven de nada, no afectan al problema.

    Si resulta que verificar un circuito es la opción B, entonces yo he resuelto un problema distinto, de ahí mis diferencias con el autor

  10. Si verificar el circuito consiste simplemente en saber si es cierto o no que todos los elementos están bien identificados, entonces la solución al circuito 1 es:

    Spoiler
    Introducimos los valores (1,0,1,1)
    Si sale (0,1), el circuito está bien.
    Si sale algo distinto, está mal

  11. Lógicamente, nunca mejor dicho 😉 , verificar es la opción B.
    Tú respuesta al circuito 2 se puede mejorar, se puede bajar de 4 ensayos.

  12. Claro, es que mis respuestas previas eran para solucionar el problema tal como yo la había entendido.
    Ahora que sé que verificar simplemente es averiguar si todo está bien o no, intentaré resolver de nuevo todos los problemas.
    Gracias

  13. Tú respuesta a la primera cuestión del primer circuito es correcta, un sólo ensayo basta. Gracias a tí también por comentar .

  14. Solución al circuito 2:

    Spoiler
    Se puede conseguir con tres ensayos:
    (0,0,0,1), (1,0,0,0) y (1,1,0,0)
    Si los ensayos dan {1,0,0} el circuito está bien. Si dan otro resultado, está mal

  15. Perdón, la solución anterior está mal

    Spoiler
    Se puede conseguir con dos ensayos:
    (0,0,0,1) y (1,1,0,0)
    Si los ensayos dan {1,0} el circuito está bien, si dan otro resultado está mal

  16. El circuito 2 con cuatro puertas Y se puede verificar en…

    Spoiler
    …tres ensayos.
    (0111), (1110) y (1101)
    Si da {0,0,0} está bien, si da otra cosa está mal

  17. Los circuitos con la misma configuración que el 1 que pueden ser verificados con un solo ensayo son:

    Spoiler
    YYY: (1101)={00}
    YYO: (1101)={01}
    OYY: (1101)={10}
    YOO: (0010)={01}
    OOY: (0010)={10}
    OOO: (0010)={11}
    *A la izquierda la configuración del circuito y a la derecha los valores introducidos para verificarlo y lo que debería dar

Los comentarios están cerrados.

Prueba a esconder tu respuesta con [spoiler] TU RESPUESTA [/spoiler]