Prioridad / importancia del modelado en un circuito digital

0

Estoy intentando crear un circuito digital que tiene tres entradas que representan números binarios. Por ejemplo, 001 sería igual a 1 en decimal, 011 sería igual a 3 y 111 sería igual a 7. Entonces, en general, el número más alto que puede hacer es 7.

He estado diseñando un circuito que compara dos de estos conjuntos de 3 números y me he dado cuenta de que lo que realmente estoy haciendo es comparar conjuntos de 3 entradas, en lugar de mirar los valores numéricos 0-7. Lo que esto significó para mí en la práctica fue que la salida de mi circuito, cualquiera de los conjuntos, contenía más 1, de modo que 101 sería igual a 110 porque ambos tienen 2 1 cuando, de hecho, son dos números diferentes cuando lo convertimos a binario.

Me preguntaba si alguien podría decirme cómo modelar la lógica binaria dentro de mi sistema para poder comparar números de 0 a 7 en lugar de conjuntos de 1.

    
pregunta Lukasz Medza

1 respuesta

3

¿Entiendo que quieres saber cuál de los dos números es más grande? Puede hacerlo comparando los bits de A y B, comenzando por los más altos, llamémoslos A3 y B3.

Hay tres casos: son iguales, o de lo contrario A3 es 1 (y B3 es 0), o B3 es 1 (y A3 es cero). En el primer caso (igual), cuál es más grande está determinado por el siguiente bit (inferior). Si no son iguales, toma el bit A3 y te dice si A es más grande. Así que para el bit más a la izquierda:

A_is_larger = ((A3 == B3) * (entrada desde bits más bajos)) + ((A3! = B3) * A3).

Para el bit más a la derecha, puedes simplificar esto a A1 (asumiendo que para valores iguales no te importa cuál sea el resultado).

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas