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.
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.
| EN | D | Q |
|---|---|---|
| 0 | 0 | Z |
| 0 | 1 | Z |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
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.
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