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?
fonte
(1) AND gates são inerentemente inadequados para serem usados como buffers de barramento transparentes, porque se eles possuem drivers de saída totalmente ativos, eles interagem e se "abrir coletor", a lógica inverte.
Você pode usar portas OR de 2 entradas ou coletor aberto como drivers de linha única para um barramento comum.
Se você alimentar "data" e "not_enable" para uma porta OR, a saída será alta se not_enable for alta e seguirá os dados se not_enable for baixa.
Quando a saída de um portão coletor aberto é alta, ele não carrega o barramento de forma alguma. Quando está baixa, carrega o barramento com uma saída baixa ligada. Portanto, vários portões O de coletor aberto podem compartilhar o barramento e apenas os habilitados (geralmente um de cada vez) podem dirigir o barramento. Você precisa de uma única tração para puxar o ônibus alto e qualquer número de portões para reduzi-lo.
(2) O EDUC-8 era / é um microcomputador baseado em TTL de 8 bits, apresentado como um projeto de vários meses na revista Electronics Australia de agosto de 1974 a agosto de 1975. Mesmo que você não quisesse copiá-lo, poderia aprender muito observando como ele foi implementado. Existem vários entusiastas que construíram cópias nos últimos anos.
Documentação muito extensa da jornada EDUC-8 de um usuário ... Mesmo ... Inclui detalhes de sua fabricação de PCBs com transferência de toner dos vários PCBs latrgsih e muito mais.
Wikipedia EDUC-8
Página de links
Alguma documentação
Imagem PCB
fonte