Estou brincando com o design de uma CPU de 8 bits simples a partir de componentes lógicos básicos. Eu tenho uma idéia bastante boa de como minha ALU e meus registros irão interagir, mas a única coisa que sinto que pode usar alguma melhoria é como alternar quando uma linha pode se conectar ao barramento de dados principal.
Meu pensamento inicial era usar e portões para dirigir o ônibus. A saída das várias linhas na ALU pode ser inserida em um conjunto de chips quad-AND que saem para o barramento. Apenas um conjunto de portas AND de cada vez teria todas as suas entradas B puxadas para o alto para deixá-las no ônibus.
Não tenho certeza de algumas coisas: parece um desperdício usar oito portas AND completas por linha, quando só preciso de uma linha de controle. Existe um chip melhor e mais adequado para esse objetivo? Tenho certeza de que também poderia fazê-lo com oito transistores, mas gostaria de usar CIs comuns (e baratos).
Uma solução como essa apenas permite que os dados fluam em uma direção do barramento. Isso é um problema? Acho que não, pois tenho outras linhas de controle que impedem os registros de carregar os dados do barramento até que eu queira.
Existe um chip padrão para usar em um portão de ônibus como este?