Estoy jugando con el diseño de una CPU simple de 8 bits a partir de componentes lógicos básicos. Tengo una idea bastante buena de cómo interactuarán mi ALU y mis registros, pero lo único que creo que puede mejorar es cómo alternar cuando se permite que una línea se conecte al bus de datos principal.
Mi pensamiento inicial fue usar puertas para conducir el autobús. La salida de varias líneas en la ALU podría ir a un conjunto de chips quad-AND que salen al bus. Solo un conjunto de compuertas AND a la vez tendría todas sus entradas B elevadas para dejarlas salir en el bus.
Un par de cosas de las que no estoy seguro: parece un desperdicio usar ocho compuertas AND completas por línea, cuando solo necesito una línea de control. ¿Hay un chip mejor más adecuado para este propósito? Estoy seguro de que también podría hacerlo con ocho transistores, pero me gustaría seguir con circuitos integrados bastante comunes (y baratos).
Una solución como esta solo permite que los datos fluyan en una dirección desde el bus. ¿Es esto un problema? Creo que no, ya que tengo otras líneas de control que impiden que los registros carguen los datos del bus hasta que yo quiera.
¿Hay un chip estándar para usar en una puerta de autobús como esta?
fuente
(1) Las compuertas AND son inherentemente inadecuadas para ser utilizadas como memorias intermedias de bus transparentes porque si tienen controladores de salida completamente activos interactúan, y si "colector abierto" la lógica se invierte.
Puede usar compuertas de 2 entradas O de colector abierto como controladores de línea única para un bus común.
Si alimenta "data" y "not_enable" a una compuerta OR, la salida será alta si not_enable es alta y seguirá los datos si not_enable es baja.
Cuando la salida de una compuerta de colector abierto es alta, no carga el bus de ninguna manera. Cuando está bajo, carga el bus con una salida baja activada. Por lo tanto, múltiples compuertas O de colector abierto pueden compartir el bus y solo las habilitadas (generalmente una a la vez) pueden conducir el bus. Necesitas un solo pullup para elevar el bus y cualquier número de puertas para bajarlo.
(2) EDUC-8 fue / es un microordenador basado en TTL de 8 bits presentado como un proyecto de varios meses en la revista Electronics Australia desde agosto de 1974 hasta agosto de 1975. Incluso si no quisiera copiarlo, podría aprender mucho mirando cómo Fue implementado. Hay varios entusiastas que han construido copias en los últimos años.
Documentación muy extensa del viaje EDUC-8 de un usuario ... Lo mismo ... Incluye detalles de su fabricación de PCB de transferencia de tóner de varios PCB latrgsih y mucho más.
Wikipedia EDUC-8
Página de enlaces
Alguna documentación
Imagen de PCB
fuente