Usando múltiples multiplexores de 4 entradas para obtener un multiplexor de 16 entradas equivalente

1

Aquí está mi problema:

simulequecadaunodelosmultiplexoresestáconectadoalbitcorrespondientedecadabyte.Elprimermultiplexorestáconectadoalprimerbitdecadaunodelosbytes(0-3).Elsegundomultiplexorestáconectadoalsegundobitdecadabyte(0-3)yasísucesivamente.Miproblemaesquenotengo16multiplexoresdeentrada.¿Cómopuedotomar4multiplexoresdeentradayobtenerunmultiplexorde16entradasequivalente?

editar(porSteven)
Dadosloscomentariosylostresvotosalabaja,parecequeeldiagramanoestáclaroparatodos.Aladerechatieneunamatrizde16bytes(ignorelas"instrucciones del programa"). John quiere una manera de multiplexar todos los 16 LSB en una salida, todos los siguientes LSB en una segunda salida, y así sucesivamente, para los 8 bits. Son los 8 bloques de la izquierda, 8 muxes. Solo muestran 4 entradas y 2 líneas de selección, porque el problema de John es que no puede encontrar un mux de 16 entradas. HTH.

    
pregunta John

2 respuestas

5

Simplemente debes agregar otro nivel de multiplexores.

Loquetienesahoraeslaparteizquierdadeestecircuito:4vecescuatroentradas,dando4salidas.Utiliceunquintomultiplexorparaseleccionarunadeesassalidas.Comotiene16entradas,necesita4líneasdeselección(2\$^4\$=16).EsassonlaslíneasA,C,DyE.Tengaencuentaqueloscuatromuxesalaizquierdautilizanlasmismaslíneasdeselección.

Sideseaseleccionarlaentradaalaqueapuntanlasflechas,deberáconfigurarD=1,E=1,yparaelmuxcorrectoA=0yC=1.

El 74HC153 es un multiplexor doble 4-a-1.

editar
Supercat 's buffers tri-state es una excelente idea (no olvides votar por correo), y me vino naturalmente cuando estaba escribiendo la edición para OP. La solución del multiplexor necesita algunas partes más, pero se puede implementar en un CPLD , no estoy seguro de que admitan la lógica de tres estados internamente. (Lo hacen por E / S).

    
respondido por el stevenvh
3

Si bien el enfoque sugerido por stevenvh funcionará dado los detalles de su pregunta, en muchos escenarios de la vida real no sería la solución más práctica. Si hay 16 registros de 8 bits, la selección de ellos requeriría 40 multiplexores de 4 entradas (cinco para cada bit). Cada cuatro registros de 8 bits que se agreguen requerirán al menos ocho multiplexores de cuatro entradas más. Si puede usar dispositivos con salidas de tres estados (alto / bajo / flotante), puede ser más práctico conectar cada palabra de registro a un bus de 8 bits. En cualquier momento, se habilitará un registro para conducir sus datos al bus; todos los demás registros dejarán el bus solo para que la palabra seleccionada pueda conducirlo. En lugar de usar cuarenta multiplexores de 4 bits para leer un valor de 8 bits, uno usaría un controlador de bus de tres estados de 8 bits para cada registro (16 de ellos), junto con dos chips 74HC138 (o similar), uno de que controlaría las habilitaciones de salida de los primeros ocho registros, y una de ellas controlaría las habilitaciones de salida de los últimos ocho registros.

Si bien hay algunas situaciones en las que no se puede utilizar la lógica de los tres estados, hay otras en las que puede reducir en gran medida la cantidad de circuitos necesarios para hacer ciertas cosas.

    
respondido por el supercat

Lea otras preguntas en las etiquetas