¿Cómo hacer un comparador digital con múltiples entradas?

1

He estado tratando de hacer un comparador digital pero estoy luchando para obtener más de una entrada. La idea es que tengo 2 conjuntos de 2 números (4 entradas en total) y quiero que la salida tenga en cuenta los 4 números en lugar de solo 2. Esto es lo que tengo aproximadamente hasta ahora:

Lo que quiero que haga el circuito es que las dos entradas de los dos conjuntos se traten por separado. Cualquier idea sobre cómo lograr esto sería muy bienvenida.

    
pregunta user2978821

2 respuestas

2

El punto de partida para un problema como este es extraer una tabla de verdad de la lógica que pretende que se sintetice el circuito. Tu intención sigue siendo algo vaga incluso después de los comentarios.

Si suponemos que los pares de entrada c: d y b: a representan realmente dos números binarios de 2 bits, la siguiente tabla de verdad muestra la salida para cuando c: d == b: a.

Luego puede agregar columnas de salida adicionales a la tabla para representar las otras salidas que pueda desear.

Esto debería ayudarte a empezar. No presentaré toda la solución final porque aprendes poco de eso. Los mecanismos para reducir la tabla mostrada para una salida se pueden realizar siguiendo uno de varios procedimientos conocidos, incluidos los mapas de Karnaugh.

    
respondido por el Michael Karas
1

En el diseño digital, rara vez se conectarán varias puertas a un solo cable o nodo (como lo ha hecho con a, b y c, d). Esto se debe a que, de lo contrario, si una puerta intenta pasar un '1' y la otra un '0', habrá una pelea entre las puertas que generalmente es un cortocircuito de potencia (> ground) (creando mucho calor, un indeterminado nivel lógico, y probablemente rompiendo algún componente).

Las excepciones para esto serían las puertas lógicas que siempre producirán la misma salida (la misma puerta con las mismas entradas, o algo menos común) o si las puertas anteriores pueden ingresar lo que se llama un "estado de alta impedancia" (tri- estado inversor, puerta de transmisión, puerta de paso o puertas dinámicas) para permitir que solo una puerta pase su salida al nodo a la vez.

Su descripción es muy ambigua. Parece que quieres comparar dos números, X e Y.

X = 0,1,2 

y

Y = 0,1,2 

donde

X = A + B (A/B = 0,1) 

y

Y = C + D (C/D = 0,1)  

If X > Y, O1 = 1, O2=O3=0.  If X = Y, O2 = 1, O1=O3=0.  If X < Y, O3 = 1, O1=O2=0

Lo que no me queda claro es si desea tratar a AB y CD como números digitales que representan 4 valores distintos (0,1,2,3), o como dos bits separados que representan 3 valores distintos (0,1,2). ). Asumiré como bits separados que representan (0,1,2).

En este caso, crea una tabla de verdad:

A B C D    O1  O2   O3
0 0 0 0     0   1    0
0 0 0 1     0   0    1
0 0 1 0     0   0    1
0 0 1 1     0   0    1
0 1 0 0     1   0    0
0 1 0 1     0   1    0
0 1 1 0     0   1    0
0 1 1 1     0   0    1
1 0 0 0     1   0    0
1 0 0 1     0   1    0
1 0 1 0     0   1    0
1 0 1 1     0   0    1
1 1 0 0     1   0    0
1 1 0 1     1   0    0
1 1 1 0     1   0    0
1 1 1 1     0   1    0

Ahora toma cada salida individualmente y crea un mapa de Karnaugh. Si tiene algún término que aparezca en varias salidas, puede guardar compuertas lógicas y reutilizar la lógica. O, use una calculadora de mapas de Karnaugh en línea: karnaugh-auto

\ $ O1 = B \ mathbf {\ overline {C} \ overline {D}} + A \ mathbf {\ overline {C} \ overline {D}} + AB \ overline {C} + AB \ overline { D} \ $ \ $ O2 = \ overline {B} \ mathbf {\ overline {C} \ overline {D}} + A \ overline {B} \ overline {C} + \ overline {A} B \ overline {C} D + \ overline {A} BC \ overline {D} + ABCD \ $ \ $ O3 = \ overline {A} \ overline {B} D + \ overline {A} \ overline {B} C + \ overline {A} CD + \ overline {B} CD \ $

Donde las variables que tocan significa 'Y'; '+' significa 'OR'; $$ \ overline {Bar} $$ significa invertir la variable. Puse en negrita un término similar que podría ser reutilizado, estoy seguro de que puedes encontrar mucho más.

No tiene que encontrar O2 de esa manera, solo puede hacer un NOR como mostró en sus intentos iniciales en O1 y O3. Que si trabajas debería ser el mismo:

\ $ O2 = \ overline {(O1 + O3)} \ $

    
respondido por el jbord39

Lea otras preguntas en las etiquetas