Buffer de três estados

É uma conexão comutável mais do que uma função lógica: enquanto EN está em HIGH a saída Q repete a entrada D sem alterações, e enquanto EN está em LOW a saída deixa de excitar por completo e fica flutuante em alta impedância (Z). Esse terceiro estado é o que permite que vários dispositivos compartilhem um mesmo barramento: cada um o excita apenas quando habilitado e os demais ficam de fora.

Básico

Os três estados

Conecte uma chave a D e outra a EN, e um LED a Q. Com EN em HIGH o LED segue exatamente D, como se o buffer fosse um fio. Baixe EN para LOW e Q deixa de excitar: não é mais 0 nem 1, está desconectado. Observe que Z não é o mesmo que 0 — nada está segurando a linha em baixo, ela simplesmente fica flutuando.

ENDQ
00Z
01Z
100
111
Intermediário

Duas fontes, um barramento

Coloque dois buffers de três estados lado a lado e una suas saídas ao mesmo fio. Excite as duas entradas EN com um sinal e seu inverso, de modo que exatamente um buffer esteja habilitado a cada momento. O fio compartilhado transporta então a fonte que estiver selecionada. Essa é toda a ideia por trás de um barramento de dados, e só funciona porque o buffer desabilitado realmente solta a linha em vez de excitar um 0 contra a outra fonte.

Avançado

Barramentos e contenção

Aumente a largura de bits do buffer e ele controla um barramento inteiro de uma vez, com todas as linhas comutando juntas. O modo de falha a vigiar é a contenção: se dois buffers ficarem habilitados ao mesmo tempo e discordarem, disputam o mesmo fio. Em hardware real isso pode causar dano; aqui o conflito é sinalizado. A proteção habitual é um decodificador excitando as habilitações, que por construção ativa apenas uma.

Citações

  • Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson. Referência 1
  • Harris, D. M., & Harris, S. L. (2012). Digital design and computer architecture (2nd ed.). Morgan Kaufmann. Referência 2