E no feriado que passou além de assistir toda a primeira temporada de "Mr. Robot" (série sobre um maluco que insere uma Raspberry Pi num controle de temperatura), tive uma ideia para usar a EPROM PLD, mas que não foi muito pra frente. Geralmente eu não escrevo sobre projetos que não deram (muito) certo, mas como esse tem uma característica de funcionar no simulador e não na vida real resolvi publicar.

A ideia era fazer um contador para display de sete segmentos com apenas uma EPROM. Lembrando que é um contador e não um decodificador com EPROM. O contador teria uma entrada de clock e iria contar um digito a mais no display a cada pulso na entrada. Então lá fui eu tirar a poeira do velho apagador de EPROM e escolher algumas EPROMs velhas nas gavetas (2716 e 2732).

Apagador de EPROM

Enquanto ouvia barulho do timer eletromecânico do apagador a funcionar por uma hora, fui editando uma planilha com os endereços e dados da EPROM. Como deu apenas 512 bytes editei o arquivo final direto no editor Hexadecimal:

programação do contador

Gerei o .bin e "rabisquei" o circuito abaixo no Proteus e carreguei o binário na EPROM virtual. E tudo funcionou perfeitamente.
Esquema do contador
Não acreditei de imediato, afinal tem o problema dos tempos diferentes em cada saída. Mesmo com alguns nanosegundos de diferença o circuito não era pra funcionar. E, claro, não funcionou. Montei no protoboard e ele até começa corretamente no zero, mas começa a oscilar. Algumas vezes ele parou no número "sete" e no "oito", mas oscilava no próximo pulso de clock.

Montagem do contador no protoboard
No circuito do esquema e da foto eu coloquei uma chave para fazer o clock. Como não funcionou, desconfiei que podia ser o bouncing da chave, por isso montei um oscilador com um 555 em 1Hz para o clock.

Então é isso aí, caso eu tenha uma ideia de como fazer isso funcionar e conseguir eu atualizo isso aqui. Depois coloco os arquivos do Proteus e o .bin no Github pra quem quiser testar.