Contador de bits usando compuertas lógicas básicas [cerrado]

1

No puedo descubrir un rompecabezas que consiste en crear un contador de bits de 4 bits utilizando compuertas lógicas básicas (NO, O, Y, NOR, NAND, XOR, XNOR, MUX, RESPUESTA COMPLETA). Un contador de bits indica cuántos bits se configuran en un valor. Entonces, por ejemplo, el valor '1011' tendría el resultado '011' porque se establecen tres bits y '011' significa 3 en binario.

Compré un libro llamado "Principios Digitales" por Schaum's Outlines y en ninguna parte de este libro dice cómo hacer un poco de contrarrestar las puertas lógicas. También tengo el libro Hill & Horowitz, solía enseñar lógica digital. En ninguna parte de este libro se dice cómo hacer que un poco contrarreste las puertas lógicas. Me resulta extremadamente frustrante que hacer circuitos lógicos combinatorios básicos sea una especie de vudú negro que no esté documentado.

¿Hay algún libro que describa COMPLETAMENTE la construcción de todos los circuitos combinatorios comunes, como contadores de bits, sumadores, etc., utilizando puertas lógicas básicas?

Nota: descubrir cómo hacer esto no es fácil. Esta es una tabla de verdad de 16 filas con 3 columnas de salidas. Si intenta escribir todo eso y simplificarlo, será muy complejo y tendrá muchas oportunidades para cometer errores. La tabla de verdad para un contador de bits de 4 bits se ve así (entradas a la izquierda, salida a la derecha):

IntentéresolverestoutilizandounmapadeKarnaugh,peroaúnresultaenunaexpresiónqueesdemasiadograndeparaeláreadesoluciónderompecabezas.Porejemplo,paralasegundacolumnadesalida,obtuveelsiguientemapadeKarnaugh:

que tiene la siguiente expresión:

A'B'CD + A'BD + ABC' + AB'D + BCD' + AB'CD'

Representar esto en el rompecabezas requeriría 6 AND de 4 vías, 1 OR de 4 vías y 3 OR de 2 vías. Todos estos componentes ni siquiera cabrían en el área disponible para la solución de rompecabezas.

    
pregunta Tyler Durden

2 respuestas

-1

Descubrí la solución, que es similar a lo que dice el usuario96037 al final de su respuesta. Debido al espacio limitado disponible en el área de la solución, el uso de sumadores es necesario y parece que se necesitan dos sumadores de la siguiente manera:

Entonces, la estrategia básica aquí es que genere los conteos de bits para las entradas 1 + 2 y 3 + 4 por separado, lo que se puede hacer con solo 2 compuertas (XOR y AND). Ahora, tienes dos valores de 2 bits. Luego puede agregar estos dos valores usando un par de sumadores completos encadenados. El arrastre al primer sumador debe establecerse en 0. Por lo tanto, en total hay 6 componentes más el 0 en.

    
respondido por el Tyler Durden
3

Dadas las entradas A, B, C, D y salidas X, Y, Z, donde XYZ es un número binario sin signo de 3 bits que representa el número de bits en ABCD que son 1. Sea X el bit más significativo de los binarios Número y sea Z el bit menos significativo.

La tabla de verdad para la función parece ...

ABCD = > XYZ
0000 = > 000
0001 = > 001
0010 = > 001
0011 = > 010
0100 = > 001
0101 = > 010
0110 = > 010
0111 = > 011
1000 = > 001
1001 = > 010
1010 = > 010
1011 = > 011
1100 = > 010
1101 = > 011
1110 = > 011
1111 = > 100

De la tabla de verdad vemos claramente que la salida X es solo 1 cuando todos los bits en ABCD son 1. Por lo tanto ...

X = A y B y C y D

Vemos claramente que la salida Z solo es 1 cuando un número impar de bits es 1. Una función de paridad impar se implementa fácilmente utilizando puertas XOR. Por lo tanto ...

Z = A XOR B XOR C XOR D

La función para la salida Y es un poco menos obvia. 1 cuando al menos dos de ABCD están encendidos pero no cuando los cuatro están encendidos. El término Y puede escribirse como todas las combinaciones de dos entradas que están activadas, excepto cuando las cuatro están activadas.

Y = ((A y B) O (A y C) O (A y D) O (B y C) O (B y D) O (C y D)) Y NO X

Como alternativa a lo que se describe anteriormente, esta función también podría construirse en cascada un sumador de dos bits y dos sumadores de tres bits. El primer sumador agrega A y B. El segundo sumador agrega el resultado del primer sumador a C. Y el tercer sumador agrega el resultado del segundo sumador a D, y así sucesivamente para cualquier número de entradas.

    
respondido por el user4574

Lea otras preguntas en las etiquetas