Implementación de un decodificador de 8 a 256 usando BJTs

2

Estoy diseñando un decodificador de 8 a 256 para un módulo SRAM que estoy construyendo para una computadora BJT de 8 bits hecha en casa.

Esto es lo que tengo, que es la forma directa y trivial:

Sin embargo, el diseño requiere más de 2000 transistores y aproximadamente 300 resistencias, asumiendo el uso de una resistencia común para cada salida BITx y BITx_NOT.

Eso es casi 7000 pines para soldar, y requeriría una inmensa cantidad de espacio y tiempo para hacerlo.

¿Cuáles son algunas maneras en que puedo optimizar el diseño para requerir menos transistores?

(Por cierto, soy consciente de que la implementación de la RAM real requerirá la misma cantidad de transistores. Lo que estoy tratando de hacer es hacerlo solo una vez. :)

    

2 respuestas

2

Wow, ese es un proyecto ambicioso. Es difícil saber por dónde empezar en términos de respuesta, y es por eso que es un poco demasiado amplio para el formato de preguntas y respuestas A que utilizamos aquí.

En primer lugar, nadie, ni siquiera "de vuelta en el día", creó grandes memorias de acceso aleatorio a partir de una tecnología BJT discreta. Antes de que los ICs estuvieran disponibles, las computadoras todavía usaban principalmente tecnología magnética para el almacenamiento: discos, baterías y núcleos. Entonces, como un proyecto "retro", no tiene base en la historia real. (¡Y ahora estás descubriendo por qué! :-)

Segundo, si está construyendo grandes compuertas AND al juntar transistores en serie como se muestra en su esquema, su diseño está condenado al fracaso, o al menos a una frustración extrema, como resultado de los niveles lógicos que cambian ampliamente en diferentes partes. del circuito.

Realmente desea elegir una tecnología de implementación única, como las puertas RTL NOR o las puertas DTL NAND, y seguir con esa tecnología para construir todos los circuitos de orden superior que su computadora necesita. Si tuviera que hacer esto, estaría siguiendo una ruta histórica muy transitada: se implementaron computadoras famosas como el PDP-8 e incluso las primeras supercomputadoras Cray utilizando este enfoque.

A modo de ejemplo, si tuviera la tentación de crear una computadora con transistores discretos, me sentiría inclinado a crear un módulo de PCB estándar algo como esto:

simular este circuito : esquema creado usando CircuitLab

Este módulo implementa hasta tres puertas tipo DTL NAND. Los puentes de soldadura ofrecen cierta flexibilidad: puede tener cualquier combinación que vaya desde tres puertas de 3 entradas a una puerta de 7 entradas y dos inversores. Si despoja algunos componentes, podría tener una compuerta de 8 o 9 entradas.

Dos módulos (6 puertas) podrían implementar un flip-flop maestro-esclavo de tipo D completo, aunque consideraría diseñar el sistema para usar un reloj de 2 fases de modo que los flip-flops individuales puedan ser más simples. Si el diseño requiere muchos flip-flops, podría diseñar un segundo módulo que contenga un par de ellos.

El módulo se presentaría como un SIP (paquete en línea único), con los 14 pines a lo largo de un borde. Yo conectaría estos módulos en una placa de prototipos de envoltura de alambre como la que se muestra a continuación, que podría contener algunos cientos de ellos.

    
respondido por el Dave Tweed
2

Si desea implementar un decodificador por componentes discretos, puede usar DTL y una matriz de diodos:

Este es un ejemplo de un decodificador de 2 a 4 que explica el principio básico:

  • para cada línea de dirección cree una señal invertida
  • para cada salida, cree una puerta AND que se conecte a la línea de dirección invertida para un bit de dirección 0 y a la línea de dirección no invertida para 1 bit de dirección.

Probablemente tengas que amortiguar las salidas. No voy a tener una velocidad muy alta (dependiendo de las resistencias de arranque).
Sí, necesitas muchos diodos (8 × 256 = 2048).

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Curd

Lea otras preguntas en las etiquetas