Circuito digital para verificar la mayoría

2

Tengo 31 entradas digitales (cada una es alta o baja) y quiero una salida digital que sea alta solo si al menos 16 entradas son altas. ¿Cómo puedo implementar esta función de "mayoría" (que también es el bit más significativo de la suma) con el menor número de transistores MOS?

Como beneficio adicional, también me gustaría conocer la implementación más rápida en el peor de los casos.

    
pregunta bobuhito

4 respuestas

2

Configure 31 transistores MOS como fuentes de corriente conmutables que alimentan un 32, que está configurado como un sumidero de corriente a 15 veces las corrientes de origen. Luego observe el voltaje del nodo sumador.

EDITAR - No debería jugar juegos. El título dice "Digital", así que es digital. Una configuración sería

simular este circuito : esquema creado usando CircuitLab

Esto maneja 15 entradas. Duplícalo y agrega un sumador completo de 4 bits y Bob es tu tío. No he mostrado el último sumador, pero deberías poder averiguarlo por ti mismo.

Y, por supuesto, si creas esto con BJT, como con la lógica TTL o ECL, no se utilizarán transistores MOS en absoluto.

    
respondido por el WhatRoughBeast
1

Conecte las 31 entradas (0-30 en el diagrama a continuación) a cuatro registros de desplazamiento de entrada en serie y salida en paralelo de 8 bits, como el 74HC597, que están en cascada (solo se muestran dos). Registre la salida serial del último registro en un contador binario como el 74HC4024. Utilice otro contador 74HC4024 para realizar un seguimiento de cuándo se produjeron 32 pulsos de reloj que luego repiten el ciclo.

Poralgunaextrañarazón,elCD4024originalyelsiguiente74HC4024comenzaronanumerarsusflip-flopsconQ1enlugardeQ0.Muyconfuso.AsíqueestoymostrandolaparteNXP(HEF4024B)quecorrigióestaanomalía.

Entonces,cada32pulsosdereloj(cuandoQ5delsegundocontadorsube),sialmenos16entradasestabanaltas(loquesignificaqueQ4delprimercontadores1),esteestadoseenclavaenunflip-floptipoD(74HC74)yrecordadohastacompletarelsiguienteconjuntode32pulsosdereloj.Mientrastanto,lasentradassevuelvenacargarenparaleloalosregistrosdedesplazamiento.

Estoesalgoasícomouncasoespecial,yaqueelumbralmayoritarioesunapotenciadedos,porloquesolosedebeconsultarunpin(enestecaso,Q4,querepresenta16-31).Si,porelcontrario,elumbralfuerade14/27,porejemplo,seríanecesarioagregarundecodificadordedirecciónparasepararlosvalores14y15ademásde16.

Conunrelojdeentradade90MHz,habráunretrasomáximode355nsdesdeuncambioenlaentradahastalaactualizacióndelestadodelamayoríaenlasalida.

Nota:nosemuestranecesariamentetodala"lógica de pegamento", pero esto debería transmitir la idea.

    
respondido por el tcrosley
0

Parece que estás confundiendo algunos conceptos aquí. Usted está diciendo que quiere un circuito de mayoría de votantes. En cuyo caso podría hacer una tabla de verdad muy grande y reducir el circuito utilizando técnicas de reducción. Por ejemplo:

Entrada / Salida

000/0

001/0

010/0

011/1

100/0

101/1

... y así sucesivamente. Luego, cuando tenga las puertas lógicas finales, simplemente desmonte la puerta en el recuento de transistores. No vas a poder hacer esto por 32 bits a menos que tengas mucho tiempo en tus manos. Suponiendo que le tomó 1 segundo hacer cada combinación, todavía le tomará 2 ^ 32 segundos o 136 años. Habiendo vivido tanto tiempo, tendrías que hacer algún tipo de reducción de puerta.

Cuando dices "el bit más significativo de la suma" esto es un poco confuso. Considere que tiene 3 entradas que son altas, el bit más significativo de la suma es 1, igual que con 2. Si su contador mayoritario tenía solo 3 bits, esta información no le diría nada.

"La implementación más rápida en el peor de los casos" suena como la suma de los retrasos de puerta que ocurrirían en la realización del peor de los casos; la realización más en cascada tendría el mayor retraso.

Sugerencia: Los pestillos y las chanclas también están hechos de puertas lógicas, que también están hechas de transistores. Tal vez podría hacer un registro de desplazamiento y un contador, luego usar un poco de lógica combinatoria en la salida del contador.

Buena suerte.

    
respondido por el Robert Hana
-1

En su mayoría, soy una persona analógica, así que lo haría utilizando técnicas analógicas.

Suma todas las entradas juntas en un amplificador sumador. Alimente la salida del amplificador a un comparador que se dispara cuando el número deseado de entradas es HI.

Esto se puede simplificar para un verano resistivo (no se necesita un amplificador operacional) y un comparador.

    
respondido por el Dwayne Reid

Lea otras preguntas en las etiquetas