Circuito integrado de habilitação de barramento

8

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?

captncraig
fonte

Respostas:

11

O 74HC244 é o dispositivo típico para conectar / desconectar de um barramento. É um buffer octal de três estados (ou melhor, um buffer quad duplo). Você precisará do recurso de três estados para se desconectar completamente do barramento. Os portões colocariam o ônibus alto ou baixo, mas isso não permitiria outro dispositivo nele.

Mas como você está falando sobre um barramento de dados, provavelmente deseja um buffer bidirecional . Então você pode usar o 74HC245 .

74HC245

Você tem um DIRpino para controlar a direção e um /OEque pode tornar o buffer tri-state.

editar
JustJeff menciona o flip-flop D 74HC374 de três estados octais. ( Nota: falarei sobre o 74HC574, que é funcionalmente o mesmo, mas tem uma pinagem mais lógica. ) O 74HC574 é realmente uma parte interessante e um clássico desde a série SN74xx. Enquanto o 74HC245 oferece um buffer de três estados, o 74HC574 também possui uma função de memória , na forma de um flip-flop D octal. É ótimo para fazer registros e, através da conexão de três estados com o barramento, você pode rotear seu fluxo de dados facilmente.
Há uma desvantagem nisso, no entanto. A saída do registro está disponível apenas para o barramento, então toda a comunicação teria que passar para lá, para que o barramento se tornasse um gargalo. Portanto, acho melhor substituir o 74HC374 por um flip-flop octal D 74HC273 seguido por um buffer tri-state 74HC244 separado para a conexão ao barramento. Dessa forma, a saída do registro também está disponível internamente quando algum outro sinal ocupa o barramento. (Não sei se há uma parte compatível com a função com a pinagem mais lógica. Você também pode usar um 74HC574 com /OEfio conectado à terra.)

stevenvh
fonte
Isso parece ótimo! Ainda não tenho certeza de como meus registros irão interagir com o ônibus, mas suspeito que os bidirecionais ajudarão lá.
Captncraig
@CMP - em uma situação como você descreve - construindo uma CPU a partir do zero - as saídas em três estados são seus amigos. Por exemplo, o 74hc374 é um registro de 8 bits que fornece saída triestável no mesmo chip. Você pode barrar as saídas de várias delas juntas e apenas afirmar o OE do que deseja "no barramento".
23611 JustJeff
Vale a pena notar que muitas CPUs tinham, de fato, registradores que só podiam receber entrada ou enviar saída de / para barramentos compartilhados (em muitos casos, entrada de um barramento; saída em outro). Embora esse design possa, em alguns casos, ser um gargalo, não acho que o objetivo aqui seja competir com um i7. Observe que, se alguém quiser que um registrador receba a entrada de um barramento e seja selecionado seletivamente para dois barramentos diferentes, poderá usar um 74HC273 e dois 74HC244, mas pode-se fazer o trabalho com apenas dois 74HC574 que travam os mesmos dados.
Supercat
5

(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

Russell McMahon
fonte