A ULA em CPLD - Semana de 2 a 8 de Dezembro


5 de Dezembro de 2012

Com a chegada do meu CNC, acabei dando uma pausa no projeto para brincar um pouco com a nova máquina (em breve vou publicar um artigo com o unboxing e montagem dele). Porem, o Fábio continua firme no debugging e agora com os testes reais nos CPLDs da Altera que ele recebeu. Bem, não quero estragar a surpresa, é melhor vocês assistirem os dois vídeos dele!





Bem, no Altera está funcionando bem melhor que no Xilinx por enquanto. Agora é revisar, revisar e revisar para descobrir o que ainda tem de errado do meu lado da implementação que pode ser por causa do chip em si, temporização diferente ou mesmo algum primitiva ainda errada, mas a solução parece próxima. Pelo menos é fazer o TK dar boot para começar o debug já com o equipamento "funcionando".

Será que antes do Natal tem presente para todos os usuários de TK?



6 de Dezembro de 2012

Durante o dia o Fabio comentou comigo que tinha refeito no Quartus o código do contador que fazia com que os pixel não aparecessem na tela. Curiosamente no ISE esse contador sempre funcionou bem e não cheguei a enfrentar o mesmo tipo de problema que ele. Começamos os testes cedo ontem e logo ele me passou as primeiras imagens do TK já com o contador novo e em outra TV.


Quase lá, mas era bem óbvio que ainda restava problema na contenção, porque apesar do TK funcionar, a tela ainda continha pixels extras, semelhante ao "efeito snow".

Bem, se o problema era na contenção e estava bem próximo, o jeito é adiantar meio ciclo de clock ou atrasar meio ciclo nessa parte e ver o que acontecia. E o Resultado....

SUCESSO!!!





Na verdade ainda serão precisos testes em todas as funções desempenhadas pela ULA, mas já fica bem evidente que muita coisa já está funcionando e MUITO bem por sinal.

Curiosamente ainda resta um pequeno problema nesta versão, provavelmente por causa do timming do contador de pixels, mas acredito que será bem simples de resolver.





Os próximos passos agora são colocar a versão Xilinx pelo menos nesse mesmo patamar e testar todas as funções para que tudo fique 100% compativel. Inexplicavelmente os CIs da Xilinx estão bastante "sensíveis" e já foram quatro defeituosos até agora. Na pior das hipóteses abortarei essa versão e ficaremos somente com a ULA em Altera. Não existe grande desvantagem nisso, apenas que se um dia esses CPLDs sumirem de vez, teremos que recompilar uma nova versão talvez utilizando alguns TTLs na plaquinha adaptadora para "casar" os niveis de voltagem.

Abaixo fotos do adaptador do Belavenuto, usado nos últimos testes.




Tempo de hoje: 03 horas



8 de Dezembro de 2012

Revisei várias vezes o esquema e não entendi o que poderia estar errado. Fiz vários testes, mas sempre o mesmo padrão listrado de tela. No fim do dia tive algum progresso quando configurei um atraso três vezes maior do que o original na parte de contenção da CPU. Desse modo a placa de Diagnóstico passou a funcionar nos primeiros testes, falhando apenas no último, mas sem mudança nenhuma na tela.

Isso quer dizer basicamente que a contenção está funcionando, mesmo que parcialmente!

Tempo de hoje: 09 horas



9 de Dezembro de 2012

Como a placa de Diagnóstico "quase" funcionou, coloquei a ULA original novamente no TK para refazer as medidas de tempo com o osciloscópio. Para minha grande surpresa, o mesmo padrão que já estive vendo há vários dias se repetiu com a ULA original! Bem, perdi umas boas três horas diagnosticando o TK. Cheguei a retirar praticamente todos os CIs atrás do defeito, então passei para diodos e transistores e como não tinha mais o que fazer, comecei a medir os recsistores. Próximo a ULA, na minha versão de placa, tem um resistor que fica de pé. Num dos meus testes o resistor foi apertado para baixo, quebrando rente à base e imperceptível naquela posição. Quando encontei a ponta de prova ele se moveu, e pude comprovar o problema. O novo resistor foi soldado devidamente deitado para não atrapalha mais o soquete do CPLD. Passei a Diagnóstico até o fim para ter certeza que não restavam mais problemas e voltei novamente ao CPLD.

BOOTOU FINALMENTE!!!! Com direito aquele som característico de boot, texto e cores perfeitas na tela. A animação foi indescritível naquele momento, acreditem.

Bem, muitos testes ainda pela frente, coloquei inicialmente a Diagnóstico, que falhou no teste de número 5, assim como falhava no dia anterior mesmo sem o video correto. Imaginei tratar-se de ajuste de tempo de contenção e enquanto eu ia testando algumas combinações, enviei o arquivos para o Fábio testar no shield Xilinx dele, que tinha acabado de construir. Por lá bootou também, porém a Diagnóstico ia até o fim, sem falhar. Poderia ser uma diferença de tempo entre meu TK e o dele, mas ele me chamou a atenção por estar usando um pino dedicado de clock recomendado pelo datasheet, enquanto eu não. Como todos os outros testes falharam, fui trocar então o fio do meu soquete, remapeando para o pino dedicado. Mal sentei-me à bancada e percebi o fio da linha A15 completamento solto no soquete! Será que era esse o problema?

SUCESSO!!! Testes perfeitos com a Diagnóstico. Testei alguns jogos com a divIDE e todos rodaram perfeitos. Saquei um TK95 do armário e repeti os testes, enquanto o Fabio fazia o mesmo com um outro TK90X da sua coleção. Nos diversos testes ele notou uma instabilidade neste TK, o que nos levou a mais uma pequena mudança no atraso da contenção. Com o novo ajuste, repetimos absolutamente TODOS os testes novamente e a instabilidade do TK90X dele sumiu, indicando que tínhamos chegado a um valor satisfatório para, pelo menos, as quatro máquinas testadas.

Vídeos dos testes:











Bem, até agora todos os testes foram empíricos, com base em jogos que eu já conhecia e que jogo vez ou outra. Ainda não foi usada nenhuma ferramenta para medir a precisão do CPLD, mas a julgar pelos vídeos do Shock Megademo nota-se que o timming está ligeiramente diferente do Spectrum ingles, mas como também pode ser visto, a ULA da Microdigital também não é muito precisa. Fora isso os resultados são MUITO animadores e não estamos devendo nada à ULA original da Microdigital.

Agora é a busca da perfeição, tentando alcançar o timming preciso da ULA do Spectrum, para tornar o TK90X ainda mais compatível com o ingles!

Tempo de hoje: 09 horas



Total de tempo trabalhado no projeto nesta semana: 21 horas





Voltar - Home


Comente



COMENTÁRIOS DESABILITADOS NO MOMENTO! RETORNAM EM BREVE
É expressamente proibido a reprodução total ou parcial deste texto sem a minha devida autorização por escrito.